Build your prompt
For Midjourney, DALL·E, Stable Diffusion, Firefly and anything else that draws.
Fill in the first field and your prompt appears here.
What makes a prompt work
Most weak prompts fail for the same reason: they name a subject and stop. The model is then left to invent the framing, the light, the palette and the mood, and it will pick the most average version of each. A prompt that specifies those things is not longer for the sake of it — it is simply answering the questions the model would otherwise answer for you.
That is all this tool does. Each field is one of those questions, in the order the good prompt guides put them: subject first, then how it is shot, then how it is lit, then how it should feel. Fill in as many or as few as you like — anything left as Not specified is dropped from the output rather than padded with filler.
JSON or plain text
Plain text is the safe default. Every image, video and chat model accepts a sentence, and that is what the plain text view gives you — the fields joined in a sensible order, with the aspect ratio appended as a flag and anything unwanted split into its own line.
JSON is worth using when the labels matter. Newer image and video models parse structured input well, and a labelled object is far easier to edit later, diff against a previous attempt, or feed through an API. The two views hold exactly the same information, so switching between them costs nothing.
The four prompt types
- Image — subject, style, shot and framing, lighting, mood, colour, detail and aspect ratio, plus a negative prompt for the things you want kept out. Built for Midjourney, DALL·E, Stable Diffusion and Firefly.
- Video — everything from the image tab plus camera movement, pacing, clip length and audio, which are the fields text-to-video models actually read. Built for Sora, Veo, Runway, Kling and Pika.
- Text — role, task, context, audience, tone, output format and length. This is the shape that reliably gets a usable answer out of ChatGPT, Claude or Gemini instead of a wall of hedging.
- Code — the job, the language, the stack, the code style and your constraints, with optional extras like tests and edge cases. Vague coding prompts waste the most time, so this tab is deliberately blunt.
Getting more out of it
- Be concrete in the first box. A lone lighthouse on a basalt cliff beats a nice landscape every time.
- Change one field at a time between attempts. If you change four, you will not know which one helped.
- Quality words like 8K and highly detailed help far less than people think. Specificity in the subject helps more.
- Use Surprise me when you are stuck — it fills the option fields at random and often suggests a combination you would not have reached for.
- Keep the negative prompt short. Long exclusion lists tend to pull the image in odd directions.
Common questions
Which AI tools do these prompts work with?
The image and video prompts are written for Midjourney, DALL·E, Stable Diffusion, Firefly, Sora, Veo, Runway, Kling and Pika. The text prompts suit ChatGPT, Claude, Gemini and Copilot. The code prompts suit any coding assistant. Copy as plain text where the model expects a sentence, or as JSON where it accepts structured input.
Should I use the JSON output or the plain text output?
Plain text is the safe default and works everywhere. JSON is useful when a model or an API accepts structured fields, because each part of the prompt stays labelled and is easier to edit or reuse programmatically. Both buttons produce the same content.
Does this use AI to write the prompt?
No. It assembles your choices into a proven prompt structure using templates that run in your browser. That means it is instant, free, works offline once the page has loaded, and has no usage limit.
Is anything I type sent anywhere?
No. Every prompt is built in your browser and nothing is uploaded. The recent list is held in memory only and disappears when you close or reload the page.
What is a negative prompt?
It is the list of things you do not want to appear, such as blurry, watermark or extra fingers. Most image models accept it as a separate field. Put those terms in the things to leave out box and they are kept separate in both outputs.
Why does my image still not look right?
Prompts are a starting point, not a guarantee. Change one thing at a time, usually the style or the lighting, and regenerate. Being specific about the subject matters more than stacking quality words on the end.