Prompting15 min read

The complete Midjourney prompt guide for developers

How to write effective Midjourney prompts via API. Covers parameters, aspect ratios, style flags, negative prompts, and advanced techniques - with copy-paste code examples.

MT

Maya Torres

Creative Director · 2026-03-19

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:

ComponentWhat it doesExample
SubjectWho or what the image is abouta woman in a navy blazer
Style/mediumThe visual treatment or artistic styleeditorial photography, shot on 85mm f/1.4
Context/settingEnvironment, lighting, moodsitting at a sunlit café, natural window light
ParametersTechnical 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.

ParameterWhat it doesRange / optionsDefault
--arAspect ratioany ratio (e.g. 16:9, 3:2, 9:16, 21:9)1:1
--vModel version7, 6.1, 6, niji 67
--s / --stylizeHow strongly MJ applies its aesthetic0–1000100
--c / --chaosVariation between the 4 grid images0–1000
--noNegative prompt - exclude these elementscomma-separated terms-
--style rawReduces MJ's aesthetic. More literal output.flag (no value)off
--q / --qualityRendering quality (higher = slower, more detail)0.25, 0.5, 1, 21
--seedReproducible generations0–4294967295random
--tileSeamlessly repeating patternflag (no value)off
--iwImage weight (when using image prompts)0–31
--srefStyle reference - lock a visual stylenumeric code or image URL-
--swStyle weight - how strongly sref is applied0–1000100
--crefCharacter reference - lock a character's appearanceimage URL-
--cwCharacter weight0–100100

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.

Try it free

25 free credits. Generate your first image in under 5 minutes.

Get your API key

More in Prompting