The first thing I want from an image-generation comparison is not a prettier image. It is an explanation of what changed. If the prompt, seed, guidance and scheduler all move at once, there is no clean way to attribute the result.
This lab uses original recorded images from Seongmin Lee and collaborators’ Diffusion Explainer. It keeps two prompts, three seeds, four guidance scales and every fifth frame of the source’s 50-step runs. The images are served locally and are not regenerated or interpolated. The interface adds matched comparisons and explicit checks for confounding.
Understand the execution path before tuning it #
In the Stable Diffusion architecture described by the source, a text encoder produces a conditioning representation. A denoiser repeatedly updates a noisy latent under that conditioning and a noise schedule. A learned decoder converts the final latent to an image.
Calling that last stage “upscaling” is convenient shorthand, but incomplete. A decoder reconstructs image content from a learned representation; it is not simply resizing a small RGB image. Likewise, a denoising step is not ordinary image blurring run backwards.
The source frames let us inspect the visible trajectory. They do not expose the complete latent state or all the numerical choices used to produce it. The lab therefore does not invent latent-distance measurements, attention maps or a quality score.
Guidance is a direction, not a confidence slider #
Classifier-free guidance combines unconditional and conditional noise predictions:
At , the expression uses the unconditional prediction. At , it uses the conditional prediction. For , it extrapolates beyond that conditional estimate. A guidance scale of seven is not a 70% or 700% confidence level.
Keep the prompt and seed matched. Compare guidance one with seven, then seven with twenty. Look separately at whether the requested subject is present, whether the composition changes, and whether textures or contrast become exaggerated. A stronger conditioning signal can introduce artifacts; “more guidance is better” is not a useful operating rule.
Implementation details matter at the boundary. Some inference APIs disable the two-branch guidance path at particular scale values rather than literally evaluating the formula for every value. These recordings follow the source explainer’s convention. The lab is not an API compatibility test.
Match seeds, then repeat them #
A shared seed is useful because it controls an important source of variation. It is not a guarantee that arbitrary pipelines produce comparable images. Changes to tensor shapes, the generator implementation or random-number consumption can change the initial noise even when the numeric seed is identical.
Within these source recordings, use the matched-seed comparison to isolate guidance. Then inspect all three seeds. If an apparent benefit exists in only one, it is a weak basis for a default setting.
Next, keep guidance fixed and change the right prompt to add the bamboo forest. That asks a different question: how does the conditioning change the composition? If both prompt and guidance differ, the interface explicitly labels the comparison as confounded. The images are still interesting, but they do not isolate either variable.
Three seeds are a small debugging sample. They cannot establish diversity, fairness, robustness or a general quality improvement.
Step ten is not the ten-step model #
Move the recorded-step control backwards. You are inspecting an intermediate state of a run configured for fifty steps.
A scheduler configured for ten steps generally chooses a different sequence of noise levels and update sizes. Its final result is not simply the tenth frame of the fifty-step recording. Evaluating a faster sampler requires running that sampler, not stopping this viewer early.
The same caution applies to the horizontal axis: an index in the recording is not automatically proportional to remaining noise, perceived image quality or wall-clock cost. Without the scheduler state, those quantities should not be inferred from the progress percentage.
Guidance cost follows the branches, not its numeric value #
Conventional classifier-free guidance evaluates a conditional and an unconditional denoiser branch at each step. Fifty steps therefore involve one hundred denoiser sample-evaluations, often grouped into fifty batched calls. Batching changes utilization and memory requirements; it does not make the second branch free.
Raising guidance from seven to twenty changes the linear combination, not the number of denoising steps. Reducing step count or changing architecture is a different performance intervention. Guidance distillation and other newer approaches can change this execution graph, so the two-branch accounting is not universal.
These are analytical observations. The lab does not benchmark a GPU or claim a latency improvement from the recordings.
What would make this a deployment evaluation? #
I would start with a task-specific prompt set, fixed model and scheduler revisions, and a declared seed protocol. I would keep prompt adherence, visual artifacts, composition and diversity as separate observations before reducing them to any aggregate score.
For a product that requires two objects in specified locations, an attractive image is not sufficient. Count and spatial-relation failures need their own annotations. A vision-language evaluator can help triage outputs, but it needs validation against human judgments; replacing one unvalidated model judgment with another does not settle correctness.
The engineering value of the lab is the comparison discipline. A small experiment with a clear intervention and honest limits is more useful than a large gallery whose best-looking outputs have been selected after the fact.
Source: Diffusion Explainer, revision 0820016c, and the IEEE VIS 2024 paper. The local asset manifest records each original path. The source’s MIT notice is retained. This is a curated adaptation of its recordings, not a claim to have trained or evaluated the upstream model.