Prompting
How to write prompts that the models follow.
This is the same playbook the agent skill carries. Names like fast and default are aliases; see Models for what they run on the hosted service; model names in the research notes below may include ones only the local tool offers. Prices are in credits.
Trust labels: [vendor] official model-author doc, [measured] measured on
DeepInfra by the webtoon project (2026-09), [community], [inference].
Structure (all image models)
- Order is weight. Subject + action, then style/medium, then setting,
lighting, camera/technical. FLUX prioritises earlier words
[vendor: BFL]. A composition instruction placed after 400 characters of style text was ignored; moved to the front it took effect[measured]. - Prose, not keyword lists.
[vendor: BFL, Google, Qwen]. The bad example from BFL:woman, portrait, beautiful, blonde, studio, 8k. - Always one lighting sentence. "It has the single greatest impact on
image quality"
[vendor: BFL]. - Name the medium ("flat vector illustration", "gouache", "cel
animation"). Medium moves the image more than mood
[measured]. Naming 2-3 specific colours beats a vibe; the line description is the strongest style lever[measured]. - Be concrete. Materials, colours with a modifier, counts as words.
Enumerate, never summarise
[vendor: Qwen rewriter]. - State the use ("app icon", "landing hero") to set polish
[vendor: OpenAI]. - No quality boosters ("8k", "masterpiece", "award-winning")
[vendor: Qwen]; generic negative dumps degrade distilled models[community]. - Aspect ratio and size are parameters, never prose
[vendor: Qwen]. - Length. 30-80 words for most work; 10-30 for concepts; 80+ for complex
scenes on FLUX.2 (its encoder is a 24B VLM)
[vendor: BFL]. Schnell's encoder takes ~256 tokens: keep to 40-75 words[community]. Qwen-Image likes 400-500 word observer-style descriptions[vendor]. - Every word in a stock description ends up in every image. A prop in a
location string appeared in most renders
[measured]. Keep constant strings to what is always visible.
Per-family differences
| Family | Length | Negative prompt | Notes |
|---|---|---|---|
| FLUX-1-schnell | 40-75 words | none; phrase positively | guidance 0, 1-4 steps, no upsampling: the prompt must carry the detail [vendor] |
| FLUX-2 dev/klein/pro/max | 30-80, up to several hundred | none | JSON prompts, hex colours tied to objects, real camera/film names work [vendor]; multi-reference as "image 1 / image 2" |
| Gemini image (nano-banana 2 / pro) | conversational, purpose stated | none; "semantic negatives" | start with a strong verb; last input image sets the ratio; native route on DeepInfra takes ONE reference [measured] |
| Qwen-Image / -Max | long, descriptive | field exists; leave " " | append ", Ultra HD, 4K, cinematic composition." [vendor]; prompt_extend defaults on [vendor: DeepInfra schema] |
| Qwen-Image-Edit | imperative | field exists | <image1> role tags [vendor] |
| Seedream 5 | prose | none | optimize_prompt_mode rewrites for you; background: transparent supported |
| Wan T2I | prose | field exists | prompt_extend defaults on |
Positive substitutions (never write "no X" on FLUX, Gemini, Qwen) [vendor: BFL]
| Instead of | Write |
|---|---|
| no people | empty, deserted, solitary |
| no text / no watermark | clean surfaces, unmarked, text-free, pristine |
| no logos | unbranded, plain, logo-free surface |
| no blur | sharp focus, crisp details, tack-sharp |
| no CGI look | photorealistic, authentic |
| no clouds | clear blue sky, cloudless |
| no background | isolated on a plain solid white background |
| no hat | bare head |
Negative phrasing "can actually make models focus MORE on unwanted elements"
[vendor: BFL]. On routes with no negative field vincevangen folds --negative
into the prompt as "Avoid: …"; that helps on Gemini-family models and is
neutral-to-harmful on FLUX [inference], so prefer positive phrasing there.
Hex colours [vendor: BFL]
Tie a hex to an object: "walls in #C4725A", "gradient from #02eb3c to
#edfa3c". Never "use red somewhere". Only use hex when the brief gives it;
otherwise a modifier + colour name ("deep navy") [vendor: Qwen].
Typography [vendor: BFL, Google]
- Quote the exact string; spell unusual words letter by letter.
- Name the font class (serif, sans-serif, script, display, monospace), weight, colour, size hierarchy, placement ("upper third", "bottom right corner").
- Front-load:
A sign reading "FRESH BREAD" in a bakery windowbeats the reverse. - Lay out multi-line text line by line. Keep to 1-3 short strings.
- Generate art text-free and letter in post whenever the copy may change:
rewriting a line must never cost a render
[measured: working practice]. vincevangen's post step istext_overlay/vvgen_add_text(bundled OFL fonts, free). - 2026-10-09, one seed each, "LAUNCH" on an icon: FLUX-2-dev wrote "LAUCH"; klein-4b and pro
spelled it right
[measured]. Model-painted words are a draw, so check them. - The text-free instruction still fails sometimes; gate with OCR or by eye.
JSON prompts (FLUX.2) [vendor: BFL]
{"scene": …, "subjects": [{"description": …, "position": …, "color": …}], "style": …, "lighting": …}
works for multi-subject layouts where each subject needs a position.
The enhancer's rules (what --enhance does)
Adapted from the Qwen-Image-2.1 T2I rewriter and OpenAI's augmentation policy:
split the brief into fixed (copied verbatim) and open (invented tastefully);
add nothing unrequested (no extra characters, props, brands, slogans);
normalise an already-specific brief instead of expanding it; opening sentence
with medium noun; walk the frame; one lighting sentence; closing "The overall
composition…"; honour a word budget per model family; output JSON with
prompt, aspect_ratio, avoid (positive). Ratio defaults: 3:2 horizontal,
2:3 vertical, 1:1 for a single centred emblem, 16:9 cinematic/slide, 9:16 phone.