This bank hunts the conceptual misconceptions around classifier-free guidance (CFG). Every reveal below forces you to justify — a bare "true" or "false" earns nothing. Cover the sign traps, the w-limits, the training-time null token, and the difference from Classifier guidance. Read the question, commit to an answer out loud, then reveal.
Figure 1 plots the guidance line through the two anchor predictions ϵ∅ (point ①, at w=0) and ϵc (point ②, at w=1). The cyan segment ③ is the interpolation region w∈[0,1] where the guided point sits between the anchors; the amber ray ④ is the extrapolation region w>1 where it shoots pastϵc (the amber star marks w=2). Every "sign trap" below is really asking: where on this line does your w land — cyan segment ③ or amber ray ④?
CFG requires training a separate noise-robust classifier alongside the diffusion model.
False. That is Classifier guidance. CFG's whole point is to avoid the extra classifier by training one model to do both conditional and unconditional denoising, then differencing the two at sampling time.
Setting w=1 recovers ordinary conditional sampling with no amplification.
True. At w=1 the formula collapses to (1−1)ϵ∅+1⋅ϵc=ϵc, exactly the plain conditional prediction — no guidance, no extrapolation.
At w=0 the model still weakly follows the prompt.
False. At w=0 the coefficient on ϵc is zero and on ϵ∅ is one, so you get the purely unconditional prediction — the prompt is completely ignored.
Increasing w always improves image quality.
False. Higher w improves prompt adherence but eventually over-saturates colors, flattens texture, and reduces diversity (mode-collapse-like behaviour). Quality peaks at a moderate w then degrades.
For w>1, the unconditional term carries a negative weight.
True. The weight is (1−w), which is negative once w>1 (e.g. at w=2 it is −1). This actively pushes the sample away from the generic unconditional distribution, sharpening it toward c.
CFG changes what the network's weights are; it is a training-time modification.
False. The trained network is untouched. CFG is an inference-time recombination of two forward passes. The only training-side change is randomly dropping c so the same weights can denoise unconditionally.
The vector Δϵ=ϵc−ϵ∅ is the same length regardless of the prompt.
False.Δϵ is the "direction the prompt adds," and its magnitude depends on how much the prompt changes the prediction at that xt,t. A vague or off-distribution prompt yields a small Δϵ; a strong, in-distribution prompt yields a large one.
Because CFG runs the model twice per step, it roughly doubles sampling compute versus plain conditional sampling.
True. Each denoising step needs both ϵc and ϵ∅, so wall-clock cost per step is about 2× (often batched into one forward pass of doubled batch size).
CFG and Classifier guidance produce the score modification via the same term.
True (in effect). Both add w⋅∇xtlogp(c∣xt). CFG just estimates that gradient implicitly as ϵc−ϵ∅ instead of reading it off an explicit classifier.
The null token ∅ must be a special learned symbol distinct from any real prompt.
Mostly true in practice. For text it is typically the empty string / a fixed padding embedding; for class labels a dedicated null class. What matters is that it is a consistent, reserved input the model was trained to see when conditioning is dropped.
"CFG works by adding the classifier gradient ∇xtlogp(c) to the score."
Error: it should be ∇xtlogp(c∣xt). The term logp(c) has no xt dependence, so its gradient is zero — it can't steer anything.
"The guided formula is ϵ~=wϵ∅+(1−w)ϵc."
Error: the weights are swapped. It is (1−w)ϵ∅+wϵc. As written, at w>1 you'd amplify the unconditional term — the opposite of guidance.
"Since ϵ~=ϵ∅+wΔϵ, choosing w=0 gives the conditional prediction."
Error:w=0 kills Δϵ, leaving ϵ∅ — the unconditional prediction. You need w=1 for the plain conditional.
"To train CFG we drop the conditioning on 100% of examples so the model becomes fully unconditional."
Error: the drop rate, call it pdrop, is a small fraction (commonly pdrop∈[0.1,0.2]; the original CFG paper found 10–20% worked well, and large values like pdrop=0.5 waste capacity the conditional path needs). Setting pdrop=1 would make the model never learn conditional denoising, so ϵc would be meaningless.
"Δϵ points from the conditional toward the unconditional prediction."
Error:Δϵ=ϵc−ϵ∅ points from the unconditional toward the conditional. We then add w copies of it to the unconditional baseline to overshoot toward the prompt.
"Because guidance sharpens toward the prompt, CFG increases the diversity of generated samples."
Error: it reduces diversity. Concentrating probability mass around prompt-matching modes is exactly why high w causes reduced variety and mode-collapse-like output.
"CFG requires the unconditional and conditional models to be two separately trained networks."
Error: it is one network with shared weights; the "two models" are two forward passes of the same weights, differing only in whether c or ∅ is fed in.
Why does the logp(c) term disappear when we take ∇xt?
Because p(c) is a constant with respect to xt (the prior over conditions doesn't depend on the noisy image), and the gradient of a constant is zero. This is what cleanly splits the conditional score into unconditional score plus the classifier term.
Why does subtracting ϵ∅ from ϵcisolate the effect of the prompt?
Both predictions share everything the model knows about generic images at (xt,t); only the conditional one also encodes c. Subtracting cancels the common part and leaves just the prompt-specific direction Δϵ.
Why does scaling Δϵ by w correspond to sampling from the sharpened posterior p(xt)p(c∣xt)w?
Take the log of that target: logp(xt)+wlogp(c∣xt). Its gradient is ∇logp(xt)+w∇logp(c∣xt). Since the classifier gradient equals ∇logp(xt∣c)−∇logp(xt), which in ϵ-land is exactly −(ϵc−ϵ∅)/1−αˉt, scaling it by wis raising p(c∣xt) to the power w — a peakier, more confident posterior.
Why must we train with conditioning dropout rather than just feeding ∅ at inference?
If the model never saw ∅ during training, its "unconditional" pass would be an untrained, arbitrary output. Dropout teaches the same weights to give a valid unconditional prediction, which is what ϵ∅ must be for the difference to be meaningful.
Why does negative prompting fit naturally into the CFG formula?
Negative prompting swaps the ∅ baseline for a prediction conditioned on the unwanted concept cneg; guidance then pushes away from cneg and toward the positive prompt — the same subtract-and-extrapolate structure with a non-empty baseline.
Why is CFG described as extrapolation rather than interpolation when w>1?
For w∈[0,1] the guided prediction is a convex blend betweenϵ∅ and ϵc (interpolation, cyan segment ③ in Figure 1). For w>1 the point lies beyondϵc on the line through both (amber ray ④) — you leave the segment, hence extrapolation.
Because the predicted noise is a fixed rescaling of the negative score, ∇xtlogpt(xt)=−ϵθ/1−αˉt. So manipulating scores by Bayes' rule translates one-to-one into manipulating noise predictions — that exact relation is what makes the whole derivation legal.
What does ϵ~ equal in the limit w→∞ (direction only)?
It aligns with the ray ϵ∅+wΔϵ, dominated entirely by Δϵ. In practice this produces extreme, over-saturated, low-diversity samples long before the theoretical limit.
What happens if a prompt is so out-of-distribution that Δϵ≈0?
Guidance has almost nothing to amplify, so ϵ~≈ϵ∅ regardless of w — the output stays generic. The prompt effectively fails to steer generation.
If w is set negative, what would CFG do?
The weight on ϵc becomes negative, so sampling is pushed away from the prompt — you'd get an image avoiding the described concept, the inverse of guidance (and the mechanism behind treating an unwanted concept as a target to flee).
At the final denoising step (t→0, image nearly clean), does the guidance term matter?
It still applies, but Δϵ is typically small there because the image is already mostly determined; most of guidance's shaping happens at higher t where structure is still forming.
Is CFG applicable to unconditional-only models (no c ever)?
No. Without any conditioning signal there is no ϵc to compare against ϵ∅, so Δϵ is undefined. CFG fundamentally needs a Conditional generation setup.
Does the DDPM/DDIM update change under CFG?
No — the sampler equations are identical. You simply feed ϵ~ in place of ϵθ wherever the DDPM sampling step uses the predicted noise.
Recall Quick self-check
"Load-bearing sign fact" means the one sign that, if flipped, breaks everything. Here it is ::: For w>1, the unconditional term's weight (1−w) is negative, pushing away from generic samples toward the prompt. Flip that sign and you'd steer away from the prompt instead.
The single load-bearing training fact ::: Randomly drop c with probability pdrop (a small value, commonly pdrop∈[0.1,0.2]) and replace with ∅ so one set of weights learns both conditional and unconditional denoising.