codenameHAZEN

The 5 skills that get a designer the image they actually wanted.

Most of us describe a picture and hope. These decide the craft first, so the engine builds the asset you had in mind rather than one that only resembles it.

The 5 Hazen skills
Think · fast hazen-brainstorm-light One question, one opinionated call.
Think · properly hazen-brainstorming Positioning, territories, critique.
Direct hazen-prompt-optimizer A decision becomes direction.
Make · stills hazen-generate-img Routes, renders, records.
Make · motion hazen-generate-video The same rules, plus motion.

01 About the project

The models got good. The briefs did not.

Image models got good enough that making a picture is no longer the hard part. What replaced it is harder to spot: the gap between what a designer means and what an engine can actually do.

In your head · the need01
a restaurant room, from inside expensive, but not cold warm, and not in the lighting sense one long table, mid-meal light pooled on the wood people have just left the frame
Complete, and almost none of it in words
What you type · the prompt02

3 decided9 left to the engine
169 characters
What comes back · the render03
Not wrong so much as made up. Lit wall to wall like a hotel lobby, with a plastic playhouse dropped in to mean family.
flux-2/flex · 2K · $0.12
And then the part nobody shows you

So you re-roll.

Each pass edits the words. None of them edits the decision.

Typical, not measured
12attempts
~45minutes gone
0decisions recorded

If you have used one of these models on anything real, you know the loop. The first render is close enough to keep going and wrong enough to fix, so you add a word. Then five more. Twenty minutes later the prompt is adjectives contradicting each other, and the frames are drifting further from your head, not closer.

Then you need a second image to sit beside the first, and you cannot make one, because nothing anywhere holds the decisions the first was built from.

Hazen fixes this by taking the decisions out of the prompt. Two thinking skills settle what the work is saying before anything gets made. A third turns that decision into every craft choice it implies — light, lens, colour, and what to leave out — so there is nothing left for the engine to guess at. The last one picks an engine that can do the job, and saves a file for every run.

That last part is what changes how the work behaves. The written direction outlives the session, so the next image in the set is built from a decision you can still read, not one you half remember.

02 The architecture

Five skills that hand work to each other.

Most AI workflows are one prompt doing three jobs at once. Splitting them lets each step be good at one thing, and honest about what it cannot do.

Hands the work on Sends the finished render back as reference Think → Direct → Make, one direction only
The Hazen system map Three tiers, one direction of travel. Think: hazen-brainstorm-light hands up to hazen-brainstorming when a question opens up. Both hand off to Direct: hazen-prompt-optimizer. Direct hands off to Make: hazen-generate-img and hazen-generate-video, and a still becomes the keyframe for a clip. The dashed path returns a finished render to the direction layer as reference. THINK DIRECT MAKE ESCALATES WHEN IT OPENS UP STILL BECOMES KEYFRAME hazen-brainstorm-light The desk-side answer hazen-brainstorming Positioning, territories, critique hazen-prompt-optimizer Decision becomes direction hazen-generate-img Routes, renders, records hazen-generate-video The same rules, plus motion

Drag the map sideways

How a job actually moves through it

Three handoffs, one direction
Step 01 · Think

I bring a problem, not a prompt.

I describe it in whatever half-formed way it is sitting in my head. A small call gets answered on the spot. A real question gets handed up to the deep one, and we argue until I have an answer I can defend.

Step 02 · Direct

The decision becomes instructions.

Only then does anything get made. One skill writes out every craft choice that decision implies, and the next picks an engine that can actually do the job. I do not write prompts any more.

Step 03 · Make & keep

The decision outlives the session.

Every run is saved with its prompt, its settings and what it really cost. That is why the second frame in a set matches the first without me rewriting anything, and why it works the same on a poster or a five-second loop.

Now go down through it, one at a time

Scroll, or pick a skill
Think
hands up when it opens up
Direct
Make
still becomes keyframe
Think · fast 01 / 05

hazen-brainstorm-light

The answer across a desk. One small question, one clear call. Fewer words, not less judgement.

The core strength

It refuses to be average. One test before it replies: if the answer would work for any brand in the category, it has not answered. So it picks one option, gives a reason that is more than taste, and says what that choice costs you.

Same question, two answers

“Fine-line illustrated bean, or the name set in heavy block letters?”

A clean modern sans. Approachable and contemporary, works well for a coffee shop.

The wordmark. Your logo’s first real job is a 60 pixel circle on a delivery app and a stamp on a paper cup. Fine lines die at both.

The reason is arithmetic, not mood
  • Three moves, roughly 100 to 150 words: the call, the reason, the trade.
  • Assumes rather than interrogates, because a clarifying question costs the round trip you came here to avoid.
  • Never hedges with “it depends”. If it depends, it says on what, then picks anyway.
  • Hands off the moment a question turns strategic, rather than improvising a heavier answer badly.
Think · properly 02 / 05

hazen-brainstorming

The long conversation, and the most valuable skill here. Working out what a brand stands for, the directions it could take, honest critique, and reading a board of references as one system.

The core strength

It refuses the question as asked. A brief rarely says what it is really arguing, so it works out what the brand is claiming and who it is claiming it against, then builds every visual decision on that. Its rule: if two options could swap places without changing what the business is, they are moods, not real directions.

“Family friendly” is a category, not a position
A
Chaos
Kids are loud and we are fine with it. Kills premium.
B
Generosity
Abundance done well. Backed.
C
Tradition
Recipes and generations. Credible but crowded.
D
Occasion
The birthday place. An event, not a habit.
Four different businesses. They price, site and hire differently.
  • Two or three developed territories, never ten, and it says which one it would back.
  • Asks one question, and makes it the one only someone experienced would think to ask.
  • Reads a whole reference board as a system rather than one image at a time.
  • Names what each territory costs you, not only what it wins.
  • Its output is never a file. It is a decision you can defend in a room.
Direct 03 / 05

hazen-prompt-optimizer

The turning point of the whole system. It turns a decision into instructions an engine can follow: light, lens, colour, camera position, and what must never appear.

The core strength

It makes the calls you cannot make from nothing. Asking someone what lighting they want pushes the work back onto the person who came to offload it. So it decides, shows its reasoning line by line, and you argue with the logic instead of the output. Directing means choosing and ruling things out, not piling up flattering words.

Every dimension, decided or invented
lens
key light
falloff
depth of field
palette
materials
subject pos.
negative space
finish
era
crop
exclusions
Leave three blank and the engine invents three of its own
  • Names the overall look first, which settles most of the craft choices at once and keeps the prompt short.
  • Lists every craft choice, so nothing is left for the engine to make up.
  • Ends with the things to leave out. Saying what must not appear cuts re-rolls more than any adjective.
  • Rewrites it in the wording the chosen engine understands, because the same words do not mean the same thing to every model.
Make · stills 04 / 05

hazen-generate-img

Choosing the engine, and running it. It sorts engines by what they can do before what they cost, rewrites the prompt into the wording that engine understands, and saves a record of every run.

The core strength

It aims to get the first attempt right, rather than to pay the lowest price. The whole catalogue spans about eleven cents, so the model was never the cost. The re-rolls were. What an engine can do is checked before anything else. Hand it a raw sentence, though, and it renders the raw sentence: a good engine cannot rescue a brief with no direction.

Requirement: legible headline type
Z-ImageIdeogram V3 Flux 2 FlexGPT Image 2 GrokSeedream 5 Pro Qwen
$0.003the whole spread$0.12
What an engine can do is filtered first. Price only chooses among the ones left.
  • Quotes the cost in credits and dollars before it spends anything.
  • Saves a file for every run: model, settings, the full prompt, the real price.
  • A job that needs readable lettering never lands on an engine that cannot do lettering, however cheap it is.
  • Every figure on this page is read out of those files rather than remembered.
Make · motion 05 / 05

hazen-generate-video

The same discipline plus motion, which fails in its own ways: aimless drift, everything animating at once, three actions in five seconds.

The core strength

It spends the one beat carefully, and it says what stays still. Five seconds holds one action, so it picks the beat that carries the meaning. Then it names everything that must not move, which is the most useful sentence in video direction. Straight out of the file:

One clip, one beat
camera drifts forward through the field
0.0s2.5s5.0s
field density holdsbloom position holdspalette holdslower-left dark holds
Cost here spans 260 times, so the discipline is also the budget
  • Prefers image to video over text to video at every price point, because the keyframe fixes the frame first.
  • Spends the whole clip on one beat instead of three half-finished ones.
  • Names what must not move, which is the clause that stops logos and labels warping.
  • Has no maximum tier on purpose. Chaining video models compounds artefacts instead of improving them.

And the three things it refuses to do

The limits, on purpose

A system that answers everything confidently is not trustworthy, it is only loud. So the last part of the architecture is the part that says I cannot, and it is the reason the rest is worth believing.

Limit 01 It will not answer past its own ceiling When a quick question turns strategic, the light skill says so and hands up. It does not improvise a heavier answer badly.
Limit 02 It will not quietly substitute If no engine can do what was asked, it says so and gives the workaround. A silent substitution is the failure you find three weeks later, in print.
Limit 03 It will not present an estimate as a fact It quotes credits and dollars before it spends, then files the true cost after. Every number on this page comes from the second one.

Five skills, three handoffs, and three things it will not guess at.

03 In practice · Project #1

Resolving a brief that argues with itself.

A restaurant that wants to be premium and family friendly at the same time. Two words that pull in opposite directions, and an engine that will happily average them.

Meja

Worked example, run end to end for this page.

The problem, as it arrives

“It should feel luxurious and premium, but it has to be family friendly too. Warm, you know?”

Premium means holding back. Family means noise. Typed straight into a generator, that sentence leaves nine craft decisions blank, and the model fills in every one of them itself.

The prompt as typed

It answered “family friendly” with a plastic playhouse. Decoration instead of a point of view.
hazen-brainstorm-light The desk-side answer

I started where anyone would, with a quick question about materials. It answered, and then it stopped me.

Me, in Claude Code

Restaurant interior, premium but family friendly. Should I go walnut or oak?

hazen-brainstorm-light

Oak. Walnut looks like a steakhouse and makes a room feel adults-only, and oak ages into character rather than looking damaged. The trade-off is that oak is softer, so the tables will mark.

But this one is bigger than a quick call. Premium and family friendly are pulling against each other, and until you decide which one is the claim, every material answer I give you is a guess. Take it to the deep one.

What it found, and would not settle
Premium
  • Restraint
  • Formal
  • Adult
Family
  • Welcome
  • Generous
  • Durable
Unresolved · the brief is asking for both ends at once
Why it stops here

The two ends want opposite rooms, and every material call downstream sits on top of that. Oak or walnut is not really a wood question.

Spotting a contradiction takes five minutes. Solving one does not. So it hands the question up rather than pick a side it cannot defend.

hazen-brainstorming Positioning, territories, critique The deep one

So I handed it up. This is the skill that will not let you keep a contradiction, and it starts by refusing the words in the brief.

Me, in Claude Code

Fine. Premium and family friendly, and I cannot drop either. How do I hold both?

hazen-brainstorming

Family friendly is a category, not a position. Which family, and what is this place claiming inside it? That question has four answers and they are four different businesses.

One question back before I take a side: what is the average spend per head? That decides whether the tables turn twice a night or once, and a room built for one sitting looks nothing like a room built for two.

Four territories, four different businesses

$0.004 each · to think against
A
Family as chaos
Kids are loud, we are fine with it, the mess is the point.
Rejected · kills premium
Backed
B
Family as generosity
The table is full and everybody is fed. Expensive in the materials rather than the manners.
Resolves the contradiction
C
Family as tradition
Recipes, generations, somebody’s grandmother’s kitchen.
Credible · but crowded
D
Family as occasion
The birthday place, the one the kids ask for.
Rejected · event, not habit

It does not argue from taste. It thinks in pictures. Four directions get made at four tenths of a cent each, so the argument happens against something you can actually look at. Then it reads them back as a set: which one keeps the premium feel, which one loses it, and which one is true but already used by everybody else.

The same meter, now settled
PremiumFamily
  • Restraint
  • Formal
  • Adult
  • Welcome
  • Generous
  • Durable
Resolved · it lands on family, and brings premium with it
The position it backed

Family as generosity

Premium stops meaning hold back and starts meaning abundance done well. The table is full, the room is alive, and the luxury is in how good the food and the room are, not in how quiet everybody has to be.

hazen-prompt-optimizer Decision becomes direction

One decision, passed down. This is where it turns into something an engine can follow.

Me, in Claude Code

hazen-prompt-optimizer

Half of that is not direction, it is noise. 8k, ultra detailed, hyperrealistic, masterpiece, award winning, trending on artstation tell the engine nothing it can act on. Warm and high end but family friendly are the only two parts doing any work, and they are the two that fight each other.

So I am reading it as premium-warm, interior, mid-service, and deciding the rest out loud: 35mm at f/2.2 at standing eye level, low pendants plus one candle on the table, the diners behind still readable in the blur, a server crossing the near foreground, and the family mid-meal rather than posed.

No quality words get added on the end. The last line is the list of things to leave out, and it is the one doing the work.

The direction it wrote

A general chat can rewrite a prompt. It cannot do this. This skill works from a fixed checklist: every craft decision is either made out loud or marked as left to the engine, and it always ends with what must not appear. A chat gives you a nicer paragraph. This gives you a written recipe you can use again on the next image in the set.

hazen-generate-img Routes, renders, records

Same brief, two starting points. One had nine craft decisions left blank. The other had a written direction to work from.

Undirected · , rendered as typed
Directed · . A room that is full and unmistakably expensive, with a child being fed in the middle of it.
The routing call

The model was never the cost. The re-roll was.

RequirementPhotoreal light

The room has to read as a room somebody stood in: warm falloff, open oak grain, matte glaze. That is something an engine can or cannot do, not a preference.

Chosenflux-2/flex · 2K

It can hold smooth, gradual light and put the sharpness exactly where you want it. The cheapest engines flatten both, at any price.

Filed$0.12 per run

Priced in credits and dollars before it spent anything, then saved to a file with the real cost after.

$0.004 × 12 re-rolls on an engine that flattens the light = $0.048 and no usable frame.
$0.12 once, on one that holds it = the frame that shipped.

The set the direction produced

Four frames, one decision
Generosity, with people in it
Directed · generosity

The same decision, at arm’s length
Directed · one serving

The room, overheard
Directed · obstructed

Shared, and reached for
Directed · the whole table

Four frames off one decision, and every one of them still carries the direction that made it.

04 In practice · Project #2

Making a key visual out of an abstract idea.

A practitioner network with nothing to photograph. What it stood for was already settled, so the whole problem was craft: say network with no circuit board, no hexagon and no glowing globe.

simpul

Worked example, run end to end for this page.

The problem, as it arrives

“We need a key visual that says we are a network. Premium, technical, not corporate.”

There is nothing to photograph, so the temptation is to describe the idea and let the model draw it. That is exactly what most people do, and it is why every technical community on the internet looks the same.

Typed straight into the generator

A network, drawn from outside. It is not a bad render. It is a diagram of the idea rather than the feeling of being in it, and it belongs to no one.
hazen-brainstorming Positioning, territories, critique The deep one

This one skipped the light skill entirely. There was no quick call to make, only a question about what the image is supposed to argue.

Me, in Claude Code

Key visual for a practitioner network. Everything I generate looks like a stock constellation. What am I doing wrong?

hazen-brainstorming

You are drawing the network from outside, like a diagram. That is a picture of the concept, and every competitor has the same one.

Put the viewer inside it. A network you are standing inside has depth, things blocking other things, and things passing close to the lens. It stops being a drawing of connection and becomes what being connected feels like. It is a photography problem now, which means it can be directed rather than described.

Its own exploration, and the reasoning it kept

four attempts · 3 min 32 s
01
Depth, but no colour
Near-grey rather than violet, and the points settle into a band. A surface, not a volume.
Next · name the hue as a hex
02
Colour lands, shape breaks
The particles gather into dandelion heads. A shape nobody asked for.
Next · forbid radial clusters
Taken
03
Inside the field
Depth without a diagram, and the lower left stays quiet enough to hold a headline.
Kept
04
One push too far
More structure, and structure brought the circuit board back in through the side door.
Cut · 03 was already right

What changed between them was never the idea. It was three or four clauses, written down each time. Attempt 03 closes with no dandelion or firework shapes, which is the fix for attempt 02 written down as a rule instead of remembered. The idea was right at attempt one. The craft took four.

hazen-prompt-optimizer Decision becomes direction

“Inside the network” is a decision, not an instruction. Turning it into one is this skill’s whole job.

Me, in Claude Code

Key visual. Inside the field of points, deep violet, room for a headline bottom left.

hazen-prompt-optimizer

Treating this as a photograph, not a drawing. 85mm at f/1.4, so the nearest points come out as soft discs and one layer in the middle stays sharp. The colour goes in as a hex code, because the word violet averages out to grey. The points thin out toward the lower left, which is the empty space your layout needs.

Then nine exclusions, including the dandelion clusters that ruined the last attempt.

The prompt that worked

Two things a general chat would not have done. It asked for the empty lower-left third before any layout existed, because it knows the image has a job to do on a page. And it put the list of things to leave out at the end, in the wording that engine actually respects, which is why the fix stuck instead of drifting back on the next run.

hazen-generate-img Routes, renders, records

Cheap to think, expensive only where it counts. The test images cost less than a cent between them.

The routing call

Test on the cheapest engine that can answer the question. Spend once the answer is right.

Probez-image · $0.004

Two looks, forty seconds apart, purely to find out whether the idea was worth money. Eight tenths of a cent for the pair.

Platesflux-2/flex · 2K

Smooth, gradual light and sharpness you can control. Nothing in the frame needs lettering, so the engines that are good at lettering were never in the running.

Whole set$1.6505

Four images, a five-second loop and every rejected attempt, listed across twelve runs.

Twelve runs, four images used, and a written reason for the eight that were not.

The plate that shipped. Note the quiet lower left, asked for in the prompt before the layout existed.
Mirrored · when the headline sits right
Sparse · for long copy
Dense · for the closing call

One direction, three variants, three files. Each is the same prompt with a few lines changed: where the quiet space falls, how dense the field is. The set matches because it came from one decision, not three tries at the same mood.

The mirrored plate took two runs. The first let the points gather into a ridge across the frame, so no arc, no ridge, no crest went into the prompt and the second held. That correction is now a line in a file, not a thing I have to remember.

hazen-generate-video The same rules, plus motion

The plate had to move for the site header. Not become a different image, just breathe.

Me, in Claude Code

Animate the hero plate for a looping header. Subtle.

hazen-generate-video

Image to video, not text to video, so the image you already approved is the starting frame and it cannot drift. One beat only: the camera moves forward through the field at a speed you almost cannot see.

Then the line that does the real work: everything else holds. Field density, the bloom position, the palette, and the empty lower-left darkness. No flicker, no new elements entering, no colour shift.

Image to video · one beat

What the frame was actually for. The empty lower left was asked for in the prompt before this layout existed, which is why the headline needs no dark panel behind it. Loops silently, one beat

Fifty-six cents, and the single most expensive line in the whole project. Video is the one place where watching the cost genuinely matters: still images span about eleven cents end to end, and clips span two hundred and sixty times that. Which is why the rule is one clip, one beat, and a written list of what must not move.

Eleven renders gave four plates worth shipping, one clip, and a record of why the other seven were not.

05 The controls

A creative partner, not an autopilot.

It is fast, it is opinionated, and it will still take a wrong idea and carry it out beautifully. These are the four places I stay the director, on purpose.

Authorship

The taste is mine, and it is written down.

Every rule in it is a preference I argued myself into and then wrote down. That is why the output is consistent, and why somebody else’s version of this system would be just as consistent about something completely different. There is no such thing as neutral art direction.

Judgement

I decide whether the idea is worth making.

It will direct a wrong idea perfectly and never mention that it is wrong. In Project #1 it rendered family as chaos exactly as asked, and a chaotic room kills the premium half of the brief. Noticing that was my job, and the system is built so that there is something solid to notice it against.

Selection

I make the final selection.

Eleven renders gave four plates worth shipping. Choosing did not get automated. It got faster, and better informed. Somebody still has to look at attempt 02 and see the dandelions, then say what to rule out next time so the fix sticks.

Governance

I set the rules the system answers to.

Hand it up rather than make it up. Say what an engine cannot do instead of quietly swapping in something else. Give a price before spending and save the real one after. Those are rules I wrote, not features I was handed, and they are the reason I trust the parts that do speak confidently.

06 Impact

What changes once the direction is written down.

The honest comparison is not against a studio. It is against the way almost everybody uses these models: type something, look, re-roll, repeat.

Compute, full key-visual set

$0.00

Four images and a five-second loop, listed across twelve runs.

Brief to a directed set

0min 06 s

From the undirected first try to the last frame of that first sitting, read off the timestamps.

Attempts to the kept frame

0/ ~12

Against the dozen re-rolls the same job usually takes with no direction.

Decision record

0files

Every prompt, setting and price, kept. The part that makes it a system.

The same job, both ways

Generic use With Hazen

On the estimates. The pink bar in each row is an honest guess at how I worked before this existed, and of how the people around me still work: one prompt box, a dozen re-rolls, nothing written down. It is not a proper study, and I would rather say so than dress it up. Every green bar is measured, and read out of the files.

The row I actually care about is the last one. Cost and speed are what people quote, but the record is why this behaves like a real system rather than a lucky night.

Closing

What I actually built here.

Three things worth taking from this, and none of them are about AI.

01

I found the real constraint.

The models were never the problem. The gap between a decision and an instruction was. That is a design-systems problem in different clothes, and I recognised it because I have spent six years solving the same one for developers.

02

I wrote the judgement down.

Not as a style guide nobody opens. As rules with reasons attached, written so that something with no taste of its own can follow them without me in the room, and push back when it should.

03

I made it accountable.

Every run leaves a record, so the work can be argued with rather than just admired. Two projects, twenty-five files, $2.63. Every number on this page was read out of them, not remembered.

A component library stores decisions so a developer who was never in the room still ships something on brand. Hazen stores decisions so a model with no taste of its own still makes work I will put my name on. Same problem, different worker.

It started because I was losing whole afternoons to re-rolling, which is a small, unglamorous, extremely real problem. It ended as infrastructure: a method, a set of rules, and a record that outlives the session it was made in.

That is the part I would bring to a team, and it has very little to do with AI.

Hazen’s real output

Never a building. A method, and people trained well enough to carry it.

Both projects here are worked examples, run end to end for this page. The brands are mine, and the briefs are realistic rather than real. The runs are not.

See other projects