Midjourney prompts aren't magic - they follow a structure. Once you understand what the model is looking for and which parameters actually change output, you stop guessing and start getting consistent, predictable results.
This guide covers how to write prompts, which parameters to use and when, and the specifics of calling Midjourney via API - where the prompt syntax is identical but the workflow is different.
API note
When using the /imagine API endpoint, pass your prompt exactly as you would in Discord or the web app - all parameter syntax is identical. Do not include the /imagine command itself, just the prompt text and parameters.
Anatomy of a Midjourney prompt
A well-structured Midjourney prompt has four components - not all are required, but each adds control:
| Component | What it does | Example |
|---|---|---|
| Subject | Who or what the image is about | a woman in a navy blazer |
| Style/medium | The visual treatment or artistic style | editorial photography, shot on 85mm f/1.4 |
| Context/setting | Environment, lighting, mood | sitting at a sunlit café, natural window light |
| Parameters | Technical controls (aspect ratio, version, style flags) | --ar 3:2 --v 7 --s 150 |
Put together:
a woman in a navy blazer, sitting at a sunlit café, natural window light, editorial photography, shot on 85mm f/1.4 --ar 3:2 --v 7 --s 150
Parameters reference
Parameters go at the end of your prompt, after all text. They control technical aspects of the generation and are the same whether you're using Discord, the web app, or the API.
| Parameter | What it does | Range / options | Default |
|---|---|---|---|
| --ar | Aspect ratio | any ratio (e.g. 16:9, 3:2, 9:16, 21:9) | 1:1 |
| --v | Model version | 7, 6.1, 6, niji 6 | 7 |
| --s / --stylize | How strongly MJ applies its aesthetic | 0–1000 | 100 |
| --c / --chaos | Variation between the 4 grid images | 0–100 | 0 |
| --no | Negative prompt - exclude these elements | comma-separated terms | - |
| --style raw | Reduces MJ's aesthetic. More literal output. | flag (no value) | off |
| --q / --quality | Rendering quality (higher = slower, more detail) | 0.25, 0.5, 1, 2 | 1 |
| --seed | Reproducible generations | 0–4294967295 | random |
| --tile | Seamlessly repeating pattern | flag (no value) | off |
| --iw | Image weight (when using image prompts) | 0–3 | 1 |
| --sref | Style reference - lock a visual style | numeric code or image URL | - |
| --sw | Style weight - how strongly sref is applied | 0–1000 | 100 |
| --cref | Character reference - lock a character's appearance | image URL | - |
| --cw | Character weight | 0–100 | 100 |
Which version to use
v7 (default, recommended)
Midjourney v7 is the current default and the best model for most use cases. It has stronger prompt following than v6 - meaning your text descriptions have more direct influence on the output. Use v7 unless you have a specific reason not to.
v6.1
Good balance of prompt adherence and aesthetic quality. Some users prefer it for portraiture because it produces slightly softer, more stylized results than v7.
Niji 6
Specialized for anime and illustration styles. If your output is illustration-heavy, --v niji 6 produces significantly better results than trying to prompt for anime style on v7.
Understanding --stylize
--sis one of the most misunderstood parameters. It doesn't control quality - it controls how much Midjourney applies its own aesthetic interpretation on top of your prompt.
- Low (0–50): Very literal. Midjourney renders exactly what you describe with minimal artistic interpretation. Good for technical or instructional images.
- Default (100): Balanced. Works well for most creative prompts.
- High (300–700): Midjourney leans heavily on its own sense of what looks good. Great for artistic and editorial work. Your text has less direct control.
- Max (1000): Very loosely tied to your prompt. Midjourney produces beautiful but unpredictable output.
For product photography, keep stylize low (0–50) and combine with --style raw. For editorial art, go higher (300–500).
Negative prompts with --no
The --noparameter tells Midjourney what to exclude. It's not a perfect filter - it reduces the probability of those elements appearing rather than guaranteeing their absence - but it's effective for common problems.
# Common --no use cases
# Product photography - remove distractions product photo of wireless earbuds --no text, logo, watermark, shadow, people --ar 1:1 --v 7 --s 50 --style raw # Portrait - common anatomical issues portrait of a man smiling --no extra fingers, extra hands, distorted face --ar 3:4 --v 7 # Architecture - remove people for clean shots modern office lobby, wide angle --no people, furniture, clutter --ar 16:9 --v 7
Writing better prompts
Be specific about medium and style
"A photo of a woman" and "a portrait photograph of a woman in her 30s, shot on a Leica, available light, muted tones" are wildly different prompts. Midjourney responds to specificity - the more precisely you describe the visual treatment, the closer the output matches your intent.
Lead with the most important element
Midjourney gives more weight to terms earlier in the prompt. If the subject is what matters most, open with it. If the style is the defining characteristic, lead with that.
# Subject-first (subject defines the image)
a golden retriever puppy in a field of lavender, shallow depth of field, warm afternoon light --ar 16:9 --v 7
# Style-first (aesthetic defines the image)
editorial fashion photography, a woman in a red trench coat, rainy Tokyo street, neon reflections --ar 3:2 --v 7 --s 300
Use reference terms from photography, art, and film
Midjourney's training data is rich in visual media. Terms from those fields produce reliable results:
- Camera/lens:
shot on 85mm f/1.4,35mm film grain,wide angle lens,macro photography - Lighting:
golden hour,soft diffused light,studio lighting,Rembrandt lighting - Art direction:
hyperrealistic,minimalist,concept art,watercolor illustration - Post-production:
color graded,muted tones,high contrast,desaturated
Avoid vague quality words
Words like "beautiful", "amazing", "stunning", and "photorealistic" are overused to the point of being nearly meaningless to the model. Describe specifically what makes something beautiful in your context instead: sharp focus, clean background, natural skin tones, precise detail in fabric texture.
Multi-prompting with ::
The :: separator lets you assign relative weight to different parts of a prompt. This is useful when you want Midjourney to balance competing concepts rather than blend them.
# Without multi-prompting - MJ may blend the concepts
hot dog
# With multi-prompting - treat them as separate concepts, weighted equally
hot::1 dog::1
# With different weights - emphasis on the dog
hot::1 dog::3
Multi-prompting is most useful when your prompt contains two distinct concepts that you want Midjourney to hold separately. Without it, the model will interpret "hot dog" as a food item. With it, you can balance "hot" and "dog" as two independent descriptors.
Image prompts
You can include an image URL at the start of your prompt to use it as a visual reference. Midjourney will blend the style and content of the reference image with your text prompt. The --iw parameter controls how much weight the image gets relative to the text (0 = text only, 3 = image dominates).
# Image prompt - URL must come before any text
https://your-cdn.com/reference-photo.jpg a product shot of a glass bottle --iw 1.5 --ar 2:3 --v 7
Tips specific to API use
No /imagine prefix
In Discord you type /imagine then your prompt. Via API, send only the prompt string - no command prefix.
Store and version your prompts
When generating programmatically, treat prompts like code. Keep them in version control, log what prompt produced what output, and track parameter changes. Small changes to --s or --chaos can significantly affect batch output quality, so knowing what changed between runs matters.
Use --seed for repeatable testing
When iterating on prompts, fix the seed so that output differences are attributable to prompt changes rather than randomness. Once you have a prompt you're happy with, remove the seed for production use to get natural variation.
# Full API call with versioned prompt and fixed seed for testing
curl -X POST https://api.journeyapi.com/api/v1/imagine \
-H "Authorization: japi_live_your_key" \
-H "Content-Type: application/json" \
-d '{
"prompt": "minimalist product photo of wireless earbuds on white marble --no shadow, text --ar 1:1 --v 7 --s 50 --style raw --seed 12345",
"webhook_url": "https://your-app.com/webhook"
}'Use style references for brand consistency
If you're generating images at scale for a single brand or product, use sref codes to lock visual style across all generations. Trying to achieve consistency through prompt text alone is unreliable - a sref code is more stable.
Prompt templates for common use cases
E-commerce product photography
[product description] on a clean white background, studio lighting, sharp focus --no shadows, text, logo, people --ar 1:1 --v 7 --s 30 --style raw
Lifestyle / brand photography
[scene description], natural lighting, authentic moment, editorial photography --ar 3:2 --v 7 --s 200
UI illustration / icons
[subject] flat design icon, minimal, clean lines, solid color background, vector style --ar 1:1 --v 7 --s 100 --no shadows, gradients, textures
Social media content
[subject], vibrant color palette, strong composition, eye-catching --ar 9:16 --v 7 --s 300
These are starting points. The real value comes from finding the parameter combination that works for your specific subject matter and brand aesthetic - then systematizing it via the API so every generation follows the same rules.