Text Lock
Image models do not carry a label over. They redraw it, and the result is often plausible and wrong, above all with Turkish letters like ğ, ı, ş and İ. Flow Composer writes image prompts for branded products around a four layer protocol I call Text Lock. It lowers that risk and ends in a checklist. It promises nothing.
- 2026
- Workflow
- Agents
- Type
In short
- Made of
- One Claude Code skill with 7 reference files, 2 slash commands, and a web app on the same knowledge base
- In use
- The command line side, inside a Claude Code subscription. The web app works and is shelved because it needs a paid API key
- Target
- Google Flow image models
- Guarded by
- A test that fails if any of the four layers goes missing from the knowledge base
- Stack
- Next.js 16, TypeScript, the Anthropic SDK, Drizzle, PostgreSQL
Four layers
First, frame the job as carrying, not redrawing. The prompt treats the front of the pack as a locked region to be reprojected into the new perspective, and avoids every phrase that invites the model to improve a label.
Second, feed the typography separately, flat and large. The front panel is shot straight on, with no perspective and no shadow, and given as its own reference to be applied like a decal. Critical strings are spelled out character by character, Turkish letters named one by one.
Third, set up the geometry in the text's favour: the branded face within about 25 degrees of frontal, the pack at least half the frame height, no curved surface under the words, no highlight across the label, everything sharp, generated at 4K.
Fourth, work in two passes. Build the scene with a blank front panel, then apply the label. Asking for the scene and the typography in one prompt splits the model's attention.
Why it says less than it could
The project's own rules forbid promising that text will never break. No model guarantees text pixel for pixel, and the vendor's documentation lists that as a limit. So the tool's claim is smaller and true: the risk goes down, and every prompt comes with a list of what to check in the result.
The knowledge base is a Claude Code skill, and both the command line and the web app read that one folder. Updating the skill updates both.