
I had the story in my head before I made the pictures. You type six words, the model gives you a three-legged player, and you learn you should have written a better prompt. It's the story you read everywhere. I only wanted to illustrate it.
The model didn't play along. What it showed me was less dramatic, and more useful. So here is what I actually got, with the prompt, the seed and the time under every picture.
A prompt is an order you give a cook
Before the pictures, a mental picture. When you order "a plate of pasta", the cook decides everything else: the sauce, the plate, the portion. They fill in the blanks. An image model does the same. Whatever you don't say, it chooses for you.
The seed is where the randomness starts. With the same seed and the same prompt, the model makes exactly the same picture again. That's what lets me change one thing at a time and see its effect.
Level 0: six words
The prompt: a basketball player dunking in snow. The kind of line you type without thinking.

How this was made
- Model
- FLUX.2 [klein] 4B (Q8_0 GGUF) · Apache-2.0
- Engine
- stable-diffusion.cpp (sd-cli) on Metal, 4 steps, guidance 1.0, Euler, 1024×1024
- Machine
- MacBook Pro, Apple M1 Max, 64 GB (Metal)
- Prompt
a basketball player dunking in snow
- Seed
2026- Size
- 1024×1024
- Time
- 77 s, as recorded by the run
- Cost
- no cash cost (own hardware; electricity not metered)
- Orazaka run
- not recorded
- Note
- Made today with the engine's command line (sd-cli), not through an Orazaka Studio: there is no run id. Same seed for every picture of the ladder.
No monster. FLUX.2 [klein] 4B, an open model with a permissive licence, made a believable dunk in the snow from six words. What I hadn't specified, it decided: a navy jersey, a hill, no particular framing. Its one visible miss is a classic: the letters on the jersey don't form a word.
Levels 1 to 3: saying what you actually mean
At each level I added one family of detail to the previous one. Same model, same seed, same size. Between 77 and 82 seconds a picture.

How this was made
- Model
- FLUX.2 [klein] 4B (Q8_0 GGUF) · Apache-2.0
- Engine
- stable-diffusion.cpp (sd-cli) on Metal, 4 steps, guidance 1.0, Euler, 1024×1024
- Machine
- MacBook Pro, Apple M1 Max, 64 GB (Metal)
- Prompt
A professional male athletic basketball player in a red numbered jersey leaping gracefully toward the rim, one arm extended with the ball above the hoop, both legs visible and anatomically correct, a steel rim with a white net
- Seed
2026- Size
- 1024×1024
- Time
- 80 s, as recorded by the run
- Cost
- no cash cost (own hardware; electricity not metered)
- Orazaka run
- not recorded
- Note
- Made today with the engine's command line (sd-cli), not through an Orazaka Studio: there is no run id. Same seed for every picture of the ladder.

How this was made
- Model
- FLUX.2 [klein] 4B (Q8_0 GGUF) · Apache-2.0
- Engine
- stable-diffusion.cpp (sd-cli) on Metal, 4 steps, guidance 1.0, Euler, 1024×1024
- Machine
- MacBook Pro, Apple M1 Max, 64 GB (Metal)
- Prompt
A professional male athletic basketball player in a red numbered jersey leaping gracefully toward the rim, one arm extended with the ball above the hoop, both legs visible and anatomically correct, a steel rim with a white net, on an outdoor asphalt court dusted with fresh snow, gentle snowflakes drifting through cold winter air, breath visible in the cold
- Seed
2026- Size
- 1024×1024
- Time
- 81 s, as recorded by the run
- Cost
- no cash cost (own hardware; electricity not metered)
- Orazaka run
- not recorded
- Note
- Made today with the engine's command line (sd-cli), not through an Orazaka Studio: there is no run id. Same seed for every picture of the ladder.

How this was made
- Model
- FLUX.2 [klein] 4B (Q8_0 GGUF) · Apache-2.0
- Engine
- stable-diffusion.cpp (sd-cli) on Metal, 4 steps, guidance 1.0, Euler, 1024×1024
- Machine
- MacBook Pro, Apple M1 Max, 64 GB (Metal)
- Prompt
A professional male athletic basketball player in a red numbered jersey leaping gracefully toward the rim, one arm extended with the ball above the hoop, both legs visible and anatomically correct, a steel rim with a white net, on an outdoor asphalt court dusted with fresh snow, gentle snowflakes drifting through cold winter air, breath visible in the cold, cinematic medium shot, captured on a 35mm lens, f/2.2 shallow depth of field, natural soft overcast daylight, sharp focus
- Seed
2026- Size
- 1024×1024
- Time
- 82 s, as recorded by the run
- Cost
- no cash cost (own hardware; electricity not metered)
- Orazaka run
- not recorded
- Note
- Made today with the engine's command line (sd-cli), not through an Orazaka Studio: there is no run id. Same seed for every picture of the ladder.
Level 1 surprised me. I described the player in detail, and the snow disappeared. The model put him in a brightly lit indoor hall. I hadn't said where, and by focusing on the player I'd left the setting blank. The cook filled the blank. That's the real lesson of this post: adding detail in one place can move something somewhere else.
Level 2 brought the snow back and put the court outdoors, because I wrote it.
Level 3 changed the framing and softened the background. The content stayed put. The jersey letters are still unreadable, and the backboard grew an odd second backboard underneath. As for the light, it was already grey at level 2, since the scene was in the snow. So I can't say my words about light changed anything.
The full prompts are under each picture, in "How this was made". Read in order, they follow the usual recipe: subject, then setting, then camera.
The negative prompt, and the model that ignores it
The usual recipe has a fourth step: the negative prompt, the list of what you don't want (deformed, extra limbs, bad anatomy, low quality). To see why it doesn't work everywhere, we need to talk about guidance.
Guidance is how strongly the model obeys the text. To apply it, many models compute two versions at every step, one that follows the prompt and one that follows the negative prompt, then steer away from the second. FLUX.2 [klein] runs at a guidance of 1: it skips that second pass. So the negative prompt is never read, and I can't show that step on this model. That's also why, with a model like this one, exclusions like "no text, no logos" have to be written into the positive prompt.
Stable Diffusion 1.5, older and smaller, uses a guidance of 7 and does read the negative prompt. And there, the six-word prompt does produce the promised defects. Left to right: level 0, level 3 without a negative, level 3 with one. 512×512, seed 2026, 63 to 68 seconds each.

How this was made
- Model
- Stable Diffusion 1.5 · CreativeML OpenRAIL-M
- Engine
- stable-diffusion.cpp (sd-cli) on Metal, 20 steps, guidance 7, Euler a, 512×512
- Machine
- MacBook Pro, Apple M1 Max, 64 GB (Metal)
- Prompt
a basketball player dunking in snow
- Seed
2026- Size
- 512×512
- Time
- 65 s, as recorded by the run
- Cost
- no cash cost (own hardware; electricity not metered)
- Orazaka run
- not recorded
- Note
- Made today with the engine's command line (sd-cli), not through an Orazaka Studio: there is no run id. Same seed for every picture of the ladder.

How this was made
- Model
- Stable Diffusion 1.5 · CreativeML OpenRAIL-M
- Engine
- stable-diffusion.cpp (sd-cli) on Metal, 20 steps, guidance 7, Euler a, 512×512
- Machine
- MacBook Pro, Apple M1 Max, 64 GB (Metal)
- Prompt
A professional male athletic basketball player in a red numbered jersey leaping gracefully toward the rim, one arm extended with the ball above the hoop, both legs visible and anatomically correct, a steel rim with a white net, on an outdoor asphalt court dusted with fresh snow, gentle snowflakes drifting through cold winter air, breath visible in the cold, cinematic medium shot, captured on a 35mm lens, f/2.2 shallow depth of field, natural soft overcast daylight, sharp focus
- Seed
2026- Size
- 512×512
- Time
- 63 s, as recorded by the run
- Cost
- no cash cost (own hardware; electricity not metered)
- Orazaka run
- not recorded
- Note
- Made today with the engine's command line (sd-cli), not through an Orazaka Studio: there is no run id. Same seed for every picture of the ladder.

How this was made
- Model
- Stable Diffusion 1.5 · CreativeML OpenRAIL-M
- Engine
- stable-diffusion.cpp (sd-cli) on Metal, 20 steps, guidance 7, Euler a, 512×512
- Machine
- MacBook Pro, Apple M1 Max, 64 GB (Metal)
- Prompt
A professional male athletic basketball player in a red numbered jersey leaping gracefully toward the rim, one arm extended with the ball above the hoop, both legs visible and anatomically correct, a steel rim with a white net, on an outdoor asphalt court dusted with fresh snow, gentle snowflakes drifting through cold winter air, breath visible in the cold, cinematic medium shot, captured on a 35mm lens, f/2.2 shallow depth of field, natural soft overcast daylight, sharp focus
- Negative prompt
deformed, extra limbs, bad anatomy, glitch, jitter, low quality
- Seed
2026- Size
- 512×512
- Time
- 68 s, as recorded by the run
- Cost
- no cash cost (own hardware; electricity not metered)
- Orazaka run
- not recorded
- Note
- Made today with the engine's command line (sd-cli), not through an Orazaka Studio: there is no run id. Same seed for every picture of the ladder.
With the negative prompt there's only one hoop. It's tempting to call that proof it works. I can't. With one picture per prompt, the change could just as well be chance. Proving it would take twenty seeds and a count. I didn't do that.
A checklist to keep at hand
I use a five-point reminder when I write a prompt: subject, action, camera, light, and what to exclude. It's a habit of mine, nothing more. Here's what the pictures above really say about it:
| To specify | Example | What these pictures show |
|---|---|---|
| Subject | Who, the outfit, the posture | Level 1 fixed the jersey and the pose, and let the model pick the place. |
| Action | What moves, what touches what | "Dunking" was enough from level 0. A still picture doesn't show motion. |
| Camera | Focal length, aperture, framing | Level 3 changed the framing and blurred the background. |
| Light | Source, materials | Can't be isolated: the light was already grey at level 2. |
| Exclusions | What you don't want | Ignored by FLUX.2 [klein]. Inconclusive on SD 1.5 with one seed. |
What the model actually receives
Nobody should have to remember focal lengths to get a good picture. You can take what a person types and wrap it in a structured direction before it reaches the model. That's what we do in Orazaka, the open-source engine I'm building. The prompt under the picture below is exactly what the model received, in this order: the person's subject first, then the direction (light, lens, materials, palette), then the exclusions, written into the positive prompt because this model doesn't read a negative one.

How this was made
- Model
- FLUX.2 [klein] 4B (Q8_0 GGUF) · Apache-2.0
- Engine
- stable-diffusion.cpp on Metal, 4 steps, guidance 1.0
- Machine
- MacBook Pro, Apple M1 Max, 64 GB (Metal)
- Through
- Orazaka Studio run on dev.orazaka.com
- Studio
art-golden-hour- Prompt
A man in a crisp white djellaba pours mint tea from a silver teapot held high above a small engraved tea glass, a long thin amber stream in the air, inside a Berber tent in the Sahara, fresh mint and almonds on a weathered wooden table. Editorial lifestyle photograph at golden hour: warm low sunlight raking from the side, long soft shadows, dust motes glowing in the air. 85mm lens at f/2, shallow depth of field, natural skin and fabric texture, rich tactile materials — weathered wood, wool, brass, linen. Warm palette of amber, terracotta, saffron and sand, gentle film grain, refined composition with breathing space. No text, no lettering, no logos.
- Seed
20261011- Size
- 1024×1280
- Time
- 120 s, as recorded by the run
- Cost
- no cash cost (own hardware; electricity not metered)
- Orazaka run
- not recorded
The same prompt was used for a five-second clip, made by a hosted video model:
How this was made
- Model
- Wan 2.2 T2V A14B · Apache-2.0
- Engine
- hosted: DigitalOcean serverless inference (steps and guidance not exposed)
- Machine
- hosted by the provider (not our machine)
- Through
- orazaka video --model wan2-2-t2v-a14b, routed by Orazaka
- Prompt
Extreme close-up, slow motion: a stream of amber mint tea pours from a silver teapot held high into a small engraved glass, steam curling through a shaft of golden-hour light inside a Berber tent, dust motes floating, shallow depth of field, anamorphic lens flare, 35mm film grain, cinematic color grade.
- Seed
20261011- Size
- 832×480 · 16 fps, 5.06 s
- Time
- 134 s, as recorded by the run
- Cost
- US$0.60 (the provider's price)
- Orazaka run
25948442-7c68-4e66-94d6-39cd8b96438d- Sound
- music bed made by Orazaka (Studio video-sound, ACE-Step 1.5, MIT), -14 LUFS, AAC
What you can take away
A prompt doesn't need to be long. It needs to say what matters to you, because the model will decide everything else. When you add a detail, look at what moved elsewhere. And before you write a negative prompt, check that your model reads it.
What I didn't measure: variance (another seed could flip every conclusion), quality scored by anyone but me, and video, for lack of a plain-versus-detailed pair of clips. A hosted clip costs $0.60 and I didn't spend it on this. The times and prices of these models are in the post about costs.


