Skip to content
DAfield-notesimage-prompting

Show the style — don't describe it

Three rounds describing our brand to gpt-image-2 never hit the family. It only landed once I asked to use the two existing icons as reference. What I learned, short.

Agent Release started out borrowing the share icon. I wanted to give the app its own — but it still had to belong to the family alongside coach and share. So I asked Claude to have gpt-image-2 make ten candidates and show me a sheet I could point at.

Round 1 — ten candidates in every direction

From round 1 I liked »terminal-up« best. But as a set they didn't follow our brand. I asked to focus on release rather than merge, and to match the style of the other product icons. Claude wrote the prompts and ran them through gpt-image-2 — a round two and a round three. Each round got closer — right tile, right orange, right glyph.

They still didn't belong as a set. I put them next to the real share and coach icons, and I could see it straight away:

Round 3 next to the real icons — the two on the left are share and coach

The two on the left are the real ones. The three on the right are round 3. Same color, same tile — but the real ones have a glow and some speed streaks the candidates don't.

For three rounds Claude had been describing our brand to gpt-image-2 in words: hex codes, dark tile, glow, flat vector. Carefully. And it kept missing, because the exact glow and speed streaks that tie the icons together as one set are a texture you can't write your way to.

So I stopped asking for another description and asked this instead:

human promptto Claude
1 lines2026-06-13 07:07
what would happen if we gave gpt-image-2 the two share and coach icon and said make a new for a release app where we use the agentic >_ with a rocket lift up with similar detail level as the two other icons

The lesson

That was the shift — no more words about the style, but the two real icons as input. Instead of describing the family, Claude gave gpt-image-2 the family itself: Claude ran the same edit instruction from both real icons — share and coach — asking only for the glyph to be swapped. This is the command that made the winner:

pks image --model gpt-image-2 --resolution 1024 \
  --input _ref-share.png "$(cat edit-instruction.txt)" \
  --output from-share-2.png

--input puts gpt-image-2 in edit mode: the prompt becomes a change to the image you give it — not a description it has to guess from. So the new icon inherits the glow, speed streaks and neon, because they were already in the reference.

Round 4 — this time edited from the real icons

The share-based ones won (share had the richest glow). One more edit removed the ring around the glyph, and the shipped icon was ready:

The shipped icon — terminal prompt + rocket, in the family's style

What I took away

I don't write the prompts to gpt-image-2 — Claude does. What I add is taste: noticing when something doesn't belong. And the thing I learned here was the move: instead of asking for one more description, I chose to give the model the reference. When an AI-generated thing won't fit into a family that already exists, stop describing the family and give the model the family instead.

A reference image beats a description. I'll reach for the reference first next time.

Show Claude's prompts to gpt-image-2

Claude's prompts

I didn't write the prompts below — Claude did, along the way. I'm keeping them because the shift from describing to showing is clearest in them. All verbatim from design/icon-candidates/ in the Agent Release repo.

Round 1 — describe the glyph. Minimal prompt, no tile or background pinned down. The result was a black rocket on a white background.

human promptpks image --model gpt-image-2
1 lines2026-06-13
A glyph of a minimal upright rocket mid-launch, its exhaust flame a short warm amber plume beneath it. A

(The prompt ends there — that stray »A« is verbatim; it's all that got typed.)

Round 3 — describe the whole style. The careful version: hex codes, tile, glow, flat vector. Closer — but the texture (glow rings, speed streaks) is still missing, because it isn't in the words.

human promptpks image --model gpt-image-2
1 lines2026-06-13
Flat 2D app icon, perfectly square 1:1 tile filling the entire frame edge to edge, iOS rounded-square squircle shape, near-black background #0a0a0a with a soft warm orange glow in the top-left corner, a single bold centered glyph in Agentic Orange #f87f2e, minimal modern flat vector, high contrast, clean, no text, no letters, no words, no photographic scene. Glyph: a developer terminal command prompt, a bold greater-than chevron next to a bold upward arrow that stands in place of the cursor block, suggesting shipping a release from the command line.

Round 4 — show the style. This is where it turned. Claude ran the same edit instruction from both existing icons — share (--input _ref-share.png) and coach (--input _ref-coach.png) — telling gpt-image-2 to change only the glyph. The share-based one won (share had the richest glow). This is the exact text that sat in edit-instruction.txt in the command above:

human promptpks image --input _ref-share.png
1 lines2026-06-13
Keep this app icon's exact visual style: the same near-black background, the same soft warm orange glow in the top-left corner, the same solid Agentic Orange (#f87f2e) color, the same iOS rounded-square tile, the same flat-vector finish, glow, contrast and level of detail. Replace ONLY the central glyph, completely, with a new glyph: a developer terminal command prompt — a bold greater-than chevron ">" followed by a short underscore cursor — with a small rocket lifting up and out of the prompt, a short exhaust plume glowing beneath it. One bold centered glyph, perfectly centered, generous padding. No text, no letters, no words, no numbers.

Round 5 — one more thing. Same technique, one change: remove the ring around the glyph. That became the shipped icon.

human promptpks image --input from-share-2.png
1 lines2026-06-13
Keep this icon almost exactly: the same near-black background, the same solid Agentic Orange (#f87f2e) neon glyph of a developer terminal prompt — a bold greater-than chevron ">" and an underscore cursor — with a rocket lifting up and out of the prompt, the same warm ember glow and the soft diagonal speed streaks, the same flat-vector finish, contrast and level of detail. ONLY change: remove the circular ring / orbit outline that encloses the glyph completely, so there is NO surrounding circle. Leave just the terminal prompt, the rocket, the warm glow and the streaks, bold and centered on the dark tile. No text, no letters, no words.

The pattern in the last two is the same: keep everything, change only the one thing.