Guides

    What to write instead of a negative prompt

    Negative prompts are a no-op on flow-matching models and leak the negated noun elsewhere. Positive re-specification and the three constraints that replaced it.

    Versely Team9 min read

    There is a negative prompt field on almost every generation interface, and on a growing share of the models behind it, whatever you type there does nothing at all. Not "less than you hoped" — nothing. The text is accepted, the request succeeds, and the model never sees a signal derived from it.

    That is worth knowing before you spend another session tuning a list of exclusions, because the failure is silent. You will conclude that your negative terms are weak, add more of them, and get exactly the same output you would have got with an empty field.

    Why the field is a no-op on flow-matching models

    Classic negative prompting rides on classifier-free guidance. The model runs two predictions each step — one conditioned on your prompt, one conditioned on something else — and the sampler pushes the result away from the second. The negative prompt is what you put in that second slot, and CFG scale is how hard the push is. No CFG, no push.

    Flux and the models descended from it are trained with flow matching and run at a guidance setting of 1, which is the setting at which that second prediction contributes nothing. There is no channel to push away from. Distilled few-step models across other families land in the same place for the same reason: the distillation bakes guidance into the weights so the sampler can skip the second pass, and skipping it removes the mechanism a negative prompt depends on.

    This is not a bug anyone is going to fix, because the guidance-free design is why those models are fast. It is a change in what the tool is, and the phrasing habits built around the old tool do not transfer.

    There is research working on a replacement. Value Sign Flip is one approach, described in a preprint on arXiv, which implements negative guidance in few-step diffusion and flow models by flipping the sign of attention values derived from the negative prompt rather than running a second guided prediction. It is not the default anywhere in consumer tooling yet, so treat it as a direction rather than something you can use this afternoon.

    Where negatives do still run, list elements and not instructions

    Plenty of models still expose a working negative channel, and on those the phrasing rule is the one most people get wrong: the field takes a list of things to discourage, not a sentence telling the model what to avoid.

    Google's Veo prompt guide is explicit about it. Do not write "No walls" or "don't show walls" — write "wall, frame". The words "no" and "don't" are not operators. They are more tokens in a string that gets embedded and subtracted as a whole, so the instruction contributes noise while the noun does the actual steering.

    Instructive phrasing leaks on the positive side too. "No dogs" typed into a prompt box puts the token for dog into the conditioning, and the mechanism that is supposed to subtract it is imprecise enough that you routinely get a dog. Anyone who has written "no text" and received a frame full of garbled lettering has met this directly.

    So even where the channel works, keep it to bare nouns for the things you do not want in frame, and keep the "no" out of it entirely.

    Positive re-specification, which works everywhere

    The general replacement is to name the thing you want instead. It costs nothing, works identically on every model family regardless of guidance mechanism, and it forces you to answer a question the negative let you dodge: if not that, then what?

    You don't want Old negative Write this instead
    A stiff, posed look "posed, stock photo" "mid-gesture, weight on one leg, caught between beats"
    Plastic skin "plastic, cgi, airbrushed" "visible pores and fine skin texture, uneven specular highlights"
    A crowded street "no people" "an empty street at dawn, no pedestrians or traffic"
    Wrong era "no cars, no phones" "a 1920s street with horse-drawn carts and gas lamps"

    The bottom two rows show the boundary. Absence of a whole object class is the one job positive description genuinely struggles with, because "empty street" is statistically full of pedestrians. Those cases still want the absence stated — but stated as part of the scene, in the desired-state form, rather than as a standing rule. The full case for when exclusion still earns its slot covers that territory in detail.

    The rewrite is also better prompting on its own terms. "Sharp focus on the eyes, crisp fabric texture" tells the model where to spend detail. "Not blurry" tells it nothing about where.

    The three constraints that replaced the junk drawer

    The forty-term negative stack was doing a job. It was the only lever available for constraining output when the prompt was the only input. That is no longer true, and the job has been split across three mechanisms that each do part of it better.

    Constrain by example. A reference image fixes appearance more tightly than any amount of adjective wrangling. If you keep excluding "cartoon" because the output slides stylised, one photographic reference settles it permanently. Reference hygiene matters more than reference count: consistent lighting, consistent crop, consistent subject condition. Mixed reference sets produce fusion errors, where the model averages two looks into a third thing that resembles neither. Two clean references beat six mismatched ones.

    Constrain by configuration. Anything expressible as a parameter should be a parameter, because parameters are exact and adjectives are re-interpreted every run. Resolution, aspect ratio, duration, style preset, and the seed all belong here. Camera moves belong here too where a model exposes them, which is why preset-based camera control produces repeatable moves and prose does not. On Versely, the image and video generation tools take a seed, a resolution and an aspect ratio alongside the prompt — and a negative prompt field whose effect depends entirely on which model you routed to.

    Constrain by repair. The last resort used to be a negative term hoping to prevent a defect. Now it is fixing the defect where it happened. A masked inpaint on a bad hand solves a problem that "extra fingers, deformed" never reliably solved, and it does not tax the other ninety-five percent of generations that were fine. Element re-render versus masked inpainting covers which of the two repair modes fits which defect.

    Together those three cover most of what the old stack was reaching for. What is left over — the genuine "this object class must not appear" cases — is small enough to fit in three or four terms.

    A working sequence

    1. Write the prompt with no negatives at all. Fully specified: subject, light source and direction, framing, lens.
    2. Generate twice before diagnosing. One bad take is variance. The same intrusion twice is a pattern.
    3. For each observed defect, ask whether you can name what you want instead. If yes, rewrite positively. That handles most of them.
    4. If the defect is a whole object class appearing where it should not, state its absence as part of the scene description in the positive prompt.
    5. If the defect is structural — anatomy, a wrong object, garbled text — go to repair. No phrasing anywhere fixes those reliably.
    6. Only then reach for the negative field, and check whether your model family even reads it before you spend time there.

    Step six is the one worth internalising. A negative prompt that does nothing is indistinguishable from a negative prompt that is not working hard enough, and you can burn a lot of credits on the difference. If you are unsure, run the same prompt with the field empty and full, same seed, and compare. A model that reads it will show you.

    FAQ

    How do I know whether my model uses the negative prompt?

    Empirically. Fix the seed, run the prompt with the negative field empty, then run it again with an aggressive negative in place. If the two images are pixel-identical, the field is inert on that model. If they differ, it is live. This takes one minute and is more reliable than reading documentation, which often describes the API surface rather than what the weights do.

    Does the same reasoning apply to video models?

    The mechanism does — a video model built on the same flow-matching lineage has the same guidance situation. What differs is what you would want to exclude. Video negatives target behaviour over time rather than appearance: spontaneous cuts, morphing, unwanted slow motion, camera drift. Those still respond best when paired with the positive instruction they protect, so "the camera is entirely motionless" carries more of the load than any exclusion beside it.

    Is a long negative prompt actively harmful, or just useless?

    Depends on the model, and the two failure modes are different enough to matter. Where the field is inert, the cost is the maintenance and the false confidence that something is being handled. Where it is live, a long list is mainly a debugging problem: when an output comes back wrong you cannot tell which of twenty terms moved it, because you never introduced them one at a time. Add terms in response to defects you have actually observed, one per run, and you keep the ability to take them out again.

    What replaced "no watermark, no text, no logo"?

    Mostly better models and better placement. Text rendering improved enough that spurious captions are less common than they were, and where legible text is actually required, the reliable route is an overlay rather than a generated glyph. For incidental background text, the fix is optical rather than lexical: let it fall outside the plane of focus so it reads as depth rather than as a mistake.