First-and-last-frame generation looks simple: provide frame A, provide frame B, and ask the model to connect them. The difficult part is that the two images describe states, not the route between them.
If the prompt repeats the captions of both images, the model still has to invent the motion path, decide which visual facts remain fixed, resolve incompatible geometry, and choose when each change occurs.
A better mental model is a state transition with explicit invariants.
Step 1: test endpoint compatibility
Before writing a prompt, compare the two images as if you were reviewing input fixtures.
type EndpointDiff = {
identity: 'same' | 'changed' | 'uncertain';
geometry: 'compatible' | 'large-change' | 'contradictory';
camera: 'continuous' | 'motivated-transition' | 'hard-cut-needed';
lighting: 'continuous' | 'time-shift' | 'contradictory';
environment: 'same-space' | 'connected-space' | 'unrelated-space';
};
Flag contradictions early:
- a face with incompatible age or proportions;
- a product showing geometry that cannot exist on one object;
- a left-facing subject that must arrive right-facing without room to turn;
- a locked camera that somehow needs to reveal the opposite side of a room;
- daylight and night endpoints with no time-shift mechanism.
Some endpoint pairs need a cut, dissolve, occlusion, or two separate clips. Prompt length cannot repair impossible continuity.
Step 2: define invariants and allowed changes
Create a compact transition contract:
invariants:
- same person, facial proportions, hair, and jacket
- same room layout and window position
- same product geometry and surface finish
allowed_changes:
- body position
- facial expression
- camera distance
- lighting intensity consistent with time passing
forbidden:
- new people
- costume changes
- product deformation
- unmotivated cuts
Without the allowed-change section, an overly strict prompt can freeze the scene. Without invariants, the transition reaches the last frame by redesigning everything.
Step 3: write a three-beat route
The route should describe observable motion, not abstract intent.
BEGIN (0-2s)
Hold the first composition for half a second. The subject looks toward the product,
then places the right hand on the table. Camera remains fixed.
TRANSITION (2-5s)
The subject lifts the product, turns clockwise, and takes one step toward the window.
Camera tracks right by 40 centimeters at the same height. Preserve identity, jacket,
product shape, furniture layout, and window position.
ARRIVAL (5-7s)
Camera movement stops. The subject lowers the product into the final-frame position,
turns the eyes toward camera, and settles into the exact last composition. Hold the
last state for one second.
Each beat has a start condition, action, and stop condition. This reduces the chance that the model tries to reach the destination in the first second and then improvises.
Step 4: keep the experiment reproducible
Open an image-to-video workspace with Seedance 2.5 selected, then keep the model, duration, aspect ratio, endpoint images, and settings fixed.
Change one prompt variable per run. Record:
{
"run": 3,
"changed": "camera path only",
"kept": ["endpoints", "model", "duration", "identity rules"],
"expected": "camera tracks right and stops before arrival",
"observed": "camera tracks correctly but product bends at 4.2s",
"next_change": "protect product geometry during middle beat"
}
This turns generation into debugging. A failed run still provides information.
Review four separate contracts
Do not score the result with one “looks good” judgment. Review four dimensions:
- Endpoint contract: does the clip begin and end in the intended states?
- Identity contract: do people, products, clothing, and environment remain stable?
- Motion contract: does the route occur in the specified order and direction?
- Camera contract: does the camera follow its path and stop at the correct time?
Pass or fail each contract separately. The repair prompt should target the first failed contract.
Failure-specific repairs
The model reaches the last frame too early
Add beat timing and a hold condition. Do not add more visual description.
Do not begin the final placement before 5 seconds. Complete the walk and camera track
first. Enter the last composition only during the final two seconds, then hold.
Identity drifts in the middle
Protect identity during the transition beat, where most deformation occurs.
During the full turn, preserve facial proportions, hairline, jacket seams, sleeve
length, and product geometry. Only body orientation and arm pose may change.
The camera zooms instead of moving
Specify physical displacement and forbid zoom.
Move the camera laterally 40 centimeters to the right at constant height and focal
length. No optical zoom, digital zoom, orbit, or change in lens perspective.
The environment morphs
Name spatial relationships instead of saying “same room.”
The window stays on camera left, the table remains in the foreground, and the door
remains behind the subject. Do not add, remove, or reposition furniture.
The endpoints are still incompatible
Stop patching. Split the route into two clips or use a motivated occlusion. A foreground object, door frame, passing person, or matched shape can hide a discontinuity. If there is no physical bridge, use an intentional edit.
A compact prompt template
GOAL
Connect the supplied first and last frames as one continuous shot.
INVARIANTS
[identity, product, environment, geometry, protected text]
ALLOWED CHANGES
[pose, expression, object position, camera distance, motivated light change]
BEGIN 0-T1
[opening action and camera state]
TRANSITION T1-T2
[ordered subject motion + measured camera path + continuity rules]
ARRIVAL T2-END
[settle into final state + camera stop + hold duration]
AVOID
[new objects, deformations, unmotivated cuts, zoom, style drift]
Know when not to use endpoint interpolation
Use separate clips when the pair requires a location jump, major costume change, impossible product rotation, significant time jump without a bridge, or a deliberate editorial cut.
First-and-last-frame control is strong when the endpoints can plausibly belong to one continuous path. It is not a substitute for a storyboard with multiple scenes.
For multi-beat sequences, the full first-and-last-frame workflow connects this debugging model to prompt templates and review checkpoints. You can also start from C Dance AI and keep each run's endpoints, prompt, settings, and observed failure together.
Limitations
This workflow does not guarantee a correct generation. It constrains the test and makes the next revision explainable. Use only images and identities you have the right and consent to animate. Do not treat a generated product behavior as factual evidence.
Some publishing platforms do not render external video inline. The owned timeline example used by the source workflow is available as a playable MP4.

Top comments (0)