How to Write AI Image Prompts That Actually Look Good
I generate images for Super Prompts every week. Social posts, product mockups, blog headers, pitch deck visuals. No designer. Just me and whichever image model handles the job best that day.
Most of my early generations were garbage. Not because the tools are bad, but because I was prompting like I was talking to a person instead of a rendering engine. Once I figured out what actually controls the output, the hit rate went from maybe 1 in 15 to 1 in 3.
These are the techniques I use now. Not a prompt gallery. Not "100 prompts for everything." These are the specific practices that changed my output quality — grouped by the part of the image they affect.
Composition: What Goes Where
The biggest quality jump came from realizing that AI models respond to composition instructions the same way a photographer responds to a shot brief. If you don't specify framing, you get a centered subject with no visual hierarchy.
Controlling the camera before the subject
A [subject] photographed from [angle: low angle / bird's eye / eye level / Dutch tilt], [shot type: extreme close-up / medium shot / wide establishing shot], with [subject] positioned [rule of thirds left / center-dominant / off-center right]. Negative space on [side] for text overlay.
The "negative space for text overlay" instruction is something I add to every image that might end up in a social post or slide. Without it, you get a beautiful image you can't put text on without covering the subject.
Depth and layers
[Subject] in sharp focus in the foreground. Middle ground: [element]. Background: [element], soft bokeh. Depth of field: shallow, f/1.8 equivalent.
Naming three depth layers forces the model to create dimensional images instead of flat compositions. The f-stop reference works surprisingly well — models trained on photography data understand aperture language better than "make the background blurry."
Lighting: The Thing Most People Skip
Lighting is the single most ignored dimension in image prompts. Most people describe what they want to see but not how it's lit. That's like asking a photographer to shoot in the dark.
Natural light with intention
Lit by [time: golden hour / overcast midday / blue hour / harsh noon sun]. Key light from [direction: camera left / above / behind subject as rim light]. [Shadow quality: soft diffused shadows / hard defined shadows / minimal shadows].
Naming the light source AND its direction AND the shadow quality gives the model three independent controls. Skip any one and you lose precision. The "behind subject as rim light" trick creates that professional edge-lit look that separates stock-photo energy from editorial quality.
Studio lighting for product shots
Studio product photography. [Object] on [surface]. Three-point lighting: key light 45 degrees camera left, fill light opposite at half intensity, hair light from above-behind. [Background: seamless white / dark gradient / colored gel]. Shot on medium format digital, 100mm macro lens.
The camera and lens reference at the end changes the rendering style. "Shot on medium format" produces a different aesthetic than "shot on iPhone" — models use these cues to match the visual characteristics of real camera systems.
Style Control: Getting Consistent Results
The hardest part of image generation isn't getting one good image. It's getting a second image that looks like it belongs with the first.
Style anchoring with artist references
In the style of [reference 1] mixed with [reference 2]. [Medium: oil paint / digital illustration / film photography / 3D render]. Color palette restricted to [describe 3-5 colors]. Texture: [smooth / grainy / painterly / photorealistic].
The trick is combining two references instead of one. A single reference produces a copy. Two references produce a blend that feels original while staying controlled. "Color palette restricted to" is the instruction that makes brand consistency possible — without it, every generation picks its own palette.
Maintaining consistency across a set
[Same style block from previous prompt]. Scene [number] of [total]: [new scene description]. Maintain the same character design, color grading, and rendering style as previous scenes. Key differences in this scene: [list only what changes].
"List only what changes" is the constraint that matters. If you describe the whole scene fresh each time, the model treats it as a new brief. If you describe only the delta, it preserves more consistency. Not perfect — no model is — but significantly better than re-describing everything.
Common Mistakes That Waste Generations
These are patterns I had to unlearn.
Overloading with adjectives
The prompt "a beautiful stunning amazing breathtaking gorgeous landscape" produces worse results than "a mountain valley at dawn, fog in the lower third, sunlight hitting the eastern peaks." Adjectives are feelings. Nouns and spatial relationships are instructions. Models respond to the second category.
Forgetting to specify what you don't want
[Full prompt]. Avoid: [list exclusions — e.g., text, watermarks, extra fingers, oversaturated colors, cluttered background].
Negative prompting (or explicit exclusions in tools that don't have a negative prompt field) is not optional. It's how you prevent the model from filling ambiguity with its most common training patterns. "Avoid text" alone saves about 30% of my re-generations.
Being vague about aspect ratio
[Full prompt]. Aspect ratio: [16:9 / 1:1 / 9:16 / 4:5 / 3:2]. Output resolution: highest available.
If you don't specify aspect ratio, you're handing over one of the most important design decisions to the model's default. A portrait composition rendered at 16:9 wastes most of the frame. I specify aspect ratio in every single prompt now.
Making Image Prompts Compound
The real efficiency gain isn't writing one good prompt. It's building a library of style blocks you reuse.
I keep a "studio lighting" block, a "social post composition" block, a "brand color palette" block. When I need a new image, I assemble from these pieces instead of writing from scratch. Each block has been refined over dozens of generations.
The problem is that those blocks live in different conversations, different tools, different days. I've lost good style prompts because they were buried in a Midjourney thread from three weeks ago.
That's why I built Super Prompts. Save the prompt fragments that actually work. Tag them by style, project, or tool. Assemble them when you need a new image instead of starting from zero every time.
Free to start. Your next generation is the one where you stop recreating your best prompts from memory.