สรุปสั้นๆ
API ของ Seedance 2.0 เปิดตัวเมื่อวันที่ 2 เมษายน 2026 ผ่าน Volcengine Ark คุณสามารถส่งงานสร้างวิดีโอด้วยคำขอ POST จากนั้นตรวจสอบสถานะ (poll) จากปลายทาง GET จนกว่าสถานะจะถึง "succeeded" API รองรับ Text-to-video, Image-to-video, การควบคุมเฟรมเริ่มต้นและเฟรมสุดท้าย, การอ้างอิงแบบหลากหลายสื่อ (multimodal references) และการสร้างเสียงแบบ native วิดีโอ 1080p ความยาว 5 วินาทีมีค่าใช้จ่ายประมาณ $0.93 ดาวน์โหลดวิดีโอภายใน 24 ชั่วโมง URL จะหมดอายุหลังจากนั้น
บทนำ
เมื่อวันที่ 2 เมษายน 2026 แพลตฟอร์ม Volcengine Ark ของ ByteDance ได้เปิดตัว API อย่างเป็นทางการของ Seedance 2.0 ก่อนหน้านั้น วิธีเดียวในการสร้างวิดีโอ Seedance 2.0 คือผ่านเว็บคอนโซล หากคุณเคยเห็นบทเรียนที่แสดงการใช้งาน UI วิดีโอเหล่านั้นเขียนขึ้นสำหรับคอนโซลนี้ แต่คู่มือนี้จะครอบคลุม API จริงที่นักพัฒนาสามารถเรียกใช้ด้วยโปรแกรมได้
💡API ใช้รูปแบบงานแบบ asynchronous: POST เพื่อสร้างงาน, รับ ID ของงาน, จากนั้น poll ปลายทาง GET จนกว่างานจะเสร็จสิ้น รูปแบบนี้คุ้มค่าที่จะทดสอบแบบ end-to-end ก่อนที่คุณจะนำไปใช้งานจริง Test Scenarios ของ Apidog ช่วยให้คุณสามารถเชื่อมโยงการส่ง POST, ดึง ID ของงาน, วนซ้ำการ poll ด้วย GET และยืนยันว่าการตอบกลับสุดท้ายมี URL วิดีโอที่ถูกต้อง ดาวน์โหลด Apidog ฟรีเพื่อทำตามขั้นตอนการทดสอบในส่วน Apidog ด้านล่าง
บทความนี้ครอบคลุมประเภทอินพุตที่รองรับทั้งหมด, การคำนวณราคาจากจำนวนโทเค็นในการตอบกลับ และข้อผิดพลาดที่คุณอาจพบในการใช้งานจริง
Seedance 2.0 คืออะไร?
Seedance 2.0 คือโมเดลการสร้างวิดีโอจาก ByteDance บน Volcengine Ark ภายใต้ ID โมเดล doubao-seedance-2-0-260128 (มาตรฐาน) และ doubao-seedance-2-0-fast-260128 (เร็วกว่า คุณภาพต่ำกว่า)
ฟีเจอร์หลักเมื่อเทียบกับเวอร์ชัน 1.5:
- รองรับ Text-to-video และ Image-to-video
- กำหนดเฟรมแรกและเฟรมสุดท้าย (ใส่ภาพเริ่ม-จบ)
- อินพุตอ้างอิงแบบหลากหลายสื่อ: รูป, วิดีโอ, เสียง
- สร้างเสียง native (พูด, SFX, เพลง, ฯลฯ)
- ซิงค์ปากมากกว่า 8 ภาษา
- ควบคุมกล้องด้วย text prompt (dolly, tracking ฯลฯ)
- เอาต์พุตสูงสุด 15 วินาที ถึง 2K
วิดีโอจะออกที่ 24 fps อัตราส่วน 1:1 ถึง 21:9 เลือกความละเอียดได้ขณะส่งคำขอ
มีอะไรเปลี่ยนแปลง: คู่มือเทียบกับ API อย่างเป็นทางการ
ก่อนหน้านี้ Seedance 2.0 ใช้งานได้เฉพาะผ่าน web console (ดู คู่มือเดือน ก.พ. 2026) ตอนนี้ API เปิดให้นักพัฒนารวม Seedance เข้ากับโปรแกรมหรือ workflow ของตัวเองได้โดยตรง
สิ่งที่ต้องมีก่อนใช้งาน
- สมัครบัญชี Volcengine ที่ volcengine.com
- เข้าคอนโซล Ark:
https://console.volcengine.com/ark/region:ark+cn-beijing/apikey
- สร้าง API Key แล้ว export เป็น env:
export ARK_API_KEY="your-api-key-here"
- ทุก API request ใส่ header:
Authorization: Bearer YOUR_ARK_API_KEY
- บัญชีใหม่ได้เครดิตทดลองใช้ฟรี (สร้างวิดีโอ 15 วินาทีที่ 1080p ได้ประมาณ 8 ครั้ง)
Text-to-video: คำขอแรกของคุณ
Base URL:
https://ark.cn-beijing.volces.com/api/v3
POST ไปยัง /v1/contents/generations/tasks
ตัวอย่าง cURL
curl -X POST "https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $ARK_API_KEY" \
-d '{
"model": "doubao-seedance-2-0-260128",
"content": [
{
"type": "text",
"text": "A golden retriever running through a sunlit wheat field, wide tracking shot, cinematic"
}
],
"resolution": "1080p",
"ratio": "16:9",
"duration": 5,
"watermark": false
}'
Response:
{"id": "cgt-2025xxxxxxxx-xxxx"}
ตัวอย่าง Python (SDK อย่างเป็นทางการ)
ติดตั้ง SDK:
pip install volcenginesdkarkruntime
ส่งงาน:
import os
from volcenginesdkarkruntime import Ark
client = Ark(api_key=os.environ.get("ARK_API_KEY"))
resp = client.content_generation.tasks.create(
model="doubao-seedance-2-0-260128",
content=[
{
"type": "text",
"text": "A golden retriever running through a sunlit wheat field, wide tracking shot, cinematic"
}
],
resolution="1080p",
ratio="16:9",
duration=5,
watermark=False,
)
print(resp.id)
เก็บ task ID ไว้สำหรับ polling สถานะ
รูปแบบงานแบบ Asynchronous: ส่ง, ตรวจสอบสถานะ, ดาวน์โหลด
งานสร้างวิดีโอจะมีสถานะดังนี้:
queued -> running -> succeeded
-> failed
-> expired
-> cancelled
คุณต้อง poll GET จนกว่าสถานะจะเป็น succeeded
ตัวอย่างลูปตรวจสอบสถานะ Python
import os
import time
import requests
from volcenginesdkarkruntime import Ark
client = Ark(api_key=os.environ.get("ARK_API_KEY"))
# Step 1: submit
resp = client.content_generation.tasks.create(
model="doubao-seedance-2-0-260128",
content=[
{"type": "text", "text": "Aerial shot of a mountain lake at sunrise, slow dolly forward"}
],
resolution="1080p",
ratio="16:9",
duration=5,
watermark=False,
)
task_id = resp.id
print(f"Task submitted: {task_id}")
# Step 2: poll with exponential backoff
wait = 10
while True:
result = client.content_generation.tasks.get(task_id=task_id)
status = result.status
print(f"Status: {status}")
if status == "succeeded":
video_url = result.content.video_url
print(f"Video URL: {video_url}")
break
elif status in ("failed", "expired", "cancelled"):
print(f"Task ended with status: {status}")
break
time.sleep(wait)
wait = min(wait * 2, 60)
# Step 3: download immediately
if status == "succeeded":
response = requests.get(video_url, stream=True)
with open("output.mp4", "wb") as f:
for chunk in response.iter_content(chunk_size=8192):
f.write(chunk)
print("Downloaded: output.mp4")
หมายเหตุ: ใช้ exponential backoff เพื่อลดการ poll ถี่เกินไป
Image-to-video (I2V): การสร้างแอนิเมชันจากภาพนิ่ง
เพิ่ม object "image_url" ใน content:
resp = client.content_generation.tasks.create(
model="doubao-seedance-2-0-260128",
content=[
{
"type": "text",
"text": "The woman slowly turns her head and smiles at the camera"
},
{
"type": "image_url",
"image_url": {"url": "https://example.com/portrait.jpg"}
}
],
ratio="adaptive",
duration=5,
watermark=False,
)
-
ratio: "adaptive"จะใช้อัตราส่วนภาพของภาพต้นฉบับ - ภาพสูงสุด 30MB, 9 ภาพต่อคำขอ
เฟรมแรกและเฟรมสุดท้าย: ควบคุมจุดเริ่มต้นและจุดสิ้นสุด
ระบุภาพเฟรมแรกและเฟรมสุดท้ายใน content:
resp = client.content_generation.tasks.create(
model="doubao-seedance-2-0-260128",
content=[
{
"type": "text",
"text": "The flower blooms from bud to full open, macro lens, soft light"
},
{
"type": "image_url",
"image_url": {"url": "https://example.com/flower-bud.jpg"}
},
{
"type": "image_url",
"image_url": {"url": "https://example.com/flower-open.jpg"}
}
],
ratio="adaptive",
duration=8,
watermark=False,
)
- ภาพลำดับ: เฟรมแรก, เฟรมสุดท้าย
- ใช้
return_last_frame: trueเพื่อขอภาพเฟรมสุดท้าย ส่งภาพนี้ไปยังคลิปถัดไปเพื่อเชื่อมวิดีโอหลายคลิป
การอ้างอิงแบบหลากหลายสื่อ: รวมรูป, วิดีโอ, เสียง
content อนุญาต:
{"type": "text", "text": "..."}{"type": "image_url", "image_url": {"url": "..."}}{"type": "video_url", "video_url": {"url": "..."}}{"type": "audio_url", "audio_url": {"url": "..."}}
ข้อจำกัด:
- รูป: สูงสุด 9 ภาพ (30MB/ภาพ)
- วิดีโอ: สูงสุด 3 คลิป (2-15 วินาที, 50MB/คลิป)
- เสียง: 3 ไฟล์ (MP3, 15MB/ไฟล์)
ตัวอย่าง:
resp = client.content_generation.tasks.create(
model="doubao-seedance-2-0-260128",
content=[
{
"type": "text",
"text": "Match the visual style of the reference clip and add the provided background audio"
},
{
"type": "image_url",
"image_url": {"url": "https://example.com/style-reference.jpg"}
},
{
"type": "video_url",
"video_url": {"url": "https://example.com/motion-reference.mp4"}
},
{
"type": "audio_url",
"audio_url": {"url": "https://example.com/background-music.mp3"}
}
],
duration=10,
ratio="16:9",
watermark=False,
)
- ถ้ามีวิดีโอ reference อัตราค่าบริการจะลดลง (ดูหัวข้อราคา)
การสร้างเสียงแบบ Native
ตั้งค่า generate_audio: true เพื่อให้ Seedance สร้างเสียงพร้อมวิดีโอ:
resp = client.content_generation.tasks.create(
model="doubao-seedance-2-0-260128",
content=[
{
"type": "text",
"text": "A street musician plays guitar outside a cafe in Paris, crowds passing by, city sounds"
}
],
resolution="1080p",
ratio="16:9",
duration=10,
generate_audio=True,
watermark=False,
)
- รองรับพูด, SFX, เสียงบรรยากาศ, เพลง
- ซิงค์ปากหลายภาษา
- เพิ่มการใช้โทเค็นเล็กน้อย
การควบคุมความละเอียด, อัตราส่วนภาพ, ระยะเวลา
-
resolution:"480p","720p","1080p","2K"(default"1080p") -
ratio:"16:9","9:16","4:3","3:4","21:9","1:1","adaptive" -
duration: 4-15 วินาที (default 5)
หมายเหตุ:
โมเดลแบบเร็ว (doubao-seedance-2-0-fast-260128) สร้างไวกว่าแต่คุณภาพต่ำกว่า ใช้สำหรับ prototyping
การอ่านค่าใช้จ่ายจาก Response
หลังงานสำเร็จ field usage จะบอกจำนวนโทเค็น:
{
"usage": {
"completion_tokens": 246840,
"total_tokens": 246840
}
}
ตัวอย่างอัตรา:
- 1080p 15 วินาที ~308,880 โทเค็น
- 1080p 5 วินาที ~102,960 โทเค็น
- ราคาประมาณ $6.40 ต่อล้านโทเค็น (T2V/I2V), $3.90 ต่อล้านโทเค็น (V2V)
- ตรวจสอบ field นี้ทุก response เพื่อ track ค่าใช้จ่าย
สำคัญ: ดาวน์โหลดวิดีโอภายใน 24 ชั่วโมง
-
video_urlจะหมดอายุใน 24 ชั่วโมงหลังจากงานสำเร็จ - ดาวน์โหลดไฟล์ทันทีก่อนหมดอายุ
- ประวัติงานสอบถามได้ 7 วัน แต่ไฟล์หายถ้าเลย 24 ชั่วโมง
วิธีทดสอบ Seedance API ด้วย Apidog
ด้วยโครงสร้าง async ของ API จำเป็นต้องทดสอบแบบหลายขั้นตอน
ขั้นตอนการตั้งค่า Test Scenario
-
สร้าง Test Scenario:
- ไปที่โมดูล Tests ของ Apidog
- ตั้งค่า env ตัวแปร
ARK_API_KEY
-
เพิ่มคำขอ submit:
- POST ไปยัง
https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks - Header:
Authorization: Bearer {{ARK_API_KEY}} - Extract ตัวแปร
$.idลง envTASK_ID
- POST ไปยัง
-
เพิ่ม Wait:
- Wait 30 วินาทีหลัง submit
-
เพิ่ม GET poll ใน For loop:
- GET ไปยัง
/tasks/{{TASK_ID}} - Wait 10 วินาทีในแต่ละรอบ
- Break if
$.status == "succeeded"หรือ"failed"
- GET ไปยัง
-
เพิ่ม Assertion:
- ตรวจสอบ
$.status == "succeeded" - ตรวจสอบว่า
$.content.video_urlมีค่า
- ตรวจสอบ
สามารถนำเข้า cURL โดยตรงเข้าสู่ Apidog เพื่อสร้าง scenario เร็วขึ้น
รายละเอียดราคา: วิดีโอ 10 วินาทีมีค่าใช้จ่ายเท่าไหร่
| ประเภทงาน | อัตรา (ต่อ 1 ล้านโทเค็น) |
|---|---|
| T2V / I2V ที่ 1080p | 46 หยวน (~$6.40) |
| V2V (reference video) | 28 หยวน (~$3.90) |
| ระยะเวลา | โทเค็นโดยประมาณ | ค่าใช้จ่าย (T2V/I2V) |
|---|---|---|
| 5 วินาที | ~103,000 | ~$0.93 |
| 10 วินาที | ~206,000 | ~$1.32 |
| 15 วินาที | ~309,000 | ~$1.97 |
- บัญชีใหม่ได้เครดิตทดลองใช้ฟรี (1080p 15 วินาที ~8 คลิป)
- ลด resolution ช่วยลดต้นทุน
ข้อผิดพลาดทั่วไปและการแก้ไข
- 429 Too Many Requests: ชน concurrency limit ใช้ exponential backoff (รอ 10s, 20s, ... สูงสุด 60s)
- status: "failed": โมเดลสร้างไม่สำเร็จ ตรวจสอบ prompt, รูป หรือพารามิเตอร์
- status: "expired": งานหมดอายุ ส่งใหม่เท่านั้น
- 403 on video_url: URL หมดอายุ ดาวน์โหลดไม่ทันใน 24 ชั่วโมง ต้องสร้างใหม่
-
Seed reproducibility: บันทึกค่า
seedไว้ถ้าต้องการ re-run ให้ได้ผลลัพธ์เดิม
บทสรุป
Seedance 2.0 API เปิดโอกาสให้คุณสร้างวิดีโอแบบ asynchronous ได้แบบโปรแกรม รองรับอินพุตหลากหลาย, สร้างเสียง native, ควบคุมเฟรมแรก/สุดท้าย และทดสอบ workflow ได้ครบถ้วนด้วย Apidog
ตั้งค่า Test Scenario ใน Apidog เพื่อป้องกันปัญหาจากการ poll, การดึงข้อมูล หรือ URL หมดอายุ ก่อนใช้งานจริง
คำถามที่พบบ่อย
Q: ความแตกต่าง doubao-seedance-2-0-260128 กับ doubao-seedance-2-0-fast-260128?
A: เวอร์ชันมาตรฐานเน้นคุณภาพสูง ใช้สำหรับ production. เวอร์ชัน fast เร็วกว่า เหมาะกับ prototyping
Q: ใช้ Seedance 2.0 นอกประเทศจีนได้ไหม?
A: ได้ API host ที่ปักกิ่ง อาจหน่วงขึ้น ตรวจสอบข้อจำกัดบัญชี Volcengine
Q: เชื่อมหลายคลิปให้เป็นวิดีโอยาวได้อย่างไร?
A: ใช้ return_last_frame: true เพื่อดึงเฟรมสุดท้ายมาเป็นเฟรมแรกของคลิปถัดไป แล้วนำคลิปมาต่อด้วย video editor
Q: Native audio มีค่าใช้จ่ายเพิ่มไหม?
A: ใช้โทเค็นเพิ่มขึ้นเล็กน้อยเพราะสร้างเสียงพร้อมวิดีโอ
Q: ตั้ง webhook แทน polling ได้ไหม?
A: ได้ ส่ง callback_url ใน submit API จะ POST ผลลัพธ์ไปที่ URL นั้นเมื่อเสร็จ
Q: ส่งรูปเกิน 9 รูปเป็นอย่างไร?
A: API ตีกลับ error 400 ลดจำนวนรูปใน content array ให้ไม่เกิน 9
Q: seed รับประกันผลลัพธ์เดิมหรือไม่?
A: ไม่ 100% แต่ถ้าพารามิเตอร์เหมือนเดิมและ server model ไม่เปลี่ยน จะใกล้เคียงที่สุด
Q: ติดตามค่าใช้จ่ายงานจำนวนมากอย่างไร?
A: อ่าน completion_tokens จากแต่ละ response คูณอัตราราคาตามประเภทงานแล้วเก็บ log เอง (API ไม่มี dashboard)


Top comments (0)