AI Image Prompt Guide - How to Write Image Prompts (Tested)
How to write image prompts that work: six-part structure, lighting and lens vocabulary, in-image text, seeds and aspect ratios, tested on one seed.
A good image prompt answers six questions: what is in the frame, where it is, what the light is doing, where the camera stands, what style it is in and what format it needs. Every field you leave empty gets filled by the model, usually with the most generic option it knows. Below I walk through my own test: one seed, five prompts that grow step by step, and the image each one produced, plus aspect ratios, in-image text and seeds. All of it was made with Z-Image Turbo, which costs $0.02 per image on Jantaris, so iterating like this is cheap.
The six-part prompt structure
Order matters. Most models weight the start of a prompt more heavily than the end, so I put the subject first.
| Part | Question | Example |
|---|---|---|
| Subject | What matters most in the frame? | a red and white lighthouse |
| Setting | Where is it, what is happening around it? | on a rocky Baltic coast, waves crashing on the rocks |
| Light and time | Where does light come from, what weather? | at blue hour, light beam visible in the sea mist |
| Camera | Height, lens, exposure? | low angle, 24mm wide lens, long exposure |
| Style | Photo, illustration, poster? | cinematic colour grading or flat screen-printed colours |
| Format | Portrait, landscape, square? | set with the aspect ratio control, not in words |
I set format with the aspect_ratio parameter (or the ratio buttons in Studio), never with words like "vertical shot". A word can be ignored. A parameter can't.
The test: one lighthouse, five prompts
Every image below uses the same seed (20261002), the same 1344x768 resolution and 9 steps. Only the prompt changes. I generated them locally with the same model that Jantaris lists as Z-Image Turbo. All prompts in this test are in English.
Step 1: subject only
a lighthouse
Two words produced a postcard: white tower, black lantern, cloudless midday sky, daisies in the foreground. I asked for none of that. This is the model's "average lighthouse", and it is what you get from any prompt that stops at the subject.
Step 2: colour and place
a red and white lighthouse on a rocky Baltic coast
The tower turned red with a white band, the flowers became lichen-covered granite, the sky went grey and a small rowboat appeared on the rocks. What stayed is more interesting: the lighthouse is still on the right third and the horizon sits at the same height. With the same seed and a similar prompt, the model keeps the broad layout.
Step 3: time of day and action
a red and white lighthouse on a rocky Baltic coast at blue hour, waves crashing on the rocks, the light beam visible in the sea mist
The biggest change in the whole series came from three words, "at blue hour". The palette went navy, the lamp switched on, a beam swings left and spray hits the rocks. The mist is mostly missing: the beam is drawn across a clear sky. That is typical. Models deliver the strongest parts of a description and quietly drop the weaker ones.
Step 4: camera and grading
a red and white lighthouse on a rocky Baltic coast at blue hour, waves crashing on the rocks, the light beam visible in the sea mist, low angle, 24mm wide lens, long exposure, cinematic colour grading
Photography vocabulary works. "24mm wide lens" fit more sea into the frame, "long exposure" turned the waves into silky streaks and "cinematic colour grading" pushed the colours toward cool teal. "Low angle" barely shows. And this time the layout did move: the lighthouse jumped to the left onto its own islet and the beam now points right. A fixed seed does not lock composition once you add a lot of new words.
Step 5: change of style
vintage 1950s travel poster of a red and white lighthouse on a rocky Baltic coast at blue hour, the light beam cutting through sea mist, flat screen-printed colours, bold simple shapes, no text
The style landed completely: flat colours, a cream border, the beam as a hard geometric wedge, a calm sea. Now look at the bottom margin. Left and right there are small illegible marks imitating a printer's caption, and a tiny circle in the middle. Real travel posters carry those captions, so the model drew them anyway. A ban inside the prompt is a weak brake, because it names the very thing you don't want.
What this means for your prompts:
- Adding a whole field changes more than adding an adjective. Time of day did more than "cinematic".
- Add one group of words per attempt and check what changed. Five edits at once give you five suspects.
- Styles with strong associations (poster, magazine cover, book jacket) bring along elements you didn't ask for, text included.
- A fixed seed holds the layout only for small edits. After a dozen new words, expect a new composition.
Aspect ratio changes the picture, not just the crop
Same prompt, same seed, three ratios:
macro product photo of a raw Baltic amber pendant with a tiny insect inclusion, lying on dark wet slate, a single warm backlight making the amber glow, shallow depth of field, high detail


These are three different images, not one image cropped three ways. In the square the inclusion looks like a tiny spider, in the vertical it is a clear beetle, in the horizontal a winged insect next to a twig, and the pendant gained a black cord. The vertical frame left a lot of blurred slate above the pendant, which is handy for a short-form video with a caption on top. So pick the ratio before you generate, and don't expect a seed to give the same result across formats.
Text in images: quotes and "exactly"
photo of a small coffee shop window at night, a hand-lettered chalkboard sign in the window reading exactly "FRESH BREW", warm interior light, rain drops on the glass
I put any text that must appear in quotes and add "reading exactly". "FRESH BREW" came out without a mistake, with a drop shadow and sign-painter lettering, and the rain drops are there. One thing went its own way: there is no chalkboard. The model painted the words on the window itself. The quoted text won priority over the object it was supposed to sit on.
My rules for in-image text:
- keep it short, ideally 1-3 words per sign,
- put it in quotes and keep the same capitalisation you expect back,
- check every letter at 100% zoom before the image goes anywhere,
- for accented characters, pick a model that handles them. Z-Image Turbo wrote Polish "ŻÓŁĆ" as "ŽÓŁČ" in my earlier test, while Nano Banana Pro and GPT Image 2.5 got it right (details in GPT Image 2.5 vs Nano Banana Pro vs FLUX.2).
Seeds: what they are for
The seed is the number the model uses to start its noise. Same prompt, three seeds:
portrait of a fisherman in a yellow raincoat on a pier, overcast light, 85mm lens, realistic skin texture


Three seeds, three different photos: a cap under the hood with the pier running into the distance, hood up with a fishing boat behind, hood down at a railing. The description is satisfied every time, and everything it doesn't pin down changes. There is also a common thread: all three show a middle-aged man with East Asian features. The prompt said nothing about age or appearance, so the model used its default. If it matters to you, say it.
Where seeds help in practice:
- One-word edits. Keep the seed of a good frame and change only the coat colour. Small edits usually keep the layout (step 2 above), big ones may not (step 4).
- Reproducibility. Same prompt, seed, model and size give the same image, which makes comparisons fair.
- Pick and refine. Generate several seeds, keep the best, iterate from there.
- Testing a single word. The same seed with and without "long exposure" shows what that phrase actually does in a given model.
On Jantaris, seed is available on Z-Image Pro, FLUX.2 [max] and FLUX.1 Kontext [pro], among others. Z-Image Turbo does not take a seed in the API or in Studio, so each result is random. The seeds above were set in my local setup.
Vocabulary: light, lenses, styles
Light
| Phrase | Effect |
|---|---|
golden hour | warm low sun, long shadows |
blue hour | deep blue sky after sunset, lights switched on |
overcast light | soft, even light without harsh shadows (portraits) |
single warm backlight | light from behind the subject, glowing edges |
hard flash | sharp shadows, party or fashion snapshot look |
neon light, wet street | coloured reflections, night city mood |
Camera and lens
| Phrase | Effect |
|---|---|
24mm wide lens | wide frame, lots of surroundings |
50mm lens | roughly natural eye perspective |
85mm lens | portrait, compressed background |
macro | extreme close-up, thin focus |
shallow depth of field | blurred background |
long exposure | smoothed water, light trails |
low angle / top-down | from below / from above |
Style
| Phrase | Use it for |
|---|---|
product photo on seamless background | e-commerce packshots |
35mm film photo, subtle grain | analogue look |
flat vector illustration, limited palette | blog illustrations |
watercolor illustration | children's books, invitations |
vintage travel poster, screen-printed | posters (expect fake captions) |
isometric 3D render | infographics, icons |
Brand names, magazine titles and living artists are a risk. In my earlier local test of Z-Image Turbo (written up on promptowy.com, in Polish), asking for an illustration "in the style of" a well-known magazine made the model draw that magazine's masthead into the image. Describe the style instead: line, palette, texture.
Common mistakes
| Mistake | What happens | Fix |
|---|---|---|
| Subject with no setting | generic postcard (step 1) | add place, time and light |
| A pile of adjectives ("beautiful, stunning, 8k, masterpiece") | almost no change | swap for specifics: lens, time, material |
| Contradictions ("night, bright sunlight") | the model picks one at random | one light source per prompt |
| A ban in the prompt ("no text") | the banned thing shows up anyway (step 5) | describe what should be there instead, or use negative_prompt where the model supports it |
| Format described in words | "vertical" gets ignored | set aspect_ratio |
| Five edits at once | you can't tell what worked | one group of words per attempt |
| Long text in the image | typos | 1-3 words, add the rest in an editor |
Only some models on Jantaris accept negative_prompt, for example Wan 2.7 Image and Qwen Image 3.0. GET /v1/models/{id} returns the full list of fields for each model.
Practise in Jantaris Studio

In Jantaris Studio you pick a model, paste the prompt, choose the ratio and see the cost before sending. Z-Image Turbo has five ratios (1:1, 4:3, 3:4, 16:9, 9:16) and returns one image per request, which makes it a good sandbox for prompt ladders like the one above. Once a prompt works, I paste it into a more expensive model and compare. Failed generations are not charged, and you top up from $10 with no subscription.
The same thing through the API, with the finished image in the response thanks to ?wait=60:
curl "https://jantaris.com/v1/generate?wait=60" \
-H "Authorization: Bearer $JANTARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "z-image",
"input": {
"prompt": "a red and white lighthouse on a rocky Baltic coast at blue hour, waves crashing on the rocks",
"aspect_ratio": "16:9"
}
}'Batch prompts from a file, saving files and error handling in Python are covered in generate images with a Python API. For the model itself, its price and limits, see Z-Image Turbo API. If you want to animate a finished image, read the image-to-video guide, and camera-move prompts are in AI video prompts.
FAQ
How long should an image prompt be?
Long enough to fill the six parts: subject, setting, light, camera, style, format. In my test the best photographic result came from the step 4 prompt, about 35 words. Z-Image Turbo accepts up to 1,000 characters, and Z-Image Pro works best with a single dense English paragraph of roughly 90-170 words.
Why does the same prompt give a different image every time?
Because each run draws a new seed. If the model has a seed field, set it and the result becomes repeatable. Changing the aspect ratio or a large part of the prompt will still change the composition.
How do I get readable text in an AI image?
Put the text in quotes, add "exactly" and keep it to 1-3 words. For accented letters use a model that handles them, such as Nano Banana Pro or GPT Image 2.5, and always check the letters zoomed in.
Does "no text" remove text from the image?
Not reliably. In my test a poster prompt ending in "no text" still got small fake captions in the margin. Describe what should be in that area, choose a style without print associations, or use negative_prompt on models that support it.
Should I write prompts in English?
My tests were all in English, and photography and style terms work best in English across models because that is how they appear most often in training data. Large models such as Nano Banana Pro also understand other languages well, but I have not measured the difference on Z-Image Turbo.
Is there a free AI image generator on Jantaris?
No. Jantaris has no free plan or starter credits. You pay from the first image (Z-Image Turbo costs $0.02 per image), the minimum top-up is $10, the balance never expires and failed generations cost nothing. Z-Image Turbo has open weights, so with a strong GPU you can also run it locally. Prices for every image model are on the pricing page.












