Google Veo3.1 Lite Start End To Video
Playground
Try it on WavespeedAI!Google Veo 3.1 Lite Start-End-to-Video generates high-fidelity videos by interpolating between a start image and an optional end image. Supports 720p and 1080p resolutions, landscape and portrait aspect ratios, and native audio generation. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
Google Veo 3.1 Lite Start-End-to-Video
Google Veo 3.1 Lite Start-End-to-Video generates high-fidelity videos by interpolating between a start image (first frame) and an optional end image (last frame). The model creates smooth, natural motion that transitions between the two keyframes guided by a text prompt. Supports 720p and 1080p resolutions, landscape and portrait aspect ratios, and native audio generation. Ideal for creating cinematic transitions, morphing effects, and keyframe-based video production.
Model Highlights
- Video interpolation between start and end keyframe images
- Text prompt guidance for controlling the transition motion
- Optional end image for targeted interpolation
- 720p and 1080p resolution support (no 4K)
- Landscape (16:9) and portrait (9:16) aspect ratios
- Native audio generation always on
- 24fps output frame rate
- REST API with consistent performance and no cold starts
Parameters
- prompt (required): Text description of the desired video motion and scene.
- image (required): URL of the image to use as the first frame.
- last_image (optional): URL of the image to use as the last frame for interpolation.
- resolution (select): 720p (default), 1080p.
- aspect_ratio (select): 16:9 (default), 9:16.
- negative_prompt (optional): Description of elements to exclude.
- seed (optional): Random seed for improved reproducibility.
Use Cases
- Creating smooth transitions between two keyframe images
- Cinematic morphing effects between different scenes
- Keyframe-based video production and animation
- Product visualization with start and end states
- Creative storytelling with defined beginning and ending
Pricing
| Resolution | Cost per 8s |
|---|---|
| 720p | $0.40 |
| 1080p | $0.64 |
Billing Rules
- 720p: $0.05 per second
- 1080p: $0.08 per second (1.6× base rate)
How to Use
- Provide a start image URL (first frame)
- Optionally provide a last_image URL (last frame)
- Write a prompt describing the desired motion and transition
- Select resolution (720p or 1080p)
- Select aspect_ratio (16:9 or 9:16)
- Submit via REST API endpoint
- Receive the generated interpolation video with audio
API Integration
Simple REST API call with start image and text prompt as the primary inputs. Optionally provide an end image for precise interpolation between two keyframes.
Notes
- Both prompt and image (first frame) are required
- End image is optional; if omitted, the model generates a natural continuation
- Lite variant does not support 4K resolution or video extension
- Audio is natively generated and always on
- Commercial use is allowed
- Videos are watermarked with SynthID
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/google/veo3.1-lite/start-end-to-video" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"aspect_ratio": "16:9",
"resolution": "720p"
}'
# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"
Parameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| prompt | string | Yes | - | The positive prompt for the generation. | |
| image | string | Yes | - | The image to use for the generation. | |
| last_image | string | Yes | - | - | The last image to use for the generation. |
| aspect_ratio | string | No | 16:9 | 16:9, 9:16 | The aspect ratio of the generated media. |
| resolution | string | No | 720p | 720p, 1080p | Video resolution. |
| negative_prompt | string | No | - | The negative prompt for the generation. | |
| seed | integer | No | - | -1 ~ 2147483647 | The random seed to use for the generation. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data.id | string | Unique identifier for the prediction, Task Id |
| data.model | string | Model ID used for the prediction |
| data.outputs | array | Array of URLs to the generated content (empty when status is not completed) |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.has_nsfw_contents | array | Array of boolean values indicating NSFW detection for each output |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |
Result Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Yes | - | Task ID |
Result Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction, the ID of the prediction to get |
| data.model | string | Model ID used for the prediction |
| data.outputs | string | Array of URLs to the generated content (empty when status is not completed). |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |