# Veo 3.1 Fast — Image to Video > Generate videos from your image prompts using Veo 3.1 fast. ## Overview - **Endpoint**: `https://api.runflow.io/v1/run/google/veo3.1/fast/image-to-video` - **Model ID**: `google/veo3.1/fast/image-to-video` - **Provider**: Google - **License**: commercial - **Last Updated**: 2026-04-06 ## Pricing - **Base price**: $0.15/second - **Note**: Usage-based, per seconds ## Input Schema ### `prompt` (string, required) The text prompt describing the video you want to generate ### `auto_fix` (boolean, optional) Whether to automatically attempt to fix prompts that fail content policy or other validation checks by rewriting them. - **Default**: `false` ### `duration` (string, optional) The duration of the generated video. - **Default**: `8s` - **Options**: `4s`, `6s`, `8s` ### `generate_audio` (boolean, optional) Whether to generate audio for the video. - **Default**: `true` ### `resolution` (string, optional) The resolution of the generated video. - **Default**: `720p` - **Options**: `720p`, `1080p`, `4k` ### `aspect_ratio` (string, optional) The aspect ratio of the generated video. Only 16:9 and 9:16 are supported. - **Default**: `auto` - **Options**: `auto`, `16:9`, `9:16` ### `image_url` (image, required) URL of the input image to animate. Should be 720p or higher resolution in 16:9 or 9:16 aspect ratio. If the image is not in 16:9 or 9:16 aspect ratio, it will be cropped to fit. ### `safety_tolerance` (string, optional) The safety tolerance level for content moderation. 1 is the most strict (blocks most content), 6 is the least strict. - **Default**: `4` - **Options**: `1`, `2`, `3`, `4`, `5`, `6` ### `seed` (integer, optional) The seed for the random number generator. ### `negative_prompt` (string, optional) A negative prompt to guide the video generation. ## Usage Examples ### cURL ```bash curl -X POST https://api.runflow.io/v1/run/google/veo3.1/fast/image-to-video \ -H "Authorization: Bearer $RUNFLOW_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "prompt": "A professional headshot, soft studio lighting", "image_url": "https://example.com/input.jpg" }' ``` ### Python ```python import requests response = requests.post( "https://api.runflow.io/v1/run/google/veo3.1/fast/image-to-video", headers={"Authorization": "Bearer RUNFLOW_API_KEY"}, json={ "prompt": "A professional headshot, soft studio lighting", "image_url": "https://example.com/input.jpg", }, ) data = response.json() print(data["video"]["url"]) ``` ### JavaScript ```javascript const response = await fetch( "https://api.runflow.io/v1/run/google/veo3.1/fast/image-to-video", { method: "POST", headers: { "Authorization": "Bearer RUNFLOW_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ prompt: "A professional headshot, soft studio lighting", image_url: "https://example.com/input.jpg", }), } ); const data = await response.json(); console.log(data.video.url); ``` ## Additional Resources - [Playground](https://www.runflow.io/models/google/veo3.1/fast/image-to-video) - [API Reference](https://www.runflow.io/models/google/veo3.1/fast/image-to-video/api) - [Documentation](https://www.runflow.io/docs)