Veo 3.1
Tạo clip video bằng Veo 3.1 qua một API tác vụ duy nhất: ba mô hình tính giá theo clip 8 giây và hai mô hình tính giá theo giây, hỗ trợ khung hình, âm thanh và xuất GIF.
Veo 3.1 là mô hình tạo video của Google. SeedRouter cung cấp mô hình này với năm ID trên cùng một endpoint: ba mô hình tính giá theo clip, mỗi clip dài 8 giây, và hai mô hình tính giá theo giây với nhiều tùy chỉnh hơn (độ dài, âm thanh, seed, prompt loại trừ, khung hình đầu và cuối). Hãy gửi yêu cầu, giữ ID tác vụ được trả về, rồi đọc video hoàn chỉnh từ tác vụ. Ảnh được truyền vào dưới dạng URL.
ID mô hình
| ID mô hình | Tính phí | Độ dài | Ảnh | Âm thanh |
|---|---|---|---|---|
veo-3.1-fast | theo clip | 8 giây | tối đa 3, chế độ frame hoặc reference | không có công tắc |
veo-3.1-quality | theo clip | 8 giây | tối đa 3, chế độ frame | không có công tắc |
veo-3.1-lite | theo clip | 8 giây | không (văn bản thành video) | không có công tắc |
veo-3.1-fast-official | theo giây | 4, 6 hoặc 8 giây | khung hình đầu và cuối | generate_audio |
veo-3.1-quality-official | theo giây | 4, 6 hoặc 8 giây | khung hình đầu và cuối | generate_audio |
Xem trang mô hình để biết giá hiện tại.
Ví dụ nhanh
curl https://api.seedrouter.ai/v1/videos/generations \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3.1-fast",
"prompt": "A red paper boat drifts across a calm pond at sunrise, soft mist on the water, slow push-in on a 35mm lens, no text, no logos.",
"resolution": "720p",
"aspect_ratio": "16:9"
}'Endpoint
POST https://api.seedrouter.ai/v1/videos/generations| Header | Giá trị |
|---|---|
| Authorization | Bearer YOUR_API_KEY |
| Content-Type | application/json |
Phản hồi là một tác vụ ({"id": "task_...", "status": "processing"}), không phải video hoàn chỉnh. Hãy truy vấn GET /v1/tasks/{task_id} để lấy kết quả. Hãy giữ khóa API trong code phía máy chủ.
Tham số: mô hình theo clip
veo-3.1-fast, veo-3.1-quality và veo-3.1-lite.
| Trường | Kiểu | Mặc định | Ghi chú |
|---|---|---|---|
model | string | bắt buộc | Một trong ba ID ở trên. |
prompt | string | bắt buộc | Mô tả cảnh quay. |
duration | integer | 8 | Chỉ chấp nhận 8. |
aspect_ratio | enum | 16:9 hoặc 9:16. | |
resolution | enum | 720p | 720p, 1080p hoặc 4k (không phân biệt hoa thường). veo-3.1-lite không có 4k. |
enable_gif | boolean | false | Trả clip dưới dạng GIF động thay vì MP4. Chỉ 720p. |
nsfw_check | boolean | false | Kiểm tra prompt và ảnh để phát hiện nội dung không an toàn trước khi tạo. |
image_urls | array | Chỉ Fast và Quality. Tối đa 3 URL ảnh công khai. | |
generation_type | enum | theo số lượng ảnh | Chỉ Fast và Quality. frame hoặc reference; Quality chỉ nhận frame. |
Tham số: mô hình theo giây
veo-3.1-fast-official và veo-3.1-quality-official.
| Trường | Kiểu | Mặc định | Ghi chú |
|---|---|---|---|
model | string | bắt buộc | Một trong hai ID ở trên. |
prompt | string | bắt buộc | Mô tả cảnh quay. |
negative_prompt | string | Những gì cần loại khỏi clip. | |
duration | integer | 8 | 4, 6 hoặc 8 giây. |
aspect_ratio | enum | 16:9 | 16:9 hoặc 9:16. |
resolution | enum | 720p | 720p, 1080p hoặc 4k (không phân biệt hoa thường). |
first_frame_image | string | URL ảnh công khai. Clip mở đầu bằng ảnh này. | |
last_frame_image | string | URL ảnh công khai. Cần có first_frame_image. | |
seed | integer | ngẫu nhiên | Từ 0 đến 4294967295. |
generate_audio | boolean | false | Thêm track âm thanh. Tính theo mức giá mỗi giây cao hơn. |
person_generation | enum | allow_adult | allow_adult hoặc disallow. |
resize_mode | enum | pad | pad hoặc crop. Cần có first_frame_image. |
enhance_prompt | boolean | true | Chỉ chấp nhận true; nếu không thì bỏ trường này. |
nsfw_check | boolean | false | Kiểm tra prompt và ảnh để phát hiện nội dung không an toàn trước khi tạo. |
Lược đồ được kiểm tra chặt chẽ: trường không xác định sẽ bị từ chối chứ không bị bỏ qua, và mỗi mô hình chỉ nhận các trường của riêng nó. Không hỗ trợ callback; hãy truy vấn tác vụ thay thế.
Chế độ ảnh
Trên veo-3.1-fast và veo-3.1-quality, generation_type quyết định cách dùng image_urls:
generation_type | Ảnh | Tác dụng |
|---|---|---|
frame | 1 hoặc 2 | Ảnh đầu tiên là khung hình đầu, ảnh thứ hai là khung hình cuối. |
reference | tối đa 3 | Các ảnh làm tham chiếu cho chủ thể và phong cách. Chỉ Fast. |
| bỏ trống | 2 hoặc 3 | Hai ảnh dùng chế độ frame, ba ảnh dùng chế độ reference. |
veo-3.1-quality không chạy chế độ reference, nên sẽ từ chối generation_type: "reference" và ba ảnh không kèm generation_type. veo-3.1-lite không nhận ảnh.
Trên mô hình theo giây, hãy đặt first_frame_image và, nếu muốn, last_frame_image. resize_mode chọn việc ảnh có khuôn hình khác sẽ được thêm viền hay bị cắt.
Đầu vào media
Ảnh là URL HTTP(S) công khai:
{ "image_urls": ["https://example.com/first.jpg", "https://example.com/last.jpg"] }Trên mô hình theo clip, mỗi ảnh phải là JPEG, PNG hoặc WebP và tối đa 10 MB; tệp vi phạm các quy định này sẽ khiến tác vụ thất bại mà không bị tính phí. Không chấp nhận dữ liệu Base64: hãy tải tệp lên kho lưu trữ của riêng bạn rồi truyền URL của tệp.
Các yếu tố chi phí
Xem phần giá của mô hình để biết mức giá hiện tại.
per-clip models: cost = price of one clip at the output resolution (720p and 1080p cost the same)
per-second models: cost = duration × rate for the resolution and audio settingKhoản phí được cố định khi yêu cầu được tiếp nhận, nên số tiền tạm giữ chính là số tiền bị tính. Xem khoản phí cuối cùng trong lịch sử sử dụng của tài khoản. Tác vụ thất bại không bị tính phí.
Lược đồ đầu ra
Khi gửi, API trả về tác vụ:
{"id": "task_...", "model": "veo-3.1-fast", "status": "processing", "created_at": 1789689600}Lấy thông tin tác vụ
GET https://api.seedrouter.ai/v1/tasks/{task_id}Hãy truy vấn 10–20 giây một lần cho đến khi status là completed hoặc failed. Hết thời gian mạng trong lúc truy vấn không có nghĩa là việc tạo video đã thất bại: hãy giữ ID tác vụ và tiếp tục kiểm tra. Đừng tạo tác vụ khác chỉ để xem tiến độ.
Tác vụ hoàn tất
{
"id": "task_...",
"model": "veo-3.1-fast",
"status": "completed",
"created_at": 1789689600,
"finished_at": 1789689720,
"output": {
"video_url": "https://static.seedrouter.ai/media/tasks/task_example/0.mp4"
}
}video_url là tệp MP4, hoặc GIF khi yêu cầu có đặt enable_gif. Liên kết nằm trên kho lưu trữ của SeedRouter.
Kết quả các lần chạy thử của chúng tôi (mỗi trường hợp một lần, 2026-10-04):
| Yêu cầu | Tệp |
|---|---|
veo-3.1-fast, 9:16, chế độ frame | MP4, H.264, 720 × 1280, 24 fps, 8 giây, có track âm thanh AAC stereo |
veo-3.1-fast-official, 16:9, 720p, 4 giây, không có generate_audio | MP4, H.264, 1280 × 720, 24 fps, 4 giây, không có track âm thanh |
veo-3.1-lite, enable_gif | GIF, 480 × 270, 16 fps, 8 giây |
Mô hình theo clip không có công tắc âm thanh; mô hình theo giây chỉ thêm track âm thanh khi có generate_audio.
Lỗi
Những yêu cầu bị từ chối trước khi tác vụ được tạo sẽ trả về lỗi HTTP kèm đối tượng error và không bị tính phí. Tác vụ thất bại sau khi đã được tiếp nhận sẽ trả về HTTP 200 khi truy vấn, kèm status: "failed" và một đối tượng error.
Hãy xem danh mục lỗi dùng chung để biết mã lỗi, mã trạng thái HTTP và hướng dẫn thử lại.
{
"id": "task_...",
"model": "veo-3.1-fast",
"status": "failed",
"error": {
"code": 60001,
"message": "The request was rejected by the content policy. Please revise the prompt or input images."
}
}Nếu chính lần gửi bị hết thời gian chờ, hãy kiểm tra các tác vụ của bạn trước khi gửi lại: yêu cầu đầu tiên có thể đã được tiếp nhận.
Mẹo
- Bắt đầu với
veo-3.1-litehoặcveo-3.1-fastở 720p để thử prompt, rồi chuyển sang Quality hoặc 4k cho bản render cuối. - Hãy nêu rõ máy quay và ánh sáng: ống kính và chuyển động máy quay thay đổi cảnh quay nhiều hơn tính từ.
- Thêm
no text, no logosđể loại chữ và ký hiệu tự bịa ra khỏi khung hình. - Với cảnh quay phải mở đầu và kết thúc bằng những ảnh đã biết, hãy dùng chế độ frame với hai ảnh, hoặc mô hình theo giây với
first_frame_imagevàlast_frame_image. - Cố định
seedtrên mô hình theo giây và chỉ đổi một vế câu mỗi lần để tinh chỉnh một cảnh quay.
