> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tokenlab.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Tạo Video

> Tạo video với các thao tác công khai rõ ràng, polling bất đồng bộ và đầu vào phương tiện cụ thể cho mô hình.

Việc tạo video là bất đồng bộ. `POST /v1/videos/generations` trả về một danh tính tác vụ công khai và thường là một `poll_url`; video cuối cùng sẽ xuất hiện trong các phản hồi trạng thái sau.

Khi model Seedance đã chọn có thể dùng thư viện material của TokenLab, URL hình ảnh và data URL inline được hỗ trợ sẽ được chuẩn bị thành material TokenLab có thể tái sử dụng trước khi tạo video. Nếu quá 60 giây, hãy thử lại sau khi `auto_material_asset_ids` được trả về chuyển sang `ACTIVE`. Nếu model đã chọn không thể dùng thư viện material, input hình ảnh thông thường tiếp tục đi theo luồng hình ảnh thông thường.

## Các thao tác được hỗ trợ

Sử dụng `operation` rõ ràng trong sản xuất. TokenLab có thể suy luận một số thao tác từ đầu vào, nhưng các giá trị thao tác rõ ràng giúp việc xác thực, hỗ trợ và thử lại trở nên rõ ràng hơn.

| Thao tác             | Đầu vào yêu cầu hoặc điển hình                                                     | Trường hợp sử dụng                                |
| -------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------- |
| `text-to-video`      | `prompt`                                                                           | Tạo từ văn bản chỉ                                |
| `image-to-video`     | `image_url` hoặc `image` tương thích                                               | Hoạt hình một hình ảnh bắt đầu                    |
| `reference-to-video` | `reference_images` và tùy chọn `video_urls` / `audio_urls` trên các mô hình hỗ trợ | Giữ danh tính, phong cách hoặc tham chiếu tài sản |
| `start-end-to-video` | `start_image`, `end_image`                                                         | Kiểm soát khung hình đầu tiên và cuối cùng        |
| `video-to-video`     | `video_url` hoặc `task_id` cụ thể cho mô hình                                      | Biến đổi hoặc nâng cấp một clip hiện có           |
| `motion-control`     | `image_url` cộng với `video_url`                                                   | Áp dụng tham chiếu chuyển động cho một đối tượng  |
| `audio-to-video`     | `audio_url`                                                                        | Dòng video điều kiện âm thanh                     |
| `video-extension`    | `task_id`, `extend_at`, hoặc các trường mở rộng cụ thể cho mô hình                 | Tiếp tục một video đã được tạo                    |

## Khám Phá Mô Hình

```bash theme={null}
curl "https://api.tokenlab.sh/v1/models?recommended_for=video" \\
  -H "Authorization: Bearer sk-your-api-key"
```

Dùng model ID hiển thị trong TokenLab ở `model`, sau đó chọn biến thể tính năng bằng `operation` và đầu vào media tương ứng. Ví dụ gồm `wan-2.7`, `happyhorse-1.0`, `viduq3`, `viduq3-mix`, `pixverse-v6`, `kling-3.0-video`, `veo3.1`, và `seedance-2.0`; không dùng hậu tố riêng của operation làm tên model TokenLab.

Đọc chi tiết mô hình đã chọn trước khi dựa vào các trường chuyên biệt như `reference_images`, `kling_elements`, `output_audio`, `duration`, `resolution`, hoặc `aspect_ratio`.

## Tạo Yêu Cầu

```bash theme={null}
curl https://api.tokenlab.sh/v1/videos/generations \\
  -H "Authorization: Bearer sk-your-api-key" \\
  -H "Content-Type: application/json" \\
  -d '{
    "model": "veo3.1",
    "operation": "text-to-video",
    "prompt": "Một cảnh quay điện ảnh bình yên của một con mèo đi bộ qua một khu vườn ngập nắng",
    "duration": 4,
    "aspect_ratio": "16:9"
  }'
```

Đối với đầu vào phương tiện trong sản xuất, hãy ưu tiên URL `https` công khai thay vì URL `data:` nội tuyến. Nếu dùng URL tạm thời, hãy giữ URL hợp lệ cho đến khi TokenLab tạo xong tác vụ.

## Đầu Vào Và Các Trường Cụ Thể Cho Mô Hình

* Các yêu cầu của gia đình Veo 3 mặc định là âm thanh bật khi `output_audio` bị bỏ qua. Đặt nó một cách rõ ràng khi mô hình hỗ trợ công tắc và trải nghiệm người dùng của bạn phụ thuộc vào âm thanh.
* `kling_elements` dành cho các yêu cầu hình ảnh điều kiện `kling-3.0-video`. Tham chiếu từng phần tử trong `prompt` dưới dạng `@name`; không kết hợp nó với `output_audio=true`.
* Với họ Seedance 2.0, hãy đọc [hướng dẫn mô hình video Seedance 2.0](/vi/guides/seedance-2-video) trước khi dùng đầu ra 4K, giới hạn Fast/Mini hoặc đầu vào tham chiếu đa phương thức.
* Đối với `grok-imagine-video`, video-to-video sử dụng một `video_url` công khai `.mp4`; hãy kiểm tra chi tiết model trước khi đặt các giới hạn như `duration` và `resolution`.

## PixVerse và HappyHorse

| Mô hình                      | Thao tác                                                                      | Đầu vào                                                                     | Độ phân giải            | Thời lượng                                                                      | Bộ chọn âm thanh                 |
| ---------------------------- | ----------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ----------------------- | ------------------------------------------------------------------------------- | -------------------------------- |
| `pixverse-c1`, `pixverse-v6` | `text-to-video`, `image-to-video`, `start-end-to-video`, `reference-to-video` | `prompt`; `image_url`; `start_image` + `end_image`; `reference_images`      | 360p, 540p, 720p, 1080p | Bất kỳ số nguyên từ 1 đến 15 giây                                               | `output_audio`, mặc định `false` |
| `pixverse-v5.6`              | `text-to-video`, `image-to-video`, `start-end-to-video`, `reference-to-video` | Các trường giống như C1 và V6                                               | 360p, 540p, 720p, 1080p | 5, 8 hoặc 10 giây; 1080p hỗ trợ 5 hoặc 8 giây                                   | `output_audio`, mặc định `false` |
| `happyhorse-1.0`             | `text-to-video`, `image-to-video`, `reference-to-video`, `video-to-video`     | `prompt`; `image_url`; `reference_images`; `video_url` + `reference_images` | 720p, 1080p             | 3 đến 15 giây cho các thao tác tạo; đầu ra video-to-video bị giới hạn ở 15 giây | Không gửi `output_audio`         |

Trên TokenLab, các mô hình PixVerse ở trên không chấp nhận `operation=video-extension`.

```bash theme={null}
curl https://api.tokenlab.sh/v1/videos/generations \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "pixverse-v6",
    "operation": "image-to-video",
    "prompt": "A slow camera move through a neon-lit street",
    "image_url": "https://example.com/start.jpg",
    "resolution": "1080p",
    "duration": 5,
    "output_audio": true
  }'
```

## Polling Kết Quả

Sử dụng `poll_url` đã trả về trước. Nếu bạn cần một điểm cuối cố định, sử dụng `GET /v1/tasks/{id}` với cùng `id` / `task_id` từ phản hồi tạo.

Các tác vụ video đã hoàn thành có thể trả về `video_url`, `video`, hoặc `videos` tùy theo model và số lượng đầu ra. Xem `billing_transaction_id` như một định danh thanh toán, không phải là định danh tác vụ.

## Những Cạm Bẫy Thường Gặp

* Không mã hóa cứng các đường dẫn trạng thái video cũ; ưu tiên `poll_url`.
* Không kết hợp các trường khung hình đầu tiên với các dòng hình ảnh tham chiếu dành riêng trừ khi chi tiết model cho phép.
* Không giả định `duration` mô tả độ dài video tham chiếu đầu vào; nó thường kiểm soát độ dài đầu ra được tạo.
* Không thử lại các yêu cầu tạo sau khi hết thời gian mà không kiểm tra xem một tác vụ đã được tạo hay chưa.

## Tài Liệu API

| Chủ đề                | Tham chiếu                                                       |
| --------------------- | ---------------------------------------------------------------- |
| Tạo Video             | [Tạo Video](/vi/api-reference/video/create-video)                |
| Lấy Trạng Thái Video  | [Lấy Trạng Thái Video](/vi/api-reference/video/get-video-status) |
| Lấy Trạng Thái Tác Vụ | [Lấy Trạng Thái Tác Vụ](/vi/api-reference/tasks/get-task-status) |
| Hủy Tác Vụ            | [Hủy Tác Vụ](/vi/api-reference/tasks/cancel-task)                |
| Thanh Toán & Giá Cả   | [Thanh Toán & Giá Cả](/vi/guides/billing)                        |

## API video kiểu OpenAI và tương thích Volc

Dùng `/v1/videos/generations` cho API video hợp nhất của TokenLab trên nhiều mô hình. Nếu bạn đang di chuyển tích hợp Seedance 2.0 đã dùng `content[]` hoặc yêu cầu Action kiểu Volc, hãy dùng các endpoint tương thích Seedance dưới `/api/v3`. Cả hai kiểu đều dùng TokenLab Bearer API key và polling bất đồng bộ, nhưng hình dạng yêu cầu và phản hồi khác nhau.
