Veo3.1 Lite FLF
google/veo3.1/lite/first-last-frame-to-videoVeo3.1 Lite First Last Frame To Video is Google's image-to-video AI model. Bring static images to life with fluid animation, consistent character motion, and professional-grade video output.
- Base price
- $0.40USD / run
- Execution
- async
- Model type
- video
- Input fields
- 9
Try the model
Playground
Your output will appear here
Complete the inputs, then click Run.
Specifications
Pricing
- Base price
- $0.40 / run
- Billing formula
- params.generate_audio ? params.duration * 0.05 : params.duration * 0.03
Context & modalities
- Input
- Schema-defined
- Output
- video
Capabilities
- Chat
- Not supported
- Vision
- Not supported
- Reasoning
- Not supported
- Structured output
- Not supported
- Function calling
- Not supported
- Audio input
- Not supported
Access
- Provider
- Model ID
- google/veo3.1/lite/first-last-frame-to-video
- Execution
- async
- API
- Unified Run API
- Endpoint
- /v1/run
API README
Veo3.1 Lite FLF
google/veo3.1/lite/first-last-frame-to-video builds a coherent video between supplied opening and closing images, using the prompt to direct the intervening action. Veo 3.1 improves instruction following, physical consistency, character continuity, and audiovisual quality while supporting more ways to anchor or continue a shot. This combination makes the model a practical choice when the creative outcome depends on those qualities rather than on a generic media conversion.
For production work with google/veo3.1/lite/first-last-frame-to-video, this Lite first-and-last-frame interpolation workflow prioritizes economical exploration for early concepts and repeated variants while retaining Veo's core motion and audiovisual abilities. The result is most reliable when the source material and creative brief clearly describe the intended subject, progression, visual or sonic character, and the qualities that must remain unchanged.
Highlights
Two-frame anchoring connects explicit opening and ending compositions through generated motion.
Improved physical coherence strengthens object interactions, character movement, and cause-and-effect across shots.
Cost-efficient generation enables broad iteration and high-volume video experimentation.
Native audio generation coordinates dialogue, ambience, and sound effects with the visual action.
Pricing
| Audio | Price per generated second |
|---|---|
| Off | $0.030 |
| On | $0.050 |
Billing uses the generated duration in seconds. Duration accepts an integer number of seconds rather than a fixed list, so the total is duration × rate; for example, 7 seconds costs $0.210 without audio or $0.350 with audio.
When to Use
| ✅ Good fit | ❌ Consider alternatives |
|---|---|
| The model's named workflow matches the source material and intended output | A different input modality or model route is required |
| A managed asynchronous result is suitable for the production pipeline | A synchronous, interactive editor is essential |
| The documented controls cover the required duration, framing, or format | The project needs controls outside this endpoint's schema |
| Creative iteration benefits from a repeatable request structure | Exact deterministic pixels, frames, geometry, or samples are mandatory |
| A finished downloadable media asset is the desired deliverable | Editable source layers or a native project file are required |
Prompt Guide
For generation, state the intended result first, then add the subject or source treatment, progression, style, and delivery constraints. Keep one creative variable per phrase, use the documented field names for controls, and change one setting at a time when comparing results.
{
"aspect_ratio": "21:9",
"duration": 8,
"prompt": "A smooth transition between the two frames with natural motion.",
"resolution": "720p"
}
Technical Specs
| Spec | Value |
|---|---|
| Model ID | google/veo3.1/lite/first-last-frame-to-video |
| Inputs | aspect_ratio, auto_fix, duration, first_frame_url, generate_audio, last_frame_url, prompt, resolution, seed |
| Required inputs | prompt |
| Output fields | content_type, url |
| Execution | Async (submit, then poll for result) |
| Resolution | 720p / 1080p |
| Aspect Ratio | 21:9 / 16:9 / 3:2 / 4:3 / 5:4 / 1:1 / 4:5 / 3:4 / 2:3 / 9:16 |
Related Models
Start building
Send your first request
OpenAI-compatible endpoint with unified authentication and usage tracking.
# The quoted heredoc keeps Unicode and shell metacharacters unchanged.
result=$(curl --fail-with-body --silent \
-X POST "https://api.sandbase.ai/v1/run" \
-H "Authorization: Bearer $SANDBASE_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'SANDBASE_JSON'
{
"model": "google/veo3.1/lite/first-last-frame-to-video",
"prompt": "A smooth transition between the two frames with natural motion.",
"auto_fix": false,
"duration": 8,
"resolution": "720p",
"generate_audio": true,
"last_frame_url": "https://static.sandbase.ai/examples/google/veo3.1/lite/first-last-frame-to-video/input_last_frame_url_1.jpeg",
"first_frame_url": "https://static.sandbase.ai/examples/google/veo3.1/lite/first-last-frame-to-video/input_first_frame_url_0.jpeg"
}
SANDBASE_JSON
)
run_id=$(printf '%s' "$result" | jq -r .id)
for attempt in $(seq 1 120); do
status=$(printf '%s' "$result" | jq -r .status)
case "$status" in completed|failed|timeout) break ;; esac
sleep 2
result=$(curl --fail-with-body --silent \
-H "Authorization: Bearer $SANDBASE_API_KEY" \
"https://api.sandbase.ai/v1/run/$run_id")
done
status=$(printf '%s' "$result" | jq -r .status)
[ "$status" = completed ] || { echo "Generation ended: $status" >&2; exit 1; }
printf '%s\n' "$result"Choose your model
Compare models
| Model | Context | Input / 1M | Output / 1M | Released |
|---|---|---|---|---|
Veo3.1 Lite FLFThis model Google | — | — | — | Mar 31, 2026 |
Google | — | — | — | Jun 30, 2026 |
Google | — | — | — | Jun 30, 2026 |
Google | — | — | — | Jun 30, 2026 |
Google | — | — | — | Jun 30, 2026 |
Google | — | — | — | May 11, 2026 |
