Source: https://ailoot.ai/models/th/alibaba-happyhorse-1-0/
Canonical: https://ailoot.ai/models/th/alibaba-happyhorse-1-0/
Language: th

# Alibaba: HappyHorse 1.0

[Markdown](https://ailoot.ai/models/th/alibaba-happyhorse-1-0/index.md) · [JSON](https://ailoot.ai/models/th/alibaba-happyhorse-1-0/facts.json)

## [Alibaba: HappyHorse 1.0](https://ailoot.ai/models/th/alibaba-happyhorse-1-0/)

Alibaba HappyHorse 1.0 สร้างวิดีโอสั้นพร้อมเสียงจากข้อความ ภาพแรก หรือภาพอ้างอิงสูงสุดเก้าภาพ โหมดสร้างให้ MP4 ยาว 3–15 วินาทีที่ 24 fps ใน 720p หรือ 1080p ส่วนโปรไฟล์แก้วิดีโอ 1.0 ที่มีชื่อแยกปรับฟุตเทจที่ส่งพร้อมภาพอ้างอิงเสริมและขีดจำกัดของตนเอง

- [**Ailoot Ultra · วิดีโอ** `POST /v1/videos` `alibaba/happyhorse-1.0`](https://ailoot.ai/models/th/alibaba-happyhorse-1-0/#method-0)

เกี่ยวกับโมเดล

คำอธิบายนี้ครอบคลุมความสามารถของโมเดล อินพุต เอาต์พุต และตัวเลือกที่ใช้ได้ใน Ailoot แสดงด้านล่างตามเมธอดที่เลือก

Alibaba HappyHorse 1.0 เป็นรุ่นสร้างวิดีโอที่มีโปรไฟล์ข้อความสู่วิดีโอ ภาพเฟรมแรกสู่วิดีโอ และสื่ออ้างอิงสู่วิดีโอ ผู้ผลิตเน้นการเคลื่อนไหวน่าเชื่อทางกายภาพ ความเข้าใจความหมาย และภาพกับเสียงตรงกัน โปรไฟล์อ้างอิงใช้ภาพได้สูงสุดเก้าภาพเพื่อกำกับตัวแบบและฉาก ผลคือคลิปสั้นพร้อมเสียง ได้แก่ ฉากใหม่ ภาพเปิดที่เตรียมแล้วเคลื่อนไหว หรือช็อตตัวละคร/สินค้าตามอ้างอิง

ฉากข้อความให้กำหนดตัวแบบ สถานที่ การกระทำ กล้อง และเสียงที่ต้องการ เช่น ฉากบนโต๊ะให้เรือใบจำลองเล็กแล่นในถาดน้ำตื้นขณะกล้องตามที่ระดับโต๊ะ ตรวจรูปทรงเรือ มาตราส่วน น้ำเคลื่อน และความสัมพันธ์เสียงกับการเคลื่อน การกระทำที่เน้นชัดประเมินง่ายกว่าลำดับแน่นที่ไม่ระบุช่วงสำคัญ

การสร้างจากเฟรมแรกใช้ภาพที่ตัวแบบและองค์ประกอบเหมาะตอนเปิดแล้ว บรรยายการเคลื่อนถัดไปกับเส้นทางกล้อง โปรไฟล์ภาพ 1.0 ตรงตัวรับข้อความและภาพ ขณะที่ตารางการสร้างระบุเป็นภาพเฟรมแรกสู่วิดีโอ เตรียมครอปกับรายละเอียดสินค้าหรือตัวละครก่อนสร้าง ตรวจว่ายังจำรายละเอียดได้ระหว่างเคลื่อน ไม่ตัดสินเฉพาะเฟรมเปิด

Reference-to-video รวมบุคคล สินค้า สไตล์ หรือสถานที่จากภาพต้นทางเป็นฉากใหม่ที่บรรยาย หน้าโมเดลอ้างอิง 1.0 ระบุภาพสูงสุดเก้าภาพ กำหนดบทบาทและบอกตัวแบบทำอะไรในฉาก การแสดงสินค้าแยกภาพตัวสินค้าจากสถานที่รอบข้างหรือสไตล์ได้ การเน้นความเสถียรของผู้ผลิตเป็นเป้าหมายตรวจ: เทียบตัวแบบ เครื่องหมาย และตำแหน่งกับภาพจริงตลอดคลิป

ตระกูล 1.0 มีโปรไฟล์ video-edit ชื่อแยกสำหรับเปลี่ยนสไตล์และแก้ฟุตเทจเฉพาะที่หรือวงกว้าง โปรไฟล์นี้รับวิดีโอต้นฉบับหนึ่งคลิปพอดี และภาพอ้างอิงศูนย์ถึงห้าภาพ ต่างจากการสร้างอ้างอิงเก้าภาพ ระบุสิ่งที่จะเปลี่ยนและรักษา เช่น เปลี่ยนเสื้อผ้าโดยคงบุคคล การเคลื่อน และพื้นหลัง ต้องเทียบผลกับต้นฉบับครบคลิป ไม่ใช่เฉพาะเฟรมที่เห็นสิ่งแทน

คู่มือแก้ 1.0 รับ MP4 หรือ MOV แนะนำ H.264 และต้นฉบับสามถึงหกสิบวินาที ขนาดสูงสุด 100 MB ด้านสั้นอย่างน้อย 360 พิกเซล ด้านยาวไม่เกิน 4,096 พิกเซล สัดส่วน 1:2.5 ถึง 2.5:1 เฟรมเรตอินพุตแปดถึงหกสิบ fps ผลแก้จำกัดสามถึงสิบห้าวินาที ต้นฉบับไม่เกินสิบห้าวินาทีคงความยาว ส่วนยาวกว่าใช้เพียงสิบห้าวินาทีแรก หากเหตุการณ์สำคัญอยู่ท้ายให้ตัดช่วงที่ตั้งใจก่อนเตรียมแก้

ภาพอ้างอิงเสริมของโปรไฟล์แก้มีเพดานยี่สิบ MB และรูปแบบ JPEG/JPG, PNG หรือ WEBP ทั้งสองด้านอย่างน้อย 300 พิกเซล กับช่วงสัดส่วนเดียวกัน คู่มือแยกการจัดเสียงอัตโนมัติจากเก็บเสียงเดิม เตรียมภาพที่ระบุการเปลี่ยนและเลือกความสัมพันธ์เสียงต้นฉบับ สิ่งเหล่านี้เป็นตัวควบคุมเฉพาะโปรไฟล์แก้ 1.0 แยกจากโหมดสร้างฉากใหม่

สำหรับโหมดสร้าง 1.0 ตารางตรงตัวระบุ 720p หรือ 1080p สามถึงสิบห้าวินาที MP4 ที่ 24 fps พร้อมเสียง โปรไฟล์แก้ก็ให้ 720p หรือ 1080p ภายในเพดานสิบห้าวินาที โฟลว์งานคืนรหัสประมวลผลก่อน แล้วตำแหน่งวิดีโอเมื่อสำเร็จ ตำแหน่งผลใช้ได้ยี่สิบสี่ชั่วโมง เก็บคลิป พรอมป์ต์ และภาพอ้างอิงเมื่อตัดต่อ และตรวจกรอบ ระยะเวลา และเสียงร่วมกัน

HappyHorse 1.1 เพิ่มตัวเลือกสร้าง 480p และการปรับปรุงรายละเอียดภาพ การเคลื่อน และความต่อเนื่องข้ามคลิปที่ระบุชื่อไว้ ข้อกล่าวอ้างรุ่นหลังไม่รับประกันการแก้ตายตัวของโปรไฟล์ 1.0 การเตรียม 1.0 ต้องตามโหมดและสื่อจริงที่เลือก ตรวจอัตลักษณ์ การสัมผัส เรขาคณิตวัตถุ ข้อความ และเสียง แล้วระบุการแก้ถัดไปเป็นรูปธรรม สำหรับงานแก้ให้ตรวจว่ารายละเอียดเดิมสำคัญนอกส่วนที่เปลี่ยนยังเหมาะฉาก

**Ailoot Ultra · วิดีโอ** `POST /v1/videos` `alibaba/happyhorse-1.0`

[`alibaba/happyhorse-1.0`](https://ailoot.ai/models/th/#m=alibaba%2Fhappyhorse-1.0&route=Ultra&caller=alibaba%2Fhappyhorse-1.0&fmt=videos)

Alibaba /`alibaba/happyhorse-1.0`

### เริ่มต้น

Alibaba HappyHorse 1.0 สร้างวิดีโอสั้นพร้อมเสียงจากข้อความ ภาพแรก หรือภาพอ้างอิงสูงสุดเก้าภาพ โหมดสร้างให้ MP4 ยาว 3–15 วินาทีที่ 24 fps ใน 720p หรือ 1080p ส่วนโปรไฟล์แก้วิดีโอ 1.0 ที่มีชื่อแยกปรับฟุตเทจที่ส่งพร้อมภาพอ้างอิงเสริมและขีดจำกัดของตนเอง

อินพุตที่รองรับ

ข้อความ · รูปภาพ

ผลลัพธ์

วิดีโอ

### ใช้งานได้ใน Ailoot · อินพุตและเมธอด

**Ailoot Ultra · วิดีโอ** `POST /v1/videos`

ขาเข้า

`text`, `image`

ขาออก

`video`

รูปแบบเอาต์พุต

ไบต์ MP4 ต้นฉบับ; ไม่ปรับมาตรฐานหรือแปลงรหัส

| ฟิลด์ | ประเภท | ข้อกำหนด | ค่าและข้อจำกัด | ค่าเริ่มต้น |
| --- | --- | --- | --- | --- |
| ฟิลด์`model` | ประเภท`string` | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด alibaba/happyhorse-1.0 | ค่าเริ่มต้น— |
| ฟิลด์`prompt` | ประเภท`string` | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด | ค่าเริ่มต้น— |
| ฟิลด์`duration` | ประเภท`integer` | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ขั้นต่ำ: 1 สูงสุด: 600 | ค่าเริ่มต้น— |
| ฟิลด์`resolution` | ประเภท`string` | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด 720p, 1080p | ค่าเริ่มต้น— |
| ฟิลด์`aspect_ratio` | ประเภท`string` | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 9:21 | ค่าเริ่มต้น— |
| ฟิลด์`generate_audio` | ประเภท`boolean` | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด false | ค่าเริ่มต้น— |
| ฟิลด์`frame_images` | ประเภท`array` | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด จำนวนรายการขั้นต่ำ: 1 จำนวนรายการสูงสุด: 1 เนื้อหาอินพุต: อาร์เรย์ของออบเจ็กต์เฟรม แต่ละออบเจ็กต์มี type=image\_url, image\_url ซึ่งมี url และ frame\_type ใช้ URL ภาพ HTTPS และกำหนด frame\_type เป็น first\_frame แต่ละบทบาทของเฟรมปรากฏได้ไม่เกินหนึ่งครั้ง ชื่อคีย์ที่แน่นอน: type, image\_url, frame\_type เงื่อนไข: คีย์เหล่านี้อธิบายออบเจ็กต์เฟรมแต่ละรายการ image\_url มีเฉพาะ url ไม่ต้องระบุ frame\_images สำหรับคำขอที่มีเฉพาะข้อความ | ค่าเริ่มต้น— |
| ฟิลด์`input_references` | ประเภท`array` | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด | ค่าเริ่มต้น— |
| ฟิลด์`size` | ประเภท`string` | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด 1280x720, 720x1280, 720x720, 960x720, 720x960, 1680x720, 720x1680, 1920x1080, 1080x1920, 1080x1080, 1440x1080, 1080x1440, 2520x1080, 1080x2520 แพตเทิร์น: ^\[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 · alibaba/happyhorse-1.0

`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 แต่ละบทบาทของเฟรมปรากฏได้ไม่เกินหนึ่งครั้ง ระบุ URL ภาพ HTTPS สาธารณะสำหรับแต่ละเฟรม เลือกความละเอียดที่รองรับ เพิ่มอัตราส่วนภาพหรือใช้ขนาดที่ระบุไว้`

ชื่อคีย์ที่แน่นอน: type, image\_url, frame\_type

`model`: ประเภท: string · alibaba/happyhorse-1.0

`prompt`: ประเภท: string · จำนวนไบต์ UTF-8 สูงสุด: 10,000 · ต้องมีอักขระที่ไม่ใช่ช่องว่าง: ใช่

**Reference to video** · พรอมป์ต์ข้อความและภาพอ้างอิงที่รองรับ · จำเป็น: model, prompt, duration, input\_references

`input_references เป็นอาร์เรย์ของออบเจ็กต์ กำหนด type เป็น image_url และใช้ฟิลด์ที่ตรงกันซึ่งมี url ใช้ URL แบบ HTTPS สาธารณะ ไม่ต้องระบุ frame_images เพื่อเลือกโหมดอ้างอิง เลือกความละเอียดที่รองรับ เพิ่มอัตราส่วนภาพหรือใช้ขนาดที่ระบุไว้`

`model`: ประเภท: string · alibaba/happyhorse-1.0

`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 โทเค็น |
| การตั้งค่าราคาวิดีโอ | ตารางอัตราค่าบริการ— | ปริมาณคาดการณ์— | หน่วยคิดค่าบริการต่อวินาทีของวิดีโอ | เงื่อนไขคิดค่าบริการresolution: 1080p | ค่าบริการ ขาออก · ราคาวิดีโอ · ประมาณการเพื่อเปรียบเทียบเท่านั้น **$0.3388** ต่อวินาทีของวิดีโอ |
| การตั้งค่าราคาวิดีโอ | ตารางอัตราค่าบริการ— | ปริมาณคาดการณ์— | หน่วยคิดค่าบริการต่อวินาทีของวิดีโอ | เงื่อนไขคิดค่าบริการresolution: 720p | ค่าบริการ ขาออก · ราคาวิดีโอ · ประมาณการเพื่อเปรียบเทียบเท่านั้น **$0.1976** ต่อวินาทีของวิดีโอ |
| การตั้งค่าต้นทุนการสร้างโดยประมาณ | ตารางอัตราค่าบริการ— | ปริมาณคาดการณ์ค่าประมาณสำหรับการสร้างหนึ่งครั้ง | หน่วยคิดค่าบริการ— | เงื่อนไขคิดค่าบริการ— | ค่าบริการ ขาออก · ค่าใช้จ่ายในการสร้างโดยประมาณ · ประมาณการเพื่อเปรียบเทียบเท่านั้น **$0.5928** ประมาณการก่อนสร้าง ค่าประมาณนี้ไม่ใช่ค่าใช้จ่ายเพิ่มเติมหรืออัตราคงที่สำหรับการสร้างผลลัพธ์ที่เสร็จสมบูรณ์แล้ว |

Ailoot กันยอดเงินประมาณการไว้ก่อนส่งคำขอ หลังได้ผลลัพธ์ จะคิดค่าบริการสุดท้ายตามการใช้งานที่วัดได้ การคิดค่าบริการแบบสตรีมใช้บันทึกการใช้งานสุดท้าย [วิธีกันยอดเงินและคิดค่าบริการสุดท้าย →](https://ailoot.ai/docs/th/billing/reserve/)

#### รายละเอียดอัตราอ้างอิง

ตารางอัตราอ้างอิงระดับโมเดลไม่เปลี่ยนเมธอดที่เลือก ยอดประมาณการ หรือค่าบริการ การคิดค่าบริการจริงใช้อัตราของเมธอด Ailoot ที่เลือก

ข้อมูลอ้างอิงราคาตามการตั้งค่าวิดีโอ

#### ราคาตามการตั้งค่า

เทียบค่าบริการแต่ละรายการกับเงื่อนไขที่แสดง เลือกใช้อัตราเดียวสำหรับแต่ละชุดการตั้งค่าที่เป็นตัวเลือกทดแทนกัน

| การตั้งค่า | เงื่อนไขคิดค่าบริการ | ค่าบริการ |
| --- | --- | --- |
| การตั้งค่าราคาวิดีโอ | เงื่อนไขคิดค่าบริการresolution: 720p | ค่าบริการ ขาออก · ราคาวิดีโอ **$0.1976** ต่อวินาทีของวิดีโอ ราคาอ้างอิงที่ประกาศสำหรับการตั้งค่าที่แสดง ยอดเรียกเก็บสุดท้ายเป็นไปตามการตั้งค่าที่ใช้คิดค่าบริการจริง |
| การตั้งค่าราคาวิดีโอ | เงื่อนไขคิดค่าบริการresolution: 1080p | ค่าบริการ ขาออก · ราคาวิดีโอ **$0.3388** ต่อวินาทีของวิดีโอ ราคาอ้างอิงที่ประกาศสำหรับการตั้งค่าที่แสดง ยอดเรียกเก็บสุดท้ายเป็นไปตามการตั้งค่าที่ใช้คิดค่าบริการจริง |

### ตัวอย่างคำขอ

#### Ailoot Ultra · วิดีโอ

curl · สร้างวิดีโอ

```bash
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":3,"model":"alibaba/happyhorse-1.0","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`

##### ตรวจสอบสถานะงาน

GET · ดูสถานะของงานเดิม

```bash
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
```

การอ่านเนื้อหาแบบอื่น

บันทึกเอาต์พุตที่สร้างเสร็จและเป็นของคุณทุกชิ้น

```bash
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** [`alibaba/happyhorse-1.0`](https://ailoot.ai/models/th/#m=alibaba%2Fhappyhorse-1.0&route=Ultra&caller=alibaba%2Fhappyhorse-1.0&fmt=videos)

#### ชื่อพาธเมธอดอื่น

ใช้พาธเมธอดที่แสดงด้านบน

#### ID ที่เกี่ยวข้องสำหรับเรียกใช้โมเดล

[`alibaba/happyhorse-1.0`](https://ailoot.ai/models/th/#m=alibaba%2Fhappyhorse-1.0&route=Ultra&caller=alibaba%2Fhappyhorse-1.0&fmt=videos)

FAQ · Alibaba: HappyHorse 1.0

มีอินพุตและผลลัพธ์ใดบ้าง?

`POST /v1/videos` · `alibaba/happyhorse-1.0`: `text`, `image` → `video`

คำขอใช้ฟิลด์ใดบ้าง?

`POST /v1/videos` · `alibaba/happyhorse-1.0`: `model`, `prompt`, `duration`, `resolution`, `aspect_ratio`, `generate_audio`, `frame_images`, `input_references`, `size`, `seed`, `callback_url`, `session_id`, `trace`, `user`

มีข้อจำกัดใดบ้าง?

`POST /v1/videos` · `alibaba/happyhorse-1.0`: `duration.minimum`: `1`; `duration.maximum`: `600`; `frame_images.max_items`: `1`; `frame_images.min_items`: `1`; `seed.minimum`: `-9223372036854775808`; `seed.maximum`: `9223372036854775807`

เชื่อม Ailoot กับ Claude Code, OpenCode, Hermes หรือแอปของคุณ

## บริษัทและพอร์ตโฟลิโอโครงการของบริษัท

บริษัทและพอร์ตโฟลิโอโครงการของบริษัท: ลูกค้าหลายล้านราย; ยอดขายระดับหลายพันล้านต่อเดือน.

## ซื้อโทเคนพร้อมส่วนลด

ส่วนลดสมาชิกสำหรับงานประจำ โค้ดโปรโมชั่นลดซื้อโทเคนสูงสุด 50%

สมาชิก

เลือกแพ็กเกจมีส่วนลดสำหรับคำขอประจำ

โค้ดลดสูงสุด 50%

ใส่โค้ดขณะซื้อ ราคาคำนวณใหม่ตามโปรโมชั่นที่ใช้

รายจ่ายในประวัติ

เก็บโมเดล โทเคน และยอดสำหรับทุกคำขอ

[เลือกสมาชิก](https://ailoot.ai/docs/th/billing/subscriptions/) · [ดูราคาโมเดล](https://ailoot.ai/models/th/)

## เชื่อม API กับผลิตภัณฑ์ ที่คุณขาย

SaaS แอป และบอต ตามข้อเสนอและสัญญาอนุญาต Ailoot หากขายต่อให้ขอใบอนุญาตรีเซลเลอร์

แอปเชิงพาณิชย์

ใส่การสร้างข้อความ ภาพ วิดีโอ และเสียงในฟีเจอร์เสียเงินของบริการคุณ

ใบอนุญาตรีเซลเลอร์

ส่งคำอธิบายโครงการและรูปแบบการเข้าถึง ขอเงื่อนไขใช้และขายต่อเป็นลายลักษณ์อักษร

เอกสารบนเว็บไซต์

อ่านข้อเสนอ สัญญาอนุญาต และนโยบายประมวลผลข้อมูลก่อนเชื่อมได้

[ขอใบอนุญาตขายต่อ](mailto:support@ailoot.ai) · [ข้อเสนอและสัญญาอนุญาต](https://ailoot.ai/legal/offer?lang=th)

## Ailoot · บริษัทและพอร์ตโฟลิโอโครงการของบริษัท





Ailoot อาศัยประสบการณ์การดำเนินงานที่สั่งสม ฐานลูกค้าขนาดใหญ่ บริการที่เสถียร และการติดตาม KPI อย่างต่อเนื่อง





บริษัทและพอร์ตโฟลิโอโครงการของบริษัท: ลูกค้าหลายล้านราย; ยอดขายระดับหลายพันล้านต่อเดือน.





Ailoot นำประสบการณ์การดำเนินงานนี้มาใช้เพื่อให้เข้าถึงฟังก์ชัน AI ผ่าน API ในผลิตภัณฑ์ของลูกค้า เอเจนต์ แอปพลิเคชัน และระบบอัตโนมัติ
