DEV Community

Cover image for Cách kéo dài video lên 40 giây với Gemini Omni 1.1 Flash
Sebastian Petrus
Sebastian Petrus

Posted on Originally published at apidog.com

Cách kéo dài video lên 40 giây với Gemini Omni 1.1 Flash

Gemini Omni 1.1 Flash: Mở rộng video lên 40 giây

Gemini Omni 1.1 Flash tạo video dài 10 giây. Tính năng mở rộng cảnh cho phép nối thêm 10 giây sau mỗi lần gọi, tối đa bốn phân đoạn tương đương 40 giây.

Thử Apidog ngay hôm nay

Tính năng này đã có trong bản xem trước, nhưng khi đó mô hình chỉ nhìn vào giây cuối của cảnh trước. Kết quả là màu sắc có thể tương đối nhất quán, nhưng nhân vật dễ đổi trang phục và chuyển động máy quay bị đặt lại.

Bản GA phát hành ngày 27 tháng 8 năm 2026 đã nâng cửa sổ ngữ cảnh lên 10 giây, mang lại “sự nhất quán về hình ảnh và sự tuân thủ câu chuyện được cải thiện”. Bài viết này trình bày cách gọi API, các giới hạn cần tính đến và cách xây dựng chuỗi 40 giây ổn định.

Gọi mở rộng cơ bản

Tính năng mở rộng sử dụng Files API. Tải clip lên, truyền URI cùng lời nhắc mô tả diễn biến tiếp theo:

import base64
from google import genai

client = genai.Client()

video_file = client.files.upload(file="my_video.mp4")

interaction = client.interactions.create(
    model="gemini-omni-1.1-flash",
    input=[
        {"type": "document", "uri": video_file.uri},
        {"type": "text", "text": "Continue the scene."},
    ],
)

with open("extended.mp4", "wb") as f:
    f.write(base64.b64decode(interaction.output_video.data))
Enter fullscreen mode Exit fullscreen mode

Quá trình tải lên là bất đồng bộ. Hãy chờ tệp xử lý xong trước khi gửi tương tác:

import time

while video_file.state == "PROCESSING":
    time.sleep(10)
    video_file = client.files.get(name=video_file.name)

if video_file.state == "FAILED":
    raise ValueError(video_file.state)
Enter fullscreen mode Exit fullscreen mode

Nếu clip được tạo bởi Omni trong cùng phiên, hãy dùng previous_interaction_id thay vì tải lên lại. Cách này tiết kiệm token và giữ được nhiều trạng thái hơn:

res2 = client.interactions.create(
    model="gemini-omni-1.1-flash",
    previous_interaction_id=res1.id,
    input="The camera pulls back to reveal the whole street.",
)
Enter fullscreen mode Exit fullscreen mode

Hướng dẫn API trình bày thêm các tùy chọn như độ phân giải và tùy chọn phân phối.

Giữ nhân vật nhất quán

Bạn có thể đính kèm hình ảnh tham chiếu và gọi đến hình ảnh đó trong lời nhắc. Các tệp tham chiếu được đánh địa chỉ theo dạng <IMAGE_REF_0>, <IMAGE_REF_1>, v.v.:

video_file = client.files.upload(file="my_video.mp4")
character_img = client.files.upload(file="character.png")

interaction = client.interactions.create(
    model="gemini-omni-1.1-flash",
    input=[
        {"type": "document", "uri": video_file.uri},
        {"type": "document", "uri": character_img.uri},
        {
            "type": "text",
            "text": (
                "Extend this video: have the character shown in "
                "<IMAGE_REF_0> enter the scene and wave."
            ),
        },
    ],
)
Enter fullscreen mode Exit fullscreen mode

Video tham chiếu cũng được hỗ trợ, tối đa ba clip, mỗi clip dài ba giây. Mô hình dùng chúng để nắm bắt chuyển động và ngoại hình; âm thanh trong clip tham chiếu bị bỏ qua.

Các giới hạn quan trọng

  • Tối đa 40 giây: một lần tạo ban đầu cộng với ba lần mở rộng 10 giây. Không thể vượt quá giới hạn này trong cùng một chuỗi.
  • Chỉ nối thêm: video chỉ được mở rộng ở cuối. Nếu phân đoạn thứ hai sai, bạn phải tạo lại phân đoạn thứ hai và mọi phân đoạn sau đó.
  • Tệp tải lên tối đa 10 giây: giới hạn này áp dụng cho video bạn tải lên. Chuỗi dùng previous_interaction_id không bị giới hạn theo cách này vì mô hình đã giữ trạng thái trước đó.
  • Không thêm hội thoại cho tệp tải lên: bạn có thể mở rộng clip đã tải lên, nhưng không thể thêm hội thoại trong cùng thao tác. Hội thoại vẫn có thể được sử dụng trong tương tác nhiều lượt.
  • Giới hạn khu vực: tải lên và chỉnh sửa video không khả dụng tại EEA, Thụy Sĩ và Vương quốc Anh. Video do mô hình tạo vẫn có thể được chỉnh sửa tại các khu vực này thông qua previous_interaction_id.
  • Mỗi lần chỉ một video: mô hình không suy luận dựa trên nhiều video đầu vào.

Phác thảo ở 360p trước khi kết xuất 720p

Một chuỗi 40 giây ở 720p có giá khoảng 4,06 USD cho đầu ra video. Nếu câu chuyện lệch hướng ở phân đoạn thứ ba, bạn phải tạo lại phân đoạn thứ ba và thứ tư, đôi khi làm thay đổi cả phần mở đầu của phân đoạn thứ ba.

Quy trình tiết kiệm hơn:

  1. Phác thảo cả bốn phân đoạn ở 360p.
  2. Kiểm tra mạch truyện và tính nhất quán.
  3. Dùng lại các lời nhắc đã kiểm chứng để kết xuất ở 720p trở lên.

360p tạo nhanh hơn tới 60% và có chi phí khoảng một phần ba. Bốn phân đoạn tương tự có giá khoảng 1,35 USD. Xem bài viết về giá Gemini Omni 1.1 Flash để biết cách tính chi tiết.

Đặt độ phân giải trong định dạng phản hồi:

interaction = client.interactions.create(
    model="gemini-omni-1.1-flash",
    input=[
        {"type": "document", "uri": video_file.uri},
        {"type": "text", "text": "Continue the scene."},
    ],
    response_format={"type": "video", "resolution": "360p"},
)
Enter fullscreen mode Exit fullscreen mode

Viết lời nhắc cho cả bốn phân đoạn

Mô tả thay đổi, không mô tả lại toàn cảnh

Mô hình đã xem 10 giây trước đó. Việc lặp lại toàn bộ bối cảnh có thể khiến mô hình diễn giải lại những gì đã tồn tại.

“Máy quay đẩy vào cánh cửa”

hiệu quả hơn một đoạn văn dài mô tả lại căn phòng.

Chỉ yêu cầu một chuyển động

Mỗi phân đoạn dài 10 giây nên tập trung vào một hành động. Nếu yêu cầu nhiều nhịp, mô hình có xu hướng tạo ra phiên bản gấp rút của tất cả các hành động đó.

Nêu rõ các điểm neo

Chỉ ra những yếu tố phải giữ nguyên, chẳng hạn:

  • “chiếc áo khoác đỏ giống nhau”
  • “góc máy thấp tương tự”
  • “ánh sáng buổi chiều không đổi”

Lập kế hoạch theo thứ tự phát

Vì tính năng chỉ nối thêm, hãy xây dựng câu chuyện từ đầu đến cuối. Không thể sửa phần đầu mà không tạo lại tất cả phân đoạn phía sau.

Các nguyên tắc trong hướng dẫn viết prompt cho Veo cũng có thể áp dụng cho các mô hình video khác.

Kiểm thử từng phần mở rộng

Bốn lần gọi liên tiếp tạo ra bốn điểm có thể phát sinh thay đổi hành vi. Chỉ xem video cuối cùng thường khiến bạn khó xác định lỗi xuất hiện ở đâu.

Hãy lưu từng giai đoạn thành một request riêng trong Apidog. Lưu URI tệp và ID tương tác trong biến môi trường để có thể chạy lại một phân đoạn cụ thể mà không dựng lại toàn bộ chuỗi.

Bạn cũng nên:

  • Kiểm tra schema phản hồi.
  • Chuẩn bị trường hợp tệp vượt quá 4 MB và chuyển từ base64 nội tuyến sang URI.
  • Tăng timeout vì mở rộng video cần đọc thêm 10 giây ngữ cảnh trước.

Thiết lập bộ kiểm thử này chỉ mất khoảng mười phút và giúp phân biệt lỗi do prompt với lỗi do bản cập nhật mô hình. Có thể tải Apidog để bắt đầu.

Câu hỏi thường gặp

Video Gemini Omni có thể dài bao nhiêu?

Tối đa 40 giây: 10 giây tạo ban đầu cộng với ba lần mở rộng, mỗi lần 10 giây.

Có thể mở rộng video tự quay không?

Có, với đầu vào tối đa 10 giây và bên ngoài EEA, Thụy Sĩ và Vương quốc Anh. Tải video qua Files API rồi truyền URI.

Có thể thêm nội dung vào đầu clip không?

Không. Mở rộng chỉ nối thêm vào cuối.

Vì sao nhân vật thay đổi ngoại hình giữa các phân đoạn?

Nguyên nhân thường là prompt mô tả lại toàn cảnh thay vì mô tả thay đổi, hoặc các điểm neo chưa rõ ràng. Hãy nêu cụ thể yếu tố cần giữ nguyên và cân nhắc dùng ảnh nhân vật làm tham chiếu.

Mỗi lần mở rộng có phát sinh chi phí không?

Có. Mỗi lần mở rộng tính phí cho 10 giây đầu ra video và token đầu vào của phần ngữ cảnh được đọc.

Nếu cần dài hơn 40 giây thì sao?

Veo 3.1 mở rộng thêm 7 giây mỗi lần, tối đa 148 giây, chỉ ở 720p. Bài so sánh Gemini Omni 1.1 Flash và Veo 3.1 phân tích các đánh đổi; hướng dẫn API của Veo trình bày chi tiết tích hợp.

Kết luận

Để tạo chuỗi 40 giây ổn định với Gemini Omni 1.1 Flash:

  1. Chia câu chuyện thành bốn nhịp 10 giây.
  2. Phác thảo toàn bộ ở 360p.
  3. Giới hạn mỗi prompt vào một chuyển động.
  4. Nêu rõ các điểm neo cần duy trì.
  5. Chỉ kết xuất 720p sau khi đã kiểm chứng toàn bộ chuỗi.

Top comments (0)