Лис Микита · FIFA Final Cup

España vs. Argentina — July 19, 2026 · Sly Fox Bar, East Village NYC

The making of a logo set: four generations, three image APIs, one stubborn typo, and the afternoon a fox learned to play football.

A build log · everything shown, including the failures
JULY 2026
SMTWTFS
1234
567891011
12131415161718
19202122232425
262728293031

The Final Set (v4)

Seven match-day logos generated by feeding the bar's original logo files to Google's Gemini image model as style references — so the output is the same artist, not an imitation. Scroll on for how it got here.

Fox with red-and-yellow scarf kicking a ball
ESPAÑA · The Winger — the reference kick pose, rojigualda fan scarf.
Fox as matador sweeping a red cape
ESPAÑA · The Matador — montera and cape; the ball plays the bull. Bonus: a proper "ESPAÑA".
Fox with Spain flag cape, foot on ball
ESPAÑA · The Flag Cape — arms crossed, foot on ball.
Fox with sky-blue scarf kicking a ball
ARGENTINA · The Winger — Albiceleste scarf, ball on the volley.
Fox with cane, mate gourd and sash
ARGENTINA · The Mate Break — the baseline cane pose, gourd, bombilla, sash.
Fox hoisting a golden cup with sky-blue ribbons
ARGENTINA · The Hoist — cup overhead, victory howl, confetti.
Two foxes back to back with team scarves
THE MATCH CARD — España vs Argentina, back to back over the ball.

The Source: Three Reference Logos

Everything starts from these three originals — the bar's actual logo set. The system they encode: one fox (long sly snout, feathered kozak hat, embroidered folk vest, black britches, cream leg wraps), one flat burnt-orange background, one lockup (black Cyrillic banner + thin serif), and exactly one themed swap per variant — a Santa hat, a soccer ball, a cane.

Original logo: fox with feathered hat leaning on cane
REF 1 · Baseline — feathered hat, cane, the definitive pose.
Original logo: fox in Santa hat with cane
REF 2 · Holiday — same fox, Santa hat. Proof the system takes themed swaps.
Original logo: fox kicking a soccer ball
REF 3 · Sport — the kick. Note he keeps the feathered hat even mid-play.

The Timeline — Every Generation, Failures Included

Four batches in one afternoon (July 18, 2026). The first three tried to describe the style in words to xAI's Grok image model; each prompt "envelope" got closer. The fourth stopped describing and handed the model the originals.

Gen 1 · "FIFI" Two strikes

Grok (grok-imagine-image) · text-only style envelope, first draft · ~$0.10/image
  • Strike one — the typo. The request said "FIFI" and the robot dutifully printed FIFI FINAL CUP on all seven images without asking. (Lesson logged: flag suspicious proper nouns before spending tokens.)
  • Strike two — the style morph. The envelope described "Ukrainian folk woodcut" in words, and Grok answered with a heavier, busier illustration: dense crosshatched fur, full sleeved team jerseys, a chunkier fox. Handsome — but a different artist.
Gen 1 Spain kick — dense style, FIFI typo
FIFI · ESPAÑA kick — sleeved jersey, heavy hatching: off-model.
Gen 1 Argentina mate — dense style
FIFI · Mate break — great gag, wrong pen.
Gen 1 versus card
FIFI · Match card — jerseys over vests, crosshatch everywhere.
Gen 1 matador
FIFI · Matador — full torero suit; fun, but nothing like the refs.

Also from this batch: flag cape · Argentina kick · trophy

Gen 2 · The Overcorrection Right words, wrong weight

Grok · envelope v2: "lanky fox, bare arms, minimal hatching, four flat inks" · ~$0.10/image
  • FIFA spelled right this time, team colors moved to scarves and sashes instead of jerseys — both correct calls.
  • But the envelope said "sparse embroidery, minimal hatching" and Grok swung all the way to a thin, uniform, cute pen line. The references are a woodcut badge — heavy black mass, carved strokes. v2 reads as an indie children's book.
  • Also lost: the feathered kozak hat (it's canonical — the reference fox wears it even mid-kick).
Gen 2 Spain kick — thin pen style
v2 · ESPAÑA kick — thin outlines, no hat, too cute.
Gen 2 Argentina mate
v2 · Mate break — accessories right, ink weight wrong.
Gen 2 versus card
v2 · Match card — clean, symmetrical, and not the house artist.

Rest of the batch: matador · flag cape · Argentina kick · trophy

Gen 3 · The Woodcut Envelope Best text-only attempt

Grok · envelope v3, written from a side-by-side critique of v2 vs the references · ~$0.10/image
  • The critique named six specific misses and the envelope pinned each one: heavy black ink mass, chunky carved linework with white knife-marks, the feathered hat restored, dense embroidery, toothy sly grin, fox planted on the banner.
  • Result: genuinely close. The mate-break panel is the best text-prompted image of the day.
  • Remaining drift you can't fully prompt away: some outputs came back landscape instead of portrait, "kicking" kept rendering as dribbling, and the trophy came out bowl-shaped. This is the ceiling of describing a style in words.
Gen 3 mate break — woodcut style
v3 · Mate break — the text-only high-water mark.
Gen 3 flag cape
v3 · Flag cape — weight and grin finally right.
Gen 3 versus card with mirrored tails
v3 · Match card — mirrored tails; landscape drift.
Gen 3 trophy hoist
v3 · The Hoist — the "trophy" is a soup tureen, but the howl sells it.

Rest of the batch: Spain kick · matador · Argentina kick

Gen 4 · Stop Describing, Start Showing The unlock

Reference-image APIs: OpenAI gpt-image-1 (images/edits) vs Google gemini-2.5-flash-image · originals attached
  • Both APIs accept the actual reference PNGs alongside the prompt. A head-to-head on the same subject (flag cape) settled it in one round.
  • OpenAI: kept the vibe, redesigned the character — rounder sports-mascot face, different banner, different artist. Gemini: indistinguishable from the original logo family. Winner.
  • With references attached, no style envelope is needed at all — prompts shrink to one-sentence scene descriptions ("change only the pose, the props, and the small text line").
OpenAI test — redesigned mascot
OpenAI test — nice mascot, wrong artist. Eliminated.
Gemini test — exact style match
Gemini test — same fox, same hand. Promoted straight into the final set.

Gen 4½ · The Spelling Saga ARGANTINA · ARGNTINA · ESPÃNA

Gemini re-rolls, Gemini edit passes, and finally a deterministic local patch
  • Gemini could draw the artist perfectly but could not spell ARGENTINA — three images shipped with three different misspellings, and edit passes kept anchoring on the wrong text already in the image.
  • The fix ladder: (1) re-roll with "must be spelled exactly" — fixed one, and upgraded the matador to a proper accented ESPAÑA; (2) a Gemini edit pass naming the misspelled word — fixed two more; (3) for the unkillable versus card, a Python script: locate the text band by row-darkness profile, paint it out with the sampled background orange, re-typeset the line in Didot (the closest system font to the lockup serif), width-fitted and letter-tracked.
  • Every misspelled intermediate was kept. Receipts below.
Misspelled ARGANTINA kick
"ARGANTINA" — fixed by re-roll with spelling emphasis.
Misspelled ARGANTINA trophy
"ARGANTINA" again — survived one edit pass; fell to the second.
Misspelled ARGNTINA versus card
"ARGNTINA", attempt 4 — survived three AI repairs; ended by Python and Didot.

Full evidence chain: versus №1 · №2 · №3 · №4 · trophy №1

Ship It v4 final

Seven clean logos, correctly spelled, same artist as the originals

The full set is at the top of the page. Total spend across all four generations, both head-to-head tests, every re-roll and every repair: roughly three dollars.

How It's Made — The Pipeline

Everything is reproducible from three small shell scripts and two TSV files that live next to the images. Delete any image, re-run the batch, and only that one regenerates.

PieceWhat it does
_gen_batch.sh + _prompts.tsv Text-only pipeline (Gens 1–3). Wraps each one-line subject in a hand-tuned "style envelope" prompt and sends it to xAI Grok, four jobs in parallel. The envelope went through three drafts; each is preserved in the repo's _style-envelope.md with the critique that motivated it.
_gen_ref.sh + _prompts-ref.tsv Reference-image pipeline (Gen 4). Attaches the three original logo PNGs to every request — OpenAI gpt-image-1 via /v1/images/edits, or Google gemini-2.5-flash-image via generateContent with inline image parts — plus one sentence: "same artist, same logo family; change only the pose, the props, and the sub-line."
_fix_text.sh Spelling repair, rung two: sends a finished image back to Gemini naming the misspelled word and asking for a letter-for-letter correction with every other pixel untouched.
The Didot patch Spelling repair, final rung: Python + PIL finds the bottom text line by scanning row darkness, paints the band out with background color sampled from the flat orange, and re-sets the line in Didot at a size width-fitted to the original — deterministic, typo-proof.

What the afternoon taught