# I built a plain-text "art director" so my AI images stop changing when I edit them

> Source: <https://dev.to/leewilliam200/i-built-a-plain-text-art-director-so-my-ai-images-stop-changing-when-i-edit-them-7o8>
> Published: 2026-09-17 09:13:37+00:00

If you make images with AI, you know the specific pain: the first generation is easy. Editing it is where everything falls apart.

I make YouTube thumbnails and playlist covers. I'd get a result I liked, ask to change one small thing — "make the jacket blue" — and get back a completely different picture. New face. New background. New lighting. The one thing I asked for, plus ten I didn't.

After the hundredth time, I realized the problem isn't the model — it's the prompt. When you say "change the jacket," the model has no idea what you want to *keep*, so it re-rolls the whole scene. The fix is to spell out, every time, what stays locked and what changes, in language the model actually follows.

That's tedious by hand, so I turned it into a plain-text bundle you paste into ChatGPT or Claude. You describe what you want; it writes the *direction* — one ready-to-paste prompt that says exactly what to preserve and what to change. No code, no API, nothing to install.

Clearest example — same street photo, one instruction ("add falling snow"):

The snow appears; the houses, the road, the parked vans stay exactly as they were. Most tools hand you a brand-new street.

It can also diagnose a render that came out wrong — what's off, why, what to change, and what to keep:

**How it works (no magic):** it's plain-text reasoning, not a model or an integration. It works out how much detail a request needs, separates what's immutable from what you're changing, and phrases the result for the renderer (ChatGPT / GPT Image by default). Because ChatGPT re-renders the whole frame instead of inpainting, the trick is to restate the locked parts explicitly.

**Honest limits:** it's tuned and tested on ChatGPT / GPT Image; the Midjourney, Gemini, Ideogram and FLUX profiles are starting points, not verified. And no prompt makes a whole-frame renderer do true local edits — it's a strong mitigation, not a guarantee.

The free version is on GitHub and takes about a minute to try. There's a $19 one-time Pro bundle with the full preservation system, the edit-state ledger, precise single-element edits and deep diagnosis — but the free one shows the whole idea.

**Free on GitHub:** [https://github.com/leewilliam200/visual-director-lite](https://github.com/leewilliam200/visual-director-lite)

Would genuinely love feedback — especially where the "keep everything else the same" logic breaks for you. What's the one thing you always want an AI editor to preserve that it never does?
