{
  "aboutHtml": "<p>Avatar IV เป็นเอนจินอวาตาร์ของ HeyGen ที่เปลี่ยนภาพนิ่งเป็นวิดีโอพูดมีอารมณ์ การออกแบบเสียงสู่สีหน้าที่ได้แนวคิดจาก diffusion ใช้น้ำเสียง จังหวะ และอารมณ์กำกับใบหน้า การเอียงศีรษะ การพัก และสีหน้าละเอียด จุดประสงค์คือพรีเซนเตอร์หรือตัวละครพูดพร้อมลิปซิงก์และท่าทาง ไม่ใช่โมเดลฉากทั่วไปที่สร้างสถานที่กับซาวด์แทร็กทั้งหมดจากพรอมป์ต์ภาพยนตร์</p><p>ผู้ผลิตระบุรองรับตัวละครสมจริงและมีสไตล์ รวมภาพมุมเอียงหรือด้านข้าง ใบหน้าอนิเมะ และสัตว์เลี้ยง ตัวละครจากภาพทำงานดีที่สุดเมื่อระบุดวงตา ปาก และโครงหน้าได้ง่าย HeyGen แนะนำภาพชัด แสงดี ท่าธรรมชาติ และมือมองเห็นหากท่าทางสำคัญ ใบหน้าเล็กมาก ริมฝีปากถูกบัง หน้ากากหนา จะงอยปากเด่น หรือสัดส่วนเกินจริงมากอาจลดคุณภาพใบหน้าและลิปซิงก์ ให้กรอบต้นฉบับเหมาะการแสดง</p><p>ผู้ผลิตมีสองเส้นทางคำพูด: สคริปต์คู่กับเสียงที่เลือก หรือแทร็กบันทึกล่วงหน้าที่ให้เสียงและเวลาโดยตรง ใช้เสียงบันทึกเมื่อวิธีพูดพร้อมแล้ว และสคริปต์เมื่อต้องสังเคราะห์ ทั้งสองเป็นทางเลือกแทนกันในอินเทอร์เฟซ เตรียมถ้อยคำ ชื่อ และการออกเสียงให้เสร็จก่อนทำภาพเคลื่อนไหว และเก็บเสียงหรือสคริปต์กับวิดีโอเพื่อตรวจคำพูด</p><p>โปรไฟล์ Avatar IV ของ HeyGen ครอบคลุม studio avatars, Digital Twins, Photo Avatars, ภาพโดยตรง และตัวแบบจากพรอมป์ต์ Photo Avatar ที่ใช้ซ้ำให้ตัวแบบคงที่สำหรับงานถัดไป ส่วนโฟลว์ภาพตรงเริ่มจากภาพที่ส่ง โปรไฟล์ Photo Avatar มีคำสั่งการเคลื่อนไหวอิสระและระดับการแสดงออก high, medium หรือ low โดยเริ่มต้น low เก็บรูปลักษณ์อวาตาร์กับเอนจินที่เลือกเมื่อทำซีรีส์ เพื่อไม่ให้ภาพหรือโมเดลเรนเดอร์เปลี่ยนพรีเซนเตอร์โดยไม่รู้ตัว</p><p>การกำกับท่าทางให้บอกการกระทำที่เห็นและอารมณ์ เช่น “พยักหน้าเบา ๆ พร้อมยิ้มอบอุ่น” ให้หนึ่งท่ากับหนึ่งสีหน้า คำทักทายสั้นใช้โบกมือเป็นมิตรได้ ผู้ผลิตแนะนำท่าหลักเดียว อาจคู่สีหน้า และไม่เกินสองวลีสั้นสำหรับลำดับ Avatar IV จัดจังหวะจากการแสดง คู่มือ Studio จึงไม่ต้องตารางท่าทางทุกวินาที ถ้อยคำเฉพาะและสั้นตรวจง่ายกว่าหลายการกระทำแย่งกัน</p><p>โปรไฟล์เสียงสู่วิดีโอเรนเดอร์เสียงที่ส่งได้สูงสุดสามสิบนาทีต่อคำขอ และไฟล์ MP3/WAV อัปโหลดไม่เกิน 32 MB สำหรับบทเรียนหรือบันทึกยาว ให้แบ่งตรงขอบเขตคำพูดสอดคล้องและรักษาลำดับเดิม เวลาคำพูดในวิดีโอควรตามเสียงที่เลือก ไม่ใช่การประมาณความยาวคลิปที่ไม่เกี่ยวกัน</p><p>ค่าตั้งเอาต์พุตที่ระบุมี 720p หรือ 1080p กับรูปทรง 16:9, 9:16, 4:5, 5:4 หรือ 1:1 และอัตโนมัติตามสัดส่วนต้นฉบับ แบบ cover อาจครอปตัวแบบ ส่วน contain ใส่ตัวแบบครบและอาจเห็นพื้นหลังรอบ ๆ โฟลว์เสียงสู่วิดีโอคืน MP4 เป็นค่าเริ่มต้น สำหรับ video avatars เอาต์พุต WebM โปร่งใสต้องรองรับ matting และผู้ผลิตลบพื้นหลังเพื่อเอาต์พุตนั้นแทนรวมกับพื้นหลังใหม่ ตรวจกรอบและไฟล์จริงก่อนใส่พรีเซนเตอร์ในงานใหญ่</p><p>บทเปิดการฝึกอบรมใช้ภาพพรีเซนเตอร์ชัด คำอธิบายกระชับ และท่าทางพอดีหนึ่งท่าตรงคำสั่งสำคัญ งานอธิบายสินค้าคงรูปลักษณ์เดียวแล้วเปลี่ยนสคริปต์ตามคุณสมบัติ ผู้ผลิตยังมีไฟล์คำบรรยายเสริมและคำบรรยายฝังภาพ ให้ตรวจข้อความกับจังหวะร่วมคำพูด เรนเดอร์แบบอะซิงโครนัส คำตอบสร้างงานกับวิดีโอเสร็จจึงคนละสิ่ง เก็บไฟล์สำเร็จและสถานะเสร็จกับผลของงาน</p><p>Avatar IV ต่างจาก Avatar V ที่ใช้การเคลื่อนไหวตามอ้างอิงและตัวควบคุม preset ของ Studio แยก ยังต่างจากสร้างฉากทั่วไป HeyGen Video และสนทนาอวาตาร์สดแบบโต้ตอบ ตรวจปาก มือ สีหน้า การพัก และคำพูดเทียบสื่อต้นทางกับอารมณ์เป้าหมาย ภาพ ท่า แสง และคำสั่งเคลื่อนไหวมีผลต่อผลลัพธ์ งานภาพถ่ายเคลื่อนไหวจึงต้องตรวจในฐานะการแสดงที่สร้าง และเก็บอินพุตเพื่อแก้ภายหลัง</p>",
  "aboutText": "Avatar IV เป็นเอนจินอวาตาร์ของ HeyGen ที่เปลี่ยนภาพนิ่งเป็นวิดีโอพูดมีอารมณ์ การออกแบบเสียงสู่สีหน้าที่ได้แนวคิดจาก diffusion ใช้น้ำเสียง จังหวะ และอารมณ์กำกับใบหน้า การเอียงศีรษะ การพัก และสีหน้าละเอียด จุดประสงค์คือพรีเซนเตอร์หรือตัวละครพูดพร้อมลิปซิงก์และท่าทาง ไม่ใช่โมเดลฉากทั่วไปที่สร้างสถานที่กับซาวด์แทร็กทั้งหมดจากพรอมป์ต์ภาพยนตร์\n\nผู้ผลิตระบุรองรับตัวละครสมจริงและมีสไตล์ รวมภาพมุมเอียงหรือด้านข้าง ใบหน้าอนิเมะ และสัตว์เลี้ยง ตัวละครจากภาพทำงานดีที่สุดเมื่อระบุดวงตา ปาก และโครงหน้าได้ง่าย HeyGen แนะนำภาพชัด แสงดี ท่าธรรมชาติ และมือมองเห็นหากท่าทางสำคัญ ใบหน้าเล็กมาก ริมฝีปากถูกบัง หน้ากากหนา จะงอยปากเด่น หรือสัดส่วนเกินจริงมากอาจลดคุณภาพใบหน้าและลิปซิงก์ ให้กรอบต้นฉบับเหมาะการแสดง\n\nผู้ผลิตมีสองเส้นทางคำพูด: สคริปต์คู่กับเสียงที่เลือก หรือแทร็กบันทึกล่วงหน้าที่ให้เสียงและเวลาโดยตรง ใช้เสียงบันทึกเมื่อวิธีพูดพร้อมแล้ว และสคริปต์เมื่อต้องสังเคราะห์ ทั้งสองเป็นทางเลือกแทนกันในอินเทอร์เฟซ เตรียมถ้อยคำ ชื่อ และการออกเสียงให้เสร็จก่อนทำภาพเคลื่อนไหว และเก็บเสียงหรือสคริปต์กับวิดีโอเพื่อตรวจคำพูด\n\nโปรไฟล์ Avatar IV ของ HeyGen ครอบคลุม studio avatars, Digital Twins, Photo Avatars, ภาพโดยตรง และตัวแบบจากพรอมป์ต์ Photo Avatar ที่ใช้ซ้ำให้ตัวแบบคงที่สำหรับงานถัดไป ส่วนโฟลว์ภาพตรงเริ่มจากภาพที่ส่ง โปรไฟล์ Photo Avatar มีคำสั่งการเคลื่อนไหวอิสระและระดับการแสดงออก high, medium หรือ low โดยเริ่มต้น low เก็บรูปลักษณ์อวาตาร์กับเอนจินที่เลือกเมื่อทำซีรีส์ เพื่อไม่ให้ภาพหรือโมเดลเรนเดอร์เปลี่ยนพรีเซนเตอร์โดยไม่รู้ตัว\n\nการกำกับท่าทางให้บอกการกระทำที่เห็นและอารมณ์ เช่น “พยักหน้าเบา ๆ พร้อมยิ้มอบอุ่น” ให้หนึ่งท่ากับหนึ่งสีหน้า คำทักทายสั้นใช้โบกมือเป็นมิตรได้ ผู้ผลิตแนะนำท่าหลักเดียว อาจคู่สีหน้า และไม่เกินสองวลีสั้นสำหรับลำดับ Avatar IV จัดจังหวะจากการแสดง คู่มือ Studio จึงไม่ต้องตารางท่าทางทุกวินาที ถ้อยคำเฉพาะและสั้นตรวจง่ายกว่าหลายการกระทำแย่งกัน\n\nโปรไฟล์เสียงสู่วิดีโอเรนเดอร์เสียงที่ส่งได้สูงสุดสามสิบนาทีต่อคำขอ และไฟล์ MP3/WAV อัปโหลดไม่เกิน 32 MB สำหรับบทเรียนหรือบันทึกยาว ให้แบ่งตรงขอบเขตคำพูดสอดคล้องและรักษาลำดับเดิม เวลาคำพูดในวิดีโอควรตามเสียงที่เลือก ไม่ใช่การประมาณความยาวคลิปที่ไม่เกี่ยวกัน\n\nค่าตั้งเอาต์พุตที่ระบุมี 720p หรือ 1080p กับรูปทรง 16:9, 9:16, 4:5, 5:4 หรือ 1:1 และอัตโนมัติตามสัดส่วนต้นฉบับ แบบ cover อาจครอปตัวแบบ ส่วน contain ใส่ตัวแบบครบและอาจเห็นพื้นหลังรอบ ๆ โฟลว์เสียงสู่วิดีโอคืน MP4 เป็นค่าเริ่มต้น สำหรับ video avatars เอาต์พุต WebM โปร่งใสต้องรองรับ matting และผู้ผลิตลบพื้นหลังเพื่อเอาต์พุตนั้นแทนรวมกับพื้นหลังใหม่ ตรวจกรอบและไฟล์จริงก่อนใส่พรีเซนเตอร์ในงานใหญ่\n\nบทเปิดการฝึกอบรมใช้ภาพพรีเซนเตอร์ชัด คำอธิบายกระชับ และท่าทางพอดีหนึ่งท่าตรงคำสั่งสำคัญ งานอธิบายสินค้าคงรูปลักษณ์เดียวแล้วเปลี่ยนสคริปต์ตามคุณสมบัติ ผู้ผลิตยังมีไฟล์คำบรรยายเสริมและคำบรรยายฝังภาพ ให้ตรวจข้อความกับจังหวะร่วมคำพูด เรนเดอร์แบบอะซิงโครนัส คำตอบสร้างงานกับวิดีโอเสร็จจึงคนละสิ่ง เก็บไฟล์สำเร็จและสถานะเสร็จกับผลของงาน\n\nAvatar IV ต่างจาก Avatar V ที่ใช้การเคลื่อนไหวตามอ้างอิงและตัวควบคุม preset ของ Studio แยก ยังต่างจากสร้างฉากทั่วไป HeyGen Video และสนทนาอวาตาร์สดแบบโต้ตอบ ตรวจปาก มือ สีหน้า การพัก และคำพูดเทียบสื่อต้นทางกับอารมณ์เป้าหมาย ภาพ ท่า แสง และคำสั่งเคลื่อนไหวมีผลต่อผลลัพธ์ งานภาพถ่ายเคลื่อนไหวจึงต้องตรวจในฐานะการแสดงที่สร้าง และเก็บอินพุตเพื่อแก้ภายหลัง",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "bbe3b9b8c507927dec1692d78c2ff2be470c71a45d4d0cb23d622d0ab4db4b88",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "th",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">HeyGen: Avatar IV</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"ปิด\">×</button></div><div class=\"idline\"><span>HeyGen /</span><code>heygen/avatar-iv</code><button type=\"button\" id=\"copy-id\">คัดลอก ID</button></div><nav class=\"card-jump-nav\" aria-label=\"ส่วนต่าง ๆ ของการ์ดโมเดล\"><button type=\"button\" data-card-jump=\"overview\">เริ่มต้น</button><button type=\"button\" data-card-jump=\"methods\">อินพุตและเมธอด</button><button type=\"button\" data-card-jump=\"pricing\">ราคา</button><button type=\"button\" data-card-jump=\"examples\">ตัวอย่าง</button><button type=\"button\" data-card-jump=\"results\">ผลลัพธ์</button><button type=\"button\" data-card-jump=\"aliases\">ชื่ออื่น</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"เมธอด API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|videos|/v1/videos|heygen%2Favatar-iv\">วิดีโอ</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">เริ่มต้น</h3><p class=\"mdesc-full\">Avatar IV ทำภาพถ่ายให้เป็นวิดีโอพูดแบบลิปซิงก์ โดยเสียงกำกับสีหน้าและจังหวะท่าทาง HeyGen ระบุโฟลว์สคริปต์หรือเสียงบันทึก และตัวควบคุมการเคลื่อนไหว Photo Avatar สำหรับพรีเซนเตอร์สมจริงหรือมีสไตล์</p><dl class=\"card-io\" data-card-io><div><dt>อินพุตที่รองรับ</dt><dd>ข้อความ · รูปภาพ · เสียง · วิดีโอ</dd></div><div><dt>ผลลัพธ์</dt><dd>วิดีโอ</dd></div></dl><details class=\"card-about\"><summary>เกี่ยวกับโมเดล</summary><p class=\"note-s\" data-model-method-boundary>คำอธิบายนี้ครอบคลุมความสามารถของโมเดล อินพุต เอาต์พุต และตัวเลือกที่ใช้ได้ใน Ailoot แสดงด้านล่างตามเมธอดที่เลือก</p><div class=\"mabout\" id=\"m-about\"><p>Avatar IV เป็นเอนจินอวาตาร์ของ HeyGen ที่เปลี่ยนภาพนิ่งเป็นวิดีโอพูดมีอารมณ์ การออกแบบเสียงสู่สีหน้าที่ได้แนวคิดจาก diffusion ใช้น้ำเสียง จังหวะ และอารมณ์กำกับใบหน้า การเอียงศีรษะ การพัก และสีหน้าละเอียด จุดประสงค์คือพรีเซนเตอร์หรือตัวละครพูดพร้อมลิปซิงก์และท่าทาง ไม่ใช่โมเดลฉากทั่วไปที่สร้างสถานที่กับซาวด์แทร็กทั้งหมดจากพรอมป์ต์ภาพยนตร์</p><p>ผู้ผลิตระบุรองรับตัวละครสมจริงและมีสไตล์ รวมภาพมุมเอียงหรือด้านข้าง ใบหน้าอนิเมะ และสัตว์เลี้ยง ตัวละครจากภาพทำงานดีที่สุดเมื่อระบุดวงตา ปาก และโครงหน้าได้ง่าย HeyGen แนะนำภาพชัด แสงดี ท่าธรรมชาติ และมือมองเห็นหากท่าทางสำคัญ ใบหน้าเล็กมาก ริมฝีปากถูกบัง หน้ากากหนา จะงอยปากเด่น หรือสัดส่วนเกินจริงมากอาจลดคุณภาพใบหน้าและลิปซิงก์ ให้กรอบต้นฉบับเหมาะการแสดง</p><p>ผู้ผลิตมีสองเส้นทางคำพูด: สคริปต์คู่กับเสียงที่เลือก หรือแทร็กบันทึกล่วงหน้าที่ให้เสียงและเวลาโดยตรง ใช้เสียงบันทึกเมื่อวิธีพูดพร้อมแล้ว และสคริปต์เมื่อต้องสังเคราะห์ ทั้งสองเป็นทางเลือกแทนกันในอินเทอร์เฟซ เตรียมถ้อยคำ ชื่อ และการออกเสียงให้เสร็จก่อนทำภาพเคลื่อนไหว และเก็บเสียงหรือสคริปต์กับวิดีโอเพื่อตรวจคำพูด</p><p>โปรไฟล์ Avatar IV ของ HeyGen ครอบคลุม studio avatars, Digital Twins, Photo Avatars, ภาพโดยตรง และตัวแบบจากพรอมป์ต์ Photo Avatar ที่ใช้ซ้ำให้ตัวแบบคงที่สำหรับงานถัดไป ส่วนโฟลว์ภาพตรงเริ่มจากภาพที่ส่ง โปรไฟล์ Photo Avatar มีคำสั่งการเคลื่อนไหวอิสระและระดับการแสดงออก high, medium หรือ low โดยเริ่มต้น low เก็บรูปลักษณ์อวาตาร์กับเอนจินที่เลือกเมื่อทำซีรีส์ เพื่อไม่ให้ภาพหรือโมเดลเรนเดอร์เปลี่ยนพรีเซนเตอร์โดยไม่รู้ตัว</p><p>การกำกับท่าทางให้บอกการกระทำที่เห็นและอารมณ์ เช่น “พยักหน้าเบา ๆ พร้อมยิ้มอบอุ่น” ให้หนึ่งท่ากับหนึ่งสีหน้า คำทักทายสั้นใช้โบกมือเป็นมิตรได้ ผู้ผลิตแนะนำท่าหลักเดียว อาจคู่สีหน้า และไม่เกินสองวลีสั้นสำหรับลำดับ Avatar IV จัดจังหวะจากการแสดง คู่มือ Studio จึงไม่ต้องตารางท่าทางทุกวินาที ถ้อยคำเฉพาะและสั้นตรวจง่ายกว่าหลายการกระทำแย่งกัน</p><p>โปรไฟล์เสียงสู่วิดีโอเรนเดอร์เสียงที่ส่งได้สูงสุดสามสิบนาทีต่อคำขอ และไฟล์ MP3/WAV อัปโหลดไม่เกิน 32 MB สำหรับบทเรียนหรือบันทึกยาว ให้แบ่งตรงขอบเขตคำพูดสอดคล้องและรักษาลำดับเดิม เวลาคำพูดในวิดีโอควรตามเสียงที่เลือก ไม่ใช่การประมาณความยาวคลิปที่ไม่เกี่ยวกัน</p><p>ค่าตั้งเอาต์พุตที่ระบุมี 720p หรือ 1080p กับรูปทรง 16:9, 9:16, 4:5, 5:4 หรือ 1:1 และอัตโนมัติตามสัดส่วนต้นฉบับ แบบ cover อาจครอปตัวแบบ ส่วน contain ใส่ตัวแบบครบและอาจเห็นพื้นหลังรอบ ๆ โฟลว์เสียงสู่วิดีโอคืน MP4 เป็นค่าเริ่มต้น สำหรับ video avatars เอาต์พุต WebM โปร่งใสต้องรองรับ matting และผู้ผลิตลบพื้นหลังเพื่อเอาต์พุตนั้นแทนรวมกับพื้นหลังใหม่ ตรวจกรอบและไฟล์จริงก่อนใส่พรีเซนเตอร์ในงานใหญ่</p><p>บทเปิดการฝึกอบรมใช้ภาพพรีเซนเตอร์ชัด คำอธิบายกระชับ และท่าทางพอดีหนึ่งท่าตรงคำสั่งสำคัญ งานอธิบายสินค้าคงรูปลักษณ์เดียวแล้วเปลี่ยนสคริปต์ตามคุณสมบัติ ผู้ผลิตยังมีไฟล์คำบรรยายเสริมและคำบรรยายฝังภาพ ให้ตรวจข้อความกับจังหวะร่วมคำพูด เรนเดอร์แบบอะซิงโครนัส คำตอบสร้างงานกับวิดีโอเสร็จจึงคนละสิ่ง เก็บไฟล์สำเร็จและสถานะเสร็จกับผลของงาน</p><p>Avatar IV ต่างจาก Avatar V ที่ใช้การเคลื่อนไหวตามอ้างอิงและตัวควบคุม preset ของ Studio แยก ยังต่างจากสร้างฉากทั่วไป HeyGen Video และสนทนาอวาตาร์สดแบบโต้ตอบ ตรวจปาก มือ สีหน้า การพัก และคำพูดเทียบสื่อต้นทางกับอารมณ์เป้าหมาย ภาพ ท่า แสง และคำสั่งเคลื่อนไหวมีผลต่อผลลัพธ์ งานภาพถ่ายเคลื่อนไหวจึงต้องตรวจในฐานะการแสดงที่สร้าง และเก็บอินพุตเพื่อแก้ภายหลัง</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">ใช้งานได้ใน Ailoot · อินพุตและเมธอด</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · วิดีโอ</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>ขาเข้า</dt><dd><code>text</code>, <code>image</code>, <code>audio</code>, <code>video</code></dd></div><div><dt>ขาออก</dt><dd><code>video</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>ฟิลด์</th><th>ประเภท</th><th>ข้อกำหนด</th><th>ค่าและข้อจำกัด</th><th>ค่าเริ่มต้น</th></tr></thead><tbody><tr><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span><code>string</code></td><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>จำเป็น</td><td data-cell-label=\"ค่าและข้อจำกัด\"><span class=\"card-cell-label\">ค่าและข้อจำกัด</span><div>heygen/avatar-iv</div></td><td data-cell-label=\"ค่าเริ่มต้น\" data-default=\"unspecified\"><span class=\"card-cell-label\">ค่าเริ่มต้น</span>—</td></tr><tr><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">input_references</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span><code>array</code></td><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>จำเป็น</td><td data-cell-label=\"ค่าและข้อจำกัด\"><span class=\"card-cell-label\">ค่าและข้อจำกัด</span><div>จำนวนรายการขั้นต่ำ: 2</div><div>จำนวนรายการสูงสุด: 2</div></td><td data-cell-label=\"ค่าเริ่มต้น\" data-default=\"unspecified\"><span class=\"card-cell-label\">ค่าเริ่มต้น</span>—</td></tr><tr><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span><code>string</code></td><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>ไม่บังคับ</td><td data-cell-label=\"ค่าและข้อจำกัด\"><span class=\"card-cell-label\">ค่าและข้อจำกัด</span></td><td data-cell-label=\"ค่าเริ่มต้น\" data-default=\"unspecified\"><span class=\"card-cell-label\">ค่าเริ่มต้น</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>พารามิเตอร์และวงจรการทำงานของเมธอด</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>พารามิเตอร์</th><th>ข้อกำหนด</th></tr></thead><tbody><tr><th data-cell-label=\"พารามิเตอร์\" scope=\"row\"><span class=\"card-cell-label\">พารามิเตอร์</span><code>content_type</code></th><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>application/json</td></tr><tr><th data-cell-label=\"พารามิเตอร์\" scope=\"row\"><span class=\"card-cell-label\">พารามิเตอร์</span><code>required</code></th><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>model, input_references</td></tr><tr><th data-cell-label=\"พารามิเตอร์\" scope=\"row\"><span class=\"card-cell-label\">พารามิเตอร์</span><code>material_types</code></th><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>text, image, audio, video</td></tr><tr><th data-cell-label=\"พารามิเตอร์\" scope=\"row\"><span class=\"card-cell-label\">พารามิเตอร์</span><code>material_conditions</code></th><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>ใช้ URL เนื้อหาแอสเซ็ตสื่อจริงที่เสร็จสมบูรณ์และเป็นของคุณ พร้อมลายเซ็นที่ส่งกลับ แหล่งวิดีโอหนึ่งรายการสำหรับ BFL หรือแหล่งภาพหนึ่งรายการและเสียงหนึ่งรายการสำหรับอวตาร ต้องมีหลักฐานจากแหล่งข้อมูลยืนยันเจ้าของ/ชนิด/ไบต์, ระบุภาพ PNG/JPEG เพียงหนึ่งภาพและแอสเซ็ตเสียง WAV/MP3 เพียงหนึ่งรายการ เสียงมีขนาดไม่เกิน 32000000 ไบต์ ระยะเวลามากกว่า 0 และไม่เกิน 1800 วินาที</td></tr></tbody></table></div><p>วงจรการทำงาน: <code>asynchronous_job_then_owned_outputs</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}</code> · id หรือ polling_url จริงที่ส่งกลับ</p><p class=\"note-s\"><code>GET /v1/videos/{request_id}/content</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">ราคา</h3><div class=\"card-result-process\" data-billing-basis><h5>วิธีคำนวณค่าบริการสุดท้าย</h5><p class=\"note-s\">อัตราที่แสดงใช้ประมาณการค่าใช้จ่ายก่อนการสร้างผลลัพธ์ ยอดเรียกเก็บสุดท้ายคำนวณจากค่าใช้จ่ายที่บันทึกไว้สำหรับการสร้างผลลัพธ์ครั้งเดิม ระยะเวลาของผลลัพธ์ที่วัดได้และปริมาณที่คาดการณ์ไว้ไม่ใช่ปริมาณสุดท้ายที่ใช้คิดค่าบริการ</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>ข้อมูลอัตราราคาไม่ได้เพิ่มตัวเลือกคำขอ พารามิเตอร์ที่รองรับระบุไว้สำหรับเมธอดที่เลือก</p><dl data-price-conditions><dt>โหมดรวดเร็ว</dt><dd>ไม่ได้ระบุ <span class=\"note-s\">เมื่อเลือกโหมดรวดเร็ว</span></dd><dt>โหมดยืดหยุ่น</dt><dd>ไม่ได้ระบุ <span class=\"note-s\">เมื่อเลือกโหมด flex</span></dd><dt>ระดับการใช้เหตุผลสูงสุด</dt><dd>ไม่ได้ระบุ <span class=\"note-s\">เมื่อใช้การปรับตามค่าเริ่มต้น (default) สำหรับระดับการใช้เหตุผลสูงสุด</span></dd></dl></div><div data-declared-tariff-pricing><h4>อัตราประมาณการเพื่อเปรียบเทียบ</h4><h4>ราคาตามการตั้งค่า</h4><p class=\"note-s\">เทียบค่าบริการแต่ละรายการกับเงื่อนไขที่แสดง เลือกใช้อัตราเดียวสำหรับแต่ละชุดการตั้งค่าที่เป็นตัวเลือกทดแทนกัน</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>การตั้งค่า</th><th>ตารางอัตราค่าบริการ</th><th>ปริมาณคาดการณ์</th><th>หน่วยคิดค่าบริการ</th><th>เงื่อนไขคิดค่าบริการ</th><th>ค่าบริการ</th></tr></thead><tbody><tr><th data-cell-label=\"การตั้งค่า\" scope=\"row\"><span class=\"card-cell-label\">การตั้งค่า</span>อัตราค่าบริการโทเคนพื้นฐาน</th><td data-cell-label=\"ตารางอัตราค่าบริการ\"><span class=\"card-cell-label\">ตารางอัตราค่าบริการ</span>อัตราพื้นฐาน</td><td data-cell-label=\"ปริมาณคาดการณ์\"><span class=\"card-cell-label\">ปริมาณคาดการณ์</span>—</td><td data-cell-label=\"หน่วยคิดค่าบริการ\"><span class=\"card-cell-label\">หน่วยคิดค่าบริการ</span>—</td><td data-cell-label=\"เงื่อนไขคิดค่าบริการ\"><span class=\"card-cell-label\">เงื่อนไขคิดค่าบริการ</span>—</td><td data-cell-label=\"ค่าบริการ\"><span class=\"card-cell-label\">ค่าบริการ</span><div><span>ขาเข้า · โทเค็นอินพุต · ประมาณการเพื่อเปรียบเทียบเท่านั้น</span> <b>—</b> <span class=\"price-unit\">/ 1K โทเค็น</span></div><div><span>ขาออก · โทเค็นเอาต์พุต · ประมาณการเพื่อเปรียบเทียบเท่านั้น</span> <b>—</b> <span class=\"price-unit\">/ 1K โทเค็น</span></div><div><span>ขาเข้า · การอ่านแคช · ประมาณการเพื่อเปรียบเทียบเท่านั้น</span> <b>—</b> <span class=\"price-unit\">/ 1K โทเค็น</span></div><div><span>ขาเข้า · การเขียนแคช · ประมาณการเพื่อเปรียบเทียบเท่านั้น</span> <b>—</b> <span class=\"price-unit\">/ 1K โทเค็น</span></div><div><span>ขาเข้า · การเขียนแคช, 1 ชั่วโมง · ประมาณการเพื่อเปรียบเทียบเท่านั้น</span> <b>—</b> <span class=\"price-unit\">/ 1K โทเค็น</span></div></td></tr><tr><th data-cell-label=\"การตั้งค่า\" scope=\"row\"><span class=\"card-cell-label\">การตั้งค่า</span>ราคาวิดีโอ</th><td data-cell-label=\"ตารางอัตราค่าบริการ\"><span class=\"card-cell-label\">ตารางอัตราค่าบริการ</span>—</td><td data-cell-label=\"ปริมาณคาดการณ์\"><span class=\"card-cell-label\">ปริมาณคาดการณ์</span>—</td><td data-cell-label=\"หน่วยคิดค่าบริการ\"><span class=\"card-cell-label\">หน่วยคิดค่าบริการ</span>ต่อวินาทีของวิดีโอ</td><td data-cell-label=\"เงื่อนไขคิดค่าบริการ\"><span class=\"card-cell-label\">เงื่อนไขคิดค่าบริการ</span>ไม่มีการระบุเงื่อนไขเพิ่มเติมในคีย์ราคานี้</td><td data-cell-label=\"ค่าบริการ\"><span class=\"card-cell-label\">ค่าบริการ</span><div><span>ขาออก · ราคาวิดีโอ · ประมาณการเพื่อเปรียบเทียบเท่านั้น</span> <b>$0.1</b> <span class=\"price-unit\">ต่อวินาทีของวิดีโอ</span></div></td></tr><tr><th data-cell-label=\"การตั้งค่า\" scope=\"row\"><span class=\"card-cell-label\">การตั้งค่า</span>ต้นทุนการสร้างโดยประมาณ</th><td data-cell-label=\"ตารางอัตราค่าบริการ\"><span class=\"card-cell-label\">ตารางอัตราค่าบริการ</span>—</td><td data-cell-label=\"ปริมาณคาดการณ์\"><span class=\"card-cell-label\">ปริมาณคาดการณ์</span>ค่าประมาณสำหรับการสร้างหนึ่งครั้ง</td><td data-cell-label=\"หน่วยคิดค่าบริการ\"><span class=\"card-cell-label\">หน่วยคิดค่าบริการ</span>—</td><td data-cell-label=\"เงื่อนไขคิดค่าบริการ\"><span class=\"card-cell-label\">เงื่อนไขคิดค่าบริการ</span>—</td><td data-cell-label=\"ค่าบริการ\"><span class=\"card-cell-label\">ค่าบริการ</span><div><span>ขาออก · ค่าใช้จ่ายในการสร้างโดยประมาณ · ประมาณการเพื่อเปรียบเทียบเท่านั้น</span> <b>$0.1</b> <span class=\"price-unit\">ประมาณการก่อนสร้าง</span></div><p class=\"note-s\">ค่าประมาณนี้ไม่ใช่ค่าใช้จ่ายเพิ่มเติมหรืออัตราคงที่สำหรับการสร้างผลลัพธ์ที่เสร็จสมบูรณ์แล้ว</p></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot กันยอดเงินประมาณการไว้ก่อนส่งคำขอ หลังได้ผลลัพธ์ จะคิดค่าบริการสุดท้ายตามการใช้งานที่วัดได้ การคิดค่าบริการแบบสตรีมใช้บันทึกการใช้งานสุดท้าย <a href=\"/docs/th/billing/reserve/\">วิธีกันยอดเงินและคิดค่าบริการสุดท้าย →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">ตัวอย่างคำขอ</h3><h4>Ailoot Ultra · วิดีโอ</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"ตัวเลือกโค้ด\"><button class=\"cg-tab\" id=\"model-code-1711-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1711-panel-0\" aria-selected=\"true\" tabindex=\"0\">ใช้ข้อมูลเข้าจริงและเก็บผลลัพธ์ไว้ให้ครบถ้วน</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"คัดลอกโค้ด\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1711-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1711-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_INPUT_REFERENCES_JSON:?Set the actual documented input value}&quot;\nexport AILOOT_INPUT_REFERENCES_JSON\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\nrequest={&#39;model&#39;: &#39;heygen/avatar-iv&#39;, &#39;input_references&#39;: &#39;${ACTUAL_OWNED_INPUT_REFERENCES}&#39;}\nrequest[&#39;input_references&#39;]=json.loads(os.environ[&#39;AILOOT_INPUT_REFERENCES_JSON&#39;])\nPath(&#39;request.json&#39;).write_text(json.dumps(request,ensure_ascii=False),encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">รับและบันทึกผลลัพธ์</h3><h4>Ailoot Ultra · วิดีโอ</h4><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{request_id}</code></li><li><code>GET /v1/videos/{request_id}/content</code></li></ul><h5>บันทึกไฟล์ที่สร้างเสร็จทั้งหมด</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"ตัวเลือกโค้ด\"><button class=\"cg-tab\" id=\"model-code-1712-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1712-panel-0\" aria-selected=\"true\" tabindex=\"0\">GET · ดึงไฟล์สื่อที่เสร็จสมบูรณ์ทั้งหมด</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"คัดลอกโค้ด\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1712-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1712-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}&quot;\nexport AILOOT_STATUS_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\nfrom urllib.parse import urlsplit,urljoin\nf=Path(os.environ[&quot;AILOOT_STATUS_FILE&quot;])\nif not f.is_file():raise SystemExit(&quot;Choose the actual completed status file&quot;)\nr=json.loads(f.read_text())\nif r.get(&quot;status&quot;)!=&quot;completed&quot; or not isinstance(r.get(&quot;data&quot;),list) or not r[&quot;data&quot;]:raise SystemExit(&quot;Wait for a completed status with asset paths&quot;)\nurls=[]\nfor x in r[&quot;data&quot;]:\n    if not isinstance(x,str) or &quot;\\n&quot; in x or &quot;\\r&quot; in x:raise SystemExit(&quot;Invalid asset path&quot;)\n    u=urljoin(&quot;https://api.ailoot.ai&quot;,x)\n    z=urlsplit(u)\n    if z.scheme!=&quot;https&quot; or z.netloc!=&quot;api.ailoot.ai&quot; or z.username or z.password:raise SystemExit(&quot;Use the actual Ailoot asset paths from status&quot;)\n    urls.append(u)\nPath(&quot;asset-urls.txt&quot;).write_text(&quot;\\n&quot;.join(urls)+&quot;\\n&quot;)\nPY_REQUEST\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error &quot;$asset_url&quot; \\\n    -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o &quot;video-${index}.mp4&quot;\n  index=$((index + 1))\ndone &lt; asset-urls.txt\n</code></pre></div></div></div><div class=\"card-result-process\" data-all-results><h5>เก็บผลลัพธ์ที่เสร็จสมบูรณ์ทั้งหมด</h5><p class=\"note-s\">บันทึกวิดีโอที่สร้างเสร็จหรือไฟล์ที่ส่งกลับมาทุกไฟล์ และดึงไฟล์สื่อจากทุก URL ที่ส่งกลับมาจริง</p><p class=\"note-s\">เก็บการตอบกลับและส่วนหัวให้ครบถ้วน เก็บผลลัพธ์จริงทุกรายการ ตัวระบุที่ส่งกลับมาแต่เดิม และฟิลด์ข้อมูลการใช้งานทั้งหมด กู้คืนการดำเนินการเดิมโดยไม่ส่งคำขอสร้างซ้ำ</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>เมื่อต้องตรวจสอบการตอบกลับต้นฉบับ</h5><p class=\"note-s\">เก็บ X-Client-Request-ID, X-Ailoot-Task-Id และ id/polling_url จริงที่ส่งกลับ ดำเนินงานเดิมต่อ อย่าส่งคำขอสร้างซ้ำ</p></div><details class=\"card-about\" data-output-fields><summary>ฟิลด์การตอบกลับ</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>ฟิลด์</th><th>ประเภท</th></tr></thead><tbody><tr><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span></td></tr><tr><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">status</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span></td></tr><tr><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">data[]</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span></td></tr><tr><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">outputs[]</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span></td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">ชื่ออื่น</h3><h4>ชื่ออื่นของโมเดล</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=heygen%2Favatar-iv&amp;route=Ultra&amp;caller=heygen%2Favatar-iv&amp;fmt=videos\"><code>heygen/avatar-iv</code></a></span></p><h4>ชื่อพาธเมธอดอื่น</h4><p class=\"note-s\">ใช้พาธเมธอดที่แสดงด้านบน</p><h4>ID ที่เกี่ยวข้องสำหรับเรียกใช้โมเดล</h4><p class=\"note-s\"><a href=\"#m=heygen%2Favatar-iv&amp;route=Ultra&amp;caller=heygen%2Favatar-iv&amp;fmt=videos\"><code>heygen/avatar-iv</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "heygen/avatar-iv",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "heygen/avatar-iv",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|heygen%2Favatar-iv",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "อัตราที่แสดงใช้ประมาณการค่าใช้จ่ายก่อนการสร้างผลลัพธ์ ยอดเรียกเก็บสุดท้ายคำนวณจากค่าใช้จ่ายที่บันทึกไว้สำหรับการสร้างผลลัพธ์ครั้งเดิม ระยะเวลาของผลลัพธ์ที่วัดได้และปริมาณที่คาดการณ์ไว้ไม่ใช่ปริมาณสุดท้ายที่ใช้คิดค่าบริการ",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual zero-based output index from completed manifest"
                  }
                }
              ],
              "creation_id_field": "id",
              "media_library": {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              "mode": "asynchronous_job_then_owned_outputs",
              "operation_id_is_not_task_id": true,
              "output_content_response": "owned MP4 bytes with Range support",
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned id or polling_url",
                  "path": "/v1/videos/{request_id}"
                }
              ],
              "unknown": "เก็บ X-Client-Request-ID, X-Ailoot-Task-Id และ id/polling_url จริงที่ส่งกลับ ดำเนินงานเดิมต่อ อย่าส่งคำขอสร้างซ้ำ"
            },
            "outputs": {
              "all_results": "เก็บการตอบกลับและส่วนหัวให้ครบถ้วน เก็บผลลัพธ์จริงทุกรายการ ตัวระบุที่ส่งกลับมาแต่เดิม และฟิลด์ข้อมูลการใช้งานทั้งหมด กู้คืนการดำเนินการเดิมโดยไม่ส่งคำขอสร้างซ้ำ",
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": null
                },
                {
                  "description": null,
                  "name": "status",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[]",
                  "type": null
                },
                {
                  "description": null,
                  "name": "outputs[]",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "heygen/avatar-iv"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "items": {
                  "anyOf": [
                    {
                      "additionalProperties": false,
                      "properties": {
                        "image_url": {
                          "additionalProperties": false,
                          "properties": {
                            "url": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "url"
                          ],
                          "type": "object"
                        },
                        "type": {
                          "const": "image_url"
                        }
                      },
                      "required": [
                        "type",
                        "image_url"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "audio_url": {
                          "additionalProperties": false,
                          "properties": {
                            "url": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "url"
                          ],
                          "type": "object"
                        },
                        "type": {
                          "const": "audio_url"
                        }
                      },
                      "required": [
                        "type",
                        "audio_url"
                      ],
                      "type": "object"
                    }
                  ]
                },
                "maximum_items": 2,
                "minimum_items": 2,
                "name": "input_references",
                "required": true,
                "type": "array"
              },
              {
                "name": "prompt",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "input_references": {
                  "allOf": [
                    {
                      "contains": {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      "maxContains": 1,
                      "minContains": 1
                    },
                    {
                      "contains": {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      },
                      "maxContains": 1,
                      "minContains": 1
                    }
                  ],
                  "items": {
                    "anyOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "maxItems": 2,
                  "minItems": 2,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "heygen/avatar-iv"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "const": "",
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_references"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input_references": "${ACTUAL_OWNED_INPUT_REFERENCES}",
                "model": "heygen/avatar-iv"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "ใช้ URL เนื้อหาแอสเซ็ตสื่อจริงที่เสร็จสมบูรณ์และเป็นของคุณ พร้อมลายเซ็นที่ส่งกลับ แหล่งวิดีโอหนึ่งรายการสำหรับ BFL หรือแหล่งภาพหนึ่งรายการและเสียงหนึ่งรายการสำหรับอวตาร ต้องมีหลักฐานจากแหล่งข้อมูลยืนยันเจ้าของ/ชนิด/ไบต์",
              "ระบุภาพ PNG/JPEG เพียงหนึ่งภาพและแอสเซ็ตเสียง WAV/MP3 เพียงหนึ่งรายการ เสียงมีขนาดไม่เกิน 32000000 ไบต์ ระยะเวลามากกว่า 0 และไม่เกิน 1800 วินาที"
            ],
            "material_types": [
              "text",
              "image",
              "audio",
              "video"
            ],
            "required": [
              "model",
              "input_references"
            ]
          },
          "lifecycle": {
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual zero-based output index from completed manifest"
                }
              }
            ],
            "creation_id_field": "id",
            "media_library": {
              "http": "GET",
              "path": "/v1/media/assets"
            },
            "mode": "asynchronous_job_then_owned_outputs",
            "operation_id_is_not_task_id": true,
            "output_content_response": "owned MP4 bytes with Range support",
            "status": [
              {
                "http": "GET",
                "id_source": "id หรือ polling_url จริงที่ส่งกลับ",
                "path": "/v1/videos/{request_id}"
              }
            ],
            "unknown": "Keep X-Client-Request-ID, X-Ailoot-Task-Id and actual returned id/polling_url. Continue the original job; do not submit creation again."
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "video",
            "fields": [
              {
                "description": null,
                "name": "id",
                "type": null
              },
              {
                "description": null,
                "name": "status",
                "type": null
              },
              {
                "description": null,
                "name": "data[]",
                "type": null
              },
              {
                "description": null,
                "name": "outputs[]",
                "type": null
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "ค่าประมาณนี้ไม่ใช่ค่าใช้จ่ายเพิ่มเติมหรืออัตราคงที่สำหรับการสร้างผลลัพธ์ที่เสร็จสมบูรณ์แล้ว",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "ต้นทุนการสร้างโดยประมาณ",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_INPUT_REFERENCES_JSON:?Set the actual documented input value}\"\nexport AILOOT_INPUT_REFERENCES_JSON\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'heygen/avatar-iv', 'input_references': '${ACTUAL_OWNED_INPUT_REFERENCES}'}\nrequest['input_references']=json.loads(os.environ['AILOOT_INPUT_REFERENCES_JSON'])\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n",
            "label": "Use actual input and retain the complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}\"\nexport AILOOT_STATUS_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nfrom urllib.parse import urlsplit,urljoin\nf=Path(os.environ[\"AILOOT_STATUS_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose the actual completed status file\")\nr=json.loads(f.read_text())\nif r.get(\"status\")!=\"completed\" or not isinstance(r.get(\"data\"),list) or not r[\"data\"]:raise SystemExit(\"Wait for a completed status with asset paths\")\nurls=[]\nfor x in r[\"data\"]:\n    if not isinstance(x,str) or \"\\n\" in x or \"\\r\" in x:raise SystemExit(\"Invalid asset path\")\n    u=urljoin(\"https://api.ailoot.ai\",x)\n    z=urlsplit(u)\n    if z.scheme!=\"https\" or z.netloc!=\"api.ailoot.ai\" or z.username or z.password:raise SystemExit(\"Use the actual Ailoot asset paths from status\")\n    urls.append(u)\nPath(\"asset-urls.txt\").write_text(\"\\n\".join(urls)+\"\\n\")\nPY_REQUEST\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error \"$asset_url\" \\\n    -H \"Authorization: Bearer $AILOOT_API_KEY\" -o \"video-${index}.mp4\"\n  index=$((index + 1))\ndone < asset-urls.txt\n",
            "label": "GET all completed assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "audio",
          "video"
        ],
        "label": "วิดีโอ",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "videos",
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "heygen/avatar-iv",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.1",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.1",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.1",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.1",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "heygen/avatar-iv",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "113fd01b5b18948b9d9a6f014b2e9d320cec8748bd203694f0f96070ebb9bf71",
    "input_html_sha256": "1165f68f486db26c1402a6c0fab1b4b51e029cc771cc4fe5a80f081419b6e3e0",
    "private_audit_sha256": "1c2b5fad98a6759677a8c99ed3b88a22d040f42ef0acda4a68edc35dbb0a81ff",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/th/heygen-avatar-iv/",
    "description": "Avatar IV ทำภาพถ่ายให้เป็นวิดีโอพูดแบบลิปซิงก์ โดยเสียงกำกับสีหน้าและจังหวะท่าทาง HeyGen ระบุโฟลว์สคริปต์หรือเสียงบันทึก และตัวควบคุมการเคลื่อนไหว Photo Avatar สำหรับพรีเซนเตอร์สมจริงหรือมีสไตล์",
    "locale": "th",
    "md_url": "https://ailoot.ai/models/th/heygen-avatar-iv/index.md",
    "title": "HeyGen: Avatar IV — Ailoot",
    "url": "https://ailoot.ai/models/th/heygen-avatar-iv/"
  },
  "rawModel": {
    "about": "Avatar IV เป็นเอนจินอวาตาร์ของ HeyGen ที่เปลี่ยนภาพนิ่งเป็นวิดีโอพูดมีอารมณ์ การออกแบบเสียงสู่สีหน้าที่ได้แนวคิดจาก diffusion ใช้น้ำเสียง จังหวะ และอารมณ์กำกับใบหน้า การเอียงศีรษะ การพัก และสีหน้าละเอียด จุดประสงค์คือพรีเซนเตอร์หรือตัวละครพูดพร้อมลิปซิงก์และท่าทาง ไม่ใช่โมเดลฉากทั่วไปที่สร้างสถานที่กับซาวด์แทร็กทั้งหมดจากพรอมป์ต์ภาพยนตร์\n\nผู้ผลิตระบุรองรับตัวละครสมจริงและมีสไตล์ รวมภาพมุมเอียงหรือด้านข้าง ใบหน้าอนิเมะ และสัตว์เลี้ยง ตัวละครจากภาพทำงานดีที่สุดเมื่อระบุดวงตา ปาก และโครงหน้าได้ง่าย HeyGen แนะนำภาพชัด แสงดี ท่าธรรมชาติ และมือมองเห็นหากท่าทางสำคัญ ใบหน้าเล็กมาก ริมฝีปากถูกบัง หน้ากากหนา จะงอยปากเด่น หรือสัดส่วนเกินจริงมากอาจลดคุณภาพใบหน้าและลิปซิงก์ ให้กรอบต้นฉบับเหมาะการแสดง\n\nผู้ผลิตมีสองเส้นทางคำพูด: สคริปต์คู่กับเสียงที่เลือก หรือแทร็กบันทึกล่วงหน้าที่ให้เสียงและเวลาโดยตรง ใช้เสียงบันทึกเมื่อวิธีพูดพร้อมแล้ว และสคริปต์เมื่อต้องสังเคราะห์ ทั้งสองเป็นทางเลือกแทนกันในอินเทอร์เฟซ เตรียมถ้อยคำ ชื่อ และการออกเสียงให้เสร็จก่อนทำภาพเคลื่อนไหว และเก็บเสียงหรือสคริปต์กับวิดีโอเพื่อตรวจคำพูด\n\nโปรไฟล์ Avatar IV ของ HeyGen ครอบคลุม studio avatars, Digital Twins, Photo Avatars, ภาพโดยตรง และตัวแบบจากพรอมป์ต์ Photo Avatar ที่ใช้ซ้ำให้ตัวแบบคงที่สำหรับงานถัดไป ส่วนโฟลว์ภาพตรงเริ่มจากภาพที่ส่ง โปรไฟล์ Photo Avatar มีคำสั่งการเคลื่อนไหวอิสระและระดับการแสดงออก high, medium หรือ low โดยเริ่มต้น low เก็บรูปลักษณ์อวาตาร์กับเอนจินที่เลือกเมื่อทำซีรีส์ เพื่อไม่ให้ภาพหรือโมเดลเรนเดอร์เปลี่ยนพรีเซนเตอร์โดยไม่รู้ตัว\n\nการกำกับท่าทางให้บอกการกระทำที่เห็นและอารมณ์ เช่น “พยักหน้าเบา ๆ พร้อมยิ้มอบอุ่น” ให้หนึ่งท่ากับหนึ่งสีหน้า คำทักทายสั้นใช้โบกมือเป็นมิตรได้ ผู้ผลิตแนะนำท่าหลักเดียว อาจคู่สีหน้า และไม่เกินสองวลีสั้นสำหรับลำดับ Avatar IV จัดจังหวะจากการแสดง คู่มือ Studio จึงไม่ต้องตารางท่าทางทุกวินาที ถ้อยคำเฉพาะและสั้นตรวจง่ายกว่าหลายการกระทำแย่งกัน\n\nโปรไฟล์เสียงสู่วิดีโอเรนเดอร์เสียงที่ส่งได้สูงสุดสามสิบนาทีต่อคำขอ และไฟล์ MP3/WAV อัปโหลดไม่เกิน 32 MB สำหรับบทเรียนหรือบันทึกยาว ให้แบ่งตรงขอบเขตคำพูดสอดคล้องและรักษาลำดับเดิม เวลาคำพูดในวิดีโอควรตามเสียงที่เลือก ไม่ใช่การประมาณความยาวคลิปที่ไม่เกี่ยวกัน\n\nค่าตั้งเอาต์พุตที่ระบุมี 720p หรือ 1080p กับรูปทรง 16:9, 9:16, 4:5, 5:4 หรือ 1:1 และอัตโนมัติตามสัดส่วนต้นฉบับ แบบ cover อาจครอปตัวแบบ ส่วน contain ใส่ตัวแบบครบและอาจเห็นพื้นหลังรอบ ๆ โฟลว์เสียงสู่วิดีโอคืน MP4 เป็นค่าเริ่มต้น สำหรับ video avatars เอาต์พุต WebM โปร่งใสต้องรองรับ matting และผู้ผลิตลบพื้นหลังเพื่อเอาต์พุตนั้นแทนรวมกับพื้นหลังใหม่ ตรวจกรอบและไฟล์จริงก่อนใส่พรีเซนเตอร์ในงานใหญ่\n\nบทเปิดการฝึกอบรมใช้ภาพพรีเซนเตอร์ชัด คำอธิบายกระชับ และท่าทางพอดีหนึ่งท่าตรงคำสั่งสำคัญ งานอธิบายสินค้าคงรูปลักษณ์เดียวแล้วเปลี่ยนสคริปต์ตามคุณสมบัติ ผู้ผลิตยังมีไฟล์คำบรรยายเสริมและคำบรรยายฝังภาพ ให้ตรวจข้อความกับจังหวะร่วมคำพูด เรนเดอร์แบบอะซิงโครนัส คำตอบสร้างงานกับวิดีโอเสร็จจึงคนละสิ่ง เก็บไฟล์สำเร็จและสถานะเสร็จกับผลของงาน\n\nAvatar IV ต่างจาก Avatar V ที่ใช้การเคลื่อนไหวตามอ้างอิงและตัวควบคุม preset ของ Studio แยก ยังต่างจากสร้างฉากทั่วไป HeyGen Video และสนทนาอวาตาร์สดแบบโต้ตอบ ตรวจปาก มือ สีหน้า การพัก และคำพูดเทียบสื่อต้นทางกับอารมณ์เป้าหมาย ภาพ ท่า แสง และคำสั่งเคลื่อนไหวมีผลต่อผลลัพธ์ งานภาพถ่ายเคลื่อนไหวจึงต้องตรวจในฐานะการแสดงที่สร้าง และเก็บอินพุตเพื่อแก้ภายหลัง",
    "alias_of": null,
    "aliases": [],
    "author": "HeyGen",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image",
        "audio"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.1",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.1",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "ดูราคาตามการกำหนดค่าแบบครบถ้วนในรายละเอียด"
      }
    ],
    "ctx": null,
    "formats": [
      "videos"
    ],
    "id": "heygen/avatar-iv",
    "input": [
      "text",
      "image",
      "audio",
      "video"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "อัตราที่แสดงใช้ประมาณการค่าใช้จ่ายก่อนการสร้างผลลัพธ์ ยอดเรียกเก็บสุดท้ายคำนวณจากค่าใช้จ่ายที่บันทึกไว้สำหรับการสร้างผลลัพธ์ครั้งเดิม ระยะเวลาของผลลัพธ์ที่วัดได้และปริมาณที่คาดการณ์ไว้ไม่ใช่ปริมาณสุดท้ายที่ใช้คิดค่าบริการ",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual zero-based output index from completed manifest"
                  }
                }
              ],
              "creation_id_field": "id",
              "media_library": {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              "mode": "asynchronous_job_then_owned_outputs",
              "operation_id_is_not_task_id": true,
              "output_content_response": "owned MP4 bytes with Range support",
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned id or polling_url",
                  "path": "/v1/videos/{request_id}"
                }
              ],
              "unknown": "เก็บ X-Client-Request-ID, X-Ailoot-Task-Id และ id/polling_url จริงที่ส่งกลับ ดำเนินงานเดิมต่อ อย่าส่งคำขอสร้างซ้ำ"
            },
            "outputs": {
              "all_results": "เก็บการตอบกลับและส่วนหัวให้ครบถ้วน เก็บผลลัพธ์จริงทุกรายการ ตัวระบุที่ส่งกลับมาแต่เดิม และฟิลด์ข้อมูลการใช้งานทั้งหมด กู้คืนการดำเนินการเดิมโดยไม่ส่งคำขอสร้างซ้ำ",
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": null
                },
                {
                  "description": null,
                  "name": "status",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[]",
                  "type": null
                },
                {
                  "description": null,
                  "name": "outputs[]",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "heygen/avatar-iv"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "items": {
                  "anyOf": [
                    {
                      "additionalProperties": false,
                      "properties": {
                        "image_url": {
                          "additionalProperties": false,
                          "properties": {
                            "url": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "url"
                          ],
                          "type": "object"
                        },
                        "type": {
                          "const": "image_url"
                        }
                      },
                      "required": [
                        "type",
                        "image_url"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "audio_url": {
                          "additionalProperties": false,
                          "properties": {
                            "url": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "url"
                          ],
                          "type": "object"
                        },
                        "type": {
                          "const": "audio_url"
                        }
                      },
                      "required": [
                        "type",
                        "audio_url"
                      ],
                      "type": "object"
                    }
                  ]
                },
                "maximum_items": 2,
                "minimum_items": 2,
                "name": "input_references",
                "required": true,
                "type": "array"
              },
              {
                "name": "prompt",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "input_references": {
                  "allOf": [
                    {
                      "contains": {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      "maxContains": 1,
                      "minContains": 1
                    },
                    {
                      "contains": {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      },
                      "maxContains": 1,
                      "minContains": 1
                    }
                  ],
                  "items": {
                    "anyOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "maxItems": 2,
                  "minItems": 2,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "heygen/avatar-iv"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "const": "",
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_references"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input_references": "${ACTUAL_OWNED_INPUT_REFERENCES}",
                "model": "heygen/avatar-iv"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "ใช้ URL เนื้อหาแอสเซ็ตสื่อจริงที่เสร็จสมบูรณ์และเป็นของคุณ พร้อมลายเซ็นที่ส่งกลับ แหล่งวิดีโอหนึ่งรายการสำหรับ BFL หรือแหล่งภาพหนึ่งรายการและเสียงหนึ่งรายการสำหรับอวตาร ต้องมีหลักฐานจากแหล่งข้อมูลยืนยันเจ้าของ/ชนิด/ไบต์",
              "ระบุภาพ PNG/JPEG เพียงหนึ่งภาพและแอสเซ็ตเสียง WAV/MP3 เพียงหนึ่งรายการ เสียงมีขนาดไม่เกิน 32000000 ไบต์ ระยะเวลามากกว่า 0 และไม่เกิน 1800 วินาที"
            ],
            "material_types": [
              "text",
              "image",
              "audio",
              "video"
            ],
            "required": [
              "model",
              "input_references"
            ]
          },
          "lifecycle": {
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual zero-based output index from completed manifest"
                }
              }
            ],
            "creation_id_field": "id",
            "media_library": {
              "http": "GET",
              "path": "/v1/media/assets"
            },
            "mode": "asynchronous_job_then_owned_outputs",
            "operation_id_is_not_task_id": true,
            "output_content_response": "owned MP4 bytes with Range support",
            "status": [
              {
                "http": "GET",
                "id_source": "id หรือ polling_url จริงที่ส่งกลับ",
                "path": "/v1/videos/{request_id}"
              }
            ],
            "unknown": "Keep X-Client-Request-ID, X-Ailoot-Task-Id and actual returned id/polling_url. Continue the original job; do not submit creation again."
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "video",
            "fields": [
              {
                "description": null,
                "name": "id",
                "type": null
              },
              {
                "description": null,
                "name": "status",
                "type": null
              },
              {
                "description": null,
                "name": "data[]",
                "type": null
              },
              {
                "description": null,
                "name": "outputs[]",
                "type": null
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "ค่าประมาณนี้ไม่ใช่ค่าใช้จ่ายเพิ่มเติมหรืออัตราคงที่สำหรับการสร้างผลลัพธ์ที่เสร็จสมบูรณ์แล้ว",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "ต้นทุนการสร้างโดยประมาณ",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_INPUT_REFERENCES_JSON:?Set the actual documented input value}\"\nexport AILOOT_INPUT_REFERENCES_JSON\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'heygen/avatar-iv', 'input_references': '${ACTUAL_OWNED_INPUT_REFERENCES}'}\nrequest['input_references']=json.loads(os.environ['AILOOT_INPUT_REFERENCES_JSON'])\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n",
            "label": "Use actual input and retain the complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}\"\nexport AILOOT_STATUS_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nfrom urllib.parse import urlsplit,urljoin\nf=Path(os.environ[\"AILOOT_STATUS_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose the actual completed status file\")\nr=json.loads(f.read_text())\nif r.get(\"status\")!=\"completed\" or not isinstance(r.get(\"data\"),list) or not r[\"data\"]:raise SystemExit(\"Wait for a completed status with asset paths\")\nurls=[]\nfor x in r[\"data\"]:\n    if not isinstance(x,str) or \"\\n\" in x or \"\\r\" in x:raise SystemExit(\"Invalid asset path\")\n    u=urljoin(\"https://api.ailoot.ai\",x)\n    z=urlsplit(u)\n    if z.scheme!=\"https\" or z.netloc!=\"api.ailoot.ai\" or z.username or z.password:raise SystemExit(\"Use the actual Ailoot asset paths from status\")\n    urls.append(u)\nPath(\"asset-urls.txt\").write_text(\"\\n\".join(urls)+\"\\n\")\nPY_REQUEST\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error \"$asset_url\" \\\n    -H \"Authorization: Bearer $AILOOT_API_KEY\" -o \"video-${index}.mp4\"\n  index=$((index + 1))\ndone < asset-urls.txt\n",
            "label": "GET all completed assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "audio",
          "video"
        ],
        "label": "วิดีโอ",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "videos",
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "heygen/avatar-iv",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.1",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.1",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.1",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.1",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "heygen/avatar-iv",
        "request_model_id": "heygen/avatar-iv",
        "route_label": "Ultra"
      }
    ],
    "name": "HeyGen: Avatar IV",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.1,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.1,
      "varies": false
    },
    "short": "Avatar IV ทำภาพถ่ายให้เป็นวิดีโอพูดแบบลิปซิงก์ โดยเสียงกำกับสีหน้าและจังหวะท่าทาง HeyGen ระบุโฟลว์สคริปต์หรือเสียงบันทึก และตัวควบคุมการเคลื่อนไหว Photo Avatar สำหรับพรีเซนเตอร์สมจริงหรือมีสไตล์"
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Avatar IV ทำภาพถ่ายให้เป็นวิดีโอพูดแบบลิปซิงก์ โดยเสียงกำกับสีหน้าและจังหวะท่าทาง HeyGen ระบุโฟลว์สคริปต์หรือเสียงบันทึก และตัวควบคุมการเคลื่อนไหว Photo Avatar สำหรับพรีเซนเตอร์สมจริงหรือมีสไตล์",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "0e152a0f026a872e88e4da71d94fd906e0176e03f0576a2533d2fb9bc91c446e",
    "renderer_sha256": "890edb706fafafdd4f598bb324acf65fada58918b0911b97eb80e68be2ef65d9"
  },
  "sourceRevision": "e9360a9b8fc3b02582fe3024eab4aa6def09e8ce5c978d9bf6113c0c06bd11dd"
}
