5 ms·
the entire "more data and pray" approach is how you's all end up with these problems. You want to see another stable diffusion generation failure, try asking Da
by IIAOPSW 4y ago
the entire "more data and pray" approach is how you's all end up with these problems. You want to see another stable diffusion generation failure, try asking Dalle or Craiyon for playing cards. In particular the back sides. Very similar to what you pointed out. Lots of repetition in the data sets, but non-exact repetitions. Different companies put different patterns and different stylistic choices on the same recognizable standard deck. The output the machine produces is frankly psychedelic.
Here's what you missed. The generation problems all happen under a certain length scale. Its things under a certain band of fine detail where the distortion happens. Normally you won't notice it, because normally there isn't anything but noise in that band anyway. Shove a SD generated image through a fourier transform to see what I mean.
And here's my very informed conjecture why it happens. The hint is right there in the name. Stable Diffusion. The generator network trains to de-noise images. The adversary adds Gaussian noise. That's a perfectly reasonable noise method, but it comes with its own spread and distribution in frequency space.
A very similar problem exists with dithering processes. One way to use a b/w screen for grayscale is to treat the gray scale values as coin flip probabilities. This is known as random dithering. Its simple, its obvious, it should work, and it does work surprisingly well most of the time. But it runs into the exact same distribution problem. When there are closely spaced stripes in the image you want to show, that stripe pattern gets completely washed out by the noise being added to fake brightness levels. Put another way, overlaying TV static on any image makes it impossible to see blobs of the same size as might happen by random chance. The generator network can't see certain patterns, because the length scale of those patterns are coincident with the length scale of the noise being added by the adversary.
This problem will never be solved by substituting data for comprehension. That's a one shot lesson worth generalizing.
- ChatGTP 4y agoOther commenters here seem to think MJ5 has solved the problem, are they wrong ? I don’t know just curious.
- IIAOPSW 4y agoI just dug around to find those comments. The answer is I haven't seen MJ5 so I don't know, but when I see it I'll believe it. From other comments it seems MJ5 does better, but still has problems. I fully believe that all of these AI models can be ad hoc patched around the specific cases users complain about most, and that profitable companies desire a working product today more than a conceptual understanding that will pay off later. So I fully believe that there will be versions which "fix the hands problem", but the problem will still be there in at least some cases.
- aaroninsf 4y agoI "rated" 125 images today and many had hands. 90% solved it appears. Where the baseline I'd say has been "almost impossible to get right."
- GaggiX 4y agoI don't think there is a problem with the diffusion process as you describe it, the model has been trained on very different noise/signal ratios and can more or less guide the generation depending on the step count, adding noise to the process makes it stochastic, but if a pattern is critical to fit the distribution correctly and the model has learned it, it will add it. There are also custom SD models that can easily generate good hands.
- IIAOPSW 4y agoTo make it really clear, Its not the raw amount of noise or even the noise/signal ratio that I'm pointing to but rather the spectral properties of randomness. It matters if you use white noise, pink noise, brown noise, gaussian, uniform etc. These variations in the coarseness of noise pattern will each obscure patterns of the same coarseness. Put another way, if your noise pattern is trees, you won't be able to discern if a forest was there prior to the noise. You'll miss the forest for the trees. You can sort of get out of it by switching away from single pixel uncorrelated noise, but that's hard to think about and hard to code and it all looks random when you test it anyway. I don't know how well if at all the adversary side of the process adjusts the probabilities.
- GaggiX 4y agoI wrote a response yesterday but did not post it or send it, ops. I still don't understand the problem, if you ask model trained on a noise pattern "trees" for a forest it will still give you a random forest, that's what it was trained on, also: https://arxiv.org/abs/2208.09392 https://arxiv.org/abs/2208.09392, to see the diffusion process applied to processes other than Gaussian noise.
- IIAOPSW 4y agoThat was an illustrative example don't take the trees literally. Here is an actual illustration of dithering which I believe is relevant. https://surma.dev/things/ditherpunk/ https://surma.dev/things/ditherpunk/ Imagine asking Dakke2 for a picture of the bridge through the fog. The problem is an image of fog is graphically indistinguishable from random noise. Whats the difference between a fog patch and something the adversary drew in? Good luck training out of that one. Less tortured understanding: think about my playing cards example. Consider a face down card with the ordinary geometric lacing patterns drawn on the back side. So we are all looking at the same thing: https://www.wopc.co.uk/images/countries/usa/standard/standard-pcc-2.jpg https://www.wopc.co.uk/images/countries/usa/standard/standar... Now think about what happens to that red card as I randomly add white noise static on top. The original fine patterning on the red side is soon distorted beyond recognition because those thin white lines are obscured by equiprobable white dots and coincidental random patterns.