How to write AI image prompts that work first time
A good image prompt names six things: the subject, the framing, the medium, the light, the palette, and what to leave out. Specify all six and the model has almost nothing left to improvise — which is why the image lands first time instead of on the fifth attempt. Most bad AI images are bad briefs. “A picture of a coffee shop” does not say what is in the frame, where the camera is, what kind of picture it is, or what it must not contain, so the model decides all of that on your behalf.
The fix is not a longer prompt. It is a prompt with the six things that actually determine the output, and nothing else competing with them.
The six components
Not a template to fill in mechanically — a checklist to run against a prompt before you spend a credit on it. Missing components are where the model gets to improvise.
Subject
What is in the frame, concretely
a single ceramic pour-over cone
Framing
Camera position and crop
top-down, centred, generous negative space
Medium
What kind of picture this is
flat vector illustration, thick uniform strokes
Light
Direction and quality
soft studio key from the left, gentle shadow
Palette
Named colours, counted
two colours only: warm cream and near-black ink
Exclusions
The failures you keep hitting
no text, no letters, no watermark, no gradients
all six, assembled
“A single ceramic pour-over cone, top-down and centred with generous negative space, flat vector illustration with thick uniform strokes, soft key light from the left casting a gentle shadow, two colours only — warm cream and near-black ink. No text, no letters, no watermark, no gradients.”
Order matters less than completeness, but it is not nothing. OpenAI’s own prompting guide recommends keeping a consistent order — scene, then subject, then details, then constraints — so the model sees the same shape every time. Pick an order and stick to it; the six above are listed subject-first because that is the part people most often forget to make concrete.
Twelve prompts you can copy
Written for jobs people actually have rather than as showpieces. Each one runs the six-component checklist, so the fastest way to use them is to swap the subject and keep the rest of the scaffolding intact.
Web and marketing
generate_image · 16:9A single paper boat on still dark water, shot from slightly above, wide crop with the boat in the lower left third and open water filling the rest. Soft overcast light, no visible sun. Three colours only — deep slate blue, bone white, one warm amber accent. No text, no letters, no watermark.See the full workflow →
generate_image · 16:9An abstract geometric field of overlapping translucent rectangles, flat vector, evenly lit with no highlights, generous empty space across the centre-left for type to be overlaid later. Muted palette: warm cream ground, two tones of ink. No text, no letters, no logos, no gradients.See the full workflow →
generate_image · 16:9A cross-section diagram of a layered sandwich of coloured paper sheets, side-on, isometric, thick uniform outlines, flat fills with no shading. Cream background. Four colours maximum. Editorial illustration style. No text, no labels, no arrows.See the full workflow →
generate_image · 1:1A small hand-drawn clock with an oversized minute hand, centred with wide margins, flat vector, thick uniform strokes, two colours only — near-black ink on warm cream. Simple enough to read at 64 pixels. No text, no numerals, no shadow.
Product and commerce
generate_image → remove_backgroundOne matte black water bottle, upright and centred, filling most of the frame, plain pure white seamless background, even studio light from both sides, no props, no surface reflection, sharp focus edge to edge. No text, no labels, no watermark.See the full workflow →
generate_image · 4:3A ceramic mug on a pale oak table beside a folded linen napkin, three-quarter view from seated eye level, shallow depth of field, warm late-afternoon window light from the left, muted natural palette. Nothing else in frame. No text, no branding, no people.See the full workflow →
text_to_svgA simple rounded-square app icon showing a stylised paper aeroplane at a 45-degree angle, flat vector, one solid background colour and one foreground colour, thick geometric shapes, no fine detail, legible at 32 pixels. No text, no gradient, no drop shadow.See the full workflow →
text_to_svgA single outline icon of a folded map, 2-pixel uniform stroke weight, rounded caps and joins, no fill, drawn on a 24 by 24 grid with 2 units of padding, monochrome. Consistent with a geometric line-icon family. No text, no shading.See the full workflow →
Social and people
generate_image · 1:1A single ripe persimmon on a plain background, dead-centre, top-down, hard directional light casting one clean diagonal shadow, saturated orange against a flat deep green ground, no texture. Bold and simple enough to read in a thumbnail. No text, no watermark.See the full workflow →
generate_image · 9:16A staircase of stacked coloured blocks receding upward, tall vertical composition with the stack in the lower two thirds and clear empty space at the top for a caption, flat illustration, soft even light, four-colour palette. No text, no logos.See the full workflow →
generate_transparent_imageA friendly abstract character made of two overlapping rounded shapes with simple dot eyes, front-facing, centred, flat vector, thick outline, two colours plus white. Transparent background, no ground shadow. No text, no facial detail beyond the eyes.
generate_image · 1:1A seamless tileable pattern of small hand-drawn crosses and dots scattered at irregular intervals, flat two-colour, very low contrast, edges designed to tile without a visible seam. Subtle enough to sit behind body text. No text, no border, no vignette.
Notice what none of them say
No “highly detailed”, no “8k”, no “masterpiece”, no “trending on ArtStation”. Those tokens were folklore for one generation of models and are mostly inert now — they take up room in the prompt without narrowing anything down. Every word should remove possibilities. If it does not, cut it.
Commas or sentences?
You will find confident advice in both directions, and the reason is that both were true at different times. Older diffusion models were conditioned on caption-style text and responded best to comma-separated tags. Current text-to-image models handle ordinary prose well and use the relationships between clauses — “behind”, “lit from”, “instead of” — that a tag list throws away.
Tag style
paper boat, dark water, top-down, muted blue, minimal
Compact, easy to template. Cannot express where anything sits in relation to anything else.
Prose style
a paper boat in the lower left of still dark water, seen from above
Carries composition and relationships. What current models are actually good at reading.
The practical answer is a hybrid, which is what every example above uses: prose for the things that have a spatial relationship, then a short comma-separated tail for the flat constraints — palette, medium, exclusions. Write the picture as a sentence; list the rules.
One reference image beats a paragraph of adjectives
This is the single highest-leverage technique on this page, and most people discover it after producing forty inconsistent images. “Warm, minimal, editorial” means something different on every generation. An actual image means exactly one thing.
So the working method is: iterate on one image until you like it, then pass its URL in referenceImages for everything else. Style becomes something you carry rather than something you re-describe.
Describing the style
“warm, minimal, editorial, modern, clean”
Five adjectives. Twenty possible outcomes.
Carrying the style
referenceImages: ["…/approved-hero.png"]
One image. One outcome, repeatedly.
Parameters that quietly do nothing
Four things people reach for expecting them to steer the image. Three of them will not, and knowing which is which saves a genuinely irritating afternoon.
styleRecorded, not sent
The style field is stored on the request and echoed back in result.style, but it is never forwarded to the model. Setting style: "watercolour" changes nothing about the image. Style direction belongs in the prompt text, always.
negativePromptDoes not exist
There is no separate negative prompt parameter. Write exclusions into the prompt itself — "no text, no letters, no watermark" — which is partially effective and the only lever available.
seedReturned, not accepted
result.seed tells you which seed produced an image, which is useful in a log. There is no seed input, so you cannot replay it. Use a reference image when you need a result to carry forward.
aspectRatioA hint, not a contract
Defaults to 1:1. Common values are 1:1, 16:9, 9:16, 4:3, 3:4 and 21:9. The model treats it as strong guidance rather than a guarantee, so read the returned dimensions before writing into a fixed layout.
The pattern underneath all four: on this API the prompt and the reference images are the only real controls. Everything else is metadata, routing or a hint. Put your effort where the leverage is.
Five failures, and what to write instead
The image has garbled text in it
why
You asked for a sign, a label, a poster — or you did not forbid text at all.
write instead
Add "no text, no letters, no words, no watermark" to every prompt. Overlay real type in HTML afterwards.
Everything comes out looking like a stock photo
why
The prompt named a topic, not a picture. "Teamwork" resolves to the average of every teamwork image ever captioned.
write instead
Describe an object and a composition, not a concept. "Two hands passing a paper crane over a desk" beats "collaboration".
The subject is tiny in the middle of the frame
why
No framing instruction, so the model defaulted to a safe centred composition.
write instead
State the crop and the camera: "close crop, subject filling the frame, shot from slightly above".
Colours change on every generation
why
Adjectives instead of colours, and no reference image.
write instead
Name the palette and count it: "three colours only — deep teal, bone white, burnt orange". Then add a reference.
The cutout has ragged edges
why
The prompt described a scene, so the matting model had no obvious subject to isolate.
write instead
For anything you intend to cut out: "one subject, centred, plain white background, isolated".
Iterate cheap, finish expensive
Prompt length does not affect cost — the model does. So the sensible loop is to do all your wording experiments on the fast tier and only spend premium credits on the version you already know you want.
Explore
8 credits a shot
Four or five fast generations to find the composition and palette.
Lock
free
Pick the winner. It becomes your reference image for everything downstream.
Finish
30 credits a shot
Re-run the winning prompt on a premium model, once.
Prompting questions
How do you make a good AI image prompt?
Name six things: the subject, the framing, the medium, the light, the palette and what to exclude. A prompt that specifies all six leaves the model very little to improvise, which is why it lands first time. A prompt that names only a topic — "teamwork", "innovation" — leaves it everything, and you spend four more generations discovering you disagreed.
What are some good AI image prompts?
The good ones describe a picture, not a concept. "Two hands passing a paper crane over a pale desk, top-down, soft window light, three colours only" is a good prompt. "Collaboration" is not. There are twelve worked examples on this page covering heroes, cutouts, icons, social posts and Open Graph cards, each written for a specific job.
How long should an image prompt be?
Long enough to specify subject, framing, medium, lighting and palette — usually one or two dense sentences. Beyond that you get diminishing returns and, past a point, dilution: a prompt with thirty competing details gives the model permission to ignore most of them.
Do negative prompts work?
It depends what you mean. Some Stable Diffusion interfaces have a separate negative prompt field with its own conditioning. Hosted APIs, this one included, generally do not — there is no negativePrompt parameter, so exclusions go in the prompt text itself. Written that way they are partially effective, and still worth including: "no text, no letters, no watermark" is the highest-value exclusion you can write, because baked-in text is the failure that most often forces a regeneration.
Why do my images drift in style across a batch?
Because words are a lossy description of a look. Two prompts with the same adjectives can land in very different places. Pass an approved image in referenceImages and the model has the thing itself rather than a description of it — this fixes more drift than any prompt rewriting.
Can I set a seed to get the same image again?
Not on this API. The seed is recorded and returned as result.seed so you can see what produced a given image, but there is no seed input to send back, so a generation is not exactly reproducible from the seed alone. Reference images are the practical substitute: they carry a look forward far more reliably than a seed carries a composition.
Should I ask for a specific artist or brand style?
Naming a living artist to imitate their style is a bad idea both ethically and practically — it produces derivative work and may breach the terms you are operating under. Describe the qualities instead: the medium, the palette, the stroke weight, the era. You get more control and a result that is yours.
Is a longer prompt worth more credits?
No — cost depends on the model, not the prompt length. That means iterating on wording is cheap on a fast model, which is exactly where you should be doing it before you re-run the winner on something expensive.