Veo 3.1 Fast vs Veo 3.1
Welches Modell wofür
Gleiche Generation und gleiches Datenblatt - 720p/1080p, 4/6/8 s bei 24 fps, bis zu zwei Führungsbilder, nativer Ton - also ist der Unterschied rein der Tarif: Die fast-Variante berechnet $0.15 pro Ausgabesekunde mit Ton und $0.1 stumm, gegenüber $0.4 und $0.2, also rund 2.7x und 2x weniger. Beide weisen den stummen Tarif aus, der günstigere Weg, wenn Sie den Clip selbst vertonen wollen. Bei dieser Spezifikationsgleichheit ist die fast-Variante die Standardwahl.
Benchmarks
Veo 3.1 Fast: Der Anbieter hat keine Benchmark-Werte veröffentlicht.
Veo 3.1: 12 veröffentlicht, aber kein Benchmark, den genug andere Modelle teilen.
Anbieterangaben: ByteDance
Preise
| Veo 3.1 Fast | Veo 3.1 | Δ | |
|---|---|---|---|
| Pro Ausgabesekunde (mit Audio) | $0.15 | $0.4 | 0.37× |
| Pro Ausgabesekunde (ohne Ton) | $0.1 | $0.2 | 0.5× |
Preise aus dem Live-Katalog, Stand des letzten Builds. Die aktuellen Preise stehen auf der jeweiligen Modellseite.
Einordnung: Preis pro Ausgabesekunde aller 7 Videogenerierung-Modelle mit dieser Abrechnungseinheit (logarithmische Skala)
Fähigkeiten
| Veo 3.1 Fast | Veo 3.1 | |
|---|---|---|
| Natives Audio | ja | ja |
Spezifikationen
| Veo 3.1 Fast | Veo 3.1 | |
|---|---|---|
| Eingabemodalitäten | Text Bild | Text Bild |
| Ausgabemodalitäten | Video | Video |
| Veröffentlicht | 2025-10 | 2025-10 |
| Auflösung | 720p / 1080p (feste Auswahl) | 720p / 1080p (feste Auswahl) |
| Cliplänge | 4 / 6 / 8 s (feste Auswahl) | 4 / 6 / 8 s (feste Auswahl) |
| Bildrate | 24 fps | 24 fps |
| Seitenverhältnisse |
|
|
| Eingabemodi |
|
|
| Format | .mp4 | .mp4 |
Die Spezifikationen stammen aus der Dokumentation des jeweiligen Anbieters. Veröffentlicht ein Anbieter eine Angabe nicht, lassen wir die Zeile weg, statt sie zu schätzen. Vollständige Quellen: Veo 3.1 Fast · Veo 3.1
Ein Prompt, beide Modelle, gemessen über das Gateway
Vom Modell zurückgegeben 1280×720 Dauer 8s Latenz 63 s
Vom Modell zurückgegeben 1280×720 Dauer 8s Latenz 63 s
Ein Prompt, eine Anfrage pro Modell, keine Wiederholungen und keine Auswahl der besten Ergebnisse: Sie sehen das erste Ergebnis, das jedes Modell geliefert hat. Größe und Dauer haben wir nicht vorgegeben. Jedes Modell hat seinen eigenen Standardwert verwendet, denn eine Anfrage, die auf alle zugeschnitten ist, würde keinem gerecht. Die Dateien wurden für das Web neu kodiert. Beurteilen Sie deshalb Bildaufbau und Prompt-Treue, nicht die Kompression.
Eine Zeile genügt für den Wechsel
Beide IDs stehen in jedem Tab unten. Die beiden hervorgehobenen Zeilen sind die einzige Änderung. Gleicher Endpunkt, gleicher Schlüssel, gleiches Anfrageformat.
import time
import requests
BASE = "https://synthorai.io/v1"
HEADERS = {"Authorization": "Bearer sk-syn-..."}
# 1) create the video generation job (POST /v1/videos)
task = requests.post(
f"{BASE}/videos",
headers=HEADERS,
json={
"model": "veo-3.1-fast-generate-001",
# "model": "veo-3.1-generate-001", # diese Zeile einkommentieren, die darüberliegende auskommentieren
"prompt": "a watercolor lighthouse at dawn, waves rolling in, camera pulling back",
"resolution": "720p",
"duration": 5,
},
).json()
# 2) poll the job until it reaches a terminal state
while task["status"] in ("queued", "in_progress"):
time.sleep(5)
task = requests.get(f"{BASE}/videos/{task['id']}", headers=HEADERS).json()
# 3) completed → signed video URL (valid ~24h - download and store it promptly)
if task["status"] == "completed":
print(task["data"][0]["url"])
else:
print(task["error"])const HEADERS = {
Authorization: "Bearer sk-syn-...",
"Content-Type": "application/json",
};
interface VideoTask {
id: string;
status: "queued" | "in_progress" | "completed" | "failed" | "cancelled";
data?: Array<{ url: string }>;
error?: { code: string; message: string };
}
// 1) create the video generation job (POST /v1/videos)
const created = await fetch("https://synthorai.io/v1/videos", {
method: "POST",
headers: HEADERS,
body: JSON.stringify({
model: "veo-3.1-fast-generate-001",
// model: "veo-3.1-generate-001", // diese Zeile einkommentieren, die darüberliegende auskommentieren
prompt: "a watercolor lighthouse at dawn, waves rolling in, camera pulling back",
resolution: "720p",
duration: 5,
}),
});
let task = (await created.json()) as VideoTask;
// 2) poll the job until it reaches a terminal state
while (task.status === "queued" || task.status === "in_progress") {
await new Promise((r) => setTimeout(r, 5000));
const res = await fetch(`https://synthorai.io/v1/videos/${task.id}`, { headers: HEADERS });
task = (await res.json()) as VideoTask;
}
// 3) completed → signed video URL (valid ~24h — download and store it promptly)
if (task.status === "completed") console.log(task.data?.[0]?.url);
else console.error(task.error);# Create the job; "Prefer: wait" holds the request up to 60s and returns the
# completed task when generation finishes in time (else the queued task).
curl https://synthorai.io/v1/videos \
-H "Authorization: Bearer sk-syn-..." \
-H "Content-Type: application/json" \
-H "Prefer: wait=60" \
-d '{
"model": "veo-3.1-fast-generate-001",
# "model": "veo-3.1-generate-001", # diese Zeile einkommentieren, die darüberliegende auskommentieren
"prompt": "a watercolor lighthouse at dawn, waves rolling in, camera pulling back",
"resolution": "720p",
"duration": 5
}'
# Still queued / in_progress? Poll until completed → data[0].url (valid ~24h).
curl https://synthorai.io/v1/videos/vid_9f2e8c1a4b7d \
-H "Authorization: Bearer sk-syn-..."package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"time"
)
const base = "https://synthorai.io/v1"
type videoTask struct {
ID string `json:"id"`
Status string `json:"status"`
Data []struct {
URL string `json:"url"`
} `json:"data"`
}
func call(method, url string, body []byte) (t videoTask) {
req, _ := http.NewRequest(method, url, bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer sk-syn-...")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
json.NewDecoder(resp.Body).Decode(&t)
return t
}
func main() {
// 1) create the video generation job (POST /v1/videos)
payload, _ := json.Marshal(map[string]any{
"model": "veo-3.1-fast-generate-001",
// "model": "veo-3.1-generate-001", // diese Zeile einkommentieren, die darüberliegende auskommentieren
"prompt": "a watercolor lighthouse at dawn, waves rolling in, camera pulling back",
"resolution": "720p",
"duration": 5,
})
task := call("POST", base+"/videos", payload)
// 2) poll the job until it reaches a terminal state
for task.Status == "queued" || task.Status == "in_progress" {
time.Sleep(5 * time.Second)
task = call("GET", base+"/videos/"+task.ID, nil)
}
// 3) completed → signed video URL (valid ~24h — download and store promptly)
if task.Status == "completed" {
fmt.Println(task.Data[0].URL)
}
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
// JDK built-in HttpClient — no extra dependency needed.
HttpClient http = HttpClient.newHttpClient();
// 1) create the job; "Prefer: wait=60" holds the request up to 60s and
// returns the completed task when generation finishes in time
HttpRequest create = HttpRequest.newBuilder(URI.create("https://synthorai.io/v1/videos"))
.header("Authorization", "Bearer sk-syn-...")
.header("Content-Type", "application/json")
.header("Prefer", "wait=60")
.POST(HttpRequest.BodyPublishers.ofString("""
{"model": "veo-3.1-fast-generate-001",
// {"model": "veo-3.1-generate-001", // diese Zeile einkommentieren, die darüberliegende auskommentieren
"prompt": "a watercolor lighthouse at dawn, waves rolling in, camera pulling back",
"resolution": "720p", "duration": 5}"""))
.build();
String task = http.send(create, HttpResponse.BodyHandlers.ofString()).body();
System.out.println(task); // {"id":"vid_…","status":…} — completed → data[0].url
// 2) still queued / in_progress? Poll GET https://synthorai.io/v1/videos/{id} until the
// status turns completed, then download data[0].url (valid ~24h).FAQ
Welches Modell ist günstiger: Veo 3.1 Fast oder Veo 3.1?
Veo 3.1 Fast ist bei Pro Ausgabesekunde (mit Audio) günstiger ($0.15 vs. $0.4, Faktor 2.7). Bei anderen Zeilen kann es umgekehrt sein. Die Tabelle oben zeigt alle Preise, und die tatsächlichen Kosten hängen von Ihrem Mix ab.
Kann ich Veo 3.1 Fast gegen Veo 3.1 A/B-testen, ohne zweimal zu integrieren?
Ja. Beide laufen über denselben OpenAI-kompatiblen Endpunkt mit einem API-Schlüssel. Für den Wechsel ändern Sie nur eine Zeile, den Modellnamen. So können Sie einen Teil des Traffics an jedes Modell schicken und die Kosten direkt vergleichen.
Welche Cliplängen und Auflösungen unterstützen die Modelle?
Die Spezifikationstabelle oben nennt für jedes Modell die veröffentlichten Auflösungen und Cliplängen und kennzeichnet, ob ein Wert eine feste Auswahl oder ein durchgehender Bereich ist. Beides sieht ähnlich aus, kostet aber unterschiedlich viel, weil sich die Abrechnung pro Sekunde mit der Länge multipliziert.