- Third-party
- Zero data retention
Google's latest video generation model with improved quality, motion, and audio generation.
| Model Info | |
|---|---|
| Terms and License | link ↗ |
| More information | link ↗ |
| Zero data retention | Yes |
| Pricing | View pricing in the Cloudflare dashboard ↗ |
Usage
const response = await env.AI.run(
'google/veo-3.1',
{
prompt:
'A majestic eagle soaring over snow-capped mountains, tracking shot following the bird as it glides through clouds',
aspect_ratio: '16:9',
duration: '8s',
generate_audio: true,
resolution: '1080p',
},
)
console.log(response)curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"model": "google/veo-3.1",
"input": {
"prompt": "A majestic eagle soaring over snow-capped mountains, tracking shot following the bird as it glides through clouds",
"aspect_ratio": "16:9",
"duration": "8s",
"generate_audio": true,
"resolution": "1080p"
}
}'{
"gatewayMetadata": {
"keySource": "Unified"
},
"result": {
"video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1/nature-documentary.mp4"
},
"state": "Completed"
}Examples
Urban Time-lapse — City life time-lapse video
const response = await env.AI.run(
'google/veo-3.1',
{
prompt:
'A time-lapse of a busy city intersection at night, car lights creating streaks, people walking in fast motion',
aspect_ratio: '16:9',
duration: '6s',
generate_audio: true,
resolution: '1080p',
},
)
console.log(response)curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"model": "google/veo-3.1",
"input": {
"prompt": "A time-lapse of a busy city intersection at night, car lights creating streaks, people walking in fast motion",
"aspect_ratio": "16:9",
"duration": "6s",
"generate_audio": true,
"resolution": "1080p"
}
}'{
"gatewayMetadata": {
"keySource": "Unified"
},
"result": {
"video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1/urban-time-lapse.mp4"
},
"state": "Completed"
}Abstract Art — Abstract motion graphics
const response = await env.AI.run(
'google/veo-3.1',
{
prompt:
'Colorful ink drops falling into water in slow motion, creating organic swirling patterns',
aspect_ratio: '16:9',
duration: '6s',
generate_audio: false,
resolution: '720p',
},
)
console.log(response)curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"model": "google/veo-3.1",
"input": {
"prompt": "Colorful ink drops falling into water in slow motion, creating organic swirling patterns",
"aspect_ratio": "16:9",
"duration": "6s",
"generate_audio": false,
"resolution": "720p"
}
}'{
"gatewayMetadata": {
"keySource": "Unified"
},
"result": {
"video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1/abstract-art.mp4"
},
"state": "Completed"
}Food Video — Appetizing food footage
const response = await env.AI.run(
'google/veo-3.1',
{
prompt: 'Melted chocolate being poured over fresh strawberries in slow motion, rich and glossy',
aspect_ratio: '9:16',
duration: '4s',
generate_audio: true,
resolution: '1080p',
},
)
console.log(response)curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"model": "google/veo-3.1",
"input": {
"prompt": "Melted chocolate being poured over fresh strawberries in slow motion, rich and glossy",
"aspect_ratio": "9:16",
"duration": "4s",
"generate_audio": true,
"resolution": "1080p"
}
}'{
"gatewayMetadata": {
"keySource": "Unified"
},
"result": {
"video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1/food-video.mp4"
},
"state": "Completed"
}Parameters
prompt
stringrequiredText prompt describing the video to generateimage_input
stringBase64-encoded reference image for i2vduration
stringrequireddefault: 6senum: 4s, 6s, 8sVideo durationaspect_ratio
stringrequireddefault: 16:9enum: 16:9, 9:16, 1:1Video aspect ratioresolution
stringrequireddefault: 720penum: 720p, 1080pVideo resolutiongenerate_audio
booleanrequireddefault: trueWhether to generate audio with the videovideo
stringformat: uriURL to the generated video