Veo 3.1 Fast는 Google Veo 3.1 세대의 속도·비용 티어로, 플래그십의 기능 세트를 유지하면서 더 낮은 지연 시간과 가격에 맞춰 튜닝되었습니다.
- 입력
- 텍스트 이미지
- 출력
- 비디오
- 가격
- $0.15/s
가격의 위치
동종 5개 모델 중 가격 위치
이 막대는 Synthorai에 있는 같은 종류의 모델 가운데 이 모델의 가격이 어디쯤인지 보여 줍니다. 양쪽 끝에는 가장 싼 모델과 가장 비싼 모델의 이름이 있습니다. 기본 요율 기준이며 배치·리전·캐시 쓰기 할인은 가격 페이지에 있습니다.
스펙 및 제한
비디오
| 해상도 | 720p / 1080p 고정된 선택지이며 범위가 아닙니다. |
|---|---|
| 길이 | 4 / 6 / 8 s 고정된 선택지이며 범위가 아닙니다. |
| 프레임 레이트 | 24 fps |
| 화면 비율 | 16:9 · 9:16 |
| 비디오 입력 | 텍스트 기반 영상 생성 · 첫 프레임 및 첫/마지막 프레임 이미지 기반 영상 생성(가이드 이미지 최대 2장) |
| 네이티브 오디오 | 예, 사운드 생성 |
| 포맷 | .mp4 |
모델
| 모달리티 | 텍스트 + 이미지 → 비디오 |
|---|
- Google Veo 3.1 세대의 속도/비용 티어로, 더 낮은 지연과 가격으로 Veo 3.1과 동일한 역량 세트를 제공합니다: 텍스트 기반 영상 생성, 첫 프레임 이미지 기반 영상 생성, 첫
- 마지막 프레임 보간(가이드 이미지 최대 2장) 모두 네이티브 동기화 오디오와 함께 지원
- 720p/1080p, 24 fps, 4/6/8초, 16:9 및 9:16
- generateAudio 스위치로 사운드 온과 무음 출력을 선택합니다. Synthorai는 비동기 /v1/videos 작업 API로 제공하며 사운드 온과 무음에 각각 다른 요율로 출력 초 단위 과금합니다
출처: Google 공식 문서 ↗
하나의 프롬프트 - 게이트웨이를 통해 측정됨
Veo 3.1 Fast
모델 반환값 1280×720 길이 8s 지연 시간 63 s
단일 프롬프트, 모델당 단일 요청, 재시도 및 체리피킹 없음 - 각 모델이 반환한 첫 번째 결과입니다. 크기나 길이는 고정되지 않았습니다: 모든 모델에 맞춘 요청은 어떤 모델의 장점도 살리지 못하므로, 각 모델은 자체 기본값을 사용했습니다. 여기에 있는 파일은 웹용으로 재인코딩되었으므로 압축이 아닌 구도와 프롬프트 준수 여부를 기준으로 판단하십시오.
30초 만에 Veo 3.1 Fast 사용하기
비동기 작업 API: 작업을 생성한 뒤 폴링하거나 Prefer: wait로 요청을 유지해 완료를 기다립니다. POST /v1/videos
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",
"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",
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",
"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",
"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",
"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).Veo 3.1 Fast 소개
- 텍스트 기반 영상 생성, 첫 프레임 이미지 기반 영상 생성, 두 장의 가이드 이미지 사이의 첫/마지막 프레임 보간, 최대 3장의 에셋 참조 이미지, 그리고 기존 클립을 호출당 7초씩 이어 가는 영상 확장을 각각 네이티브 동기화 오디오와 함께 지원하며, .mp4 클립을 24 fps, 4·6·8초 길이, 16:9 또는 9:16으로 만들어 냅니다. generateAudio 스위치가 사운드 온과 무음 출력을 선택합니다.
- 표준 3.1 티어와 문서화된 유일한 기능 차이는 해상도 상한입니다.
- Fast는 1080p까지이고 플래그십은 4K도 제공합니다.
- 길이와 화면비부터 요청당 영상 수, 시드, 네거티브 프롬프트, 카메라 모션 제어, 출력의 Content Credentials까지 Google이 모델 카드에 공개한 나머지는 모두 같으므로, 둘 사이의 선택은 기능이 아니라 해상도와 속도, 가격의 문제입니다.
- 이 프로필은 회전 속도가 가장 중요한 광고 변형, 소셜 클립, 반복 작업에 맞습니다.
- Synthorai는 비동기 /v1/videos 작업 API로 이 모델을 서빙하므로 작업을 생성해 폴링하거나 짧은 작업에는 Prefer: wait를 쓰면 되고, 과금은 사운드 온과 무음에 대해 별도 단가로 출력 초 단위입니다.
자주 묻는 질문
Veo 3.1 Fast API는 무료로 사용해 볼 수 있나요?
네, 신규 계정에는 10회의 체험 호출과 최대 $1의 무료 크레딧이 제공되며, 카드 등록이 필요 없습니다. 결제 수단을 추가하기 전에 실제 워크로드로 Veo 3.1 Fast를 충분히 시험해 볼 수 있는 양입니다.
Veo 3.1 Fast는 무엇에 가장 강한가요?
더 빠르고 저렴한 Veo 3.1 티어, 네이티브 오디오 + 첫/마지막 프레임 이미지 기반 영상 생성, 사운드·무음 출력을 별도 단가로. 전체 내용은 벤더의 공식 릴리스 노트를 정리한 소개 섹션을 참고하세요.
Veo 3.1 Fast의 가격은 얼마인가요?
Synthorai에서 Veo 3.1 Fast는 생성된 영상 1초당 $0.15로 과금됩니다. 생성에 성공한 경우에만 과금됩니다. 종량제, 플랫폼 마진 없음, 구독 불필요.
Veo 3.1 Fast API로 영상을 어떻게 생성하나요?
Synthorai의 /v1/videos에 model="veo-3.1-fast-generate-001"로 POST를 보내 비동기 작업을 생성한 뒤, 작업을 폴링하거나 Prefer: wait 헤더로 요청을 유지한 채 완료를 기다리면 영상 URL을 받을 수 있습니다. 벤더 SDK는 필요 없습니다.
Veo 3.1 Fast는 어떻게 이용하나요?
기존 OpenAI SDK의 base_url을 "https://synthorai.io/v1"로 지정하고 model="veo-3.1-fast-generate-001"로 설정하면 끝입니다. API 키 하나로 게이트웨이의 모든 모델을 사용할 수 있습니다.
관련 모델
비교
이 페이지의 모든 값은 벤더 자체 문서(위 링크)에서 전사했으며 확인 날짜를 함께 표기합니다. 가격은 카탈로그 전체와 비교하지만, 벤더마다 정의가 다른 사양 값은 차이를 명시할 뿐 도표로 비교하지 않습니다. 저희가 측정한 수치는 없으며 점수도 매기지 않습니다.