Veo-3.1-Fast-Generate-Preview - Image To Video
Veo-3.1-Fast-Generate-Preview — Image To Video. GPTProto API reference.
POST
/
v1beta
/
models
/
veo-3.1-fast-generate-preview:predictLongRunning
veo (image to video)
curl --request POST \
--url https://api.example.com/v1beta/models/veo-3.1-fast-generate-preview:predictLongRunningimport requests
url = "https://api.example.com/v1beta/models/veo-3.1-fast-generate-preview:predictLongRunning"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.example.com/v1beta/models/veo-3.1-fast-generate-preview:predictLongRunning', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v1beta/models/veo-3.1-fast-generate-preview:predictLongRunning",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v1beta/models/veo-3.1-fast-generate-preview:predictLongRunning"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/v1beta/models/veo-3.1-fast-generate-preview:predictLongRunning")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1beta/models/veo-3.1-fast-generate-preview:predictLongRunning")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyAuthentication
- Sign up for a GPTProto account at https://gptproto.com
- Navigate to the API Keys section in your dashboard
- Generate a new API key (sk-xxxxx)
- Copy and securely store your API key For authentication details, please refer to the Authentication section.
Initiate Request
curl --location 'https://api.gptproto.com/v1beta/models/veo-3.1-fast-generate-preview:predictLongRunning' \
--header 'x-goog-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"instances": [
{
"prompt": "Generate a video of a real-life model posing for a photoshoot.\n\nRequirements:\n1. Maintain the models appearance, posture, clothing, equipment, lighting, color, background, and composition exactly as in the image.\n2. The product must be fully visible from the front throughout, without being obscured, blurred, or distorted, ensuring clear product details, complete structure, and visible brand logos.\n3. The models movements should match the outfit scene, with very subtle natural movements such as breathing, weight shifts, shoulder and neck relaxation, and posture adjustments.\n4. The camera remains completely still, with no panning, zooming, shaking, or focal length changes, and the model is always shown in full-body proportions.\n5. The visual style is natural and realistic, with soft and even lighting, a clean and consistent background, without AI stylization, fictional elements, color shifts, or exposure fluctuations.",
"image": {
"mimeType": "image/png",
"bytesBase64Encoded": "iVBORw0KGgoAAAANSUhEUgAAA2AAAASgCAIAAAARv7zJAAAgAElEQVR42kz99XdbWb/"
}
}
],
"parameters": {
"aspectRatio": "9:16"
}
}'
import requests
import json
url = "https://api.gptproto.com/v1beta/models/veo-3.1-fast-generate-preview:predictLongRunning"
headers = {
"x-goog-api-key": "YOUR_API_KEY",
"Content-Type": "application/json"
}
data = {
"instances": [
{
"prompt": "Generate a video of a real-life model posing for a photoshoot.\n\nRequirements:\n1. Maintain the models appearance, posture, clothing, equipment, lighting, color, background, and composition exactly as in the image.\n2. The product must be fully visible from the front throughout, without being obscured, blurred, or distorted, ensuring clear product details, complete structure, and visible brand logos.\n3. The models movements should match the outfit scene, with very subtle natural movements such as breathing, weight shifts, shoulder and neck relaxation, and posture adjustments.\n4. The camera remains completely still, with no panning, zooming, shaking, or focal length changes, and the model is always shown in full-body proportions.\n5. The visual style is natural and realistic, with soft and even lighting, a clean and consistent background, without AI stylization, fictional elements, color shifts, or exposure fluctuations.",
"image": {
"mimeType": "image/png",
"bytesBase64Encoded": "iVBORw0KGgoAAAANSUhEUgAAA2AAAASgCAIAAAARv7zJAAAgAElEQVR42kz99XdbWb/"
}
}
],
"parameters": {
"durationSeconds": 8,
"aspectRatio": "9:16"
}
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
print(json.dumps(result, indent=2))
const url = "https://api.gptproto.com/v1beta/models/veo-3.1-fast-generate-preview:predictLongRunning";
const headers = {
"x-goog-api-key": "YOUR_API_KEY",
"Content-Type": "application/json"
};
const data = {
"instances": [
{
"prompt": "Generate a video of a real-life model posing for a photoshoot.\n\nRequirements:\n1. Maintain the models appearance, posture, clothing, equipment, lighting, color, background, and composition exactly as in the image.\n2. The product must be fully visible from the front throughout, without being obscured, blurred, or distorted, ensuring clear product details, complete structure, and visible brand logos.\n3. The models movements should match the outfit scene, with very subtle natural movements such as breathing, weight shifts, shoulder and neck relaxation, and posture adjustments.\n4. The camera remains completely still, with no panning, zooming, shaking, or focal length changes, and the model is always shown in full-body proportions.\n5. The visual style is natural and realistic, with soft and even lighting, a clean and consistent background, without AI stylization, fictional elements, color shifts, or exposure fluctuations.",
"image": {
"mimeType": "image/png",
"bytesBase64Encoded": "iVBORw0KGgoAAAANSUhEUgAAA2AAAASgCAIAAAARv7zJAAAgAElEQVR42kz99XdbWb/"
}
}
],
"parameters": {
"aspectRatio": "9:16"
}
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://api.gptproto.com/v1beta/models/veo-3.1-fast-generate-preview:predictLongRunning"
payload := []byte(`{
"instances": [
{
"prompt": "Generate a video of a real-life model posing for a photoshoot.\n\nRequirements:\n1. Maintain the models appearance, posture, clothing, equipment, lighting, color, background, and composition exactly as in the image.\n2. The product must be fully visible from the front throughout, without being obscured, blurred, or distorted, ensuring clear product details, complete structure, and visible brand logos.\n3. The models movements should match the outfit scene, with very subtle natural movements such as breathing, weight shifts, shoulder and neck relaxation, and posture adjustments.\n4. The camera remains completely still, with no panning, zooming, shaking, or focal length changes, and the model is always shown in full-body proportions.\n5. The visual style is natural and realistic, with soft and even lighting, a clean and consistent background, without AI stylization, fictional elements, color shifts, or exposure fluctuations.",
"image": {
"mimeType": "image/png",
"bytesBase64Encoded": "iVBORw0KGgoAAAANSUhEUgAAA2AAAASgCAIAAAARv7zJAAAgAElEQVR42kz99XdbWb/"
}
}
],
"parameters": {
"aspectRatio": "9:16"
}
}`)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(payload))
req.Header.Set("x-goog-api-key", "YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
Response Example
{
"name": "models/veo-3.1-generate-preview/operations/abc"
}
Query Task
The operation_id can be obtained from the response of the predictLongRunning endpoint.
After a successful query, the API returns a URL (response.generateVideoResponse.generatedSamples.video.uri) for downloading the video. This URL is required when making the request.
curl --location 'https://api.gptproto.com/v1beta/models/veo-3.1-generate-preview/operations/{operation_id}' \
--header 'x-goog-api-key: YOUR_API_KEY'
{
"name": "models/veo-3.1-fast-generate-preview/operations/abc",
"done": true,
"response": {
"type": "type.googleapis.com/google.ai.generativelanguage.v1beta.PredictLongRunningResponse",
"generateVideoResponse": {
"generatedSamples": [
{
"video": {
"uri": "https://api.gptproto.com/upload/v1beta/files/abc:download?alt=media"
}
}
]
}
},
"error": null
}
curl --location 'https://api.gptproto.com/upload/v1beta/files/abc:download?alt=media' \
--header 'x-goog-api-key: YOUR_API_KEY'
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
instances | array | ✅ Yes | - | An array of instances containing the video generation parameters The text prompt describing the video animation you want to generate from the image |
image | object | ✅ Yes | - | The source image information The URI of the source image file (must be a valid Google Cloud Storage or Generative Language API file URI). Either uri or bytesBase64Encoded must be provided. |
mimeType | string | ❌ No | - | The MIME type of the image (e.g., image/png, image/jpeg). Required when using bytesBase64Encoded. |
bytesBase64Encoded | string | ❌ No | - | Base64-encoded image data. Either uri or bytesBase64Encoded must be provided. |
parameters | object | ❌ No | - | Additional parameters for video generation The duration of the output video in seconds. Default: 8 |
aspectRatio | string | ❌ No | - | The aspect ratio of the output video. Options: 9:16, 16:9, 1:1. Default: 9:16 |
resolution | string | ❌ No | - | The resolution of the output video. Options: 720p, 1080p |
durationSeconds | number | ❌ No | - | The duration of the output video in seconds. Default: 8 ,Options: 4, 6, 8 |
⌘I

