Câu trả lời nhanh: Để mở rộng một video bằng Gemini Omni 1.2 Flash, hãy gửi clip của bạn cùng một prompt nối tiếp ngắn tới Interactions API. Mỗi lượt sẽ thêm từ 3 đến 10 giây và trả về clip dài hơn. Gemini API dừng ở tổng cộng 30 giây. Agent Platform của Google Cloud chạm tới 40 giây, nhưng chỉ khi bạn lên kế hoạch cho từng bước để phần mở đầu không bị cắt bỏ.
Để có lời khuyên về cách viết prompt, hãy xem hướng dẫn mở rộng cảnh Omni 1.1 của chúng tôi. Bài hướng dẫn này tập trung vào những điểm mới: các request, phép tính khi xếp chuỗi và chi phí của một clip 40 giây.
Tính năng mở rộng video của Gemini Omni 1.2 Flash hoạt động ra sao
Mở rộng video tạo ra phần tiếp nối ở cuối một clip. Mô hình đọc tối đa 10 giây cuối của đầu vào làm ngữ cảnh, viết thêm từ 3 đến 10 giây mới, rồi nối chúng vào clip. Nó chỉ nối thêm vào cuối: bạn không thể chèn footage vào đầu hay mở rộng phần giữa.
Google công bố các giới hạn khác nhau tùy vào nơi bạn gọi mô hình:
| Gemini API | Agent Platform (Google Cloud) | |
|---|---|---|
| Xác thực | API key | Project và access token |
| Tổng thời lượng | 30 giây | 40 giây |
| Độ dài đầu vào | Không nêu giới hạn riêng | Bất kỳ độ dài nào |
| Ảnh tham chiếu | Tối đa 6 trên Omni | Tối đa 2 mỗi lần mở rộng |
| Chế độ mở rộng | Prompt trước, task làm phương án dự phòng |
task: "extend" trong mọi mẫu |
| Seed và labels | Không có trong tài liệu Omni | generation_config.seed, labels |
| Kết quả được lưu trữ | 55 ngày trên gói trả phí | Tối đa 7 ngày |
Nguồn tham khảo: tài liệu Omni của Gemini API và tài liệu mở rộng của Agent Platform.
Trên Agent Platform, mô hình đọc tối đa 10 giây cuối, rồi nối phân đoạn mới vào tối đa 30 giây cuối của đầu vào. Ví dụ của Google mở rộng một đầu vào 60 giây thêm 10 giây và trả về 40 giây, tức là 30 giây đầu tiên đã bị loại bỏ.

Bạn không phải tự ghép bất kỳ thứ gì, vì đầu ra đã bao gồm phần footage trước đó. Tuy nhiên, Google có chỉnh sửa một số khung hình cuối của đầu vào để làm mượt quá trình chuyển tiếp.
Những thay đổi của tính năng mở rộng trong phiên bản 1.2
- Clip bắt đầu dài 15 giây. Bản 1.1 dừng ở 10 giây. Mỗi lượt mở rộng vẫn bị giới hạn ở 10 giây.
- Ảnh tham chiếu, seed và labels trong các request mở rộng trên Agent Platform.
- Cú pháp prompt mới. Google đã ngừng hỗ trợ các thẻ như
<IMAGE_REF_0>mà các hướng dẫn cũ sử dụng. Hãy mô tả từng ảnh bằng ngôn ngữ tự nhiên. - Kiểu đầu vào mới. Các mẫu hiện tại gửi
"type": "video", không còn là kiểudocumentnhư trong các ví dụ của bản 1.1.
Mở rộng video từng bước trên Gemini API
- Tạo một clip, hoặc tải lên một clip qua Files API. Các tệp đã tải lên sẽ bị xóa sau 48 giờ.
- Chỉ mô tả những gì xảy ra tiếp theo.
- Đặt
durationtrong khoảng từ"3s"đến"10s"(mặc định là 10). - Lưu lại interaction ID cho lượt tiếp theo.
from google import genai
client = genai.Client()
first = client.interactions.create(
model="gemini-omni-1.2-flash",
input="A courier in a yellow jacket cycles through a rainy night market.",
response_format={"type": "video", "duration": "15s"},
)
second = client.interactions.create(
model="gemini-omni-1.2-flash",
previous_interaction_id=first.id,
input="The courier brakes at a red door. Keep the same yellow jacket.",
response_format={"type": "video", "duration": "10s", "delivery": "uri"},
)
Để mở rộng footage do chính bạn quay, hãy thay previous_interaction_id bằng một mảng đầu vào gồm {"type": "video", "uri": video_file.uri} và một mục văn bản.
- Ban đầu hãy bỏ qua
task. Google cho biết tham số này tạo ra các ràng buộc nghiêm ngặt, vì vậy chỉ đặt"task": "extend"trongvideo_configlàm phương án dự phòng. - Dùng
delivery: "uri"cho tệp trên 4MB. Lưu lại URI từ response khi tạo. Các lệnh GET về sau sẽ trả về base64 nội tuyến ngay cả với những request đã dùng URI. - Giữ
storeở trạng thái bật. Vớistore: false, bạn không thể tiếp tục từ interaction ID đó.
Việc tải lên còn có thêm hai giới hạn: không thể thêm lời thoại vào đoạn có người đang nói, và không thể mở rộng từ khu vực EEA, Thụy Sĩ hay Vương quốc Anh. Mở rộng nhiều lượt cho video do mô hình tạo ra tránh được cả hai giới hạn này.
Hướng dẫn chi tiết request trên Agent Platform
Hãy dùng tuyến này khi cần 40 giây hoặc hàng đợi công việc. Quá trình tạo có thể mất hơn một phút, vì vậy hãy POST body sau tới https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions với background ở trạng thái bật:
{
"model": "gemini-omni-1.2-flash",
"background": true,
"input": [
{ "type": "text", "text": "The courier opens the red door and steps inside." },
{ "type": "video", "uri": "gs://my-bucket/hop-1.mp4", "mime_type": "video/mp4" }
],
"response_format": [
{
"type": "video",
"delivery": "uri",
"gcs_uri": "gs://my-bucket/out/",
"aspect_ratio": "16:9",
"duration": "5s"
}
],
"generation_config": {
"seed": 4242,
"video_config": { "task": "extend" }
},
"labels": { "campaign": "courier", "hop": "2" }
}
Lệnh gọi trả về một interaction ID với trạng thái in_progress. Hãy thăm dò bằng GET .../locations/global/interactions/INTERACTION_ID. Khi hoàn tất, đọc URI gs:// từ bước model_output trong steps. URI đó trở thành đầu vào cho hop tiếp theo của bạn.
Các chế độ stateless (store: false), stateful (store: true) và streaming cũng tồn tại. Kết quả được lưu trữ và kết quả bất đồng bộ chỉ giữ tối đa 7 ngày, vì vậy hãy sao chép bất cứ thứ gì bạn cần.
[VERIFY] Chưa chạy thử: không có dự án Google Cloud nào khả dụng. Body mẫu của Google không hiển thị cảseedlẫnlabels, nên hãy xác nhận vị trí khai báo của chúng.
Xếp chuỗi để chạm giới hạn 40 giây
Một hop chỉ giữ được trọn vẹn footage của bạn nếu đầu vào của nó có độ dài từ 30 giây trở xuống. Để chạm mốc 40 giây mà không mất đoạn nào, hãy đạt chính xác 30 giây trước.
| Hop | duration có kế hoạch |
Đầu ra có kế hoạch | duration không có kế hoạch |
Đầu ra không có kế hoạch |
|---|---|---|---|---|
| Bắt đầu | 15s | 15s | 15s | 15s |
| 1 | 10s | 25s | 10s | 25s |
| 2 | 5s | 30s | 10s | 35s |
| 3 | 10s | 40s | 10s | 40s, mất 5 giây đầu |

Chuỗi không có kế hoạch mua thêm được 5 giây, rồi lại vứt bỏ phần mở đầu của bạn. Độ dài clip sẽ không cảnh báo bạn, vì cả hai chuỗi đều trả về 40 giây.
Khởi đầu 15 giây không giúp tiết kiệm số lần gọi ở mốc 40 giây: bắt đầu từ 10 giây cũng cần ba lần mở rộng. Nó có ích ở các mốc khác, vì 25 giây chỉ cần một lần mở rộng thay vì hai, còn 35 giây cần hai thay vì ba.
Trên Gemini API, hãy dừng sau hop 2. Google không nói gì về những gì sẽ xảy ra với request vượt quá 30 giây.
Giữ nhân vật ổn định bằng ảnh tham chiếu và seed
Một nhân vật đã rời khỏi khung hình trước 10 giây cuối sẽ vô hình với mô hình, ngay cả khi các khung hình đó vẫn còn trong clip. Giải pháp của Google: nhắc lại nhân vật hoặc truyền một ảnh tham chiếu trong cùng mảng input:
{ "type": "image", "uri": "gs://my-bucket/courier.png", "mime_type": "image/png" },
{ "type": "text", "text": "The courier from the reference image walks back into frame." }
- Tái sử dụng cùng một ảnh ở mọi hop cần nhân vật đó.
- Chọn ảnh cẩn thận trên Agent Platform. Hai ảnh mỗi lần mở rộng chỉ đủ bao quát những yếu tố dễ bị lệch nhất.
- Đừng gửi video tham chiếu. Google chỉ hỗ trợ chúng cho việc tạo video mới, không phải cho mở rộng.
- Cho biết mốc thời gian tính theo phân đoạn mới. Mốc 0s trong prompt của bạn là điểm bắt đầu của phần được mở rộng, không phải của cả clip.
Đặt generation_config.seed để có kết quả tái lập được. Tham số này hữu ích nhất khi gỡ lỗi: chạy lại một hop với cùng seed để xem thay đổi có đến từ prompt của bạn hay không. Google không cam kết seed giữ cho nhân vật ổn định giữa các prompt khác nhau, nên hãy dựa vào ảnh tham chiếu cho việc đó. Dùng labels để theo dõi chi phí theo từng hop.
Một clip 40 giây tốn bao nhiêu tiền
Trang định giá của Google tính phí đầu ra video Omni 1.2 với giá 12,00 USD mỗi triệu token. Trang này không nêu rõ một lần mở rộng được tính phí theo số giây mới hay theo mọi giây được trả về. Chuỗi có kế hoạch tạo ra 40 giây nhưng trả về các clip 15, 25, 30 và 40 giây, cộng lại thành 110 giây.
| Độ phân giải | Mỗi giây | Nếu chỉ tính phí giây mới | Nếu tính phí mọi giây trả về |
|---|---|---|---|
| 360p | 0,023 USD | 0,93 USD | 2,55 USD |
| 720p | Khoảng 0,07 USD | 2,78 USD | 7,65 USD |
| 1080p (upsample) | 0,104 USD | 4,17 USD | 11,47 USD |
| 4K (upsample) | 0,209 USD | 8,34 USD | 22,94 USD |
Đây là mức giá của Gemini API, tính từ số token mỗi giây do Google công bố. Token đầu vào (1,50 USD mỗi triệu) và token suy luận (9,00 USD mỗi triệu) được tính cộng thêm.
Trước khi tự kiểm chứng được, hãy tính ngân sách theo cột bên phải. Để giữ hóa đơn ở mức thấp:
- Dự thảo ở 360p và kiểm chứng toàn bộ chuỗi trước khi trả tiền cho 720p.
- Chọn độ phân giải trước khi xếp chuỗi. Trang mô hình trên Agent Platform giới hạn đầu vào cho upscaling ở 15 giây, nên một clip 40 giây hoàn chỉnh sẽ không thể xử lý trong một lần.
- Dự trù ngân sách cho các lần reroll ở những cảnh khó. Thông báo của Google nêu các cảnh thể thao vận động nhanh, thay đổi kịch bản liên tục và vật lý phức tạp là những lĩnh vực vẫn đang được cải thiện.
Các request tới gemini-omni-1.1-flash sẽ được chuyển hướng sang bản 1.2 từ ngày 3 tháng 12 năm 2026 và tính phí theo mức giá của 1.2.
Để coding agent của bạn kiểm thử luồng bất đồng bộ bằng Apidog CLI
Một chuỗi bất đồng bộ có thể thất bại một cách im lặng: một vòng thăm dò không bao giờ kết thúc, một lần chạy kết thúc với trạng thái failed, một cấu trúc response bị thay đổi. Hãy để coding agent của bạn xây dựng bài kiểm thử đó bằng Apidog CLI và chạy thay bạn.
npm install -g apidog-cli@latest
apidog auth login --with-token <YOUR_TOKEN>
apidog skill install
Sau đó, đưa cho Claude Code, Codex hoặc Cursor chỉ một prompt duy nhất:
In Apidog project <id>, create endpoints for POST and GET on the Omni
interactions URL. Build a test scenario named omni-extend-async: start a
3-second 360p extension with background set to true, save the interaction
ID, then loop with a 10-second delay on GET until status leaves in_progress.
Assert status is completed and a model_output step holds a video/mp4 item
with a uri or data. Run it and summarize any failures.
Agent sẽ kiểm chứng payload của mình, rồi xây dựng và chạy kịch bản:
apidog cli-schema get test-scenario-update
apidog test-scenario create --project <id> --name "omni-extend-async" --folder-id <folderId> --priority 1
apidog test-scenario import-steps <scenarioId> --project <id> --source endpoint --ids <postId>,<getId>
apidog cli-schema validate test-scenario-update --file scenario.json
apidog test-scenario update <scenarioId> --project <id> --file scenario.json
apidog run -t <scenarioId> --project <id> -e <envId> --timeout-request 300000 -r cli,junit --out-dir ./reports
Mỗi lần chạy đều tính phí một clip thật, vì vậy hãy chạy theo lịch hằng đêm thay vì trên mỗi commit. Một hop 3 giây ở 360p tốn khoảng 0,07 USD nếu chỉ tính phí các giây mới. Dòng lệnh này có thể đưa thẳng vào pipeline, như hướng dẫn Apidog CLI CI/CD của chúng tôi đã cho thấy, còn hướng dẫn thiết lập Claude Code bao gồm phần phía agent. Apidog Free hỗ trợ tới 4 người dùng.
Câu hỏi thường gặp
Một video Gemini Omni 1.2 Flash có thể dài bao nhiêu? Một lần tạo duy nhất cho ra từ 3 đến 15 giây. Khi mở rộng, tài liệu Gemini API cho tổng cộng 30 giây, còn tài liệu Agent Platform cho 40 giây.
Tại sao phần đầu video mở rộng của tôi biến mất? Trên Agent Platform, chỉ 30 giây cuối của đầu vào được giữ lại. Bất kỳ đầu vào nào dài quá 30 giây đều mất phần mở đầu. Hãy lên kế hoạch các hop sao cho hop cuối bắt đầu từ đúng 30 giây.
Có thể mở rộng video tôi tự quay không? Có, ở ngoài khu vực EEA, Thụy Sĩ và Vương quốc Anh. Hãy tải video lên qua Files API, hoặc trỏ tới Cloud Storage trên Agent Platform. Bạn không thể thêm lời thoại vào clip đã tải lên có người đang nói.
Có thể mở rộng clip miễn phí không? Không thông qua API. Google ghi gói miễn phí là "Not available" (không khả dụng) cho Omni 1.2 và 1.1, nên ngay cả lần thử nghiệm cũng bị tính phí. Một lần mở rộng 3 giây ở 360p là lựa chọn rẻ nhất bạn có thể chạy.
