{"course":{"slug":"ai-video","title":"Video with AI","url":"https://addaly.com/learn/ai-video","level":"intermediate","track":"create"},"lesson":{"slug":"start-and-end-frames","title":"Deciding where the shot lands","url":"https://addaly.com/learn/ai-video/start-and-end-frames","position":16,"of":66,"minutes":9,"answer":"Supplying both a first and last frame turns generation from an open-ended sample into an interpolation between two fixed points.","keyIdea":"Supplying both a first and last frame turns generation from an open-ended sample into an interpolation between two fixed points, which is the most underused control in the category and the one that fails hardest when the two frames are too different."},"body":{"format":"markdown","text":"## What the control does\n\nSeveral tools let you supply two images: the frame the clip starts on and the frame it ends on. Luma calls them keyframes, Kling calls it start and end frame, and similar features exist elsewhere under other names.\n\nMechanically, both images are encoded and both condition the denoise: one anchoring the beginning of the latent block, one anchoring the end. Everything between is generated to connect them.\n\nThis changes the nature of the task. Without an end frame, you are sampling a plausible continuation and hoping it goes somewhere useful. With one, you are asking for a path between two points you chose. It is the difference between letting a camera operator improvise and giving them a start mark and an end mark.\n\n## Four things it is good for\n\n1. **Landing on a hero frame.** Product work, title cards, anything that has to arrive exactly somewhere. Generate the end frame first, perfect it, then decide where the shot starts.\n2. **Match cuts.** Make shot A end on a composition and shot B start on the same composition with different content. The cut becomes invisible and the sequence feels designed.\n3. **Reveals.** Start on a detail, end on the wide. Or the reverse. Both frames are compositions you controlled rather than a crop the model chose.\n4. **Perfect loops.** Set the last frame identical to the first. The clip returns to where it began and can be played endlessly. This is worth real money for backgrounds, social posts and screen content, and it is nearly impossible to achieve any other way.\n\n## The failure that catches everyone\n\nIf the two frames are too different, the model does not invent a camera move between them. It invents a morph.\n\nThis is worth understanding rather than memorising. The model is filling in a smooth path through latent space. If the two endpoints are close (same room, same light, same subject, a plausible camera displacement apart) the smooth path through latent space corresponds to a smooth path through the real world, and you get a camera move. If the endpoints are far apart, the smooth latent path corresponds to nothing physical, and what you see is one image dissolving into another through a sequence of impossible intermediates.\n\nA kitchen and a beach produce a melt. A wide shot and a close-up of the same subject in the same light produce a push-in.\n\n## Rules that keep it working\n\n- Same scene, same light, same time of day.\n- Same lens character. A wide-angle start and a telephoto end is a perspective change the model cannot path through.\n- A displacement a real camera could achieve in the clip's duration. Two metres in five seconds is fine. Thirty is not.\n- Same subject, same wardrobe, same pose family. A person standing and then sitting is a physical action and often works; a person standing and then being a different person does not.\n- **Build the end frame from the start frame.** Crop it, or edit it, or generate it with the start frame as a reference. Two independently generated images of \"the same\" scene are never quite the same scene, and the difference shows up as churn.\n\n## Using it without the feature\n\nIf your tool has no end-frame control, you can approximate the reveal and the match cut by other means:\n\n- Generate a longer, looser move and find your landing frame in the edit, then trim to it. You pay in generated seconds and you get the frame you wanted.\n- For loops, generate a clip with very little motion, then in the editor duplicate it, reverse the copy, and join the two. A ping-pong loop is not the same as a true loop (the motion visibly runs backwards) but on abstract or ambient content nobody notices, and it is free.\n\n## What it costs\n\nTwo frames means two stills to make and repair rather than one. That is real work. It is still an order of magnitude cheaper than generating a shot six times hoping it ends somewhere usable, and it is the difference between a sequence that feels edited and one that feels assembled from whatever came back.\n\n## The free path\n\nEnd-frame control appears on several hosted tools' free tiers, and open-weights pipelines in ComfyUI expose first-and-last-frame conditioning directly as a node. If you have a free daily allowance, this is the feature to spend it on, because it teaches you more per credit than another round of prompt variations.\n\n---\n\nToday: make one still, then make its end frame by cropping the same image tighter. Generate with both. You have just directed a push-in to a frame you chose rather than one the model chose."},"check":{"question":"A designer supplies a start frame of a café interior and an end frame of a rooftop at sunset, hoping for a transition. The result is a churning dissolve. Why?","options":[{"text":"The two frames were generated separately, so their seeds differ and the model cannot reconcile two independent samples into one trajectory.","correct":false,"tempting":"Blames the seed; two frames from the same seed but different scenes fail identically."},{"text":"Sunset lighting in the end frame conflicts with the interior lighting, and the model resolves lighting conflicts by cross-dissolving between them.","correct":false,"tempting":"Picks out one real difference and invents a specific dissolve behaviour for it; the failure occurs with matched lighting too."},{"text":"The model fills a smooth path between the two encoded endpoints, and when the endpoints are far apart that smooth path corresponds to no physical camera move.","correct":true},{"text":"End-frame conditioning only works within the model's temporal attention window, and a scene change exceeds the range over which the two anchors can influence each other.","correct":false,"tempting":"Invokes attention range, but both anchors condition the whole block regardless of how different the scenes are."}]},"prev":{"slug":"compositing-the-real-thing","title":"Put the real object in before you animate it","url":"https://addaly.com/learn/ai-video/compositing-the-real-thing"},"next":{"slug":"depth-parallax-and-fake-moves","title":"A camera move with no video model at all","url":"https://addaly.com/learn/ai-video/depth-parallax-and-fake-moves"},"authorship":"Founder and series editor: Dr Mustafa Mun. Written by AI models to a written standard. Exam keys checked blind by a second model: 3,665 of 3,666 agreed. Academic review invited.","review":{"status":"Draft, open for academic review"},"cite":"Addaly (2026) 'Deciding where the shot lands', in Video with AI. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/ai-video/start-and-end-frames (Accessed: 13 October 2026).","licence":{"name":"CC BY-NC-SA 4.0","url":"https://creativecommons.org/licenses/by-nc-sa/4.0/"},"reader":{"schema":1,"title":"Deciding where the shot lands","courseTitle":"Video with AI","module":{"index":2,"slug":"the-first-frame","title":"The first frame, and everything decided in it"},"answer":null,"keyIdea":"Supplying both a first and last frame turns generation from an open-ended sample into an interpolation between two fixed points, which is the most underused control in the category and the one that fails hardest when the two frames are too different.","hero":{"kind":"plate","image":null,"alt":null,"caption":null},"blocks":[{"t":"h2","id":"what-the-control-does","runs":[{"text":"What the control does"}]},{"t":"p","runs":[{"text":"Several tools let you supply two images: the frame the clip starts on and the frame it ends on. Luma calls them keyframes, Kling calls it start and end frame, and similar features exist elsewhere under other names."}]},{"t":"p","runs":[{"text":"Mechanically, both images are encoded and both condition the denoise: one anchoring the beginning of the latent block, one anchoring the end. Everything between is generated to connect them."}]},{"t":"p","runs":[{"text":"This changes the nature of the task. Without an end frame, you are sampling a plausible continuation and hoping it goes somewhere useful. With one, you are asking for a path between two points you chose. It is the difference between letting a camera operator improvise and giving them a start mark and an end mark."}]},{"t":"h2","id":"four-things-it-is-good-for","runs":[{"text":"Four things it is good for"}]},{"t":"ol","start":1,"items":[[{"text":"Landing on a hero frame.","b":true},{"text":" Product work, title cards, anything that has to arrive exactly somewhere. Generate the end frame first, perfect it, then decide where the shot starts."}],[{"text":"Match cuts.","b":true},{"text":" Make shot A end on a composition and shot B start on the same composition with different content. The cut becomes invisible and the sequence feels designed."}],[{"text":"Reveals.","b":true},{"text":" Start on a detail, end on the wide. Or the reverse. Both frames are compositions you controlled rather than a crop the model chose."}],[{"text":"Perfect loops.","b":true},{"text":" Set the last frame identical to the first. The clip returns to where it began and can be played endlessly. This is worth real money for backgrounds, social posts and screen content, and it is nearly impossible to achieve any other way."}]]},{"t":"h2","id":"the-failure-that-catches-everyone","runs":[{"text":"The failure that catches everyone"}]},{"t":"p","runs":[{"text":"If the two frames are too different, the model does not invent a camera move between them. It invents a morph."}]},{"t":"p","runs":[{"text":"This is worth understanding rather than memorising. The model is filling in a smooth path through latent space. If the two endpoints are close (same room, same light, same subject, a plausible camera displacement apart) the smooth path through latent space corresponds to a smooth path through the real world, and you get a camera move. If the endpoints are far apart, the smooth latent path corresponds to nothing physical, and what you see is one image dissolving into another through a sequence of impossible intermediates."}]},{"t":"p","runs":[{"text":"A kitchen and a beach produce a melt. A wide shot and a close-up of the same subject in the same light produce a push-in."}]},{"t":"h2","id":"rules-that-keep-it-working","runs":[{"text":"Rules that keep it working"}]},{"t":"ul","items":[[{"text":"Same scene, same light, same time of day."}],[{"text":"Same lens character. A wide-angle start and a telephoto end is a perspective change the model cannot path through."}],[{"text":"A displacement a real camera could achieve in the clip’s duration. Two metres in five seconds is fine. Thirty is not."}],[{"text":"Same subject, same wardrobe, same pose family. A person standing and then sitting is a physical action and often works; a person standing and then being a different person does not."}],[{"text":"Build the end frame from the start frame.","b":true},{"text":" Crop it, or edit it, or generate it with the start frame as a reference. Two independently generated images of “the same” scene are never quite the same scene, and the difference shows up as churn."}]]},{"t":"h2","id":"using-it-without-the-feature","runs":[{"text":"Using it without the feature"}]},{"t":"p","runs":[{"text":"If your tool has no end-frame control, you can approximate the reveal and the match cut by other means:"}]},{"t":"ul","items":[[{"text":"Generate a longer, looser move and find your landing frame in the edit, then trim to it. You pay in generated seconds and you get the frame you wanted."}],[{"text":"For loops, generate a clip with very little motion, then in the editor duplicate it, reverse the copy, and join the two. A ping-pong loop is not the same as a true loop (the motion visibly runs backwards) but on abstract or ambient content nobody notices, and it is free."}]]},{"t":"h2","id":"what-it-costs","runs":[{"text":"What it costs"}]},{"t":"p","runs":[{"text":"Two frames means two stills to make and repair rather than one. That is real work. It is still an order of magnitude cheaper than generating a shot six times hoping it ends somewhere usable, and it is the difference between a sequence that feels edited and one that feels assembled from whatever came back."}]},{"t":"h2","id":"the-free-path","runs":[{"text":"The free path"}],"role":"free"},{"t":"p","runs":[{"text":"End-frame control appears on several hosted tools’ free tiers, and open-weights pipelines in ComfyUI expose first-and-last-frame conditioning directly as a node. If you have a free daily allowance, this is the feature to spend it on, because it teaches you more per credit than another round of prompt variations."}]},{"t":"rule"},{"t":"p","runs":[{"text":"Today: make one still, then make its end frame by cropping the same image tighter. Generate with both. You have just directed a push-in to a frame you chose rather than one the model chose."}]}],"check":{"question":[{"text":"A designer supplies a start frame of a café interior and an end frame of a rooftop at sunset, hoping for a transition. The result is a churning dissolve. Why?"}],"options":[{"text":[{"text":"The two frames were generated separately, so their seeds differ and the model cannot reconcile two independent samples into one trajectory."}],"correct":false,"tempting":[{"text":"Blames the seed; two frames from the same seed but different scenes fail identically."}]},{"text":[{"text":"Sunset lighting in the end frame conflicts with the interior lighting, and the model resolves lighting conflicts by cross-dissolving between them."}],"correct":false,"tempting":[{"text":"Picks out one real difference and invents a specific dissolve behaviour for it; the failure occurs with matched lighting too."}]},{"text":[{"text":"The model fills a smooth path between the two encoded endpoints, and when the endpoints are far apart that smooth path corresponds to no physical camera move."}],"correct":true,"tempting":null},{"text":[{"text":"End-frame conditioning only works within the model’s temporal attention window, and a scene change exceeds the range over which the two anchors can influence each other."}],"correct":false,"tempting":[{"text":"Invokes attention range, but both anchors condition the whole block regardless of how different the scenes are."}]}],"order":[1,0,2,3],"why":null},"prev":{"slug":"compositing-the-real-thing","title":"Put the real object in before you animate it","minutes":10},"next":{"slug":"depth-parallax-and-fake-moves","title":"A camera move with no video model at all","minutes":9}}}