docs/src/content/docs/concepts/prompting-guide.mdx
import { Card, CardGrid, Steps, LinkCard } from '@astrojs/starlight/components';
<CardGrid> <LinkCard title="Prompting Syntax" href="../prompt-syntax" description="Learn how to weight prompt terms, blend concepts, and use prompt conjunctions for more control." /><LinkCard title="Dynamic Prompting" href="../dynamic-prompting" description="Learn how to create many prompt variations from a single template." /> </CardGrid>
Prompting in InvokeAI works best when you describe the image clearly, then refine only the parts that matter. This page focuses on practical prompt-writing habits.
<CardGrid> <Card title="Subject" icon="seti:image"> Start with the main thing you want to see: a character, object, scene, or action. </Card> <Card title="Style or Medium" icon="pencil"> Add the visual language: photograph, watercolor, oil painting, 3D render, anime illustration, and so on. </Card> <Card title="Lighting and Composition" icon="setting"> Describe the camera angle, framing, lighting, environment, color palette, or mood that will shape the image. </Card> <Card title="Detail and Finish" icon="star"> Add a few high-value quality cues such as fabric texture, shallow depth of field, natural skin texture, or painterly brushwork. </Card> </CardGrid>A simple pattern that works well is:
subject, style or medium, lighting or composition, a few important details
Not every prompt needs every category. Start simple, then add detail only when the model needs more direction.
Good negative prompts usually name specific failure modes: blurry, distorted hands, low detail, extra limbs.
:::tip[Negative prompts are strong]
A negative term can suppress nearby concepts too. If you negate something broad like green or moss, you may also weaken grass, foliage, or other related ideas.
:::
Write the clearest version of the image you want before adding stylistic extras.
2. Add style and composition
Once the subject is right, add medium, lens, lighting, mood, background, or framing details.
3. Test with a fixed seed
When you are learning what a prompt change does, keep the seed stable so you can compare results directly.
4. Change one thing at a time
If you add five new terms at once, you will not know which one helped.
5. Escalate only when needed
If the result is close but one element is too weak or too strong, move to [Prompting Syntax](../prompt-syntax) for weighting. If you want lots of variations, use [Dynamic Prompting](../dynamic-prompting).
Here is the same idea refined in stages:
portrait of a woman
portrait of a woman, studio photograph, soft key light
portrait of a woman, studio photograph, soft key light, 85mm lens, shallow depth of field, natural skin texture
The same prompt can behave very differently across models.
Reach for advanced syntax when a normal comma-separated prompt is almost right, but you need more control.
.blend() when you want to mix concepts or styles deliberately..and() when you want separate prompt clauses encoded individually.Positive prompt
editorial portrait of a woman in a charcoal coat, studio photograph, soft key light, subtle rim light, 85mm lens, shallow depth of field, natural skin texture
Negative prompt
blurry, low detail, waxy skin, extra fingers
Positive prompt
ancient stone temple built into a cliffside, fantasy concept art, misty sunrise, towering scale, moss-covered stairs, cinematic atmosphere
Negative prompt
flat lighting, low contrast, muddy details
Positive prompt
sleek ceramic teapot on a matte stone surface, product photography, clean studio lighting, soft shadow, high detail, minimal background
Negative prompt
cluttered background, distortion, duplicate objects
Positive prompt
fox courier crossing a rainy city street, storybook illustration, bold shapes, glowing shop signs, reflective pavement, warm and cool color contrast
Negative prompt
photorealistic, dull colors, low detail