The subject teleports halfway through the clip
Position snaps come from independently sampled segments with no shared anchor. First-last-frame conditioning lets motion flow through the join.
The subject is in the doorway, then they are not. No step, no wipe, no motivation. The body occupies a new set of pixels as if a second take were spliced in at a random frame. That is not a creative cut. It is two independently sampled segments that never agreed on where the person was standing.
Video models do not have a persistent stage. Each generation, and each extend that is really a new sample, draws from a distribution that only loosely constrains position. If the second sample is not conditioned on the first sample's last frame (and, when you can, on a destination frame), the sampler is free to place the subject wherever a plausible still would put them. Plausible stills of "woman in a kitchen" include a lot of floor plans. Played as one clip, they read as a teleport.
What a snap is, and what it is not
Name it before you pick a tool.
A teleport is a discontinuity in subject position, scale, or facing across a join that was supposed to be continuous. The background may jump with them, or they may jump against a background that held. There is no motion blur, no step, no camera whip that could have covered it.
A hard cut is a discontinuity you planned. Two shots, two framings, an edit. Fine, if you treat it as an edit.
A morph is identity changing while position roughly holds: the face slides, the jacket restyles. Different defect, different fix.
A gait reset is cyclic motion losing its phase (a walk that starts the same foot twice). Related, but the body did not change rooms. It skipped a frame of the cycle.
Teleports cluster at three places in a pipeline:
- A native extend that did not actually inherit velocity, or that inherited a dirty last frame and then re-solved the standing position.
- A chain where clip two was generated from a text prompt, or from a "similar" still, rather than from the literal last frame of clip one.
- A timeline join between two takes of the same prompt. Same words, independent samples, no shared anchor. This is the one people call "the model glitched mid-clip" when they actually concatenated two files.
The cause is the same in all three: the second segment was not a bounded motion problem. It was a new still, sampled, then animated. First-last-frame generation exists to stop that. You supply where the clip starts and where it ends; the model solves only the path between those two stills. Position at the join is no longer a guess.
Pin both ends so the path has to go through the join
Ordinary image-to-video knows the first frame and improvises the rest, including where the subject stands at the end. That is how you get a clean opening and a teleport on the tail, or a clean tail that cannot be chained because the body is now in a different part of the room.
First-last-frame closes the loop. In the catalog that is a family, not a metaphor:
- VEO first-last-frame takes
first_frame_urlandlast_frame_url. Both are required. The prompt describes the journey, not either endpoint. - Flux 3 first-last-frame to video is the dedicated Flux variant of the same job.
- Several image-to-video endpoints quietly accept a second still: Kling Video V3 Standard image-to-video takes an end image; Wan 2.7 image-to-video takes a last-frame still. If you supply the second still, rewrite the prompt as the path between two states, not as "what happens next" from one photo.
The prompt's job changes. You are not describing a scene. You are describing travel: "She walks from the doorway to the counter and stops with both hands on the edge." The stills already fix wardrobe, room and identity. If the two stills put her in two rooms, the model will still connect them, and the connection will be the warp you are trying to avoid. Keep location, lens family and lighting plausible for the duration.
For a chain, the mechanic is literal reuse, not resemblance:
- Generate clip one with a known start still, and a last-frame still that is a pose you are willing to continue from.
- Extract the actual last frame of the rendered clip, not the still you hoped it would land on.
- Clean that frame if it is dirty (see below).
- Feed that exact image as the first frame of clip two, and author a new last-frame still for the next beat.
- Assemble. At the join, the pixels match, so the body cannot teleport. Only the motion on either side of that shared frame differs.
Extend versus chain versus first-last-frame is the comparison of those three length tactics. Use native extend when a moving camera must carry velocity through a longer take. Use first-last-frame whenever position at the join is non-negotiable, which is every time you have already seen a teleport.
Author stills that a body could actually walk between
Most teleports that survive first-last-frame were baked into the still pair.
The pair has to be the same shot. Same room, same lens height, same subject scale, unless the move is a walk that changes scale honestly. A wide of the kitchen paired with a close-up of a face in two seconds is not a walk. It is a morph the model will treat as a path.
The last frame of clip one is the dirtiest frame in it. Error accumulates toward the tail, and chaining hands that tail forward. If the extracted frame has a melted hand, a sliding logo, or a body that has already drifted a half-step into the counter, clip two will treat that error as ground truth and may "correct" it by resampling position. Clean the handoff frame with a low-denoise still pass before it becomes anyone's first frame.
Do not invent the destination from a new text-to-image prompt. Generate the start still, then edit it (move the subject, change nothing else) to make the end still. Editing preserves the room. A second independent still of "the same kitchen" is how the island jumps a metre and the actor jumps with it.
Size the travel to the duration. A five-second clip can cover a walk across a small interior, a sit, a turn. It cannot cover "enters from outside, crosses the apartment, sits." Split that into two bounded pairs. A teleport mid-clip is often one pair that asked for two rooms of travel.
If you already have two independent takes that do not share a frame, do not dissolve and hope. A dissolve between two standing positions is a ghost with two bodies. Pick one take and regenerate the neighbour with first-last-frame, or hide the join with a motivated cut. Cross-dissolves that hide drift are for grade and micro-drift, not for a subject who changed coordinates.
A repair path for a clip that already snapped
You do not have to throw the whole sequence away.
- Find the snap. Step frame by frame until the body's centroid jumps. Note the timestamp. That frame is the join, even if you thought this was one generation.
- Split there. Treat everything before the snap as clip A, everything after as a discarded sample, not as usable B-roll of the same take.
- Extract A's last clean frame before the jump. If that frame is already compromised, step backward until the body is intact, then re-mint it as a still.
- Author a destination still that continues the action from that pose, in the same room, at a distance the remaining duration can cover.
- Regenerate only the second half with first-last-frame (or image-to-video plus an end still). Prompt the walk, not the kitchen.
- Join on the shared frame. Identical pixels. No dissolve needed.
If the snap happened inside a single native generation, the model lost the subject's coordinates partway through a long sample. Shorten the request. Three to five seconds is the working range for holding a position. Cut before the jump and continue with a pinned pair; do not prompt "she does not teleport."
FAQ
Why didn't the same prompt and seed keep the subject in the same place?
Seeds do not bind position across jobs, and they do not survive hardware or precision changes even on one job. Two calls are two samples. The shared anchor has to be pixels (a first frame, a last frame), not a number in a seed field.
Can I fix a teleport by prompting "continuous motion, no jump cuts"?
Not dependably. Naming the artefact does not pin coordinates. A negative clause about jump cuts is weaker than two stills that already agree on where the body is. Write the walk between pinned frames.
Native extend still snapped. Is extend the wrong tool?
Extend is the right tool for carrying camera velocity when the tail you feed it is clean and the subject is already moving. It is the wrong tool when the tail is a dirty still, or when you need the next beat to land on a specific standing position. In those cases a last-frame still plus a first-last-frame generation is the more bounded problem. If extend keeps resampling the body, split the shot.
The join matches, but the subject still pops a few frames later.
The pair was connected at the endpoints and the model took a wild path in the middle (a step that overshoots, a scale pulse, a body that leans through a counter). Shorten the duration, bring the two stills closer in pose, or split the travel into two pairs. First-last-frame guarantees the landing, not every in-between coordinate. Implausible travel still gets you a warp; it just warps to the right picture.