ByteDance: Seedance 1.5 Pro
ByteDance Seedance 1.5 Pro สร้างวิดีโอพร้อมบทสนทนา เอฟเฟกต์เสียง และดนตรีที่ตรงกับภาพ กำกับผู้พูด อารมณ์ กล้อง และบรรยากาศเสียง เพื่อพัฒนาละครสั้น โฆษณาที่มีเสียงพูด และฉากตัวละคร
เกี่ยวกับโมเดล
คำอธิบายนี้ครอบคลุมความสามารถของโมเดล อินพุต เอาต์พุต และตัวเลือกที่ใช้ได้ใน Ailoot แสดงด้านล่างตามเมธอดที่เลือก
Seedance 1.5 Pro เป็นโมเดลของ ByteDance Seed สำหรับสร้างเสียงและวิดีโอร่วมกันโดยตรง จำลองการกระทำ คำพูด และจังหวะร่วมกัน ทำให้ฉากมีการแสดงของตัวละคร บทสนทนาที่ตรงกับภาพ และบรรยากาศเสียงที่ออกแบบไว้ ความต่างหลักจากบรีฟวิดีโอที่มีเฉพาะภาพคือเสียงเป็นส่วนหนึ่งของคำอธิบายฉาก: ใครพูด พูดอย่างไร และผู้ชมได้ยินอะไรโดยรอบ
สร้างภาพและเสียงร่วมกัน
เสียงที่ระบุครอบคลุมสิ่งแวดล้อม เอฟเฟกต์การกระทำ เสียงสังเคราะห์ เครื่องดนตรี ดนตรีพื้นหลัง และเสียงร้อง โมเดลมุ่งเชื่อมเสียงกับเหตุการณ์บนจอ เช่น วัตถุกระทบโต๊ะ ประตูเปิด หรือตัวละครพูด ใช้กับจังหวะละครสั้น โฆษณาสินค้าที่มีคำพูด หรือฉากที่อารมณ์ขึ้นกับทั้งการแสดงและเสียง
เริ่มพรอมป์ต์ด้วยตัวแบบและการเคลื่อนไหว แล้วเติมสภาพแวดล้อม กล้อง สไตล์ภาพ และเสียง ตัวอย่างฉากกระชับคือ “เชฟเปิดฝาหม้อใบเล็ก ยิ้มแล้วพูดว่า ‘พร้อมแล้ว’ ไอน้ำพุ่งเบา ๆ ตามด้วยเสียงกระทบแผ่วเมื่อวางฝาบนเคาน์เตอร์” ทำให้ประโยคและเอฟเฟกต์มีเหตุที่เห็นได้
บทสนทนาและเสียงบรรยาย
รองรับบทพูดคนเดียวและสนทนาหลายผู้พูด โดยปากตรงกับตัวละคร คู่มือระบุจีนกลาง ภาษาถิ่นจีนรวมกวางตุ้ง ส่านซี และเสฉวน และภาษาพูดอังกฤษ ญี่ปุ่น เกาหลี สเปน และอินโดนีเซีย ภาษาพรอมป์ต์ที่ระบุคือจีนและอังกฤษ ภาษาของพรอมป์ต์กับภาษาของประโยคที่ต้องการเป็นคนละตัวเลือก
ระบุผู้พูดด้วยลักษณะที่มองเห็นคงที่และใส่ประโยคในเครื่องหมายคำพูด กำกับน้ำเสียง เช่น สงบ ลังเล หรือเร็วขึ้น และลำดับผลัดพูดให้ชัด สำหรับสองคนให้บอกว่าใครเริ่มและกล้องแสดงปฏิกิริยาใคร บทโต้ตอบสั้นที่พอดีกับคลิปให้เป้าหมายการแสดงชัดกว่าข้อความยาวที่ไม่ระบุผู้พูด
กำกับเสียงบรรยายผ่านเนื้อเสียง อารมณ์ ทำนองเสียง และอัตราพูด เหมาะเมื่อเสียงอธิบายสินค้าขณะกล้องอยู่ที่สินค้า หรือผู้บรรยายสร้างอารมณ์โดยไม่ปรากฏตัว คู่มืออธิบายการรักษาเนื้อเสียงให้จำได้ขณะเปลี่ยนวิธีพูด ให้ตรวจถ้อยคำ การออกเสียง และการแสดงร่วมกับภาพจริง
เอฟเฟกต์เสียงและดนตรีพื้นหลัง
บรรยายเอฟเฟกต์เป็นเหตุการณ์ที่ผูกกับการกระทำ เช่น ฝีเท้าเมื่อเข้าฉาก ฝนแรงขึ้นนอกหน้าต่าง หรือเสียงผ้าเมื่อสวมเสื้อโค้ต โดยปริยายโมเดลสร้างดนตรีพื้นหลังให้เข้าพรอมป์ต์ ระบุอารมณ์ สไตล์ จังหวะ และจุดเริ่มหรือเฟดสัมพันธ์กับฉากเมื่อสำคัญ
สำหรับการสาธิตเงียบ ๆ ขอเพลงเบาและเน้นเสียงจับใช้งานสินค้า สำหรับฉากแอนิเมชันระบุจังหวะการกระทำที่ตรงดนตรี ซาวด์แทร็กเป็นโมโน ตัวควบคุมเสียงที่ระบุยังเลือกวิดีโอเงียบได้เมื่อจะเตรียมเสียงแยก
เปลี่ยนช็อตและกำกับกล้อง
รองรับการเปลี่ยนช็อตโดยคงแนวภาพ ช็อตย้อนมุมสำหรับบทสนทนา และคำสั่งเรื่องจังหวะเปลี่ยน ตัวอย่างลำดับคือเริ่มสองผู้พูดในภาพระยะกลาง ตัดไปคนตอบ แล้วกลับมาปฏิกิริยาคนแรก ระบุตัวตนของแต่ละคนเมื่อเปลี่ยนช็อต
คู่มือครอบคลุมมุมสูง ต่ำ และระดับสายตา มุมข้ามไหล่และมุมแทนสายตา รวมภาพกว้าง กลาง และใกล้ บรรยายกล้องด้วยองค์ประกอบเริ่ม ทิศทาง ระยะการเคลื่อน และองค์ประกอบจบ เช่น ดอลลี่เข้าช้า ๆ จบที่สีหน้าผู้พูดเมื่อจบประโยค เชื่อมกล้องกับเรื่อง แทนการไล่ชื่อเทคนิคหลายอย่างไร้จุดประสงค์
โหมด เอาต์พุต และพรีวิว
โหมดอินพุตที่ระบุคือข้อความสู่วิดีโอ ภาพเฟรมแรกสู่วิดีโอ และภาพเฟรมแรกกับสุดท้ายสู่วิดีโอ ภาพแรกกำหนดองค์ประกอบเริ่ม ส่วนภาพสุดท้ายกำหนดจุดปลาย ข้อกำหนดเอาต์พุตระบุ MP4 ที่ 24 fps, 480p, 720p หรือ 1080p และความยาว 4–12 วินาที โมเดลเลือกความยาวเป็นวินาทีเต็มภายในช่วงได้ อัตราส่วนคือ 21:9, 16:9, 4:3, 1:1, 3:4 และ 9:16 พร้อมปรับกรอบตามภาพ
ผู้ผลิตระบุเวิร์กโฟลว์ Draft สองขั้น: พรีวิว 480p เพื่อตรวจโครงฉาก การเลือกช็อต การเคลื่อนไหว และเจตนาพรอมป์ต์ แล้วสร้างฉบับเต็มโดยใช้ข้อมูลสร้างเดิม ช่วยประเมินการแสดงก่อนเลือกความละเอียดสุดท้าย พรีวิวจำกัด 480p และไม่รองรับการคืนเฟรมสุดท้าย ID งาน Draft ใช้ได้เจ็ดวันหลังสร้าง ต้องสร้างวิดีโอเต็มภายในช่วงนั้น
งานนำด้วยภาพควรเตรียมภาพต้นฉบับให้ตรงกรอบที่ต้องการ การเปลี่ยนอัตราส่วนเอาต์พุตอาจครอปภาพ seed เดิมให้เฟรมคล้ายกัน ไม่รับประกันเหมือนทุกจุด และคำสั่งกล้องนิ่งไม่รับประกันล็อกสมบูรณ์ ที่สำคัญต้องประเมินคลิปบทสนทนาเป็นการแสดงภาพและเสียงเดียวกัน ผู้พูดที่ถูกต้อง ประโยคที่ได้ยิน สีหน้า และจุดเน้นกล้องต้องสนับสนุนเหตุการณ์เดียวกัน
Ailoot Ultra · วิดีโอ POST /v1/videos bytedance/seedance-1-5-pro
bytedance/seedance-1-5-proเริ่มต้น
ByteDance Seedance 1.5 Pro สร้างวิดีโอพร้อมบทสนทนา เอฟเฟกต์เสียง และดนตรีที่ตรงกับภาพ กำกับผู้พูด อารมณ์ กล้อง และบรรยากาศเสียง เพื่อพัฒนาละครสั้น โฆษณาที่มีเสียงพูด และฉากตัวละคร
- อินพุตที่รองรับ
- ข้อความ · รูปภาพ
- ผลลัพธ์
- วิดีโอ
ใช้งานได้ใน Ailoot · อินพุตและเมธอด
Ailoot Ultra · วิดีโอ POST /v1/videos
- ขาเข้า
text,image- ขาออก
video- รูปแบบเอาต์พุต
- ไบต์ MP4 ต้นฉบับ; ไม่ปรับมาตรฐานหรือแปลงรหัส
| ฟิลด์ | ประเภท | ข้อกำหนด | ค่าและข้อจำกัด | ค่าเริ่มต้น |
|---|---|---|---|---|
ฟิลด์model | ประเภทstring | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด bytedance/seedance-1-5-pro | ค่าเริ่มต้น— |
ฟิลด์prompt | ประเภทstring | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด | ค่าเริ่มต้น— |
ฟิลด์duration | ประเภทinteger | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด 4, 5, 6, 7, 8, 9, 10, 11, 12 ขั้นต่ำ: 1 สูงสุด: 600 | ค่าเริ่มต้น— |
ฟิลด์resolution | ประเภทstring | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด 480p, 720p, 1080p | ค่าเริ่มต้น— |
ฟิลด์aspect_ratio | ประเภทstring | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด 1:1, 3:4, 9:16, 9:21, 4:3, 16:9, 21:9 | ค่าเริ่มต้น— |
ฟิลด์generate_audio | ประเภทboolean | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด false, true เงื่อนไข: การไม่ระบุตัวเลือกนี้จะเลือกราคาที่เปิดใช้เสียง กำหนดเป็น false เพื่อเลือกราคาที่ไม่มีเสียง ตรวจสอบ has_audio ในผลลัพธ์เพื่อดูว่ามีการส่งแทร็กเสียงกลับหรือไม่ | ค่าเริ่มต้น— |
ฟิลด์frame_images | ประเภทarray | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด จำนวนรายการขั้นต่ำ: 1 จำนวนรายการสูงสุด: 2 เนื้อหาอินพุต: อาร์เรย์ของออบเจ็กต์เฟรม แต่ละออบเจ็กต์มี type=image_url, image_url ซึ่งมี url และ frame_type ใช้ URL ภาพ HTTPS และกำหนด frame_type เป็น first_frame หรือ last_frame แต่ละบทบาทของเฟรมปรากฏได้ไม่เกินหนึ่งครั้ง ชื่อคีย์ที่แน่นอน: type, image_url, frame_type เงื่อนไข: คีย์เหล่านี้อธิบายออบเจ็กต์เฟรมแต่ละรายการ image_url มีเฉพาะ url ไม่ต้องระบุ frame_images สำหรับคำขอที่มีเฉพาะข้อความ | ค่าเริ่มต้น— |
ฟิลด์input_references | ประเภทarray | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด | ค่าเริ่มต้น— |
ฟิลด์size | ประเภทstring | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด 480x480, 480x640, 480x854, 480x1120, 640x480, 720x720, 720x960, 720x1280, 720x1680, 854x480, 960x720, 1080x1080, 1080x1440, 1080x1920, 1080x2520, 1120x480, 1280x720, 1440x1080, 1680x720, 1920x1080, 2520x1080 แพตเทิร์น: ^[1-9][0-9]*x[1-9][0-9]*$ | ค่าเริ่มต้น— |
ฟิลด์seed | ประเภทinteger | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด ขั้นต่ำ: -9,223,372,036,854,775,808 สูงสุด: 9,223,372,036,854,775,807 | ค่าเริ่มต้น— |
ฟิลด์callback_url | ประเภทstring | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด แพตเทิร์น: ^https:// | ค่าเริ่มต้น— |
ฟิลด์session_id | ประเภทstring | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด | ค่าเริ่มต้น— |
ฟิลด์trace | ประเภทobject | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด | ค่าเริ่มต้น— |
ฟิลด์user | ประเภทstring | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด | ค่าเริ่มต้น— |
ชุดผสมของสื่ออินพุต
สร้างวิดีโอจากข้อความ · พรอมป์ต์ข้อความ · จำเป็น: model, prompt, duration
ระบุพรอมป์ต์เป็นข้อความและระยะเวลาเป็นวินาทีเต็ม เลือกความละเอียดและอัตราส่วนภาพที่รองรับ หรือขนาดที่ตรงตามรายการ
model: ประเภท: string · bytedance/seedance-1-5-pro
prompt: ประเภท: string · จำนวนไบต์ UTF-8 สูงสุด: 10,000 · ต้องมีอักขระที่ไม่ใช่ช่องว่าง: ใช่
สร้างวิดีโอจากภาพ · พรอมป์ต์ข้อความและภาพเฟรมแรก · จำเป็น: model, prompt, duration, frame_images
frame_images เป็นอาร์เรย์ ออบเจ็กต์ของแต่ละเฟรมมี type, image_url และ frame_type โดย image_url มี url กำหนด type เป็น image_url ใช้ first_frame และเพิ่ม last_frame ได้หากต้องการ แต่ละบทบาทของเฟรมปรากฏได้ไม่เกินหนึ่งครั้ง ระบุ URL ภาพ HTTPS สาธารณะสำหรับแต่ละเฟรม เลือกความละเอียดและอัตราส่วนภาพที่รองรับ หรือขนาดที่ตรงตามรายการ
ชื่อคีย์ที่แน่นอน: type, image_url, frame_type
model: ประเภท: string · bytedance/seedance-1-5-pro
prompt: ประเภท: string · จำนวนไบต์ UTF-8 สูงสุด: 10,000 · ต้องมีอักขระที่ไม่ใช่ช่องว่าง: ใช่
พารามิเตอร์และวงจรการทำงานของเมธอด
| พารามิเตอร์ | ข้อกำหนด |
|---|---|
พารามิเตอร์content_type | ข้อกำหนดapplication/json |
พารามิเตอร์required | ข้อกำหนดmodel, prompt, duration |
พารามิเตอร์material_types | ข้อกำหนดtext, image |
พารามิเตอร์additional_properties | ข้อกำหนดfalse |
พารามิเตอร์optional_controls | ข้อกำหนดresolution, aspect_ratio, generate_audio, frame_images, input_references, size, seed, callback_url, session_id, trace, user |
วงจรการทำงาน: submit_once_poll_original
GET /v1/videos/{public_id}
GET /v1/videos/{public_id}/content
ราคา
วิธีคำนวณค่าบริการสุดท้าย
อัตราที่แสดงใช้ประมาณการค่าใช้จ่ายก่อนการสร้างผลลัพธ์ ยอดเรียกเก็บสุดท้ายคำนวณจากค่าใช้จ่ายที่บันทึกไว้สำหรับการสร้างผลลัพธ์ครั้งเดิม ระยะเวลาของผลลัพธ์ที่วัดได้และปริมาณที่คาดการณ์ไว้ไม่ใช่ปริมาณสุดท้ายที่ใช้คิดค่าบริการ
ข้อมูลอัตราราคาไม่ได้เพิ่มตัวเลือกคำขอ พารามิเตอร์ที่รองรับระบุไว้สำหรับเมธอดที่เลือก
- โหมดรวดเร็ว
- ไม่ได้ระบุ เมื่อเลือกโหมดรวดเร็ว
- โหมดยืดหยุ่น
- ไม่ได้ระบุ เมื่อเลือกโหมด flex
- ระดับการใช้เหตุผลสูงสุด
- ไม่ได้ระบุ เมื่อใช้การปรับตามค่าเริ่มต้น (default) สำหรับระดับการใช้เหตุผลสูงสุด
อัตราประมาณการเพื่อเปรียบเทียบ
ราคาตามการตั้งค่า
เทียบค่าบริการแต่ละรายการกับเงื่อนไขที่แสดง เลือกใช้อัตราเดียวสำหรับแต่ละชุดการตั้งค่าที่เป็นตัวเลือกทดแทนกัน
| การตั้งค่า | ตารางอัตราค่าบริการ | ปริมาณคาดการณ์ | หน่วยคิดค่าบริการ | เงื่อนไขคิดค่าบริการ | ค่าบริการ |
|---|---|---|---|---|---|
| การตั้งค่าอัตราค่าบริการโทเคนพื้นฐาน | ตารางอัตราค่าบริการอัตราพื้นฐาน | ปริมาณคาดการณ์— | หน่วยคิดค่าบริการ— | เงื่อนไขคิดค่าบริการ— | ค่าบริการ ขาเข้า · โทเค็นอินพุต · ประมาณการเพื่อเปรียบเทียบเท่านั้น — / 1K โทเค็น ขาออก · โทเค็นเอาต์พุต · ประมาณการเพื่อเปรียบเทียบเท่านั้น — / 1K โทเค็น ขาเข้า · การอ่านแคช · ประมาณการเพื่อเปรียบเทียบเท่านั้น — / 1K โทเค็น ขาเข้า · การเขียนแคช · ประมาณการเพื่อเปรียบเทียบเท่านั้น — / 1K โทเค็น ขาเข้า · การเขียนแคช, 1 ชั่วโมง · ประมาณการเพื่อเปรียบเทียบเท่านั้น — / 1K โทเค็น |
| การตั้งค่าราคาโทเคนวิดีโอ | ตารางอัตราค่าบริการ— | ปริมาณคาดการณ์— | หน่วยคิดค่าบริการต่อ 1K โทเค็นวิดีโอ | เงื่อนไขคิดค่าบริการไม่มีการระบุเงื่อนไขเพิ่มเติมในคีย์ราคานี้ | ค่าบริการ ขาออก · ราคาโทเคนวิดีโอ · ประมาณการเพื่อเปรียบเทียบเท่านั้น $0.0048 ต่อ 1K โทเค็นวิดีโอ อัตราต่อโทเคนวิดีโอเป็นราคาอ้างอิงหลัก ค่าประมาณต่อวินาทีที่แสดงเด่นเป็นข้อมูลอ้างอิงแยกต่างหาก ไม่ใช่ค่าใช้จ่ายเพิ่มเติม |
| การตั้งค่าราคาโทเคนวิดีโอ | ตารางอัตราค่าบริการ— | ปริมาณคาดการณ์— | หน่วยคิดค่าบริการต่อ 1K โทเค็นวิดีโอ | เงื่อนไขคิดค่าบริการเสียง: without_audio | ค่าบริการ ขาออก · ราคาโทเคนวิดีโอ · ประมาณการเพื่อเปรียบเทียบเท่านั้น $0.0024 ต่อ 1K โทเค็นวิดีโอ อัตราต่อโทเคนวิดีโอเป็นราคาอ้างอิงหลัก ค่าประมาณต่อวินาทีที่แสดงเด่นเป็นข้อมูลอ้างอิงแยกต่างหาก ไม่ใช่ค่าใช้จ่ายเพิ่มเติม |
| การตั้งค่าต้นทุนการสร้างโดยประมาณ | ตารางอัตราค่าบริการ— | ปริมาณคาดการณ์ค่าประมาณสำหรับการสร้างหนึ่งครั้ง | หน่วยคิดค่าบริการ— | เงื่อนไขคิดค่าบริการ— | ค่าบริการ ขาออก · ค่าใช้จ่ายในการสร้างโดยประมาณ · ประมาณการเพื่อเปรียบเทียบเท่านั้น $0.05184 ประมาณการก่อนสร้าง ค่าประมาณนี้ไม่ใช่ค่าใช้จ่ายเพิ่มเติมหรืออัตราคงที่สำหรับการสร้างผลลัพธ์ที่เสร็จสมบูรณ์แล้ว |
Ailoot กันยอดเงินประมาณการไว้ก่อนส่งคำขอ หลังได้ผลลัพธ์ จะคิดค่าบริการสุดท้ายตามการใช้งานที่วัดได้ การคิดค่าบริการแบบสตรีมใช้บันทึกการใช้งานสุดท้าย วิธีกันยอดเงินและคิดค่าบริการสุดท้าย →
รายละเอียดอัตราอ้างอิง
ตารางอัตราอ้างอิงระดับโมเดลไม่เปลี่ยนเมธอดที่เลือก ยอดประมาณการ หรือค่าบริการ การคิดค่าบริการจริงใช้อัตราของเมธอด Ailoot ที่เลือก
ข้อมูลอ้างอิงราคาตามการตั้งค่าวิดีโอ
ราคาตามการตั้งค่า
เทียบค่าบริการแต่ละรายการกับเงื่อนไขที่แสดง เลือกใช้อัตราเดียวสำหรับแต่ละชุดการตั้งค่าที่เป็นตัวเลือกทดแทนกัน
| การตั้งค่า | เงื่อนไขคิดค่าบริการ | ค่าบริการ |
|---|---|---|
| การตั้งค่าราคาโทเคนวิดีโอ | เงื่อนไขคิดค่าบริการไม่มีการระบุเงื่อนไขเพิ่มเติมในคีย์ราคานี้ | ค่าบริการ ขาออก · ราคาโทเคนวิดีโอ $0.0048 ต่อ 1K โทเค็นวิดีโอ อัตราต่อโทเคนวิดีโอเป็นราคาอ้างอิงหลัก ค่าประมาณต่อวินาทีที่แสดงเด่นเป็นข้อมูลอ้างอิงแยกต่างหาก ไม่ใช่ค่าใช้จ่ายเพิ่มเติม |
| การตั้งค่าราคาโทเคนวิดีโอ | เงื่อนไขคิดค่าบริการเสียง: without_audio | ค่าบริการ ขาออก · ราคาโทเคนวิดีโอ $0.0024 ต่อ 1K โทเค็นวิดีโอ อัตราต่อโทเคนวิดีโอเป็นราคาอ้างอิงหลัก ค่าประมาณต่อวินาทีที่แสดงเด่นเป็นข้อมูลอ้างอิงแยกต่างหาก ไม่ใช่ค่าใช้จ่ายเพิ่มเติม |
ตัวอย่างคำขอ
Ailoot Ultra · วิดีโอ
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
from pathlib import Path
Path('request.json').write_text('{"aspect_ratio":"16:9","duration":8,"model":"bytedance/seedance-1-5-pro","prompt":"A serene mountain landscape at sunset","resolution":"720p"}', encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('result.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
รับและบันทึกผลลัพธ์
Ailoot Ultra · วิดีโอ
URL เนื้อหาที่ลงลายเซ็นและเป็นของคุณ
GET /v1/videos/{public_id}GET /v1/videos/{public_id}/content
ตรวจสอบสถานะงาน
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_STATUS_URL'
import json
from pathlib import Path
from urllib.parse import quote
r=json.loads(Path('result.json').read_text())
if not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')
Path('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))
PY_STATUS_URL
curl --fail-with-body --silent --show-error "$(cat status-url.txt)" \
-H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('status.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
การอ่านเนื้อหาแบบอื่น
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path('status.json').read_text())
if r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')
if not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')
urls=[]
for i,u in enumerate(r.get('data',[])):
if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')
urls.append((str(i),u))
for label,path in urls:
u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)
if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')
target=Path('owned-'+label+'.bin')
subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)
print('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')
PY_ASSETS
เก็บผลลัพธ์ที่เสร็จสมบูรณ์ทั้งหมด
บันทึกวิดีโอที่สร้างเสร็จหรือไฟล์ที่ส่งกลับมาทุกไฟล์ และดึงไฟล์สื่อจากทุก URL ที่ส่งกลับมาจริง
เก็บผลลัพธ์จริงที่เป็นของคุณทุกรายการ พร้อมเมทาดาทาที่วัดได้ซึ่งส่งกลับมา
เมื่อต้องตรวจสอบการตอบกลับต้นฉบับ
503 result_pending_check + id เดิม + X-Should-Retry:false ห้ามส่งคำขอเดิมซ้ำ
ฟิลด์การตอบกลับ
| ฟิลด์ | ประเภท | ความหมาย |
|---|---|---|
ฟิลด์index | ประเภทinteger | ความหมายตำแหน่งของวิดีโอนี้ในรายการผลลัพธ์ โดยเริ่มนับจากศูนย์ |
ฟิลด์content_url | ประเภทstring | ความหมายURL ดาวน์โหลด HTTPS ที่ลงลายเซ็นสำหรับวิดีโอที่เสร็จสมบูรณ์นี้ |
ฟิลด์sha256 | ประเภทstring | null | ความหมายค่าแฮช SHA-256 ของไบต์วิดีโอต้นฉบับ เป็น null หากไม่มีข้อมูล |
ฟิลด์size_bytes | ประเภทinteger | null | ความหมายขนาดไฟล์วิดีโอต้นฉบับเป็นไบต์ เป็น null หากไม่มีข้อมูล |
ฟิลด์duration_ms | ประเภทinteger | null | ความหมายระยะเวลาวิดีโอที่วัดได้เป็นมิลลิวินาที เป็น null หากไม่มีข้อมูล |
ฟิลด์width | ประเภทinteger | null | ความหมายความกว้างวิดีโอเป็นพิกเซล เป็น null หากไม่มีข้อมูล |
ฟิลด์height | ประเภทinteger | null | ความหมายความสูงวิดีโอเป็นพิกเซล เป็น null หากไม่มีข้อมูล |
ฟิลด์video_codec | ประเภทstring | null | ความหมายตัวระบุตัวแปลงสัญญาณวิดีโอ เป็น null หากไม่ได้บันทึกไว้ |
ฟิลด์has_audio | ประเภทboolean | null | ความหมายระบุว่าวิดีโอมีแทร็กเสียงหรือไม่ เป็น null หากไม่ได้วัด |
ฟิลด์audio_codec | ประเภทstring | null | ความหมายตัวระบุตัวแปลงสัญญาณเสียง เป็น null เมื่อไม่มีการบันทึกตัวระบุ |
ข้อผิดพลาดและขั้นตอนถัดไป
| การตอบกลับ | เงื่อนไข | ขั้นตอนถัดไป |
|---|---|---|
การตอบกลับ404 · not_found_error | เงื่อนไขไม่สามารถเข้าถึงวิดีโอ หรือไม่พบ ID วิดีโอนี้ | ขั้นตอนถัดไปตรวจสอบสิทธิ์เข้าถึงวิดีโอ สำหรับวิดีโอที่มีอยู่ ให้ใช้ ID สาธารณะเดิมและคีย์ API เดิม |
การตอบกลับ401 · authentication_error | เงื่อนไขคีย์ API ไม่ตรงกับบัญชีที่ยืนยันตัวตน | ขั้นตอนถัดไปตรวจสอบคีย์ API และสิทธิ์เข้าถึงบัญชีของคุณก่อนส่ง |
การตอบกลับ400 · invalid_request_error | เงื่อนไขไม่สามารถอ่านคำขอ หรือดัชนีดาวน์โหลดไม่ถูกต้อง | ขั้นตอนถัดไปแก้ไขเนื้อหาคำขอ สำหรับการดาวน์โหลด ให้เลือกดัชนีผลลัพธ์ที่งานเดิมส่งกลับ |
การตอบกลับ422 · price_unavailable | เงื่อนไขไม่สามารถคิดราคาการตั้งค่าวิดีโอที่เลือกได้ | ขั้นตอนถัดไปเลือกการตั้งค่าวิดีโอที่รองรับและระบุตัวเลือกที่จำเป็นให้ครบก่อนส่งคำขอที่แก้ไขแล้ว |
การตอบกลับ422 · invalid_request_error | เงื่อนไขข้อมูลขาเข้าวิดีโอหรืองานต้นฉบับสำหรับการต่อเนื่องไม่ถูกต้อง | ขั้นตอนถัดไปใช้ข้อมูลขาเข้า HTTPS ที่ถูกต้อง สำหรับการต่อเนื่อง ให้ใช้ ID วิดีโอสาธารณะเดิมที่เสร็จสมบูรณ์ของคุณพร้อมคีย์ API เดิม |
การตอบกลับ402 · billing_error | เงื่อนไขยอดคงเหลือหรือขีดจำกัดที่ใช้ได้ไม่เพียงพอสำหรับการกันวงเงิน | ขั้นตอนถัดไปตรวจสอบยอดคงเหลือและขีดจำกัดที่ใช้ได้ก่อนส่งคำขอใหม่ |
การตอบกลับ503 · server_error | เงื่อนไขการตรวจสอบวิดีโอ ที่เก็บข้อมูล หรือการเข้าถึงบริการไม่พร้อมใช้งานชั่วคราว | ขั้นตอนถัดไปรอให้บริการพร้อมใช้งาน หากมี ID วิดีโอแล้ว ให้ตรวจสอบงานเดิมนั้นแทนการสร้างวิดีโออีกครั้ง |
การตอบกลับ503 · result_pending_check | เงื่อนไขต้องตรวจสอบผลลัพธ์วิดีโอเดิมและยอดเรียกเก็บ | ขั้นตอนถัดไปเก็บ ID วิดีโอที่ส่งกลับและตรวจสอบงานนั้น อย่าส่งคำขอสร้างทดแทนระหว่างที่กำลังตรวจสอบ |
การตอบกลับ503 · owned_result_unavailable | เงื่อนไขการดาวน์โหลดวิดีโอที่มีอยู่ไม่พร้อมใช้งานชั่วคราว | ขั้นตอนถัดไปตรวจสอบงานวิดีโอเดิมในภายหลังและดาวน์โหลดผลลัพธ์ที่มีอยู่ การสร้างใหม่จะสร้างการดำเนินการแยกต่างหาก |
การตอบกลับ409 · video_not_ready | เงื่อนไขเนื้อหาวิดีโอยังไม่เผยแพร่ | ขั้นตอนถัดไปตรวจสอบสถานะงานเดิม ดาวน์โหลดหลังรายงาน completed หากรายงาน failed ให้ทำตามข้อความแจ้งตรวจสอบยอดเรียกเก็บ |
ชื่ออื่น
ชื่ออื่นของโมเดล
Ailoot Ultra bytedance/seedance-1-5-pro
ชื่อพาธเมธอดอื่น
ใช้พาธเมธอดที่แสดงด้านบน
ID ที่เกี่ยวข้องสำหรับเรียกใช้โมเดล
FAQ · ByteDance: Seedance 1.5 Pro
- มีอินพุตและผลลัพธ์ใดบ้าง?
POST /v1/videos·bytedance/seedance-1-5-pro:text,image→video- คำขอใช้ฟิลด์ใดบ้าง?
POST /v1/videos·bytedance/seedance-1-5-pro:model,prompt,duration,resolution,aspect_ratio,generate_audio,frame_images,input_references,size,seed,callback_url,session_id,trace,user- มีข้อจำกัดใดบ้าง?
POST /v1/videos·bytedance/seedance-1-5-pro:duration.minimum:1;duration.maximum:600;frame_images.max_items:2;frame_images.min_items:1;seed.minimum:-9223372036854775808;seed.maximum:9223372036854775807