Skip to main content
This page covers the prompt-language features that go beyond plain descriptive text. Read Prompting Basics first.
Multi-prompt and permutation syntax is documented upstream by Midjourney but is not part of the backend validation spec behind the image parameter matrix. Treat the behavior on this page as upstream-documented and verify it against your target model version before building on it.

Multi-prompts

Version-gated: V6 family only. Midjourney’s current compatibility chart marks multi-prompting as unsupported on V7 and the V8 family — :: weights on --v 7 or --v 8.x are ignored or rejected upstream. Pin --v 6.1 (or --v 6) when you use this syntax.
A double colon :: splits a prompt into parts the model considers separately before blending them. space ship gives you sci-fi spaceships; space:: ship treats “space” and “ship” as distinct ideas — the result might be a boat sailing through space.

Prompt weights

Add a number right after :: to control how strongly a part pulls the result. space::2 ship makes space twice as influential as the ship. An omitted weight defaults to 1; decimals (::0.5) are supported on the V6 family.

Negative weights

Weights can go negative to suppress a concept, with one hard rule: the sum of all weights in the prompt must stay positive or the prompt is rejected.

Permutation prompts

Curly braces with comma-separated options expand one prompt into many: a {red, green, yellow} bird produces three prompts, one per color. Multiple brace sets multiply — a {red, green} bird in the {jungle, desert} produces four — and sets can be nested. Escape a literal comma with a backslash: {red, pastel \, yellow} expands to two options, the second being pastel, yellow. Permutations also work on parameters: --v {8, 8.2} fans out across versions.
Permutation expansion happens when the prompt is submitted — upstream, the bot confirms the count and runs each expansion as a separate job. Through the API, the safe pattern is to expand client-side and submit one task per combination: you control the exact task count, the per-task cost, and each task’s lifecycle independently. See Task lifecycle.

Negative prompting with --no

--no excludes elements without negation words leaking into the description. Append it at the end with a comma-separated list:
Two subtleties from upstream behavior:
  • --no is equivalent to a -0.5 weight on that element in a multi-prompt. It softens rather than surgically removes; for hard control, describe what you do want.
  • Every word is read independently. --no modern clothing is parsed as “no modern” and “no clothing” — which can misfire moderation and rarely does what you meant. Put the clothing you want in the prompt text instead.
Support: --no works on v6 / v6.1 / v7 / v8 / v8.1 / v8.2 but is rejected on niji 6 — see the parameter matrix.

Text inside images

To render words in the image itself, wrap them in double quotation marks — single quotes and apostrophes do not work. Short Latin-alphabet phrases render most reliably, and naming the container helps:

A note on image references

Reference parameters (--sref, --oref, --cref, --iw) are prompt-language features too, but their version support is narrow and changes fast — --cref is rejected across the entire v8 family, and --oref exists only on v8.0. Rather than duplicate a moving target here, use the parameter matrix as the source of truth for which reference your target version accepts.