Veo 3.1
Text-to-Video • GoogleGoogle's latest video generation model with improved quality, motion, and audio generation.
| Model Info | |
|---|---|
| Terms and License | link ↗ |
| More information | link ↗ |
| 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
aspect_ratio
stringrequireddefault: 16:9enum: 16:9, 9:16, 1:1Video aspect ratioduration
stringrequireddefault: 6senum: 4s, 6s, 8sVideo durationgenerate_audio
booleanrequireddefault: trueWhether to generate audio with the videoimage_input
stringBase64-encoded reference image for i2vprompt
stringrequiredText prompt describing the video to generateresolution
stringrequireddefault: 720penum: 720p, 1080pVideo resolutionvideo
stringformat: uriURL to the generated video