Tips & Tricks
The Prompt Formula Professional AI Artists Rarely Share
Every "how to write AI art prompts" guide says the same thing: describe good lighting, mention a camera angle, add some adjectives. That advice isn't wrong, exactly. It's just aimed at the wrong layer of the problem.

Here's the part almost nobody explains clearly: the model isn't reading your sentence. It's not parsing your grammar, appreciating your adjectives, or following your paragraph like a short story. Text-to-image models convert your words into mathematical vectors — numerical representations of meaning — and then generate an image by following the pull of those vectors through the model's learned space. English grammar is a human convenience layered on top of a process that, underneath, is entirely mathematical. Once you understand that, the entire way you should be writing prompts changes.
The Biggest Mistake: Writing Prompts Like Short Stories

The most common failure pattern among intermediate creators isn't a lack of descriptive vocabulary — it's the opposite. Long, paragraph-style, storytelling prompts that read beautifully as prose and perform badly as instructions.
Here's why. Models built on CLIP-style text encoders — which underpins most Stable Diffusion 1.5 and SDXL-based tools — process text in fixed chunks, typically 77 tokens per chunk. Push a prompt past that limit, and the excess either gets truncated outright or shoved into a lower-precision secondary chunk, depending on the interface. Even outside that hard technical ceiling, longer prompts spread the model's attention thinner across more concepts, meaning the back half of your carefully written paragraph often gets meaningfully less influence over the final image than the front half. This is token dilution — every additional word competes for a limited pool of attention, and elements you buried at the end of your description are the first to get watered down or dropped.
The fix isn't "write less." It's write with a completely different structure — one built around discrete, weighted concepts instead of flowing sentences.
Commas Organize. Double Colons Divide.
This is the distinction most beginner guides get wrong, and it matters more than almost anything else in this article.
A comma in a prompt is a soft separator — it makes your prompt easier for you to read, but the model doesn't treat comma-separated phrases as fully independent concepts. Ideas separated only by commas tend to bleed into each other, especially when they're semantically close (imagine "red dress" and "red sports car" in the same prompt — commas alone won't reliably stop the model from mixing the red across both).
A double colon (::) — supported specifically in Midjourney — does something structurally different. It tells the model to treat each segment as a genuinely separate concept to be considered on its own before being blended into the final image, rather than as one continuous description. Midjourney's own documentation confirms this directly: adding :: after a phrase splits your prompt into isolated concepts, and you can then attach a number immediately after the colon to control how strongly that segment influences the result relative to the others. A segment with no number defaults to a weight of 1.
Two openly documented details make this genuinely more powerful than most people realize:
Weights are relative, not absolute.
sun::1 flower::5doesn't mean "flower gets a fixed strength of 5" — it means flower is weighted five times heavier than sun, in relation to it.Negative weights are officially supported, and they work differently from the
--noparameter most people already know.still life painting:: fruit::-0.5actively suppresses "fruit" from the composition. The one hard rule: your total weights across the whole prompt have to add up to a positive number, or Midjourney rejects the prompt outright.
Example breakdown, Midjourney syntax:
a lone astronaut standing on red terrain:: shot on 35mm film, shallow depth of field:: --no dynamic, bleed
Notice the structure: the subject and its action come first as their own concept, the technical camera data comes second as a separate concept the model won't blend into the subject description itself, and the --no parameter (equivalent to a -0.5 weight) closes out unwanted artifacts. One important syntax note if you're copying examples from older guides: there should be no space before the ::, and exactly one space after it — get that wrong and Midjourney may not parse the separation correctly.
Why This Exact Trick Doesn't Transfer to Every Tool

This is the point where a lot of "advanced" prompting content quietly falls apart — it presents one platform's syntax as if it's universal. It isn't, and pretending otherwise will waste your generations.
Stable Diffusion (XL / Flux via ComfyUI or A1111): Uses a different weighting mechanism entirely — parentheses with a colon and a decimal multiplier, like (subject:1.3). A weight above 1.0 increases emphasis, below 1.0 reduces it. This is mechanically similar in spirit to Midjourney's weighting (both let you numerically bias attention toward specific tokens), but the syntax is not interchangeable — pasting Midjourney's :: structure into an SD interface does nothing, and pasting SD's parentheses into Midjourney does nothing either.
Adobe Firefly: This is the one that surprises people. Firefly has no special weighting syntax at all — no ::, no (keyword:1.5), no -- parameters. It's built to work with complete, natural-language sentences only. Instead of weighting through punctuation, Firefly uses word order as its priority signal: whatever concept appears earliest in your prompt receives the most influence, and elements placed later — or worse, left out of the opening clause entirely — risk being weakly represented or dropped altogether. Documented testing has even shown that moving a lighting description to the very start of a Firefly prompt can cause the actual subject to disappear from the frame, replaced by an empty landscape shot, simply because of where it sat in the sentence. Firefly's negative prompting is similarly simpler and less reliable than Midjourney's or SD's — it accepts a plain comma-separated "avoid" list, but Adobe's own guidance acknowledges these exclusions can still be ignored or occasionally produce the opposite of the intended effect.
The practical takeaway: "tokenization hacking" isn't one universal trick — it's three different mental models depending on the tool. Midjourney rewards structural separation and explicit weights. Stable Diffusion and Flux reward precise numeric emphasis through brackets. Firefly rewards front-loading your most important concept in plain English, because sentence position is the only lever you have.
Textural Anchor Points: A Practical Application
Once you accept that structure beats storytelling, one useful technique is building your prompt around anchor points — short, high-weight phrases placed deliberately to lock down the details that are most likely to drift or blend incorrectly (skin texture, material finish, lighting quality), rather than trusting a long descriptive sentence to hold them in place on its own.
In Stable Diffusion / Flux syntax, that might look like:
portrait of a woman in a wool coat, (skin texture, visible pores:1.3), studio lighting, (matte fabric weave:1.2)
Here, the texture-specific phrases are isolated and weighted above the baseline description — not because they're the main subject, but because texture details are exactly the kind of information that gets diluted first in a longer, unweighted prompt.
In Midjourney, the equivalent move uses multi-prompt separation rather than a decimal weight bump:
portrait of a woman in a wool coat:: visible skin texture, matte fabric weave::2 studio lighting
Same underlying logic in both cases: don't let your most fragile, most detail-dependent phrases get buried inside a longer sentence where they'll lose the fight for attention against everything else in the prompt.
A Practical Checklist for Building Structured Prompts
Identify your 3-4 core concepts before you start writing — subject, environment/style, technical camera data, and anything you specifically want excluded. Don't start with prose and try to restructure it after.
Match your syntax to your tool.
::and numeric weights for Midjourney.(keyword:weight)for Stable Diffusion or Flux. Plain sentence-order priority for Firefly.Front-load your most important concept, regardless of which tool you're using — this matters everywhere, but it's the only lever you have in Firefly specifically.
Isolate texture and material details as their own weighted segment if they keep getting lost in longer prompts — don't rely on adjectives buried mid-sentence to do that work.
Keep your negative exclusions short and specific. Whether you're using Midjourney's
--no, SD's negative prompt field, or Firefly's Avoid field, vague or overlong exclusion lists are consistently less reliable than two or three precise terms.Test one structural change at a time. If you rewrite your entire prompt at once, you won't know whether the improvement came from your new subject weighting, your reordering, or your exclusion list.