Vidu: Q2 Text-to-Video
Vidu Q2 tạo video từ yêu cầu cảnh bằng văn bản, với thời lượng 1–10 giây, đầu ra 540p, 720p hoặc 1080p và năm tỷ lệ khung hình. Cấu hình viduq2 cụ thể này dùng prompt cho phong cách và chuyển động, rồi trả kết quả qua tác vụ bất đồng bộ.
Về mô hình
Mô tả này trình bày khả năng của mô hình. Đầu vào, đầu ra và tùy chọn có trên Ailoot được liệt kê bên dưới cho phương thức đã chọn.
Vidu Q2 tạo video từ một cảnh viết bằng văn bản qua cấu hình tạo video từ văn bản được chọn bằng viduq2. Đầu vào bắt buộc là mã mô hình chính xác và prompt mô tả cảnh. Dùng cho ý tưởng sản phẩm ngắn, cảnh toàn giới thiệu hoặc hành động nhân vật có diện mạo và chuyển động mô tả được bằng lời. Phương thức được cấu hình này là tạo video từ văn bản; mô tả không gán chế độ ảnh tham chiếu hay chỉnh sửa video riêng cho mã chọn này.
Xây dựng yêu cầu quanh một chuỗi nhìn thấy được. Xác định chủ thể, địa điểm, hành động, cỡ cảnh, chuyển động máy quay và bố cục cuối. Với ý tưởng sản phẩm, mô tả vật trên mặt bàn, ánh sáng di chuyển trên chất liệu và máy quay tiến chậm, kết thúc ở chi tiết dễ nhận ra. Với cảnh địa điểm, giới thiệu môi trường trước khi tiến về điểm nhấn. Giữ hành động phù hợp với độ dài video đã chọn để cảnh có đủ thời gian cho đoạn kết mong muốn.
Giới hạn prompt là 2,000 ký tự. Đặt chủ thể và hành động thiết yếu trước, rồi thêm chi tiết ánh sáng, chất liệu, môi trường và máy quay có tác động đến kết quả mong muốn. Nêu phong cách hình ảnh trong prompt. Hướng dẫn riêng cho Q2 nói các tham số style và movement_amplitude riêng không có tác dụng với mô hình này, nên thiết lập sẵn general hoặc anime và tùy chọn biên độ chuyển động không thay thế được mô tả cảnh rõ ràng.
Thiết lập thời lượng riêng cho mô hình chấp nhận số giây nguyên từ một đến mười. Các lựa chọn độ phân giải riêng cho Q2 là 540p, 720p và 1080p, với 720p là mặc định được ghi. Chọn thời lượng và độ phân giải cùng nhau theo hành động và nơi sử dụng. Cảnh hé lộ ngắn và chuyển động dài hơn cần nhịp thời gian khác nhau; tăng thời lượng yêu cầu cần phục vụ chuỗi hình ảnh thay vì chỉ kéo dài một yêu cầu không đổi. Kiểm tra kích thước và độ dài thực tế của đoạn video trả về khi chuẩn bị đưa vào vị trí cuối cùng.
Các lựa chọn aspect_ratio được ghi là 16:9, 9:16, 3:4, 4:3 và 1:1, với 16:9 là mặc định. Hướng dẫn nêu rõ 3:4 và 4:3 cho họ Q2. Chọn khung hình trước khi tạo và mô tả bố cục phù hợp: giữ chủ thể chính dễ nhận biết trong khung dọc, hoặc dùng chiều rộng của khung ngang cho bối cảnh xung quanh. Giữ góc nhìn kết thúc đủ rõ cho trang, bài trình bày hoặc việc thêm chú thích sau này.
Trường seed điều khiển biến thể. Bỏ qua trường hoặc cung cấp 0 chọn giá trị ngẫu nhiên; giá trị khác không chọn tùy chọn seed cố định được ghi để tạo kết quả có thể lặp lại. Giữ seed được trả cùng prompt và thiết lập khi so sánh phiên bản. Thao tác dùng chung cũng ghi các tùy chỉnh audio và off_peak dành riêng cho mô hình Q3. Các tùy chọn Q3 đó không phải khả năng được gán cho cấu hình Q2 này; hãy lập yêu cầu dựa trên đầu vào văn bản và đầu ra video được mô tả của nó.
Quá trình tạo diễn ra bất đồng bộ. Việc gửi trả task_id và trạng thái ban đầu, với created dùng cho tác vụ mới tạo. Giữ mã tác vụ đó khi theo dõi xử lý. Truy vấn kết quả được ghi dùng state=success cho kết quả thành công và trả mảng creations. Mỗi mục có URL video trong creations[].url; lưu mọi video được trả thay vì cho rằng tác vụ luôn chứa đúng một sản phẩm.
Tài liệu kết quả cũng báo duration, fps cùng chiều rộng và chiều cao độ phân giải của video thực tế. Giữ các giá trị được báo đó cùng đoạn video hoàn chỉnh, thay vì xem tốc độ khung hình hay kích thước trong ví dụ như thông số Q2 cố định. Phản hồi tạo tác vụ có giá trị credits bên cạnh cấu hình yêu cầu. Giữ siêu dữ liệu tác vụ được báo và mã của tác vụ đã hoàn tất cùng kết quả, để mỗi video vẫn gắn với các thiết lập tạo của nó.
Đối chiếu toàn bộ chuỗi với yêu cầu gốc: diện mạo chủ thể, hình dạng vật, hướng chuyển động, tính liên tục của máy quay và góc nhìn cuối mong muốn. Khi sửa, xác định chi tiết cụ thể chưa đúng yêu cầu và giữ các phần thành công của cảnh. Giữ prompt, mã chọn chính xác, thiết lập, mã tác vụ và các video hoàn chỉnh cùng nhau, để lần so sánh sau dựa trên thành phẩm thực tế.
Ailoot Ultra · Tạo video POST /v1/videos viduq2
viduq2Bắt đầu
Vidu Q2 tạo video từ yêu cầu cảnh bằng văn bản, với thời lượng 1–10 giây, đầu ra 540p, 720p hoặc 1080p và năm tỷ lệ khung hình. Cấu hình viduq2 cụ thể này dùng prompt cho phong cách và chuyển động, rồi trả kết quả qua tác vụ bất đồng bộ.
- Đầu vào được chấp nhận
- Văn bản
- Kết quả
- Video
Có trên Ailoot · đầu vào & phương thức
Ailoot Ultra · Tạo video POST /v1/videos
- Đầu vào
text- Đầu ra
video
| Trường | Loại | Yêu cầu | Giá trị & giới hạn | Mặc định |
|---|---|---|---|---|
Trườngmodel | Loạistring | Yêu cầuBắt buộc | Giá trị & giới hạn viduq2 | Mặc định— |
Trườngprompt | Loạistring | Yêu cầuBắt buộc | Giá trị & giới hạn Điều kiện: Mô tả cảnh cần tạo. Giới hạn được tài liệu quy định là 2000 ký tự; Ailoot kiểm tra chuỗi không rỗng và giữ nguyên văn bản. | Mặc định— |
Trườngduration | Loạiinteger | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tối thiểu: 1 Tối đa: 10 Điều kiện: Mô tả riêng của mô hình viduq2 quy định thời lượng nguyên từ 1–10 giây. Tài liệu không quy định thời lượng mặc định riêng cho mô hình. Đơn vị: giây | Mặc định— |
Trườngseed | Loạistring | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Điều kiện: Bỏ qua hoặc gửi chuỗi "0" để chọn ngẫu nhiên. Khi cung cấp seed khác không, hệ thống áp dụng hành vi seed cố định được tài liệu quy định; không quy định khoảng giá trị số. | Mặc định— |
Trườngaspect_ratio | Loạistring | Yêu cầuKhông bắt buộc | Giá trị & giới hạn 16:9, 9:16, 3:4, 4:3, 1:1 | Mặc định16:9 |
Trườngresolution | Loạistring | Yêu cầuKhông bắt buộc | Giá trị & giới hạn 540p, 720p, 1080p Điều kiện: Danh sách riêng của mô hình viduq2 quy định các bậc này cho thời lượng 1–10 giây. Tập giá trị liệt kê và bảng dùng chung cũng đề cập 360p; phạm vi áp dụng mâu thuẫn với danh sách đó nên không được khẳng định ở đây. | Mặc định720p |
Trườngstyle | Loạistring | Yêu cầuKhông bắt buộc | Giá trị & giới hạn general, anime Điều kiện: Yêu cầu dùng chung chấp nhận trường này, nhưng tài liệu nêu rõ trường không có tác dụng với viduq2. | Mặc địnhgeneral |
Trườngmovement_amplitude | Loạistring | Yêu cầuKhông bắt buộc | Giá trị & giới hạn auto, small, medium, large Điều kiện: Yêu cầu dùng chung chấp nhận trường này, nhưng tài liệu nêu rõ trường không có tác dụng với các mô hình q2. | Mặc địnhauto |
Tổ hợp tư liệu đầu vào
Tham số phương thức và vòng đời
| Tham số | Hợp đồng |
|---|---|
Tham sốcontent_type | Hợp đồngapplication/json |
Tham sốrequired | Hợp đồngmodel, prompt |
Tham sốoptional | Hợp đồngduration, seed, aspect_ratio, resolution, style, movement_amplitude |
Tham sốmaterial_types | Hợp đồngtext |
Tham sốadditional_properties | Hợp đồngtrue |
Tham sốvalidation_scope | Hợp đồngAiloot xác thực các chuỗi model/prompt không rỗng. Các kiểu và giới hạn tùy chọn bên dưới là hợp đồng yêu cầu theo tài liệu; các trường yêu cầu khác được giữ nguyên cho mô hình đã chọn. |
Bí danh phương thức: /v1/videos/generations
Vòng đời: submit_once_poll_original
GET /v1/videos/{request_id}
GET /v1/videos/generations/{request_id}
GET /v1/videos/{request_id}/content
GET /v1/videos/generations/{request_id}/content
Tạo một lần và giữ lại id công khai cùng polling_url được trả về.
Thăm dò thao tác ban đầu và đọc state; trạng thái success cùng kết quả creations[].url thuộc quyền sở hữu xác định thao tác đã hoàn tất.
Tải xuống mọi URL video thuộc quyền sở hữu được trả về; không suy ra số lượng đầu ra, thời lượng hoặc tốc độ khung hình cố định từ ví dụ.
Bảng giá
Cách tính phí cuối cùng
Các đơn giá hiển thị dùng để ước tính chi phí trước khi tạo. Khoản phí cuối cùng được tính dựa trên chi phí ghi nhận cho lượt tạo gốc. Thời lượng đầu ra đo được và số lượng dự kiến không phải là số lượng cuối cùng dùng để tính phí.
Thông tin biểu giá không bổ sung tùy chọn yêu cầu. Các tham số được hỗ trợ nằm trong phương thức đã chọn.
- Chế độ nhanh
- Chưa chỉ định Khi chọn chế độ nhanh
- Chế độ Flex
- Chưa chỉ định Khi chọn chế độ flex
- Mức độ suy luận tối đa
- Chưa chỉ định Khi áp dụng mức điều chỉnh mặc định (default) cho mức độ suy luận tối đa
Mức phí ước tính để so sánh
Giá theo cấu hình
Đối chiếu từng khoản phí với điều kiện hiển thị. Dùng một mức phí cho mỗi nhóm cấu hình thay thế.
| Cấu hình | Biểu mức phí | Số lượng dự báo | Phí |
|---|---|---|---|
| Cấu hìnhGiá cơ sở cho token | Biểu mức phíMức phí cơ bản | Số lượng dự báo— | Phí Đầu vào · Token đầu vào · Ước tính chỉ để so sánh — / 1K token Đầu ra · Token đầu ra · Ước tính chỉ để so sánh — / 1K token Đầu vào · Đọc bộ nhớ đệm · Ước tính chỉ để so sánh — / 1K token Đầu vào · Ghi bộ nhớ đệm · Ước tính chỉ để so sánh — / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ · Ước tính chỉ để so sánh — / 1K token |
| Cấu hìnhChi phí tạo ước tính | Biểu mức phí— | Số lượng dự báoước tính cho một lần tạo | Phí Đầu ra · Chi phí tạo ước tính · Ước tính chỉ để so sánh $5.12 ước tính trước khi tạo Ước tính này không phải là khoản phí bổ sung hay mức giá cố định cho lượt tạo đã hoàn tất. |
Ailoot tạm giữ một khoản ước tính trước yêu cầu. Sau khi có kết quả, phí cuối cùng được quyết toán theo mức sử dụng đo được. Việc quyết toán khi truyền luồng dùng bản ghi mức sử dụng cuối cùng. Cách hoạt động của cơ chế tạm giữ và quyết toán →
Ví dụ yêu cầu
Ailoot Ultra · Tạo video
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON_REQUEST'
{"model":"viduq2","prompt":"In an ultra-realistic fashion photography style featuring light blue and pale amber tones, an astronaut in a spacesuit walks through the fog. The background consists of enchanting white and golden lights, creating a minimalist still life and an impressive panoramic scene."}
JSON_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_POLL'
import json
from pathlib import Path
from urllib.parse import quote,urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
i=r.get("id")
if not isinstance(i,str) or not i:raise SystemExit("Keep original response/headers/id; do not resubmit creation.")
u=urljoin("https://api.ailoot.ai",r.get("polling_url") or "/v1/videos/"+quote(i,safe=""))
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/videos/"):raise SystemExit("Use the actual Ailoot lookup path.")
Path("poll-url.txt").write_text(u)
PY_POLL
curl --fail-with-body --silent --show-error "$(cat poll-url.txt)" -H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
set -eu
python3 - <<'PY_ASSETS'
import json
from pathlib import Path
from urllib.parse import urlsplit
r=json.loads(Path("status.json").read_text())
if r.get("state")!="success":raise SystemExit("Poll the same original job until its owned result is returned.")
creations=r.get("creations")
if not isinstance(creations,list) or not creations:raise SystemExit("No completed video creations.")
urls=[]
for item in creations:
value=item.get("url") if isinstance(item,dict) else None
values=[value] if isinstance(value,str) else value
if not isinstance(values,list) or not values:raise SystemExit("No completed video URL.")
for u in values:
if not isinstance(u,str):raise SystemExit("Invalid returned URL.")
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/media/assets/") or not p.path.endswith("/content") or not p.query:raise SystemExit("Wait for the actual Ailoot-owned signed result.")
urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_ASSETS
index=0
while IFS= read -r asset_url; do
curl --fail-with-body --silent --show-error "$asset_url" -o "video-${index}.bin"
index=$((index + 1))
done < asset-urls.txt
Nhận và lưu kết quả
Ailoot Ultra · Tạo video
JSON giữ nguyên state và mảng creations gốc, đồng thời thêm id/provider_task_id/polling_url công khai. Các URL video được chọn để trống trước khi công bố và trở thành URL đã ký thuộc quyền sở hữu của Ailoot sau khi hoàn tất.
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Lưu tất cả kết quả đã hoàn tất
Lưu mọi video đã hoàn tất hoặc tệp trả về; truy xuất từng URL tài nguyên thực tế được trả về.
Tải xuống mọi URL thực tế được trả về trong creations[].url; chỉ số nội dung xác định một đầu ra thực tế được trả về.
Nếu cần kiểm tra phản hồi gốc
Khai báo đã cố định không liệt kê trạng thái thất bại cuối cùng. Giữ nguyên phản hồi/tiêu đề/id ban đầu và kiểm tra chính thao tác đó khi gặp trạng thái không nhận diện được hoặc lỗi result_pending_check; tuyệt đối không gửi lại yêu cầu tạo chưa rõ kết quả.
Trường phản hồi
| Trường | Loại | Ý nghĩa |
|---|---|---|
Trườngid | Loạistring | Ý nghĩaMã định danh tác vụ hoặc thao tác Ailoot công khai được trả về. |
Trườngprovider_task_id | Loạistring | Ý nghĩaMã định danh tác vụ ban đầu, riêng biệt với id công khai. |
Trườngpolling_url | Loạistring | Ý nghĩaĐường dẫn tra cứu Ailoot được trả về cho tác vụ ban đầu. |
Trườngtask_id | Loạistring when supplied | Ý nghĩaMã định danh ban đầu có trong phản hồi tạo. |
Trườngstate | Loạistring when supplied | Ý nghĩaTrạng thái tác vụ gốc: created cho trạng thái chờ đã cố định và success khi hoàn tất. |
Trườngerr_code | Loạistring when supplied | Ý nghĩaThông tin chẩn đoán tác vụ; đặc tả đã lưu không khai báo danh sách mã lỗi liệt kê sẵn. |
Trườngcreations[].url | Loạistring|string[] | Ý nghĩaMỗi URL video hoàn tất được chọn đều được thay bằng URL đã ký thuộc quyền sở hữu của Ailoot. |
Trườngcreations[].video.duration | Loạinumber when supplied | Ý nghĩaThời lượng video được trả về; kiểm tra kết quả hoàn tất thực tế. |
Trườngcreations[].video.fps | Loạiinteger when supplied | Ý nghĩaTốc độ khung hình được trả về; không cam kết tốc độ khung hình cố định. |
Trườngcreations[].video.resolution.width | Loạiinteger when supplied | Ý nghĩaChiều rộng đầu ra được trả về tính bằng pixel. |
Trườngcreations[].video.resolution.height | Loạiinteger when supplied | Ý nghĩaChiều cao đầu ra được trả về tính bằng pixel. |
Lỗi và bước tiếp theo
| Phản hồi | Điều kiện | Bước tiếp theo |
|---|---|---|
Phản hồi400 · invalid_request_error | Điều kiệnJSON/model không hợp lệ, thiếu hoặc rỗng các chuỗi bắt buộc, hoặc chỉ số nội dung không hợp lệ. | Bước tiếp theo |
Phản hồi401 · authentication_error | Điều kiệnKhóa API Ailoot không hợp lệ. | Bước tiếp theo |
Phản hồi403 · permission_error | Điều kiệnNhóm của khóa API không được phép sử dụng tuyến đa phương tiện này. | Bước tiếp theo |
Phản hồi404 · not_found_error | Điều kiệnTác vụ ban đầu hoặc đầu ra được yêu cầu không tồn tại hoặc không thuộc cùng người dùng/khóa API/nhóm. | Bước tiếp theo |
Phản hồi502 · result_pending_check | Điều kiệnLần gửi hoặc trạng thái ban đầu chưa đầy đủ hoặc chưa thể đối soát; hãy giữ nguyên ID ban đầu và không gửi lại. | Bước tiếp theo |
Phản hồi503 · result_pending_check | Điều kiệnLiên kết, tuyến hoặc nội dung đa phương tiện thuộc quyền sở hữu ban đầu vẫn đang được kiểm tra; tiếp tục kiểm tra thao tác ban đầu đó. | Bước tiếp theo |
Phản hồi503 · server_error | Điều kiệnDịch vụ đa phương tiện hoặc kho lưu trữ tác vụ ban đầu không khả dụng. | Bước tiếp theo |
Bí danh
Bí danh mô hình
Ailoot Ultra viduq2
Bí danh đường dẫn phương thức
/v1/videos/generations
ID gọi liên quan
FAQ · Vidu: Q2 Text-to-Video
- Có những đầu vào và kết quả nào?
POST /v1/videos·viduq2:text→video- Yêu cầu sử dụng những trường nào?
POST /v1/videos·viduq2:model,prompt,duration,seed,aspect_ratio,resolution,style,movement_amplitude- Áp dụng những giới hạn nào?
POST /v1/videos·viduq2:duration.minimum:1;duration.maximum:10