How to Use First and Last Frame in Gemini Omni 1.1 Flash
Gemini Omni 1.1 Flash first and last frame interpolation: camera orbits, zooms, and loops from two stills. Prompts, API code, and when not to use it.
Quick Answer
Gemini Omni 1.1 Flash first and last frame interpolation takes two stills — a start frame and an end frame — and generates the video between them. You specify the shot's first image and last image; the model fills the motion, camera path, and (if you ask) the audio. Google built it for orbits, zooms, whip-pans, and loops — the storyboard control Veo users kept asking Omni for. A last frame must travel with a first frame; last-only is rejected. This is not image-to-video (one still, open-ended motion) and not scene extension (continue a clip you already have). It's the keyframe path: lock both ends, generate the middle.
Key Takeaways
- Two images, one prompt. First frame = where the shot starts. Last frame = where it must land. The prompt describes only the path between them.
- Last frame requires first frame. Google's docs are strict:
--last-frame/<LAST_FRAME>is illegal without a matching first frame. - Best jobs: camera moves and loops. Orbit a product, dolly-zoom a face, whip-pan to a new subject, or land on the same frame you started on for a seamless loop.
- A weak pair produces a mushy middle. The two stills need a believable geometric relationship — same subject, compatible lens, lighting that can travel. A wide establishing shot into a macro product hero is a cut, not an interpolation.
- Draft the move at 360p. Same 1.1 ladder as everything else: $0.03/s to find the camera path, then 720p / upscale.
First-last frame vs image-to-video vs scene extension
Three 1.1 controls get confused because they all involve pictures and time. They are not interchangeable.
| First + last frame | Image-to-video | Scene extension | |
|---|---|---|---|
| Inputs | Two stills | One still | A video (generated or ≤10s upload) |
| What the model does | Interpolates A → B | Animates A, open-ended | Appends new seconds onto the tail |
| You control | Both ends of the shot | The start only | What happens next |
| Ceiling | One 3–10s generation | One 3–10s generation | 40 seconds cumulative |
| Use when | The landing frame matters | You have a hero still | The clip is already good and too short |
If you only have one image, stay on image-to-video. If you already have a clip you like, extend it. Reach for first-last when you can draw the start and the end — a product turntable, a day-to-night still pair, a character who must finish on a specific pose.
How to run a first-last shot (no code)
Google AI Studio, the Gemini app, and Flow expose this as start/end frame (or first/last image) on Omni 1.1 Flash.
- Shoot or generate the two stills first. Same subject, same world. A Nano Banana still → a second still with the camera 30° around is a clean orbit. Two unrelated photographs are a cut, and the model will invent a hallucinated hallway between them.
- Match aspect ratio to the clip you want. 16:9 pair for YouTube; 9:16 pair for Shorts. Mismatched stills get cropped before the move even starts.
- Write the path, not the pictures. The images already contain the look. The prompt's job is camera and time:
"Slow clockwise orbit, continuous shot, no jump cuts."Google's prompt guide says to name (a) what's in the first frame, (b) the exact camera move, (c) what the last frame should reveal — even though the last image is attached, saying it out loud keeps the path honest. - Ask for a loop only when the two frames actually match. A true loop needs the last frame to be the first frame (or a near-duplicate). "Seamless loop" on two different compositions will morph, not loop.
- Generate at 360p until the move reads. Then re-render or upscale. A 5-second 360p orbit is $0.15; the same 4K take is $1.50.
Three prompt patterns that match how Google demos the feature:
- Orbit / product:
"Continuous clockwise orbit around the subject, end on the three-quarter hero angle. No jump cuts." - Zoom / push:
"Slow push-in from the wide frame into the close-up. Hold the subject's face locked, background compresses. One shot." - World change (the official forest example):
"A smooth cinematic transition from a lush green forest at sunrise to a snowy forest under a starry night sky."
If you'd rather not wire the API, Omni Flash is the browser loop for still-to-motion and shot chaining. First-last interpolation itself is a Gemini Omni 1.1 Flash API / Studio control.
How to run it via the API
Model ID gemini-omni-1.1-flash. Put both images in input before the text. From Google's Omni docs:
import base64
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-omni-1.1-flash",
input=[
{"type": "image", "data": first_frame_b64, "mime_type": "image/jpeg"},
{"type": "image", "data": last_frame_b64, "mime_type": "image/jpeg"},
{
"type": "text",
"text": (
"A smooth cinematic transition from a lush green forest "
"at sunrise to a snowy forest under a starry night sky."
),
},
],
)
with open("interpolation.mp4", "wb") as f:
f.write(base64.b64decode(interaction.output_video.data))
Prompt tags, if you mix images inline with text instead of as separate parts: <FIRST_FRAME> and <LAST_FRAME>. Last without first is invalid.
On the command-line skill Google published, that's --first-frame start.png --last-frame end.png. Same rule: last is illegal without first.
Draft:
response_format={"resolution": "360p"},
Full setup, keys, and the rest of the Interactions API live in the API tutorial.
Prompts that keep the middle honest
The failure mode is always the same: the two stills don't imply a camera move, so the model morphs textures instead of moving a camera.
| You want | Prompt the path | Don't |
|---|---|---|
| Orbit | "Slow 120-degree orbit, tripod locked on subject, no zoom." | "Make it cinematic." |
| Dolly zoom | "Dolly in while zooming out, face size locked, hallway stretches." | "Hitchcock shot" with two unrelated portraits |
| Whip-pan | "Whip-pan right from frame A into frame B, one continuous shot, no cut." | Two locations that can't exist in one pan |
| Loop | Use the same image as first and last, plus "seamless loop, last frame matches first." | Two different poses and hope it closes |
| Day → night | Name the time shift and hold geometry: "Same tree, same camera, sunrise to starry night, static tripod." | A forest still into a city still |
Carry lighting language if the two frames disagree ("golden hour holds through the move" vs "daylight cools into tungsten"). Otherwise Omni will pick a grade and fight one of your stills.
For identity across the move — a face that must survive a 180° orbit — treat the two stills as a mini character sheet, not as two pretty pictures.
What it costs
Same per-second ladder as the rest of 1.1. Interpolation is one generation (3–10 seconds), not an extension chain.
| Length | 360p | 720p | 1080p | 4K |
|---|---|---|---|---|
| 4 seconds | $0.12 | $0.40 | $0.60 | $1.20 |
| 8 seconds | $0.24 | $0.80 | $1.20 | $2.40 |
| 10 seconds | $0.30 | $1.00 | $1.50 | $3.00 |
Find the camera path at 360p. A loop that doesn't close is a $0.12 mistake, not a $3.00 one. If the interpolation is the start of a longer scene, extend it after it lands — scene extension appends from whatever 10-second take you just interpolated.
Where first-last frame breaks
- Incompatible geometry. Wide → tight of a different object reads as a morph, not a zoom.
- Loop claims on non-matching frames. If frame 1 ≠ frame N, "seamless loop" will dissolve. Duplicate the start as the end.
- Using it as a cutter. A kitchen still and a street still want a hard cut (Method 1 in the 10-second / 40s+ guide), not an interpolation.
- Skipping the first frame. Last-only is rejected. One still = image-to-video, not this feature.
- Fighting 10 seconds. The interpolation is still one 3–10s clip. Longer stories = interpolate, then extend, then chain.
FAQ
What is first and last frame interpolation in Gemini Omni 1.1 Flash?
You give the model a starting image and an ending image. It generates the video that connects them — camera move, subject motion, and (if prompted) audio — instead of inventing the landing frame itself.
Do I have to send both frames?
Yes. A last frame without a first frame is invalid. A first frame without a last frame is just image-to-video.
Can I make a looping clip this way?
Yes, if the last frame is the first frame (or a near copy) and you prompt "seamless loop, last frame matches first, no jump cut." Two different compositions will morph, not loop.
Is this the same as scene extension?
No. Scene extension continues an existing video up to 40 seconds. First-last interpolates between two stills for a single 3–10s shot. You can interpolate first, then extend that result.
How much does a first-last clip cost?
Same as any other Omni 1.1 generation: $0.03/s at 360p, $0.10 at 720p, $0.15 at 1080p, $0.30 at 4K. A 5-second 720p orbit is $0.50.
Is Omni Flash affiliated with Google?
No. Omni Flash is an independent platform built for the Gemini Omni era. It is not affiliated with Google. Gemini, Gemini Omni, Omni Flash, Veo, and related names are trademarks of their respective owners.
Next steps
- Try the Omni Flash studio → — still-to-motion and shot chaining in the browser, no API key required.
- Read: How to extend Gemini Omni 1.1 Flash to 40 seconds → — append onto a first-last take once the move is right.
- Read: Image to video with Gemini Omni Flash → — the one-still path, when you don't have an end frame.
- Read: Draft at 360p, upscale to 4K → — test the camera path cheap, finish the orbit sharp.
- Read: Gemini Omni 1.1 Flash lets you build with more control → — the official 1.1 feature list.
- Read: Gemini Omni Flash API tutorial → — model ID, pricing, Interactions API.
- Compare credit packs → — budget orbits and loops without managing quotas.