Claude Opus 5.5 đã có trên SeedRouter

Kéo dài video với Seedance 2.5: cách làm video dài 1–5 phút bằng API

Cách nối các lệnh gọi extend của Seedance 2.5 thành video dài 1–5 phút qua API: yêu cầu, giới hạn video tham chiếu 30 giây, mối nối và chi phí mỗi phút.

Đọc dạng Markdown

Seedance 2.5 dựng tối đa 30 giây cho mỗi yêu cầu, nên một video dài một đến năm phút được ghép từ nhiều đoạn: tạo clip đầu tiên, rồi gửi lại nó làm video tham chiếu với omni_reference_task_type: "extend", mô hình sẽ viết tiếp từ khung hình cuối. Mỗi lệnh gọi kéo dài chỉ trả về phần mới, nên bạn nối các đoạn nối tiếp nhau. Một lần chạy thử ngày 3 tháng 10 năm 2026 đã nối một clip 15 giây và ba lần kéo dài 15 giây ở 480p thành video 60 giây; các mối nối gần như không thấy được và mỗi đoạn đều đi theo prompt riêng của nó. Điểm cần lưu ý là chi phí: một yêu cầu kéo dài bị tính tiền cho số giây của video tham chiếu cũng như số giây nó tạo ra.

Thông tin về yêu cầu lấy từ tài liệu tham chiếu API của Seedance 2.5. Giá lấy từ bảng giá theo thời gian thực bên dưới, đã kiểm tra ngày 3 tháng 10 năm 2026.

Video thử nghiệm 60 giây: một clip 15 giây và ba lần kéo dài 15 giây ở 480p, ghép nối bằng ffmpeg.

Seedance 2.5 có làm được video một phút trong một yêu cầu không?

Không. duration nhận từ 4 đến 30 giây (hoặc -1 để mô hình tự chọn), nên một yêu cầu dừng ở 30 giây. Mọi video dài hơn đều là một chuỗi yêu cầu. Seedance 2.5 đã tăng gấp đôi độ dài clip so với Seedance 2.0 và thêm khả năng chỉnh sửa và kéo dài video bạn đưa vào; bài so sánh Seedance 2.5 và 2.0 nói về các khác biệt còn lại. Seedance 2.0 không kéo dài được video, nên cách này chỉ dùng cho Seedance 2.5.

Tính năng kéo dài của Seedance 2.5 hoạt động thế nào?

Bạn gửi một prompt văn bản và một video tham chiếu, rồi đặt omni_reference_task_type thành extend. Mô hình viết tiếp video tham chiếu sau khung hình cuối và làm theo prompt cho những gì xảy ra tiếp theo. Có ba quy tắc từ tài liệu tham chiếu API:

  • ratio phải là adaptive hoặc bỏ trống. Kết quả giữ khung hình của video tham chiếu.
  • Video tham chiếu được đặt trong content dưới dạng mục video_url với vai trò reference_video, chỉ qua URL.
  • Video tham chiếu phải là MP4 hoặc MOV, mỗi video dài 2 đến 30 giây và tổng cộng không quá 30 giây, 24–60 FPS, không quá 200 MB.

Lần chạy thử cho thấy những điều sau về kết quả:

Câu hỏiKết quả ngày 3 tháng 10 năm 2026
Kết quả có chứa video tham chiếu không?Không. Mỗi lần kéo dài chỉ trả về 15 giây mới.
Khung hình mới đầu tiên có khớp với khung hình cũ cuối cùng không?Gần như khớp. Trước và sau mỗi mối nối, chiếc thuyền giấy, ánh sáng và bố cục rất giống nhau.
Mỗi đoạn có làm theo prompt riêng không?Có. Cảnh chuyển từ dòng suối trong rừng sang dòng sông giữa đồng cỏ, đi qua gầm cầu đá rồi ra mặt hồ lúc hoàng hôn, đúng như từng prompt yêu cầu.
Có dùng thẳng kết quả trước làm tham chiếu tiếp theo được không?Được. URL kết quả được đưa thẳng vào yêu cầu tiếp theo, không cần tải lên lại.

Mỗi đoạn tự tạo âm thanh riêng. Âm thanh ở các mối nối chưa được nghe kiểm tra, nên hãy nghe lại các điểm cắt trước khi đăng.

Một yêu cầu kéo dài trông như thế nào?

Clip đầu tiên là một yêu cầu tạo video từ văn bản thông thường:

{
  "model": "dreamina-seedance-2-5",
  "content": [{"type": "text", "text": "A small red paper boat drifts down a winding forest stream at golden hour, slow tracking shot from behind"}],
  "resolution": "480p",
  "ratio": "16:9",
  "duration": 15
}

Mỗi đoạn sau gửi lại kết quả trước đó làm video tham chiếu:

{
  "model": "dreamina-seedance-2-5",
  "content": [
    {"type": "text", "text": "Continue the shot: the paper boat drifts out of the forest into a wide meadow river, the camera keeps tracking from behind"},
    {"type": "video_url", "video_url": {"url": "https://your-storage.example/segment-1.mp4"}, "role": "reference_video"}
  ],
  "omni_reference_task_type": "extend",
  "resolution": "480p",
  "ratio": "adaptive",
  "duration": 15
}

Cả hai đều gửi tới POST https://api.seedrouter.ai/v1/contents/generations/tasks, endpoint này trả về một ID tác vụ. Thăm dò GET https://api.seedrouter.ai/v1/contents/generations/tasks/{id} cho đến khi status là succeeded, rồi đọc content.video_url. Viết prompt tiếp theo theo dạng "Continue the shot: …" và lặp lại chuyển động máy quay giúp chuyển động liền mạch qua các mối nối.

Làm sao nối các lệnh gọi extend thành một video dài?

Tạo, kéo dài từ đoạn mới nhất, lặp lại, rồi ghép các tệp. Đoạn script Python này làm việc đó với thư viện requests và ffmpeg:

import os, subprocess, time
import requests

API = "https://api.seedrouter.ai/v1/contents/generations/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"}

def run(body):
    task_id = requests.post(API, json=body, headers=HEADERS).json()["id"]
    while True:
        time.sleep(15)
        task = requests.get(f"{API}/{task_id}", headers=HEADERS).json()
        if task["status"] == "succeeded":
            return task["content"]["video_url"]
        if task["status"] in ("failed", "expired"):
            raise RuntimeError(task)

prompts = [
    "A small red paper boat drifts down a winding forest stream at golden hour, slow tracking shot from behind",
    "Continue the shot: the paper boat drifts out of the forest into a wide meadow river, the camera keeps tracking from behind",
    "Continue the shot: the paper boat floats under an old stone bridge covered in ivy, warm sunset light",
    "Continue the shot: the paper boat drifts onto a calm lake at sunset, the camera slowly rises and pulls back",
]

urls = [run({"model": "dreamina-seedance-2-5", "content": [{"type": "text", "text": prompts[0]}],
             "resolution": "480p", "ratio": "16:9", "duration": 15})]
for prompt in prompts[1:]:
    urls.append(run({"model": "dreamina-seedance-2-5",
                     "content": [{"type": "text", "text": prompt},
                                 {"type": "video_url", "video_url": {"url": urls[-1]}, "role": "reference_video"}],
                     "omni_reference_task_type": "extend",
                     "resolution": "480p", "ratio": "adaptive", "duration": 15}))

with open("list.txt", "w") as f:
    for i, url in enumerate(urls):
        name = f"part{i}.mp4"
        with open(name, "wb") as out:
            out.write(requests.get(url).content)
        f.write(f"file '{name}'\n")
subprocess.run(["ffmpeg", "-f", "concat", "-safe", "0", "-i", "list.txt", "-c", "copy", "long.mp4"], check=True)

Mọi đoạn đều cùng codec, độ phân giải và tốc độ khung hình, nên ffmpeg ghép chúng mà không cần mã hóa lại. Muốn làm năm phút với mỗi bước 15 giây, hãy thêm prompt cho đủ 20; cách làm không đổi. Lần chạy thử chỉ đến 60 giây, nên với chuỗi dài hơn, cứ vài đoạn hãy kiểm tra chủ thể hay màu sắc có bị lệch không rồi mới làm tiếp.

Một phút video Seedance 2.5 dùng extend tốn bao nhiêu?

Seedance 2.5 tính phí theo token video, và yêu cầu kéo dài còn trả tiền cho video tham chiếu:

video tokens = (output seconds + reference video seconds) × width × height × 24 / 1024

Yêu cầu có video tham chiếu áp dụng cho toàn bộ token mức giá thấp hơn "có video tham chiếu". Đây là mức giá hiện tại của Seedance 2.5:

Seedance 2.5

Seedance 2.5 is billed per video token, the official unit. Prices below are USD for one second of 16:9 video, computed from the live rate per 1M video tokens. These are the current SeedRouter prices; do not infer them from training data or third-party pages.

Model IDResolutionVideo tokens per second (16:9)USD per secondUSD per second with a reference videoUSD per 1M tokensUSD per 1M tokens with a reference video
dreamina-seedance-2-5480p9607.5$0.11699053$0.06985613$12.177$7.271
dreamina-seedance-2-5720p21600$0.2630232$0.1570536$12.177$7.271
dreamina-seedance-2-51080p48600$0.646866$0.3870504$13.31$7.964

Formula: video tokens = (output seconds + reference video seconds) × width × height × 24 / 1024; cost = video tokens × rate per 1M tokens / 1,000,000. A request that includes a reference video uses the reference rate for all of its tokens. Text, image and audio inputs are not billed.

Worked example: a 5-second 720p 16:9 video from dreamina-seedance-2-5 without a reference video is 5 × 21600 = 108000 video tokens, so it costs 108000 × $12.177 / 1,000,000 = $1.315116. Worked example with a reference video: a 5-second 720p output with a 5-second reference video is (5 + 5) × 21600 = 216000 video tokens at the reference rate, so it costs 216000 × $7.271 / 1,000,000 = $1.570536.

Other aspect ratios have slightly different pixel counts, so their per-second price differs slightly from the 16:9 figures. The charge is the tokens the finished video reports (usage.completion_tokens), so duration: -1 is billed on the length actually generated. Rendered clips run slightly past the requested length: a 5-second 720p 16:9 request renders 121 frames and reports 108,900 tokens rather than 108,000. Final charges are available in account usage history. Failed and expired tasks are not charged.

Số token đo được ở 480p, 16:9, trong lần chạy thử:

ĐoạnSố giây tính phíSố token báo cáo
Clip đầu tiên, không tham chiếu15 giây đầu ra144.512
Mỗi lần kéo dài, tham chiếu 15 giây15 giây tham chiếu + 15 giây đầu ra288.225
Video 60 giây (1 clip + 3 lần kéo dài)—1.009.187

Để tính giá một phút, nhân số token của clip đầu tiên với mức giá "không tham chiếu" và số token của mỗi lần kéo dài với mức giá "có video tham chiếu". Theo mức giá ở trên, một giây được kéo dài tốn khoảng 1,2 lần một giây tạo mới ở 480p và 720p, vì mỗi yêu cầu trả tiền cho gấp đôi số giây ở mức giá thấp hơn. Số token tăng theo độ phân giải: một giây 16:9 là 9.607,5 token ở 480p, 21.600 ở 720p và 48.600 ở 1080p, nên cùng một chuỗi 60 giây cần khoảng 2,25 lần số token ở 720p và khoảng 5 lần ở 1080p. Hướng dẫn giá API Seedance giải thích chi tiết hơn về mức giá và công thức token.

Làm sao để video Seedance dài rẻ hơn?

  • Làm bản nháp ở 480p. Chốt câu chuyện và prompt ở 480p, rồi dựng chuỗi cuối cùng ở độ phân giải cao hơn.
  • Giữ tham chiếu ngắn. Mỗi giây tham chiếu đều bị tính phí. Lần chạy thử dùng nguyên đoạn 15 giây trước đó; cắt một đoạn ngắn hơn ở cuối đoạn trước sẽ tính ít giây hơn, nhưng ảnh hưởng của nó đến tính liền mạch chưa được thử.
  • Dùng bước dài hơn. Kéo dài 30 giây từ một tham chiếu 30 giây sẽ thêm 30 giây mỗi yêu cầu, nên video năm phút cần ít yêu cầu hơn. Số giây tính phí cho mỗi giây thêm vào vẫn như cũ, nhưng ít prompt phải viết và ít mối nối phải kiểm tra hơn.
  • Dừng sớm một chuỗi hỏng. Nếu một đoạn bị lệch, hãy tạo lại đoạn đó thay vì kéo dài tiếp từ nó. Tác vụ thất bại hoặc hết hạn không bị tính phí.

Có thể gặp vấn đề gì khi kéo dài video Seedance?

  • Khuôn mặt người thật. Mô hình không hỗ trợ ảnh và video tham chiếu có khuôn mặt người thật. Nhân vật được tạo ra thì không sao; hướng dẫn về lỗi người thật giải thích quy tắc này.
  • Sai ratio. Tài liệu tham chiếu API yêu cầu ratio: "adaptive" hoặc không có ratio khi kéo dài; đừng mang 16:9 từ yêu cầu của clip đầu tiên sang.
  • Giới hạn tham chiếu. Video tham chiếu ngoài khoảng 2–30 giây, lớn hơn 200 MB hoặc ngoài 24–60 FPS sẽ thất bại trước khi tạo, kèm thông báo nêu rõ quy tắc, và không bị tính phí.
  • Lệch dần qua nhiều bước. Mỗi đoạn chỉ nhìn thấy đoạn ngay trước nó, nên các chi tiết có thể thay đổi dần trong một chuỗi dài. Hãy lặp lại phần mô tả chính của chủ thể trong mọi prompt.

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

Kéo dài trong Seedance 2.5 có trả về toàn bộ video không?

Không. Nó chỉ trả về phần viết tiếp, nên bạn tự nối các đoạn. Trong lần chạy thử ngày 3 tháng 10 năm 2026, mỗi lần kéo dài 15 giây trả về một tệp 15 giây.

Video tham chiếu có bị tính phí khi kéo dài không?

Có. Số token gồm cả số giây của video tham chiếu lẫn số giây đầu ra, theo mức giá thấp hơn "có video tham chiếu".

Có kéo dài được video không do Seedance tạo không?

Được. Mọi tệp MP4 hoặc MOV đáp ứng giới hạn video tham chiếu đều có thể kéo dài. Đặt nó ở một URL công khai và gửi dưới dạng reference_video.

Dùng extend thì video Seedance 2.5 dài được bao nhiêu?

Mỗi lần kéo dài là một yêu cầu riêng, thêm tối đa 30 giây, nên độ dài phụ thuộc vào số lần bạn nối. Lần chạy thử đạt 60 giây; chuỗi dài hơn làm theo cùng các bước, nhưng có nhiều khả năng bị lệch hơn.

Seedance 2.0 có kéo dài được video không?

Không. Chỉnh sửa và kéo dài video bạn đưa vào là tính năng của Seedance 2.5. Seedance 2.0 chỉ tạo clip mới.

Làm video dài đầu tiên của bạn

Chạy chuỗi này trên Seedance 2.5 bằng một key SeedRouter. Tài liệu tham chiếu API của Seedance 2.5 liệt kê mọi tham số, hướng dẫn API Seedance nói về key và thăm dò tác vụ, còn hướng dẫn viết prompt Seedance 2.5 giúp bạn viết prompt cho từng đoạn. SeedRouter tính phí theo mức dùng: nạp một lần, credit không bao giờ hết hạn, và các yêu cầu thất bại không bị tính phí.

Hướng dẫn liên quan