Why I Keep One Prompt Library Across Every AI Model
A few months ago I caught myself writing the same shot four times in one afternoon. Same idea — a slow push-in on a lone figure at a rain-soaked gas station, neon reflections, 80s thriller mood. I wrote it once for Midjourney. Then again for Flux. Then again for Kling when I wanted it to move. Then a fourth time for Sora because the first three didn't talk to each other.
Four prompts. One idea. Three of those rewrites added nothing except the chance to forget a detail I'd nailed the first time.
That's the trap. Every model speaks a slightly different dialect, so the natural instinct is to keep a separate prompt for each one. Midjourney wants dense comma-stacked tags and `--ar`. Flux wants flowing natural-language description. Sora and Kling want a beat-by-beat shot with camera and timing. So you end up with four scattered prompts that drift apart over time, and no single place that holds what you were actually trying to make.
I do the opposite now. I keep one idea as the source of truth, and I treat the per-model syntax as a translation step, not a rewrite.
The mistake is treating syntax as the idea
Here's the thing I missed for too long. The idea and the syntax are two different objects.
The idea is the thing in your head: the gas station, the rain, the loneliness, the camera moving in. That doesn't change whether you render it in Midjourney or Sora. It's the same creative intent every time.
The syntax is just how a specific model wants to be told. Tags versus prose. Aspect ratio flags versus duration in seconds. Camera move written as `--motion` versus written as a sentence.
When you keep a separate prompt per tool, you're storing four copies of the syntax and zero copies of the idea. So when the idea improves — when you realize the figure should be holding a phone, lit from below — you have to remember to patch all four. You won't. One of them stays stale, and a month later you can't remember which version was the good one.
Store the idea once. Translate on the way out.
What "one source of truth" actually looks like
My source-of-truth entry isn't a Midjourney prompt or a Sora prompt. It's the idea, written plainly, with the parts that matter called out.
Lone figure at a rain-soaked gas station at night. 80s neon thriller. Wet asphalt with colored reflections — magenta and cyan. The figure is small in the frame, isolated. Camera slowly pushes in. Mood: tense, lonely, cinematic. Shot on anamorphic, slight grain.
That's it. No model-specific anything. No `--ar`, no duration, no tag soup. It reads like I'm describing the shot to a person.
This is the thing I save. Everything else is derived from it.
When I want a still in Midjourney, I translate it into Midjourney's dialect:
lone figure at a rain-soaked gas station at night, 80s neon thriller, wet asphalt reflecting magenta and cyan, figure small and isolated in frame, anamorphic, cinematic grain, moody lighting --ar 21:9 --style raw
Same idea. Now it's comma-stacked, front-loaded with the subject, ending in the flags Midjourney actually reads. I dropped "camera slowly pushes in" because a still can't move, so that detail just waits for the video models.
When I want the same frame out of Flux, which prefers natural prose over tags, the translation is different again:
A photographic still of a lone figure standing at a rain-soaked gas station at night, shot in the style of an 80s neon thriller. The wet asphalt reflects magenta and cyan light. The figure is small and isolated within the wide frame. Anamorphic lens, subtle film grain, tense and cinematic atmosphere.
Notice what didn't change. The figure is still small and isolated. The reflections are still magenta and cyan. The mood is still tense. The load-bearing details survived both translations, because they live in the source, not in either prompt.
That's the whole point. The idea is stable. Only the grammar moves.
Where this pays off: the move from still to motion
Stills are the easy case. The real tax shows up when you go from image models to video models, because now you're adding time, camera, and motion — and those are exactly the parts people rewrite from scratch.
Take the same gas station idea into Kling. Video models want a shot, not a tag pile:
A lone figure stands at a rain-soaked gas station at night, 80s neon thriller mood. Magenta and cyan reflections shimmer on the wet asphalt. The camera slowly pushes in toward the figure over the full shot, ending closer and tighter. The figure stays mostly still; only the rain moves. Anamorphic, cinematic, subtle grain.
Now the camera push that I dropped for Midjourney comes back, because video can actually do it. I also had to add what doesn't move — "the figure stays mostly still; only the rain moves" — because video models will invent motion if you don't tell them what's locked. That instruction is real work. It took me a few bad generations to learn to add it.
Here's why one library matters. That hard-won instruction — "tell the video model what holds still" — isn't a Kling fact. It's a lesson about a whole class of models. So I don't bury it inside one Kling prompt where I'll lose it. I keep it as a note attached to the idea, and it rides along every time I send this shot to any video model, Kling or Sora or whatever ships next month.
Compare that to the scattered approach, where that lesson lives in exactly one prompt, in one tool, and dies the next time I start fresh somewhere else.
The part I can't predict: which model I'll use next
Eighteen months ago half the tools I use now didn't exist. Sora wasn't open. Flux wasn't out. Kling wasn't on my radar. The model I'll be reaching for next quarter might not be released yet.
If my prompts are written in one model's dialect, every new tool means re-deriving my entire back catalog into the new syntax. If my prompts are written as plain ideas, a new model is just a new translation target. I point the same source at it and adapt the grammar. The creative work — the part that took taste and iteration — is already banked.
This is the quiet reason model-agnostic beats model-specific. Not because translating is fun. Because the tools churn, and the only thing that survives the churn is the idea.
How I actually run this day to day
I keep the source-of-truth ideas in one library — model-agnostic, written plainly, with the load-bearing details and the hard-won notes attached. When I need a render, I pull the idea and translate it for whatever I'm using that day. That last step is the one I lean on a tool for: I built Super Prompts partly so I could keep one prompt and ask it to "cook it in your model" — take the source idea and rewrite it into Midjourney's tags or Flux's prose or Kling's shot grammar, without me hand-porting the same description for the fifth time.
But the tool is downstream of the habit. The habit is what matters: write the idea once, keep it in one place, and treat every model's syntax as a costume the idea puts on, not the idea itself.
If you want to feel the difference today, do this. Find one prompt you've rewritten for two different tools. Strip both back to the idea underneath — the part that was identical in both. Save that. The next time a third tool shows up, you'll translate in two minutes instead of starting from a blank box trying to remember what you were even going for.
I used to have four prompts and no idea where the good one lived. Now I have one idea and four translations of it. The second way is the only one that survived me switching tools.
Keep your best ideas in one place — Super Prompts is free to start, and it'll translate them into whatever model you're using this week.