Visible red dots all over the image
There seems to be visible red dots all over the image. I'd say maybe it's something I'm doing wrong but all images on Hugging Face's own docs also have the problem. Normally I'd say it could be some sort of an "invisible watermark" but it's making the image unusable so I'm guessing not. Does anyone know why this happens and how to fix it?
https://huggingface.co/docs/diffusers/main/en/api/pipelines/stable_diffusion/stable_diffusion_xl
It's a very aggressive watermark.
It's a very aggressive watermark.
Is there some official info on that? To me this looks more like a very significant error than an invisible watermark π I mean for anything serious, those dots are a huge problem.
Seems especially weird considering you pour millions of dollars into research and compute power to create beautiful images with as few defects as possible, then in the last step you proceed to ruin them intentionally.
I would completely understand if they were actually invisible to the naked eye, or even barely noticeable. This is so noticeable that I personally see them perfectly clearly at normal viewing distance without any zoom. Red isn't exactly a non-striking color that blends in either, it's the default color for representing "error" in UIs and "danger" in real life.
I really don't want to believe this is a watermark π
Just comment the 843 line in pipeline_stable_diffusion_xl.py
image = self.watermark.apply_watermark(image)
@Pupochek @Kubuxu Thanks a lot for the info. It would be nice if we don't need to patch it away as I think purpose of it is meaningful. It's just the implementation that is quite surprising to me. If you convert to JPEG (because of the nature of its compression algorithm), the dots become much less visible but in its original form images are just ruined as far as I'm concerned. I would think there is an actually invisible or barely visible watermark solution out there. Until 2 hours ago, before going very in depth in this, I continued to think there must be a mistake or error somewhere and this isn't the intended watermark. After reading quite a bit, now it seems like intended behaviour.
class NoWatermark:
def apply_watermark(self, img):
return img
...
pipe.watermark = NoWatermark()
...
refiner.watermark = NoWatermark()
as found on https://github.com/huggingface/diffusers/issues/4035