Visible red dots all over the image

#15
by yekta - opened

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

Screenshot 2023-07-27 at 13.17.55.png
Screenshot 2023-07-27 at 13.32.45.png
Screenshot 2023-07-27 at 10.58.23.png
Screenshot 2023-07-27 at 10.59.52.png
Screenshot 2023-07-27 at 11.01.13.png

It's a very aggressive watermark.

yekta changed discussion status to closed
yekta changed discussion status to open

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 πŸ˜…

yekta changed discussion status to closed
yekta changed discussion status to open

Just comment the 843 line in pipeline_stable_diffusion_xl.py
image = self.watermark.apply_watermark(image)

@yekta I can tell you that these dots disappeared when I monkey-patched the watermark away.

@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.

@yekta I think this was made on purpose to mark AI-generated images, because digital artists are quite concerned about all those diffusion stuff.

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

Sign up or log in to comment