Veo 3.1 First-Last Frame to Video
google/veo3.1/first-last-frame-to-videoVeo3.1 First Last Frame To Video by Google - animate still images into dynamic videos with AI. Transform photos into cinematic clips with natural motion, camera movement, and optional audio generation.
- Base price
- $3.20USD / run
- Execution
- async
- Model type
- video
- Input fields
- 9
Try the model
Playground
PNG, JPEG, WebP, or GIF · 20 MiB maximum
PNG, JPEG, WebP, or GIF · 20 MiB maximum
Your output will appear here
Complete the inputs, then click Run.
Model card
Specifications
Pricing
- Base price
- $3.20 / run
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/first-last-frame-to-video
- Execution
- async
- Base URL
- https://api.sandbase.ai
- API
- Unified Run API
- Endpoint
- /v1/run
API README
Veo 3.1 First-Last Frame to Video
Veo 3.1 with first and last frame control: send a start image and an end image and Veo generates the motion between them, with native audio.
Fields
| Field | Type | Default | Notes |
|---|---|---|---|
prompt | string, required | — | Up to 20,000 characters. |
image | image URL, required | — | First frame. JPEG, PNG, or WebP URL. |
end_image | image URL, required | — | Last frame. JPEG, PNG, or WebP URL. |
duration | 4 / 6 / 8 | 8 | Output length in seconds. |
resolution | 720p / 1080p / 4k | 720p | Sets the per-second rate. |
aspect_ratio | 16:9 / 9:16 | — | Output frame shape. |
generate_audio | boolean | true | Native dialogue, music, and effects; turning it off lowers the rate. |
negative_prompt | string | — | What to avoid. |
seed | integer 0–4294967295 | random | Fix it to compare prompt changes. |
Billing
You pay for output seconds, Google's list price. With audio: $0.40 at 720p, $0.40 at 1080p, $0.60 at 4k. Without audio: $0.20 / $0.20 / $0.40 respectively.
| Output | 720p | 1080p | 4k |
|---|---|---|---|
| 4s with audio | $1.60 | $1.60 | $2.40 |
| 6s with audio | $2.40 | $2.40 | $3.60 |
| 8s with audio (default) | $3.20 | $3.20 | $4.80 |
| 8s without audio | $1.60 | $1.60 | $3.20 |
Failed runs are not charged.
Prompting
- Keep both frames compatible in framing and lighting, or describe the transition explicitly.
- Describe how the subject travels from the first frame to the last.
Limits
- Both frames are required.
- Use Veo 3.1 Fast for cheaper drafts.
Also on SandBase
Other Veo 3.1 endpoints: google/veo3.1/text-to-video, google/veo3.1/image-to-video, google/veo3.1/reference-to-video, google/veo3.1/video-extend, google/veo3.1/fast/text-to-video, google/veo3.1/lite/text-to-video.
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/first-last-frame-to-video",
"prompt": "A woman looks into the camera, breathes in, then exclaims energetically, \"have you guys checked out Veo3.1 First-Last-Frame-to-Video on Fal? It's incredible!\"",
"duration": 8,
"resolution": "720p",
"generate_audio": true
}
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 | Type | Default price | Released |
|---|---|---|---|
Veo 3.1 First-Last Frame to VideoThis model Google | Video | $3.20 / run | Oct 8, 2025 |
Google | Video | $1.12 / run | Aug 27, 2026 |
Google | Video | $0.80 / run | Aug 27, 2026 |
Google | Video | $0.80 / run | Aug 27, 2026 |
Google | Video | $0.80 / run | Aug 27, 2026 |
Google | Video | $1.04 / run | Jun 30, 2026 |
Questions
FAQ
How do I call Google Veo 3.1 First-Last Frame to Video through SandBase?
Create a SandBase API key, then send requests with the model ID "google/veo3.1/first-last-frame-to-video" to Unified Run API (/v1/run) at https://api.sandbase.ai. The request examples on this page show the exact payload.
Do I need a separate Google account?
No. One SandBase API key and balance gives you access to Google Veo 3.1 First-Last Frame to Video and the other models in the catalog; you do not need to sign up with Google separately.
