Most Midjourney prompts fail for one of two reasons: the description is too vague to give the model anything to work with, or the parameters are fighting each other without the person realizing it.
This is the reference version. Not a quick list of tips, but the actual structure, every parameter that matters, and what happens when you combine the wrong two. This covers every parameter in current active use across V7 and V8.1 — not retired flags from V1–V4 or the old --testp models, since those aren't usable with the current default.
How a prompt is actually structured
A Midjourney prompt has three possible parts, always in this order: reference images (optional), your text description, and parameters (always last).
Reference images go first if you're using one, just a pasted image URL at the very start of the prompt. This gives Midjourney visual material to draw from before it even reads your words.
The text description is the actual content: subject, setting, lighting, style, medium, and camera details, in whatever order reads naturally. Midjourney parses this as a whole block, not a strict field-by-field form, but leading with the subject and adding detail after it tends to produce more predictable results than opening with a mood word.
Parameters come last, always starting with two dashes. Nothing about content should be described in a parameter; parameters are for technical behavior only, like shape, randomness, and version.
Multi-prompts and permutations
Two advanced structures are worth knowing. A double colon (::) splits a prompt into separately weighted parts: "forest::2 fog::1" tells Midjourney the forest matters twice as much as the fog. Curly braces generate several prompt variations from one line: "a {red, blue, green} car" runs as three separate prompts, one per color, in a single submission.
Composition and format
Everything that controls the shape and repeatability of the output itself.
| Parameter | Shorthand | Range / Options | What it does |
|---|---|---|---|
| --aspect | --ar | e.g. 16:9, 1:1, 9:16, 21:9 | Sets the width-to-height shape of the image. Decide this before refining anything else — changing it later usually means redoing the composition. |
| --tile | --tile | on / off | Generates a seamless, repeatable pattern, useful for fabric or wallpaper-style textures. Avoid upscaling a tiled image or the seam repeats break. |
Model and style
Everything that controls which model runs and how it interprets your description.
| Parameter | Shorthand | Range / Options | What it does |
|---|---|---|---|
| --version | --v | 7, 8, 8.1 | Which model generates the image. V8.1 is the current default as of June 2026, replacing V7. Each version has a different default look and feature set. |
| --niji | --niji | 6, 7 | Switches to Midjourney's anime and manga-focused model instead of the standard one. Don't combine with --v; pick one. |
| --stylize | --s | 0–1000 | How much artistic interpretation Midjourney applies versus staying literal. Low values (0–100) suit product and literal work; high values (600+) push toward painterly and expressive. |
| --chaos | --c | 0–100 | How different the four grid images are from each other. Low values give you four similar takes; high values give four wildly different ones. |
| --weird | --w | 0–3000 | How unusual a single image looks, independent of chaos. Experimental — results at the same weird value can shift over time as Midjourney tunes it. |
| --raw | --raw | on / off | Reduces Midjourney's default polished “house style” for more literal, photoreal output. Was --style raw in V7; the flag changed to --raw in V8 and V8.1. |
| --quality | --q | .25 / .5 / 1 | Rendering detail level. Lower values render faster with less fine detail. |
| --personalize | --p | on, or a code | Applies your personal trained style profile (built from images you've rated) to the generation. |
| --exp | --exp | 0–100 (V8.1) | Experimental enhancement mode. Works well at low values alongside stylize; tends to overwhelm other settings above roughly 50. |
Consistency and references
Everything that keeps a subject, face, or style consistent across separate generations.
| Parameter | Shorthand | Range / Options | What it does |
|---|---|---|---|
| --sref | --sref | image URL | Style reference — matches the color, texture, and mood of a reference image without copying its actual subject. |
| --sw | --sw | 0–1000 | Style weight — how strongly the --sref image influences the result. Default is 100. |
| --sv | --sv | e.g. 7 | Style reference algorithm version, separate from the main model version. Newer values are typically faster and support more features. |
| --cref | --cref | image URL | Character reference — keeps the same face and character consistent across separate generations. |
| --cw | --cw | 0–100 | Character weight — how strongly the --cref image's face and features influence the result. |
| --oref | --oref | image URL (V7+) | Omni reference — broader than --cref, useful for keeping any consistent subject (not just a face) across a series. |
| --iw | --iw | 0–3 | Image weight — how strongly an uploaded image influences the result relative to your text description. Default is 1. |
| --seed | --seed | any number | Locks the starting randomness so you can reproduce a similar result later, or make small controlled variations on one base. |
Exclusions and control
Everything that removes unwanted elements or gives you fine control over the render.
| Parameter | Shorthand | Range / Options | What it does |
|---|---|---|---|
| --no | --no | comma-separated list | Excludes specific things from the image. Each word is read independently, so a precise list works better than a single vague term. |
| --stop | --stop | 10–100 | Ends generation early at a percentage complete, producing a softer, less detailed result on purpose. |
| --repeat | --r | 1–40 | Runs the same prompt multiple times in a single submission instead of resubmitting it manually. |
Generation speed
Everything that trades speed for cost, or vice versa, for a single job. Worth noting upfront: Turbo mode is not currently supported in V8.1, the current default model — check your model version before relying on it.
| Parameter | Shorthand | Range / Options | What it does |
|---|---|---|---|
| --fast | --fast | on for this job | Overrides your default speed setting to use Fast Mode for a single generation. |
| --relax | --relax | on for this job | Overrides your default speed setting to use Relax Mode (queued, no GPU time cost) for a single generation. |
| --turbo | --turbo | on for this job | Fastest tier, at double the GPU cost of Fast Mode. Not currently supported in V8.1 — check your model version before relying on it. |
V8.1-specific output options
Output options specific to the current V8.1 model.
| Parameter | Shorthand | Range / Options | What it does |
|---|---|---|---|
| --hd | --hd | on / off | Native high-resolution output (2048px). Costs more GPU time than standard generation. |
| --sd | --sd | on / off | Standard-definition, lower-cost output — the budget option relative to --hd. |
| --draft | --draft | on / off | Fast, lower-fidelity iteration mode for quickly testing an idea before committing to a full-quality render. |
| --video | --video | on / off | Generates a short progress video of the image forming, in addition to the static result. |
How the important ones actually interact
A few combinations matter more than the individual parameter descriptions suggest.
Stylize and chaos genuinely work well together. --chaos 50 --stylize 500 gives you four genuinely different images that all still look intentional, rather than four random ones.
Weird and seed do not combine reliably. The same seed with a --weird value attached can still produce a different result each time you run it, since weird affects more than just the starting noise pattern a seed locks in.
Avoid pairing --raw with a high --stylize value. They're pulling in opposite directions: raw asks for literal accuracy, high stylize asks for artistic interpretation. Use raw with a low stylize value instead if photorealism is the actual goal.
Don't stack --sref and --cref at full strength on the same generation. Moderate weights on both works; two strong references fighting for control tends to produce a muddier result than either alone.
If a --no list isn't working, the usual cause is vagueness. "--no clutter" gives Midjourney very little to act on. "--no text, watermark, extra fingers" gives it something concrete to actually exclude.
None of this replaces having a clear idea of what you actually want. It just means the gap between that idea and what Midjourney produces gets a lot smaller.
