# Seedance 2.0 Mini API เอกสารอ้างอิง API ฉบับสมบูรณ์สำหรับโมเดลสร้างวิดีโอ Seedance 2.0 Mini ของ ByteDance ## รุ่นของโมเดล API นี้รองรับโมเดลสามรุ่น: | โมเดล | ID | คำอธิบาย | |-------|-----|-------------| | **Seedance 2.0 Mini Text to Video** | `seedance-v2.0-mini-text-to-video` | การสร้างวิดีโอจากข้อความที่คุ้มค่า | | **Seedance 2.0 Mini Image to Video** | `seedance-v2.0-mini-image-to-video` | การสร้างภาพเคลื่อนไหวจากภาพที่คุ้มค่าพร้อมการควบคุมการเคลื่อนไหว | | **Seedance 2.0 Mini Reference to Video** | `seedance-v2.0-mini-reference-to-video` | การสร้างวิดีโอที่คุ้มค่าโดยใช้ภาพ วิดีโอ และเสียงอ้างอิงเป็นแนวทาง | ## เปรียบเทียบโดยสรุป | คุณสมบัติ | ค่า | |---------|-------| | ช่วงความยาว | 4-15 วินาที | | ตัวเลือกความละเอียด | 480p, 720p | | ตัวเลือกอัตราส่วนภาพ | 21:9, 16:9, 9:16, 1:1, 4:3, 3:4 | | การรองรับเสียง | รองรับ (ค่าเริ่มต้น: เปิด) | | สื่ออ้างอิง | ภาพ วิดีโอ และเสียงสำหรับการสร้างวิดีโอจากสื่ออ้างอิง | | การควบคุมค่าซีด | ไม่มีโมเดล Seedance 2.0 Mini รุ่นใดรองรับ | ### อัตราส่วนภาพที่รองรับ `21:9`, `16:9`, `9:16`, `1:1`, `4:3`, `3:4` ### ตัวเลือกความละเอียด | ความละเอียด | คำอธิบาย | |------------|-------------| | `480p` | ความละเอียดมาตรฐาน ประมวลผลเร็วกว่า | | `720p` | ความละเอียดสูง | ## Seedance 2.0 Mini Text to Video ### จุดเชื่อมต่อ ``` POST /api/v1/video/task ``` ### พารามิเตอร์คำขอ #### จำเป็น | พารามิเตอร์ | ชนิด | คำอธิบาย | |-----------|------|-------------| | `model_name` | string | ต้องเป็น `"seedance-v2.0-mini-text-to-video"` | | `prompt` | string | พรอมต์สำหรับสร้างวิดีโอ | | `duration` | integer | ความยาววิดีโอเป็นจำนวนเต็มหน่วยวินาที (4-15) เพิ่มครั้งละ 1 | | `resolution` | string | ความละเอียดผลลัพธ์: `"480p"` หรือ `"720p"` | | `aspect_ratio` | string | อัตราส่วนภาพวิดีโอ: `"21:9"`, `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"` หรือ `"3:4"` | #### ไม่บังคับ | พารามิเตอร์ | ชนิด | คำอธิบาย | |-----------|------|-------------| | `sound` | boolean | กำหนดว่าจะสร้างเสียงบรรยากาศหรือไม่ (ค่าเริ่มต้น: `true`) | ### ตัวอย่างคำขอ ```javascript const response = await fetch('https://api.flaq.ai/api/v1/video/task', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ model_name: 'seedance-v2.0-mini-text-to-video', prompt: 'A golden retriever running through a sunlit meadow', duration: 6, resolution: '720p', aspect_ratio: '16:9', sound: true }) }); const { data } = await response.json(); const taskId = data.task_id; ``` ## Seedance 2.0 Mini Image to Video ### พารามิเตอร์คำขอ #### จำเป็น | พารามิเตอร์ | ชนิด | คำอธิบาย | |-----------|------|-------------| | `model_name` | string | ต้องเป็น `"seedance-v2.0-mini-image-to-video"` | | `prompt` | string | พรอมต์สำหรับสร้างวิดีโอ | | `duration` | integer | ความยาววิดีโอเป็นจำนวนเต็มหน่วยวินาที (4-15) เพิ่มครั้งละ 1 | | `resolution` | string | ความละเอียดผลลัพธ์: `"480p"` หรือ `"720p"` | | `aspect_ratio` | string | อัตราส่วนภาพวิดีโอ: `"21:9"`, `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"` หรือ `"3:4"` | | `image_url` | string | เฟรมแรกของวิดีโอ | #### ไม่บังคับ | พารามิเตอร์ | ชนิด | คำอธิบาย | |-----------|------|-------------| | `image_end_url` | string | URL ภาพเฟรมสุดท้าย ซึ่งไม่บังคับ | | `sound` | boolean | กำหนดว่าจะสร้างเสียงบรรยากาศหรือไม่ (ค่าเริ่มต้น: `true`) | ### ตัวอย่างคำขอ ```javascript const response = await fetch('https://api.flaq.ai/api/v1/video/task', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ model_name: 'seedance-v2.0-mini-image-to-video', image_url: 'https://example.com/image.jpg', image_end_url: 'https://example.com/end-frame.jpg', prompt: 'Camera slowly pulls back to reveal the full landscape', duration: 6, resolution: '720p', aspect_ratio: '16:9', sound: true }) }); const { data } = await response.json(); const taskId = data.task_id; ``` ## Seedance 2.0 Mini Reference to Video ### พารามิเตอร์คำขอ #### จำเป็น | พารามิเตอร์ | ชนิด | คำอธิบาย | |-----------|------|-------------| | `model_name` | string | ต้องเป็น `"seedance-v2.0-mini-reference-to-video"` | | `prompt` | string | พรอมต์สำหรับสร้างวิดีโอ เขียนพรอมต์ปกติโดยไม่ใช้ตัวแทนค่า หรือเลือกใช้คุณสมบัติอ้างอิง @ (AT) กับ `<<>>`, `<<>>` และ `<<>>` เพื่ออ้างอิงรายการในอาร์เรย์สื่อที่เกี่ยวข้องอย่างชัดเจน | | `duration` | integer | ความยาววิดีโอเป็นจำนวนเต็มหน่วยวินาที (4-15) เพิ่มครั้งละ 1 | | `resolution` | string | ความละเอียดผลลัพธ์: `"480p"` หรือ `"720p"` | | `aspect_ratio` | string | อัตราส่วนภาพวิดีโอ: `"21:9"`, `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"` หรือ `"3:4"` | #### สื่ออ้างอิง ทุกคำขอต้องมีภาพหรือวิดีโออย่างน้อยหนึ่งรายการ เมื่อใช้ภาพอ้างอิง ให้ส่งภาพ 1-9 ภาพ สามารถละเว้นหรือปล่อยอาร์เรย์ `images` ให้ว่างได้เฉพาะเมื่ออาร์เรย์ `videos` มีวิดีโออ้างอิงอย่างน้อยหนึ่งรายการ ไม่รองรับคำขอที่มีเฉพาะเสียง | พารามิเตอร์ | ชนิด | คำอธิบาย | |-----------|------|-------------| | `images` | string[] | URL ภาพอ้างอิง 1-9 รายการ หรืออาร์เรย์ว่างเมื่อ `videos` ไม่ว่าง | | `videos` | string[] | URL วิดีโออ้างอิงสูงสุด 3 รายการ แต่ละวิดีโอต้องยาว 2-15 วินาที และความยาวรวมไม่เกิน 15 วินาที | | `audios` | string[] | URL เสียงอ้างอิงสูงสุด 3 รายการ แต่ละคลิปต้องยาว 2-15 วินาที ความยาวรวมไม่เกิน 15 วินาที รูปแบบ WAV หรือ MP3 ขนาดไม่เกิน 15 MB ต่อคลิป และต้องมีภาพหรือวิดีโออย่างน้อยหนึ่งรายการ | #### ตัวแทนค่าอ้างอิง @ (AT) คุณสมบัติอ้างอิง @ (AT) เชื่อมสื่ออ้างอิงกับพรอมต์ผ่านตัวแทนค่าที่มีหมายเลข `<<<...>>>` การนับหมายเลขเริ่มจาก `1` แยกตามชนิดสื่อ และเรียงตามลำดับในอาร์เรย์ที่เกี่ยวข้อง: | ตัวแทนค่า | ค่าที่อ้างอิง | |-------------|------------------| | `<<>>` | `images[0]` | | `<<>>` | `images[1]` | | `<<>>` | `videos[0]` | | `<<>>` | `audios[0]` | ตัวแทนค่าแต่ละตัวต้องชี้ไปยังรายการที่มีอยู่ในอาร์เรย์ที่เกี่ยวข้อง #### ไม่บังคับ | พารามิเตอร์ | ชนิด | คำอธิบาย | |-----------|------|-------------| | `sound` | boolean | กำหนดว่าจะสร้างเสียงที่ซิงค์กันหรือไม่ ค่าเริ่มต้นคือ `true` | ### การคิดราคาวิดีโออ้างอิง Seedance V2.0 Mini Reference-to-Video ใช้โครงสร้างการคิดค่าบริการต่อวินาทีตามความละเอียดเช่นเดียวกับรุ่นอ้างอิงอื่นของ Seedance 2.0 เมื่ออาร์เรย์ `videos` มีวิดีโออ้างอิงอย่างน้อยหนึ่งรายการ ค่าบริการสร้างทั้งหมดจะคูณ 2 ตัวคูณนี้ใช้เพียงครั้งเดียว โดยไม่ขึ้นกับจำนวนหรือความยาวของวิดีโออ้างอิงที่อัปโหลด ### ตัวอย่างคำขอ ```javascript const response = await fetch('https://api.flaq.ai/api/v1/video/task', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ model_name: 'seedance-v2.0-mini-reference-to-video', prompt: 'Place the explorer from <<>> in the environment from <<>>, following the camera movement in <<>> and speaking with the reference voice from <<>>', duration: 8, resolution: '720p', aspect_ratio: '16:9', sound: true, images: [ 'https://example.com/explorer-reference.jpg', 'https://example.com/environment-reference.jpg' ], videos: ['https://example.com/camera-movement-reference.mp4'], audios: ['https://example.com/voice-reference.mp3'] }) }); const { data } = await response.json(); const taskId = data.task_id; ``` ## ข้อจำกัดของสื่อ ข้อจำกัดเหล่านี้ใช้กับภาพเฟรมแรก ภาพเฟรมสุดท้าย และสื่ออ้างอิงของโมเดลในหน้านี้ | สื่อ | รูปแบบ | ข้อจำกัด | |-------|---------|--------| | ภาพ | JPEG, PNG, WEBP, BMP, TIFF, GIF, HEIC, HEIF | แต่ละภาพต้องเล็กกว่า 30 MB ความกว้างและความสูงแต่ละด้านต้องอยู่ที่ 300-6000 px อัตราส่วนความกว้างต่อความสูงต้องอยู่ที่ 0.4-2.5 | | วิดีโอ | MP4, MOV | แต่ละรายการไม่เกิน 200 MB ความกว้างและความสูงแต่ละด้านต้องอยู่ที่ 300-6000 px อัตราส่วนความกว้างต่อความสูงต้องอยู่ที่ 0.4-2.5 อัตราเฟรมต้องอยู่ที่ 24-60 FPS | | เสียง | WAV, MP3 | แต่ละรายการไม่เกิน 15 MB | | เนื้อหาคำขอ | — | ไม่เกิน 64 MB | เสียงอ้างอิงและวิดีโออ้างอิงมีขีดจำกัดความยาวรวมแยกกันชนิดละ 15 วินาที จำนวนรายการก็นับแยกกัน: ภาพสูงสุด 9 ภาพ วิดีโอ 3 รายการ และเสียง 3 คลิป การเพิ่มวิดีโอไม่ลดจำนวนภาพที่อนุญาต ทุกโมเดลมีค่าเริ่มต้นเป็น `720p` แต่ยังต้องระบุ `resolution` สวิตช์เสียงมีค่าเริ่มต้นเป็น `true` ทั้งสวิตช์นี้และเสียงอ้างอิงไม่มีผลต่อราคา การสร้างวิดีโอจากสื่ออ้างอิงต้องมีภาพหรือวิดีโออย่างน้อยหนึ่งรายการ ไม่รองรับคำขอที่มีเฉพาะเสียง การอัปโหลดวิดีโออ้างอิงทำให้ค่าบริการสร้างเพิ่มเป็นสองเท่า โดยไม่ขึ้นกับจำนวนหรือความยาว ## รูปแบบการตอบกลับ ### การตอบกลับเริ่มต้น ทุกโมเดลส่งคืน `task_id` สำหรับการสอบถามซ้ำ: ```json { "code": 0, "message": "success", "data": { "task_id": "{task_id}", "response_url": "https://api.flaq.ai/api/v1/video/{task_id}", "task_status": "submitted" } } ``` ### การตอบกลับจากการสอบถามซ้ำ สอบถาม `GET /api/v1/video/{taskId}` ซ้ำเพื่อตรวจสอบสถานะ: ```json { "code": 0, "message": "success", "data": { "task_id": "{task_id}", "response_url": "https://api.flaq.ai/api/v1/video/{task_id}", "task_status": "succeed", "task_status_msg": null, "task_result": { "credit": 0.2, "videos": [ { "url": "https://example.com/generated-video.mp4" } ] } } } ``` ### ค่าสถานะ - `submitted`: รับงานแล้วและกำลังรอประมวลผล - `processing`: กำลังสร้างวิดีโอ - `succeed`: สร้างวิดีโอเสร็จแล้ว - `failed`: สร้างวิดีโอไม่สำเร็จ ## เวลาประมวลผล เวลาประมวลผลทั่วไปคือ 2-6 นาที ขึ้นอยู่กับความยาวและความละเอียด สอบถามทุก 5-10 วินาทีเพื่อตรวจสอบสถานะ ## แนวทางปฏิบัติที่แนะนำ 1. **อธิบายการเคลื่อนไหวอย่างชัดเจน**: ใส่คำอธิบายการเคลื่อนไหวที่เจาะจงในพรอมต์ 2. **การเลือกความละเอียด**: ใช้ `480p` เพื่อประมวลผลเร็วขึ้น หรือ `720p` เพื่อคุณภาพที่สูงขึ้น 3. **เพิ่มประสบการณ์ด้วยเสียง**: เปิด `sound` ไว้เพื่อให้วิดีโอสมจริงยิ่งขึ้น 4. **ภาพเป็นวิดีโอ**: ส่งภาพเฟรมแรกที่ชัดเจนผ่าน `image_url` และใช้ `image_end_url` เมื่อต้องการควบคุมเฟรมเริ่มต้นและเฟรมสุดท้าย 5. **สื่ออ้างอิง**: ใช้ภาพ วิดีโอ และเสียงอ้างอิงที่รองรับ และตรวจสอบว่ามีภาพหรือวิดีโออย่างน้อยหนึ่งรายการ 6. **การคิดราคาวิดีโออ้างอิง**: คำขอสร้างวิดีโอจากสื่ออ้างอิงที่มีวิดีโออ้างอิงอย่างน้อยหนึ่งรายการจะคิดค่าบริการ 2 เท่า โดยไม่ขึ้นกับจำนวนหรือความยาวของวิดีโอที่อัปโหลด 7. **พารามิเตอร์ซีด**: อย่าส่ง `seed` เนื่องจากโมเดล Seedance 2.0 Mini ไม่รองรับ