Google · first/last-frame video

    VEO First Last Frame Prompting Guide

    What this model actually wants — from its schema, not from vibes.

    VEO First Last Frame is Google's first/last-frame video model on Versely. This page is its structured prompting reference: the 8 parameters its schema actually exposes, the first-last-frame technique that applies to it, copy-ready templates.

    Everything here is grounded in the same sources Versely's agent reads — the model's input schema, the veo family rule its prompt enhancer applies. Where a line is general craft advice rather than a documented fact about VEO First Last Frame, the page says so.

    What VEO First Last Frame wants

    The exact input surface, from the same schema the Versely agent fetches with get_model_input_schema before every generation.

    ParameterWhat it doesValues
    promptreqText prompt (max 20000 chars per docs)string (max 20000)
    first_frame_urlreqFirst frame (≤8MB, 720p+, 16:9 or 9:16)string
    last_frame_urlreqLast frame (same constraints)string
    aspect_ratioAspect ratioauto · 16:9 · 9:16default: auto
    duration4s/6s/8s — STRING with `s` suffix4s · 6s · 8sdefault: 8s
    resolution720p / 1080p / 4k720p · 1080p · 4kdefault: 720p
    negative_promptExclusionsstring
    generate_audioToggle audiobooleandefault: true
    • Invisible SynthID watermark cannot be disabled

    The rule Versely's enhancer applies

    Versely's prompt enhancer carries a per-family rule for veo models, applied automatically whenever it rewrites a prompt for VEO First Last Frame. Verbatim:

    VEO video models respond to cinematic descriptions. Include camera angles, movement types (dolly, crane, steadicam), lighting setup, and temporal flow (slow motion, time-lapse). Be specific about scene transitions.

    Technique that applies here

    First/last-frame and transition: describing the in-between motion

    • All three models in this family are built around two fixed images, and the prompt is connective tissue between them, not a description of either end. veo-first-last-frame requires both first_frame_url and last_frame_url; Pixverse Transition requires both first_image_url and end_image_url; and the general VEO 3.1 endpoint can do the same job on its kie provider variant by setting generationType=FIRST_AND_LAST_FRAMES_2_VIDEO with imageUrls=[first,last] (exactly two). Describe the transformation, not either endpoint — the images already fix those.
    • VEO's family MODEL_TIPS entry has one clause written almost for this exact family: '...be specific about scene transitions.' Of everything else the tip asks for (camera angles, movement types like dolly/crane/steadicam, lighting setup, temporal flow), that line is the one to lean on hardest when prompting veo-first-last-frame — name how the shot resolves from frame one to frame two, not just what's visible in it.
    • The field names for the two images are not interchangeable across models — veo-first-last-frame uses first_frame_url/last_frame_url, Pixverse Transition uses first_image_url/end_image_url, and VEO 3.1's own kie-provider fold reuses its general imageUrls array plus a generationType flag instead of dedicated fields. Confirm the exact param names for the specific model before wiring the two images in.

    Copy-ready templates

    Replace the bracketed slots; each template says when it's the right shape.

    Template 1
    Camera [MOVEMENT TYPE — e.g. slow dolly-out] as [SUBJECT] [WHAT CHANGES]. The transition is [TRANSITION STYLE — e.g. a smooth match cut / a gradual dissolve].

    Use when: veo-first-last-frame, whose applied family tip specifically calls for named camera movement and being explicit about scene transitions.

    Template 2
    Over [N] seconds, [SUBJECT] moves from [STATE A] to [STATE B] in one continuous motion, no cuts.

    Use when: the family's short fixed-duration enums (VEO's 4s/6s/8s, Pixverse's 5s/8s/10s) — one connective arc sized to the real clip length, not a multi-beat sequence.

    How the Versely agent does this automatically

    You can use this page by hand, or let the agent apply the same knowledge. Four real mechanisms — no more, no less:

    • get_model_input_schema — before generating, the agent looks up VEO First Last Frame's exact input fields, required fields, allowed values, defaults, and min/max bounds. The parameter table above is that same surface.
    • The prompt enhancer's family rules — 12 per-family rewrite rules, including the veo rule quoted on this page, shape how a rough prompt gets rewritten.
    • The per-provider speech guide — for TTS scripts, the agent follows a provider-specific tag scheme — not relevant to this model, but it's why voiceover scripts come out marked up correctly.
    • expand_movie_scene — in movie flows, brief scene ideas are rewritten into detailed cinematic descriptions before generation.

    Mistakes that waste generations

    • Describing either endpoint in detail — the two images already define the start and end state; re-describing 'a red flower in a vase' when the first image already shows exactly that wastes prompt budget instead of directing the change.
    • Assuming a first-last-frame variant automatically shares its parent t2v/i2v sibling's duration or aspect enum — it often does (veo-first-last-frame keeps VEO 3.1's up-to-8s cap; Pixverse Transition reuses the standard Pixverse 5s/8s/10s enum), but that's a fact to verify per model in its own schema, not a rule to assume blindly.
    • Using the wrong field name for the second image — first_frame_url/last_frame_url (VEO), first_image_url/end_image_url (Pixverse), or the general imageUrls array plus a generationType flag (VEO 3.1's own kie fold) aren't interchangeable; the wrong key name means the second image is silently dropped rather than erroring.

    The long-form guide

    This page is the structured reference. For the essay treatment — worked examples, failure modes, and narrative — read VEO 3.1 Prompting: The Complete Guide.

    Frequently asked questions

    How long can a VEO First Last Frame prompt be?+

    VEO First Last Frame's schema caps the prompt at 20,000 characters. Spend them on the subject, motion, and the register its family rewards rather than restating parameters the schema already controls.

    Does VEO First Last Frame support negative prompts?+

    Yes — the schema exposes negative_prompt. Put exclusions there instead of writing "no text, no watermark" into the main prompt.

    Which aspect ratios does VEO First Last Frame support?+

    The aspect_ratio parameter is an enum: auto, 16:9, 9:16. Set the parameter — describing the frame shape in prose does nothing on its own.

    How long can a VEO First Last Frame generation be?+

    Duration is a hard enum: 4s, 6s, 8s. Write one continuous beat sized to the window you pick, not a script the model will compress.

    How does the Versely agent know VEO First Last Frame's parameters?+

    Before generating, the agent calls its get_model_input_schema tool, which looks up the exact input fields, required fields, allowed values, defaults, and min/max bounds for the model; separately, the prompt enhancer applies the veo family rule quoted on this page to the prompt text itself. Nothing on this page is guessed — it is the same schema surface those tools read.

    Related prompting guides

    Generate with VEO First Last Frame

    VEO First Last Frame is live in Versely — paste a template above, or just describe what you want and let the agent map it onto the schema for you.