Weighting, emphasis and where it breaks
The syntax, and what it is doing underneath
Most interfaces let you emphasise part of a prompt. The notations differ and the mechanism does not:
a (red:1.4) car # common in WebUI, ComfyUI
a ((red)) car # older shorthand, each bracket ~1.1x
a red car::2 sky::1 # Midjourney-style multi-prompt weightsUnderneath, the tool takes the vectors the text encoder produced for those tokens and multiplies them, or interpolates them toward or away from the vectors of an empty prompt. Then it hands the modified sequence to the diffusion model as if the encoder had produced it.
That last sentence is the whole lesson. The model was trained on encoder outputs, not on scaled encoder outputs. A weight of 1.2 produces a vector that is a little unusual and mostly behaves as you expect. A weight of 1.8 produces a vector unlike anything in training, and the model's response becomes unpredictable rather than merely stronger.
The observed behaviour
Push a weight up gradually and you see a consistent pattern:
- 1.0 to 1.3 — the concept becomes more present. This is the useful band.
- 1.3 to 1.6 — the concept starts to dominate the image, often spreading to places it does not belong. Weighting
redthis far will tint the whole frame. - Above 1.6 — texture breaks down. Colours posterise, edges harden, and sometimes the concept vanishes altogether, which surprises people who expected more of it.
Down-weighting is gentler and more reliable. (background:0.6) genuinely does calm a busy background, because scaling a vector toward the empty-prompt direction is closer to something the model has seen.
The practical rule most experienced users converge on: keep weights between 0.6 and 1.4, and if that is not enough, the problem is not emphasis. Either the concept is absent from the model, or it is being out-competed by something else in the prompt that you should delete instead.
Better tools than weighting
Weighting is popular because it is the only control many interfaces expose. Where the alternatives exist, they beat it.
Prompt editing over steps. Notation such as [cat:dog:0.4] swaps one token for another 40% of the way through the run. Since composition settles early and texture late, this gives you a dog-shaped animal with cat texture, or vice versa. It is far more precise than weighting and costs nothing extra.
Regional prompting. Assign different prompts to different areas of the canvas. The red cube genuinely goes on the left because the left region is conditioned only on the cube prompt. This solves attribute binding properly rather than compensating for it. Available free in ComfyUI and as extensions elsewhere.
Splitting into two generations. Generate the subject, generate the background, composite in GIMP, Krita or Photopea — all free. This is what a professional does when a job has to be right, and it is often quicker than twenty attempts at a prompt.
The failure that looks like a model problem
A specific trap: weighting interacts with guidance. Both are amplification, applied at different points. High guidance plus heavy weighting compounds, and the burnt, posterised result gets blamed on the checkpoint.
If your images look overcooked, take the weights out first, then adjust guidance, then put weights back only where they earned their place. Changing two amplifiers at once teaches you nothing about either.
There is also a difference between tools that matters if you follow instructions from elsewhere. Some implementations scale the token vector directly. Others interpolate between the prompt's embedding and the embedding of the prompt with that word removed, then renormalise the whole sequence so its overall magnitude is unchanged. The second approach is much better behaved at higher weights, because it never leaves the region the model was trained on. This is why the same (red:1.6) produces a mild change in one interface and a scorched image in another, and why weight values shared online are not comparable across tools. When you copy a prompt with weights in it, expect to retune the numbers, and do it on a fixed seed so you can see what each one did.
The honest limitation: weighting has no principled basis. It is a hack on an internal representation, discovered by users, adopted by tool authors, and never trained for. It works well enough within a narrow range and it will never be reliable outside it. Treating it as a precision instrument is the mistake.
The one thing to keep
Prompt weighting scales token embeddings before they reach the model, which is a blunt intervention on a representation the model never saw scaled during training.
Before you move on
Raising a token's weight from 1.5 to 2.0 makes the concept less visible rather than more, and the image degrades. What does this show?
Pick the one you would defend. Nobody sees your answer.