Introduction
Image-to-video for Veo 3.1: a first frame, and optionally a last frame, in; a 4-8 second 720p clip with sound out.
| Field | Value |
|---|---|
| Input | Image |
| Output | Video |
| Publisher | |
| Clip length | 4, 6 or 8 seconds |
| Resolution | 720p: 1280x720 (16:9) or 720x1280 (9:16) |
| Aspect ratios | 16:9, 9:16 |
| Frame rate | 24 fps |
| Sound | Generated with every clip |
| Inputs | Text; first frame with optional last frame |
Key features & highlights
A shot built in the order you wrote it
The prompt asked for the dome to open, the telescope to appear and the camera to drift along the railing. In 4 seconds at 9:16 the shutter slid from closed to fully open, the inside lit amber around a brass telescope, and the camera moved forward along the curved rail, in that order.
Land exactly on the last frame
A first frame of a woman at the telescope with her back to us, and a last frame of her leaning on the railing with her arms crossed. In 4 seconds she turned, stepped to the rail and settled into the closing pose, while more stars came out above the dome.
Four seconds fits one action
From a single first frame, the prompt was "He folds the map and looks up." In 4 seconds he folded the map with both hands, but he was still looking down on the last frame. Ask for one beat per 4 seconds, or choose 8 seconds for two.
Continue a clip from any model
We sent a 5-second clip made with another model and asked for 4 more seconds: "The road continues along the sea." The new part picked up the aerial over the coast road and followed the car through the bends. We got back one 9-second file at the source clip's size, and only the 4 new seconds were billed.
Request parameters
| Parameter | Required | Description |
|---|---|---|
prompt | Yes | Required. Describe how things move, where the camera goes and what is heard, from the opening frame to the clip's end. at least 1 characters · at most 4000 characters |
image_url | Yes | Required. The opening frame (JPEG, PNG or WebP). at least 1 characters |
last_image_url | No | Optional. A closing picture for the clip to arrive at. at least 1 characters |
aspect_ratio | No | auto (default) keeps the proportions of your first frame; 16:9 or 9:16 reframes it to that shape. The price is the same either way. |
duration_seconds | No | Clip length: 4, 6 or 8 seconds, defaulting to 8. A longer clip costs more. |
Pricing
Billed per clip at the price for its 4, 6 or 8 seconds; aspect ratio, sound and the images you attach add nothing. A request that fails or is refused is free.
| Specification | Price |
|---|---|
| $1.44 / request |
| $2.16 / request |
| $2.88 / request |
Use cases
The final render after a cheaper draft
Work out the prompt, framing and timing on Veo 3.1 Fast at $0.36 or Lite at $0.18 per 4-second clip, then send the same request to Veo 3.1 for the version you keep. All three take the same fields.
A product or place shot that must start and end on set pictures
Give the opening still and the closing still and describe the move between them. In our test the clip landed on the last frame in 4 seconds.
Scenes longer than 8 seconds
Generate the first 8 seconds, then continue with video extend: the last frame of your clip opens a new 4 to 8 second segment and you get one joined file back. The source clip, up to 60 seconds, is not billed.
Vertical clips with sound for social posts
Pick 9:16 for a 720x1280 clip. Sound is generated with the picture, so a short is ready without a separate audio pass.
Prompt guide & pro tips
Write it in the order it happens
Place and light, subject, action, camera move, then sound. Our observatory prompt followed that order and the clip played the beats in the same order.
Direct the sound like a shot
Say what should be heard: "Sound: wind over sand, the dome's motor". Spoken words go in quotes. Google notes that very short lines of speech are still the hardest part, so leave a speaking shot a few seconds to play out.
Match the action to the length
Plan one clear action per 4 seconds. In our 4-second test, "folds the map and looks up" only got as far as the fold.
Keep Veo 3.1 for the take you keep
Veo 3.1 costs four times Fast and eight times Lite at the same length. Settle wording and framing on a cheaper tier, then run the final render here once.
Introduction
Veo 3.1 Image to video opens a 720p clip on your own picture and animates it for 4, 6 or 8 seconds, with sound. Supply a last frame as well and the clip is steered from the first picture to the second. Google reviews the prompt and the images first; refused requests fail without a charge.
Choose a Veo 3.1 mode
| If you have | Use |
|---|---|
| only a written scene | Veo 3.1 Text to video |
| a still to open on, or one to end on | Veo 3.1 Image to video (you are here) |
| footage you want to carry on | Veo 3.1 Video extend |
Prompt tips
- Spend the prompt on motion and camera; the picture already shows what is in frame.
- With two frames, describe how the scene travels from the opening picture to the closing one.
- Keep aspect ratio on auto to preserve the shape of the first frame.
Need several reference pictures? Reference to video is offered on the Veo 3.1 Fast page.
API quick start
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "google/veo-3.1/image-to-video",
"input": {
"aspect_ratio": "auto",
"duration_seconds": 8,
"image_url": "https://example.com/reference.png",
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
See the API reference for authentication, the complete schema, polling, and error handling.