A Repeatable Image-to-Video Pipeline for Product Ads
Turning a product image into a short video is an orchestration problem, not only a prompting problem. The input is a single visual reference, but the output needs to behave like an edit: the object must remain recognizable, the camera must have a bounded movement, and every generated clip needs a review decision.
This post describes a small pipeline that can be implemented manually or wrapped in a generation queue. It deliberately starts with three shots instead of a large storyboard so that failures stay attributable.
1. Define the immutable state
Create an identity record before generating anything:
reference: bottle-front-v3.png
identity:
silhouette: short cylindrical bottle with a narrow cap
material: matte black plastic
color: near-black with a warm highlight
label: centered, unchanged position
scale: medium shot, full object visible
forbid:
- second product
- new logo
- invented readable packaging text
- changed cap geometry
This is more useful than a free-form style paragraph. The record gives a reviewer a deterministic comparison target and gives each prompt the same prefix.
2. Represent the commercial as a shot graph
Use a small data structure where each node owns one camera action and one viewer task:
[
{"id":"reveal","job":"recognize","camera":"slow push-in","duration":2},
{"id":"detail","job":"notice texture","camera":"short orbit","duration":3},
{"id":"hero","job":"remember","camera":"gentle pull-back","duration":3}
]
The graph prevents a common failure mode: asking one clip to reveal the object, rotate it, pour liquid, change the background, and render a slogan. Each extra responsibility creates another way for the model to reinterpret the reference.
3. Compose prompts from stable layers
Treat the prompt as a configuration object, even if you enter it manually:
REFERENCE: uploaded product image is the only identity source.
IDENTITY: preserve silhouette, cap, material, color, proportions, label position.
SHOT: medium framing; product centered; empty space on the left.
CAMERA: slow push-in for six seconds; no sudden lens change.
LIGHT: soft key from upper left; subtle warm rim.
NEGATIVE: no extra objects, no new logo, no readable invented text, no warping.
When a shot fails, modify one layer. Do not regenerate with a completely different prompt; that destroys the ability to compare results.
4. Keep the evaluation loop explicit
Store a small record for every attempt:
shot=detail
model=seedance-2-5
reference=bottle-front-v3.png
prompt=detail-cap-v2
duration=6s
result=material stable; cap bends at 5s; retry with slower orbit
Evaluate in this order:
- identity and proportions;
- unwanted objects and invented claims;
- camera timing;
- background and light;
- usefulness of the edit points.
This order matters. A beautiful take with a changed product is not a near-success; it fails the first invariant.
Use a small scorecard instead of a single “looks good” decision. Score each candidate from 0 to 2:
| Dimension | 0 | 1 | 2 |
|---|---|---|---|
| Identity | obvious drift | minor drift in one frame | stable silhouette and parts |
| Motion | broken or distracting | usable after a trim | controlled start and end |
| Message | no clear product job | understandable with copy | clear without explanation |
| Editability | no clean cut point | one usable frame | clean opening and ending |
Reject any candidate with an identity score of 0, even if its total is high. A score of 6/8 is a useful prototype; it is not an approval to publish an ad. This distinction keeps aesthetic excitement from hiding a product-accuracy failure.
5. Use a fair model baseline
If you compare models, freeze the reference, shot graph, prompt layers, duration, and scoring sheet. Otherwise the experiment measures creative changes instead of model behavior.
The China Video AI image-to-video workspace opens with Seedance 2.5 selected for a first baseline. The useful output is not a universal ranking. It is a reproducible observation such as “the reveal preserved the silhouette, but the final second of the orbit bent the cap.”
6. Map symptoms to small repairs
| Failure | Diagnosis | Repair |
|---|---|---|
| silhouette changes | identity state was too implicit | repeat exact physical nouns and lower motion |
| background dominates | camera and subject scale are ambiguous | set distance, subject position, and negative space |
| packaging text mutates | video generation is poor at typography | add text downstream in the editor |
| motion is rubbery | multiple actions compete | keep one camera move per node |
| last frame collapses | action exceeds stable duration | shorten the node or hold a static ending |
Do not solve every failure with a longer negative prompt. A smaller motion request is often a stronger constraint than another adjective.
7. Separate generation from approval
The generation queue should produce candidates. Approval should be a human gate with a checklist:
- same silhouette, cap, handle, and proportions;
- same color and material unless the brief explicitly changes them;
- no duplicate product or unapproved prop;
- no fabricated price, certification, medical claim, or label;
- enough clean frames for the editor to add copy.
Add logos, music, claims, and disclosures after this gate. That keeps brand-critical text out of a stochastic render step.
8. Assemble a message, not a collection of clips
Choose one supported product message. A reveal should establish the object, the detail should provide evidence for that message, and the hero shot should leave a clean ending. If each shot makes a different promise, the edit becomes a slideshow of unrelated outputs.
For an eight-second prototype:
0.0–2.0 recognize the product
2.0–5.0 show one approved feature
5.0–8.0 hold product and reserve copy space
Before a second generation, record the exact change you are making:
previous: detail-v2, orbit 120 degrees, 6 seconds, cap bends near the end
change: reduce orbit to 60 degrees and hold the final frame for 0.5 seconds
keep: reference, identity block, lighting, duration
This one-line experiment log is the difference between iteration and random prompting. It also gives a teammate enough context to reproduce the decision without guessing.
The full China Video AI guide includes the longer production checklist. Use the same workspace when you want to reproduce the baseline.
A practical approval boundary
The workflow ends at a reviewable, editable set of clips. It does not approve the product claim, trademark, soundtrack, source-image rights, or final advertisement. Keep those decisions in the human editorial step. If a claim cannot be supported by the product brief, remove it rather than asking the generator to make it sound more convincing.
What this pipeline does not solve
It does not make generated output legally approved, guarantee product accuracy, or remove the need to check the rights for the source image, logo, music, and final claims. It also does not imply that one model wins every shot. The pipeline only makes those decisions visible and repeatable.
That is the useful engineering boundary: generation creates candidates, the state record preserves constraints, and human review decides what can enter the final cut.

Top comments (0)