This is the most expensive field lesson we learned building EverFeed, and the one that most contradicts the instincts of anyone coming from writing prompts for text models.
We had a short video prompt, roughly two hundred characters, that worked well. We did what any careful person would do: we started adding. Brand rules. Framing instructions. Prohibitions. Disclaimers. Within a few weeks the prompt was three thousand characters long, and far more complete.
And the videos got worse. Not slightly worse — visibly worse, in a way you could see side by side.
What happened
Two different things, worth separating because the fixes are different.
Dilution
A video diffusion model does not read a prompt as a checklist of requirements. It conditions the generation on the aggregate meaning of the whole text. Every word you add divides attention with the ones already there.
In a two-hundred-character prompt, “bread coming out of the oven, steam, morning light” is practically everything the model has — and it dedicates the entire generation to that. In three thousand characters, that same sentence is 7% of the text. The other 93% — brand instructions, format rules, disclaimers — also conditions the scene, and most of it describes things that are not visual.
The result is a video that vaguely satisfies everything and does nothing well. The scene loses focus because the prompt lost focus.
A prohibition becomes a presence
This is the most counter-intuitive effect, and the easiest to reproduce.
We wrote things like “no text in the image”, “do not show logos”, “avoid hands”. Those are perfectly comprehensible instructions for a language model, which understands negation. For a diffusion model, the positive prompt field is a description of what should be in the scene, and it conditions on the concepts that appear there.
“No text in the image” puts the concept text in the description. “Do not show logos” puts logo in. And it is not rare to get back exactly what you forbade — sometimes more prominently than if you had said nothing at all.
It is the old “do not think of an elephant”, except the model has no way not to: the elephant is in the text that conditions the image.
Where prohibitions actually go
Image and video models almost all have a separate field for this: the negative prompt. It is its own channel, handled differently during generation — what is in there is pushed away, not described.
The fix was mechanical:
- Everything that was a description of the scene stayed in the positive prompt.
- Everything that was a visual prohibition came out of there and went into
negative_prompt: text, watermark, logo, deformed hands, distortion, frame. - Everything that was not visual — brand rules, format instructions, compliance disclaimers — left the video prompt entirely. It is not the video model job. It is the caption step job, or the template that writes on top.
The video prompt went back to around two hundred characters. The videos went back to being good.
Why this does not apply to text
It is worth understanding the asymmetry, otherwise the lesson turns into superstition.
For a language model, long context generally helps. It understands negation, obeys explicit rules and works better with examples. A caption prompt carrying the whole brand kit — persona, banned terms, offer with price, good and bad examples — produces better text than a short prompt. That is why the EverFeed brand kit has so many fields: they all go to the text steps.
For a diffusion model, long context dilutes, and negation in the positive field works backwards. They are two kinds of model with two opposite ergonomics, and treating them alike is the mistake we were making.
The rule of thumb
Text: the more relevant context, the better. Prohibitions work when written.
Image and video: the more focused the description, the better. Prohibitions go in the negative field, never in the positive one.
What that changed in the product
Three decisions came straight out of that lesson.
Prompts per capability, not one prompt. The EverFeed prompt library is organised by capability — text, image, video — and by objective. The caption prompt and the video prompt do not share structure, because they should not.
The params field is raw JSON. That is where negative_prompt lives, alongside aspect_ratio, duration_seconds and whatever else the vendor accepts. We did not try to build a pretty screen field for every parameter of every vendor: the person who knows what needs to go through is the person who chose the vendor. That applies to all five drivers.
The prompt sent is stored. Every step keeps the exact text that went out, along with the provider, the model, the number of attempts and the duration. Without that, this whole investigation would have been impossible: you cannot discover that an inflated prompt made the video worse if you cannot see both prompts side by side. And because previous takes are kept too — up to ten — the comparison does not cost a new generation.
How to write a video prompt that works
The format that survived all of this:
- One subject. What is in the scene. Concrete.
- One action. What happens in the eight seconds. Just one.
- One lighting or environment condition. Morning, backlight, industrial kitchen.
- One camera movement, if necessary. If it is not, do not write one.
- Everything else in the parameters. Duration, aspect ratio, prohibitions.
It fits in two lines. If it is running past three, there is probably something in there that belongs to another step.
The warning sign
If you are writing a brand rule inside a video prompt, stop. The brand does not enter the piece through the diffusion prompt — it enters through the template that writes on top, through the colours injected at render time, and through the caption the text step produces with the whole kit in hand.
The video model has one job: make eight beautiful seconds of what you described. Every instruction that does not serve that job is taking quality away from one that does.
Write your brand once.
In EverFeed the prompt sent is stored on the step, with the provider, the model and the duration. You can compare two takes and find out what actually changed.
See editable prompts →