Poster Prompts as SVG
This is the outcome of running a vibe-coded agent skill on every V2 poster.
The motivation is, people would look at the posters and say:
- "Wouldn't it be better if it used a real typeface?" - so it benefits from the painstaking design that font designers put into typefaces
- "Wouldn't it be better if it were an editable vector file?" - so a human can change the text, move elements around, etc.
I casually asked Claude Code to convert a few, just so I could see whether I preferred the real typefaces. The goal here is to cut out the artwork, recreate that type, and assemble it back together. If the nature of the poster makes it impossible (hand-drawn text, detailed background, etc.), we abort early, explaining why. Redrawing artwork as vectors was not a goal, but Claude did it anyway when the images were simple.
Claude achieved this by writing ad-hoc Python code to locate artwork and text, find a best-fit typeface, and replace the text -- when it could. This consumed a lot of tokens, and I ran out that day. When my quota reset, I asked it to write the tools it would need to do this more efficiently. So we end up with deterministic tools that measure, which the LLM uses to rebuild the poster. As we converted more posters, Claude made changes to the tools on the fly. It is fully vibe coded, so I have no idea whether the code is good or bad. As you can see, it doesn't always get things right, but I have called this a stopping point.
Claude chose a palette of 300 fonts from Google Fonts, refusing to use license-encumbered fonts. It tries to pick a font close to the one that the AI image generation model invented for the poster, and does not always succeed. It also apparently doesn't take advantage of the layout engine's ability to centre text on a line.
Results fall into these categories:
- Skill abandoned early, correctly, with an explanation
- Skill abandoned early, maybe it should have tried harder
- Conversion done, looks OK
- Conversion done, obvious flaws, but the skill thinks it succeeded
- Conversion done, skill has acknowledged flaws, and explained why (alert icon top left corner)
- Conversion done, skill has acknowledged flaws, and explained why (alert icon top left corner), but flaw description is wrong
Well, the failures are failures. I'm sure there are pro tools that would do a better job.
The "successes" are more interesting. Some of them have chosen a close-enough typeface, and positioned it well enough, that we can call it a like-for-like conversion. In those cases, the million pound question is: do I prefer the real type to the image-model drawn text?
I'm not sure I do. In most cases, I kind of like what the image model has done better - it's moulded to the shape of the poster, and the shape of the words. It could probably do a better job, with training - but I'm not the connoisseur to adjudicate on that. Maybe it's just that the SVG version doesn't use the font it ought to: in places that's obviously what's happened, it's used a sans where it should be a serif. In other places it's chosen something close-ish, and maybe the right font just doesn't exist.
I know real designers who get an uncanny-valley ick from seeing type that's almost, but not quite, a typeface they know. I also wonder whether a broader audience gets an unconscious sense of "you can always tell" AI ick from seeing text in that mode.
Anyway, scroll through and judge for yourself.
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original
Original