Shotcraft
How generation works

Diffusion models: generation by denoising

A network trained to spot noise, run repeatedly, turns static into a picture.

Commonly believed, and wrong: the model draws the image progressively, like a painter adding strokes to a blank canvas.

A diffusion model is a denoiser run far past its intended use. Start with the everyday version of that job: a noise-reduction pass on an underexposed night interior. The plugin looks at a grainy frame, estimates which part of the signal is grain, and subtracts it. A diffusion model is trained to make exactly that estimate, but on frames buried in far more noise than any sensor produces. Training is the straightforward half. Take a real image, add a known amount of noise, hand the result to the model, and ask it to say what the noise was. Because the amount added is known, there is an answer to grade against. Do that across enormous numbers of images at every noise level from a light dusting to pure static, and the model learns what grain looks like sitting on top of a photograph, which turns out to be the same as learning what photographs look like. This is the forward noising process, and it is fixed arithmetic chosen by the designers rather than anything the network learns. Generation runs the plugin in the direction it was never meant to go. Fill a frame with pure random noise, ask the model what the noise is, subtract most of the estimate, and look again. The residue is still mostly noise, but slightly less of it, and slightly structured. Ask again, subtract again, several dozen times. Structure accumulates because at each pass the most plausible thing to leave behind is the thing that resembles the training data. That is the learned reverse process. Note what the model never produces: the picture. Each pass it predicts noise, and the picture is what remains once the estimates are taken away.

Why it matters on a production

Iteration is the unit you pay for. Every generation is dozens of full passes through the network, so cost and wait scale with the number of passes rather than with how ambitious the shot is; five seconds of a curtain moving costs about what five seconds of a stunt costs. And because each pass is an estimate rather than a lookup, a generation is a sample, not a render. Run it again from different starting noise and you get a different take. Budget generations the way you budget takes on a shooting day, and treat the starting noise as the take number.

What people get wrong

Each of these is a belief worth dropping, followed by what is actually happening.

Terms this introduces

forward process
The fixed schedule of adding noise to a real image, used to manufacture training examples.
reverse process
The learned sequence of denoising steps that turns pure noise into a sample.
noise prediction
The model's actual output at each step: an estimate of the noise in the current input, not the finished image.
score
The direction in which a noisy image should move to become more like real data; the quantity score-based formulations estimate.
sample
One generation drawn from the model, which differs run to run because the starting noise differs.

Where this shows up in the directory

Models whose own documentation names this. It is evidence the vendor considers it relevant, not a judgement that the model is good or bad at it.

25 more not listed.

Whose job this changes

Craft roles whose page discusses this directly. Follow one to see what the person actually decides.

Further reading

Next

Sources