{
  "aboutHtml": "<p>Recraft V4.1 Pro Vector เป็นรุ่น SVG แบบ Pro ในตระกูลสร้างภาพ V4.1 ของ Recraft ออกแบบสำหรับงานที่ผลลัพธ์ควรคงเป็นเวกเตอร์ที่แก้ไขได้ เช่น โลโก้ แนวคิดตัวพิมพ์ ไอคอน หรือภาพประกอบ การนำเสนอ V4.1 ของผู้ผลิตเน้นองค์ประกอบภาพและภาพประกอบที่ออกแบบอย่างตั้งใจ ส่วนเอกสารอ้างอิงโมเดลที่ตรงระบุรุ่นนี้แยกจาก Vector มาตรฐาน แรสเตอร์ Pro และรุ่น Utility ภาพสุดท้ายเป็น SVG แทนการส่งออกแรสเตอร์ความละเอียดสูง</p><p>รหัสโมเดลของผู้ผลิตคือ recraftv4_1_pro_vector เอาต์พุตเวกเตอร์ไม่มีขนาดพิกเซลตายตัว เอกสารอ้างอิงขนาดรับอัตราส่วนความกว้างต่อความสูงสิบสี่แบบสำหรับโมเดลเวกเตอร์ และไม่รับขนาดพิกเซลที่แน่นอน ดังนั้นการตั้งค่าแรสเตอร์ 2K ของ Pro จึงไม่กำหนดความละเอียด SVG ของรุ่นนี้ ระบุสัดส่วนที่ต้องการและวิธีใช้ชิ้นงาน สำหรับโลโก้ ชิ้นงานสำคัญคือรูปเงาที่อ่านได้และพื้นที่สีที่แก้ไขปรับในเวิร์กโฟลว์ออกแบบได้</p><p>โมเดลรองรับการสร้างภาพจากข้อความและภาพอ้างอิงสไตล์กำหนดเองที่เลือกใช้ได้ ขอบเขตพรอมป์ต์ตามเอกสารคือ 10,000 อักขระ สีที่ต้องการ สีพื้นหลังที่ต้องการ และ seed แบบสุ่มช่วยนำการสร้างได้ และเวิร์กโฟลว์อนุญาตผลลัพธ์หนึ่งถึงหกชิ้น สไตล์ที่บันทึกไว้ซึ่งเข้ากันได้หรือภาพอ้างอิงสามารถกำหนดภาษาภาพ สไตล์ต้องตรงกับโมเดลที่ใช้สร้างสไตล์นั้น สายหลัก V4.1 ไม่จำเป็นต้องมีสไตล์อ้างอิงในทุกคำขอ ต่างจากตระกูล V4 Styles โดยเฉพาะ สำหรับการสร้างโดยอ้างอิงสไตล์ ให้ใช้ภาพ PNG, JPG หรือ WebP หนึ่งถึงสิบภาพ ขนาดรวมไม่เกิน 64 MB และแต่ละภาพต่ำกว่า 20 MB ภาพอ้างอิงแต่ละภาพต้องมีด้านสั้นอย่างน้อย 256 พิกเซล ด้านยาวไม่เกิน 4,096 พิกเซล และความละเอียดไม่เกิน 16 เมกะพิกเซล ใช้ภาพอ้างอิงเหล่านี้หรือสไตล์ที่บันทึกไว้ซึ่งเข้ากันได้อย่างใดอย่างหนึ่ง ไม่ใช้ทั้งสองพร้อมกัน สำหรับการสร้างโดยอ้างอิงสไตล์ การจับคู่ flexible อนุญาตการตีความที่หลวมกว่า ส่วน precise ทำตามการเรนเดอร์ ชุดสี องค์ประกอบภาพ และแสงใกล้ชิดกว่า</p><p>บรีฟเวกเตอร์ที่มีประโยชน์กำหนดประเภทกราฟิก หลักการรูปทรง ชุดสี แนวทางเส้น และการจัดวางก่อนเพิ่มรายละเอียดตกแต่ง สำหรับตราร้านสวน ให้ขอรูปเงาต้นอ่อนหนึ่งต้น เรขาคณิตโค้งมน สีแบนสองสี และการจัดองค์ประกอบรวมตรงกลาง สำหรับตัวอักษร ให้ใส่คำตามตัวอักษรจริงและอธิบายลำดับชั้นกับรูปทรง แล้วตรวจ SVG ที่ได้รับด้านช่องว่างภายในตัวอักษร ระยะห่าง และความชัดเจนขนาดเล็ก ตัวอย่างเวกเตอร์ของผู้ผลิตรองรับตัวพิมพ์ที่สื่ออารมณ์และภาพประกอบ แต่ไม่ได้รับประกันว่าตัวอักษรหรือเส้นพาธทุกเส้นที่สร้างเป็นงานสำเร็จแล้ว</p><p>Recraft ระบุเวิร์กโฟลว์ image-to-image แยกต่างหากสำหรับโมเดลแรสเตอร์และเวกเตอร์ V4.1 โดยรวมภาพที่มีอยู่กับพรอมป์ต์ และใช้ strength ตั้งแต่ 0 ถึง 1 ควบคุมว่าผลลัพธ์ใหม่เปลี่ยนจากต้นฉบับมากเพียงใด strength ต่ำคงความใกล้เคียง ส่วนค่าสูงอนุญาตการเปลี่ยนแปลงมากขึ้น การดำเนินการนั้นไม่รับตัวควบคุมสไตล์กำหนดเองของ V4/V4.1 จึงควรเตรียมการแปลงภาพต้นทางและการสร้างโดยอ้างอิงสไตล์เป็นเวิร์กโฟลว์แยกกัน อินพุตภาพอาจเป็น PNG, JPG, WebP หรือ SVG ภายในขีดจำกัดภาพตามเอกสาร สำหรับ image-to-image ให้ส่ง PNG, JPG, WebP หรือ SVG ต่ำกว่า 20 MB ไม่เกิน 16 เมกะพิกเซล โดยทั้งสองด้านอยู่ระหว่าง 256 และ 4,096 พิกเซล</p><p>V4.1 ไม่รองรับชื่อสไตล์คัดสรรหรือตัวควบคุม negative_prompt, text_layout, artistic_level และ no_text ระบุการจัดวางและตัวอักษรที่ต้องการในบรีฟเชิงบวก แทนการพึ่งกลไกเก่าของ V3 สำหรับชิ้นงานแบรนด์ที่มีรายละเอียด ให้ใช้ SVG เป็นไฟล์ทำงาน ตรวจเรขาคณิต และปรับสีหรือรูปทรงตามจำเป็นก่อนวางในเลย์เอาต์สุดท้าย รุ่น Pro Vector นี้คงตัวตนของตนเอง ไม่สามารถใช้แทนรุ่นแรสเตอร์มาตรฐานหรือ Utility ได้เพียงเพราะใช้ชื่อ V4.1 ร่วมกัน</p><p>ผ่าน Ailoot ให้เลือก ID โมเดลนี้ให้ตรงใน /v1/images/generations และส่งพรอมป์ต์สร้างสรรค์ เก็บทุกรายการ data ที่ได้รับ ไม่ว่าคำตอบจะมี URL หรือเนื้อหาภาพที่เข้ารหัส และบันทึกไบต์จริงพร้อมชนิดเนื้อหาที่ได้รับ เก็บ usage และ media task_id ที่มีไว้กับชิ้นงาน แล้วตรวจรูปทรง ตัวอักษร และพื้นที่สีในงานออกแบบที่ตั้งใจ</p>",
  "aboutText": "Recraft V4.1 Pro Vector เป็นรุ่น SVG แบบ Pro ในตระกูลสร้างภาพ V4.1 ของ Recraft ออกแบบสำหรับงานที่ผลลัพธ์ควรคงเป็นเวกเตอร์ที่แก้ไขได้ เช่น โลโก้ แนวคิดตัวพิมพ์ ไอคอน หรือภาพประกอบ การนำเสนอ V4.1 ของผู้ผลิตเน้นองค์ประกอบภาพและภาพประกอบที่ออกแบบอย่างตั้งใจ ส่วนเอกสารอ้างอิงโมเดลที่ตรงระบุรุ่นนี้แยกจาก Vector มาตรฐาน แรสเตอร์ Pro และรุ่น Utility ภาพสุดท้ายเป็น SVG แทนการส่งออกแรสเตอร์ความละเอียดสูง\n\nรหัสโมเดลของผู้ผลิตคือ recraftv4_1_pro_vector เอาต์พุตเวกเตอร์ไม่มีขนาดพิกเซลตายตัว เอกสารอ้างอิงขนาดรับอัตราส่วนความกว้างต่อความสูงสิบสี่แบบสำหรับโมเดลเวกเตอร์ และไม่รับขนาดพิกเซลที่แน่นอน ดังนั้นการตั้งค่าแรสเตอร์ 2K ของ Pro จึงไม่กำหนดความละเอียด SVG ของรุ่นนี้ ระบุสัดส่วนที่ต้องการและวิธีใช้ชิ้นงาน สำหรับโลโก้ ชิ้นงานสำคัญคือรูปเงาที่อ่านได้และพื้นที่สีที่แก้ไขปรับในเวิร์กโฟลว์ออกแบบได้\n\nโมเดลรองรับการสร้างภาพจากข้อความและภาพอ้างอิงสไตล์กำหนดเองที่เลือกใช้ได้ ขอบเขตพรอมป์ต์ตามเอกสารคือ 10,000 อักขระ สีที่ต้องการ สีพื้นหลังที่ต้องการ และ seed แบบสุ่มช่วยนำการสร้างได้ และเวิร์กโฟลว์อนุญาตผลลัพธ์หนึ่งถึงหกชิ้น สไตล์ที่บันทึกไว้ซึ่งเข้ากันได้หรือภาพอ้างอิงสามารถกำหนดภาษาภาพ สไตล์ต้องตรงกับโมเดลที่ใช้สร้างสไตล์นั้น สายหลัก V4.1 ไม่จำเป็นต้องมีสไตล์อ้างอิงในทุกคำขอ ต่างจากตระกูล V4 Styles โดยเฉพาะ สำหรับการสร้างโดยอ้างอิงสไตล์ ให้ใช้ภาพ PNG, JPG หรือ WebP หนึ่งถึงสิบภาพ ขนาดรวมไม่เกิน 64 MB และแต่ละภาพต่ำกว่า 20 MB ภาพอ้างอิงแต่ละภาพต้องมีด้านสั้นอย่างน้อย 256 พิกเซล ด้านยาวไม่เกิน 4,096 พิกเซล และความละเอียดไม่เกิน 16 เมกะพิกเซล ใช้ภาพอ้างอิงเหล่านี้หรือสไตล์ที่บันทึกไว้ซึ่งเข้ากันได้อย่างใดอย่างหนึ่ง ไม่ใช้ทั้งสองพร้อมกัน สำหรับการสร้างโดยอ้างอิงสไตล์ การจับคู่ flexible อนุญาตการตีความที่หลวมกว่า ส่วน precise ทำตามการเรนเดอร์ ชุดสี องค์ประกอบภาพ และแสงใกล้ชิดกว่า\n\nบรีฟเวกเตอร์ที่มีประโยชน์กำหนดประเภทกราฟิก หลักการรูปทรง ชุดสี แนวทางเส้น และการจัดวางก่อนเพิ่มรายละเอียดตกแต่ง สำหรับตราร้านสวน ให้ขอรูปเงาต้นอ่อนหนึ่งต้น เรขาคณิตโค้งมน สีแบนสองสี และการจัดองค์ประกอบรวมตรงกลาง สำหรับตัวอักษร ให้ใส่คำตามตัวอักษรจริงและอธิบายลำดับชั้นกับรูปทรง แล้วตรวจ SVG ที่ได้รับด้านช่องว่างภายในตัวอักษร ระยะห่าง และความชัดเจนขนาดเล็ก ตัวอย่างเวกเตอร์ของผู้ผลิตรองรับตัวพิมพ์ที่สื่ออารมณ์และภาพประกอบ แต่ไม่ได้รับประกันว่าตัวอักษรหรือเส้นพาธทุกเส้นที่สร้างเป็นงานสำเร็จแล้ว\n\nRecraft ระบุเวิร์กโฟลว์ image-to-image แยกต่างหากสำหรับโมเดลแรสเตอร์และเวกเตอร์ V4.1 โดยรวมภาพที่มีอยู่กับพรอมป์ต์ และใช้ strength ตั้งแต่ 0 ถึง 1 ควบคุมว่าผลลัพธ์ใหม่เปลี่ยนจากต้นฉบับมากเพียงใด strength ต่ำคงความใกล้เคียง ส่วนค่าสูงอนุญาตการเปลี่ยนแปลงมากขึ้น การดำเนินการนั้นไม่รับตัวควบคุมสไตล์กำหนดเองของ V4/V4.1 จึงควรเตรียมการแปลงภาพต้นทางและการสร้างโดยอ้างอิงสไตล์เป็นเวิร์กโฟลว์แยกกัน อินพุตภาพอาจเป็น PNG, JPG, WebP หรือ SVG ภายในขีดจำกัดภาพตามเอกสาร สำหรับ image-to-image ให้ส่ง PNG, JPG, WebP หรือ SVG ต่ำกว่า 20 MB ไม่เกิน 16 เมกะพิกเซล โดยทั้งสองด้านอยู่ระหว่าง 256 และ 4,096 พิกเซล\n\nV4.1 ไม่รองรับชื่อสไตล์คัดสรรหรือตัวควบคุม negative_prompt, text_layout, artistic_level และ no_text ระบุการจัดวางและตัวอักษรที่ต้องการในบรีฟเชิงบวก แทนการพึ่งกลไกเก่าของ V3 สำหรับชิ้นงานแบรนด์ที่มีรายละเอียด ให้ใช้ SVG เป็นไฟล์ทำงาน ตรวจเรขาคณิต และปรับสีหรือรูปทรงตามจำเป็นก่อนวางในเลย์เอาต์สุดท้าย รุ่น Pro Vector นี้คงตัวตนของตนเอง ไม่สามารถใช้แทนรุ่นแรสเตอร์มาตรฐานหรือ Utility ได้เพียงเพราะใช้ชื่อ V4.1 ร่วมกัน\n\nผ่าน Ailoot ให้เลือก ID โมเดลนี้ให้ตรงใน /v1/images/generations และส่งพรอมป์ต์สร้างสรรค์ เก็บทุกรายการ data ที่ได้รับ ไม่ว่าคำตอบจะมี URL หรือเนื้อหาภาพที่เข้ารหัส และบันทึกไบต์จริงพร้อมชนิดเนื้อหาที่ได้รับ เก็บ usage และ media task_id ที่มีไว้กับชิ้นงาน แล้วตรวจรูปทรง ตัวอักษร และพื้นที่สีในงานออกแบบที่ตั้งใจ",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "f9df08f961a8c03e8e5f2d5535d2d643c1beeac40e1fcce12c58f278c6a5cdfb",
    "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\">Recraft: Recraft V4.1 Pro Vector</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"ปิด\">×</button></div><div class=\"idline\"><span>อื่น ๆ /</span><code>recraft/recraft-v4.1-pro-vector</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|images|/v1/images/generations|recraft%2Frecraft-v4.1-pro-vector\">รูปภาพ</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\">Recraft V4.1 Pro Vector สร้างงาน SVG ที่แก้ไขได้สำหรับโลโก้ ตัวอักษร และภาพประกอบที่มีรายละเอียด เป็นรุ่นเวกเตอร์ Pro ของตระกูล V4.1 ที่รวมพรอมป์ต์ข้อความกับอินพุตภาพและสไตล์ที่เลือกใช้ได้ โดยคงชิ้นงานเป็นเวกเตอร์</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>Recraft V4.1 Pro Vector เป็นรุ่น SVG แบบ Pro ในตระกูลสร้างภาพ V4.1 ของ Recraft ออกแบบสำหรับงานที่ผลลัพธ์ควรคงเป็นเวกเตอร์ที่แก้ไขได้ เช่น โลโก้ แนวคิดตัวพิมพ์ ไอคอน หรือภาพประกอบ การนำเสนอ V4.1 ของผู้ผลิตเน้นองค์ประกอบภาพและภาพประกอบที่ออกแบบอย่างตั้งใจ ส่วนเอกสารอ้างอิงโมเดลที่ตรงระบุรุ่นนี้แยกจาก Vector มาตรฐาน แรสเตอร์ Pro และรุ่น Utility ภาพสุดท้ายเป็น SVG แทนการส่งออกแรสเตอร์ความละเอียดสูง</p><p>รหัสโมเดลของผู้ผลิตคือ recraftv4_1_pro_vector เอาต์พุตเวกเตอร์ไม่มีขนาดพิกเซลตายตัว เอกสารอ้างอิงขนาดรับอัตราส่วนความกว้างต่อความสูงสิบสี่แบบสำหรับโมเดลเวกเตอร์ และไม่รับขนาดพิกเซลที่แน่นอน ดังนั้นการตั้งค่าแรสเตอร์ 2K ของ Pro จึงไม่กำหนดความละเอียด SVG ของรุ่นนี้ ระบุสัดส่วนที่ต้องการและวิธีใช้ชิ้นงาน สำหรับโลโก้ ชิ้นงานสำคัญคือรูปเงาที่อ่านได้และพื้นที่สีที่แก้ไขปรับในเวิร์กโฟลว์ออกแบบได้</p><p>โมเดลรองรับการสร้างภาพจากข้อความและภาพอ้างอิงสไตล์กำหนดเองที่เลือกใช้ได้ ขอบเขตพรอมป์ต์ตามเอกสารคือ 10,000 อักขระ สีที่ต้องการ สีพื้นหลังที่ต้องการ และ seed แบบสุ่มช่วยนำการสร้างได้ และเวิร์กโฟลว์อนุญาตผลลัพธ์หนึ่งถึงหกชิ้น สไตล์ที่บันทึกไว้ซึ่งเข้ากันได้หรือภาพอ้างอิงสามารถกำหนดภาษาภาพ สไตล์ต้องตรงกับโมเดลที่ใช้สร้างสไตล์นั้น สายหลัก V4.1 ไม่จำเป็นต้องมีสไตล์อ้างอิงในทุกคำขอ ต่างจากตระกูล V4 Styles โดยเฉพาะ สำหรับการสร้างโดยอ้างอิงสไตล์ ให้ใช้ภาพ PNG, JPG หรือ WebP หนึ่งถึงสิบภาพ ขนาดรวมไม่เกิน 64 MB และแต่ละภาพต่ำกว่า 20 MB ภาพอ้างอิงแต่ละภาพต้องมีด้านสั้นอย่างน้อย 256 พิกเซล ด้านยาวไม่เกิน 4,096 พิกเซล และความละเอียดไม่เกิน 16 เมกะพิกเซล ใช้ภาพอ้างอิงเหล่านี้หรือสไตล์ที่บันทึกไว้ซึ่งเข้ากันได้อย่างใดอย่างหนึ่ง ไม่ใช้ทั้งสองพร้อมกัน สำหรับการสร้างโดยอ้างอิงสไตล์ การจับคู่ flexible อนุญาตการตีความที่หลวมกว่า ส่วน precise ทำตามการเรนเดอร์ ชุดสี องค์ประกอบภาพ และแสงใกล้ชิดกว่า</p><p>บรีฟเวกเตอร์ที่มีประโยชน์กำหนดประเภทกราฟิก หลักการรูปทรง ชุดสี แนวทางเส้น และการจัดวางก่อนเพิ่มรายละเอียดตกแต่ง สำหรับตราร้านสวน ให้ขอรูปเงาต้นอ่อนหนึ่งต้น เรขาคณิตโค้งมน สีแบนสองสี และการจัดองค์ประกอบรวมตรงกลาง สำหรับตัวอักษร ให้ใส่คำตามตัวอักษรจริงและอธิบายลำดับชั้นกับรูปทรง แล้วตรวจ SVG ที่ได้รับด้านช่องว่างภายในตัวอักษร ระยะห่าง และความชัดเจนขนาดเล็ก ตัวอย่างเวกเตอร์ของผู้ผลิตรองรับตัวพิมพ์ที่สื่ออารมณ์และภาพประกอบ แต่ไม่ได้รับประกันว่าตัวอักษรหรือเส้นพาธทุกเส้นที่สร้างเป็นงานสำเร็จแล้ว</p><p>Recraft ระบุเวิร์กโฟลว์ image-to-image แยกต่างหากสำหรับโมเดลแรสเตอร์และเวกเตอร์ V4.1 โดยรวมภาพที่มีอยู่กับพรอมป์ต์ และใช้ strength ตั้งแต่ 0 ถึง 1 ควบคุมว่าผลลัพธ์ใหม่เปลี่ยนจากต้นฉบับมากเพียงใด strength ต่ำคงความใกล้เคียง ส่วนค่าสูงอนุญาตการเปลี่ยนแปลงมากขึ้น การดำเนินการนั้นไม่รับตัวควบคุมสไตล์กำหนดเองของ V4/V4.1 จึงควรเตรียมการแปลงภาพต้นทางและการสร้างโดยอ้างอิงสไตล์เป็นเวิร์กโฟลว์แยกกัน อินพุตภาพอาจเป็น PNG, JPG, WebP หรือ SVG ภายในขีดจำกัดภาพตามเอกสาร สำหรับ image-to-image ให้ส่ง PNG, JPG, WebP หรือ SVG ต่ำกว่า 20 MB ไม่เกิน 16 เมกะพิกเซล โดยทั้งสองด้านอยู่ระหว่าง 256 และ 4,096 พิกเซล</p><p>V4.1 ไม่รองรับชื่อสไตล์คัดสรรหรือตัวควบคุม negative_prompt, text_layout, artistic_level และ no_text ระบุการจัดวางและตัวอักษรที่ต้องการในบรีฟเชิงบวก แทนการพึ่งกลไกเก่าของ V3 สำหรับชิ้นงานแบรนด์ที่มีรายละเอียด ให้ใช้ SVG เป็นไฟล์ทำงาน ตรวจเรขาคณิต และปรับสีหรือรูปทรงตามจำเป็นก่อนวางในเลย์เอาต์สุดท้าย รุ่น Pro Vector นี้คงตัวตนของตนเอง ไม่สามารถใช้แทนรุ่นแรสเตอร์มาตรฐานหรือ Utility ได้เพียงเพราะใช้ชื่อ V4.1 ร่วมกัน</p><p>ผ่าน Ailoot ให้เลือก ID โมเดลนี้ให้ตรงใน /v1/images/generations และส่งพรอมป์ต์สร้างสรรค์ เก็บทุกรายการ data ที่ได้รับ ไม่ว่าคำตอบจะมี URL หรือเนื้อหาภาพที่เข้ารหัส และบันทึกไบต์จริงพร้อมชนิดเนื้อหาที่ได้รับ เก็บ usage และ media task_id ที่มีไว้กับชิ้นงาน แล้วตรวจรูปทรง ตัวอักษร และพื้นที่สีในงานออกแบบที่ตั้งใจ</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 · Images</b> <code>POST /v1/images/generations</code></summary><dl class=\"method-capabilities\"><div><dt>ขาเข้า</dt><dd><code>text</code>, <code>image</code></dd></div><div><dt>ขาออก</dt><dd><code>image</code></dd></div><div><dt>รูปแบบเอาต์พุต</dt><dd>ไฟล์ภาพ</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>recraft/recraft-v4.1-pro-vector</div><div>เงื่อนไข: ใช้ตัวเลือกระบุเส้นทางของ Ailoot นี้ตามที่ระบุไว้ทุกตัวอักษร</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><div>เงื่อนไข: </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\">n</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span><code>integer</code></td><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>ไม่บังคับ</td><td data-cell-label=\"ค่าและข้อจำกัด\"><span class=\"card-cell-label\">ค่าและข้อจำกัด</span><div>ขั้นต่ำ: 1</div><div>สูงสุด: 6</div><div>เงื่อนไข: </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\">aspect_ratio</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>1:1, 4:3, 3:4, 16:9, 9:16, auto</div><div>เงื่อนไข: </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\">output_format</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>svg</div><div>เงื่อนไข: </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>เงื่อนไข: </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\">quality</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>auto, low, medium, high, xhigh, max</div><div>เงื่อนไข: </div></td><td data-cell-label=\"ค่าเริ่มต้น\" data-default=\"unspecified\"><span class=\"card-cell-label\">ค่าเริ่มต้น</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>ชุดผสมของสื่ออินพุต</summary><p class=\"note-s\"><b>สร้างภาพจากข้อความ</b></p></details><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, prompt</td></tr><tr><th data-cell-label=\"พารามิเตอร์\" scope=\"row\"><span class=\"card-cell-label\">พารามิเตอร์</span><code>optional</code></th><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>n, aspect_ratio, output_format, input_references, quality</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</td></tr><tr><th data-cell-label=\"พารามิเตอร์\" scope=\"row\"><span class=\"card-cell-label\">พารามิเตอร์</span><code>conditions</code></th><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>ใช้ตัวเลือกระบุเส้นทางของ Ailoot นี้ตามที่ระบุไว้ทุกตัวอักษร, quality เป็นตัวควบคุมทั่วไปที่ระบุไว้ในเอกสาร ผู้ให้บริการที่ไม่มีการตั้งค่าคุณภาพจะละเลยค่านี้ ไม่มีการรับประกันว่าคุณภาพจะดีขึ้นในแต่ละโมเดล</td></tr></tbody></table></div><p>วงจรการทำงาน: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · task_id ที่ส่งกลับมาจริง หรือรายการในคลังที่เลือก ส่วน operation_id เป็นตัวระบุอีกตัวหนึ่ง</p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</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></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><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><div><span>ขาออก · ภาพขาออก · ประมาณการเพื่อเปรียบเทียบเท่านั้น</span> <b>$0.6</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><div><span>ขาออก · ค่าใช้จ่ายในการสร้างโดยประมาณ · ประมาณการเพื่อเปรียบเทียบเท่านั้น</span> <b>$0.6</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 · Images</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"ตัวเลือกโค้ด\"><button class=\"cg-tab\" id=\"model-code-2883-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2883-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · สร้างครั้งเดียวและเก็บผลลัพธ์ไว้ให้ครบถ้วน</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-2883-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2883-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;recraft/recraft-v4.1-pro-vector&quot;, &quot;prompt&quot;: &quot;A portrait of an Asian woman with neon green lights in the background, shallow depth of field.&quot;}&#39;)\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \\\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 result.json\n# Submit once. Retain the complete result, original identifiers and every response header.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">รับและบันทึกผลลัพธ์</h3><h4>Ailoot Ultra · Images</h4><p class=\"note-s\">ดาวน์โหลดภาพที่ส่งกลับมาทุกภาพ หรือบันทึกเนื้อหา Base64 ของภาพนั้น</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><div class=\"card-result-process\" data-all-results><h5>เก็บผลลัพธ์ที่เสร็จสมบูรณ์ทั้งหมด</h5><p class=\"note-s\">บันทึกภาพที่สร้างเสร็จทุกภาพ โดยดึงภาพจากทุก URL ที่ส่งกลับมา หรือถอดรหัสเนื้อหา Base64</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 คำตอบ และส่วนหัวต้นฉบับไว้ ผลลัพธ์ที่ไม่ทราบหรือ result_pending_check ไม่ได้อนุญาตให้สร้างครั้งที่สอง</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\">data[].url</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span>string</td></tr><tr><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">data[].b64_json</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span>string</td></tr><tr><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>ข้อผิดพลาดและขั้นตอนถัดไป</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>การตอบกลับ</th><th>เงื่อนไข</th><th>ขั้นตอนถัดไป</th></tr></thead><tbody><tr><th data-cell-label=\"การตอบกลับ\" scope=\"row\"><span class=\"card-cell-label\">การตอบกลับ</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"เงื่อนไข\"><span class=\"card-cell-label\">เงื่อนไข</span>ฟิลด์ที่จำเป็น ตัวเลือกโมเดล ชนิดข้อมูล หรือรูปแบบการแทนข้อมูลขาเข้าไม่ถูกต้อง</td><td data-cell-label=\"ขั้นตอนถัดไป\"><span class=\"card-cell-label\">ขั้นตอนถัดไป</span>ตรวจสอบรายละเอียดการตรวจสอบความถูกต้องที่ส่งกลับมาก่อนเตรียมคำขอแยกต่างหาก</td></tr><tr><th data-cell-label=\"การตอบกลับ\" scope=\"row\"><span class=\"card-cell-label\">การตอบกลับ</span><code></code></th><td data-cell-label=\"เงื่อนไข\"><span class=\"card-cell-label\">เงื่อนไข</span>ไม่ทราบคำขอหรือผลลัพธ์ต้นฉบับ หรือจำเป็นต้องตรวจสอบ</td><td data-cell-label=\"ขั้นตอนถัดไป\"><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=recraft%2Frecraft-v4.1-pro-vector&amp;route=Ultra&amp;caller=recraft%2Frecraft-v4.1-pro-vector&amp;fmt=images\"><code>recraft/recraft-v4.1-pro-vector</code></a></span></p><h4>ชื่อพาธเมธอดอื่น</h4><p class=\"note-s\">ใช้พาธเมธอดที่แสดงด้านบน</p><h4>ID ที่เกี่ยวข้องสำหรับเรียกใช้โมเดล</h4><p class=\"note-s\"><a href=\"#m=recraft%2Frecraft-v4.1-pro-vector&amp;route=Ultra&amp;caller=recraft%2Frecraft-v4.1-pro-vector&amp;fmt=images\"><code>recraft/recraft-v4.1-pro-vector</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "recraft/recraft-v4.1-pro-vector",
        "fmt": "images",
        "http": "POST",
        "path": "/v1/images/generations",
        "request_model_id": "recraft/recraft-v4.1-pro-vector",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|images|/v1/images/generations|recraft%2Frecraft-v4.1-pro-vector",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "The displayed rates estimate the cost before generation. The final charge is calculated from the cost recorded for the original generation. Measured output duration and forecast quantities are not the final billable quantity.",
          "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, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "authentication": {
              "header": "Authorization",
              "scheme": "Bearer",
              "value": "$AILOOT_API_KEY"
            },
            "control_semantics": {
              "other_documented_controls": "Source generic image parsing preserves request JSON. Additional documented controls stay subject to the exact model; missing DTO fields do not create Source refusals.",
              "quality": "The saved common image schema documents this control and says providers without a quality knob ignore it.",
              "style": "Selected generic Source passes JSON fields through but the saved dedicated image request schema does not declare a style field. Its omission here is not a Source ban or a supported per-model promise."
            },
            "errors": [
              {
                "condition": "ฟิลด์ที่จำเป็น ตัวเลือกโมเดล ชนิดข้อมูล หรือรูปแบบการแทนข้อมูลขาเข้าไม่ถูกต้อง",
                "http_status": 400,
                "recovery": "ตรวจสอบรายละเอียดการตรวจสอบความถูกต้องที่ส่งกลับมาก่อนเตรียมคำขอแยกต่างหาก",
                "type": "invalid_request_error"
              },
              {
                "condition": "ไม่ทราบคำขอหรือผลลัพธ์ต้นฉบับ หรือจำเป็นต้องตรวจสอบ",
                "http_status": null,
                "recovery": "เก็บตัวระบุและส่วนหัวเดิมไว้ อ่านเฉพาะข้อมูลสถานะหรือรายการในคลังที่รองรับ ห้ามส่งคำขอสร้างซ้ำ",
                "type": null
              }
            ],
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "cancel_endpoint": null,
              "create": {
                "http": "POST",
                "path": "/v1/images/generations"
              },
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "owned_content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "Use the exact returned signed URL; never construct a token."
              },
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or selected library record; operation_id is a separate identifier",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "เก็บ X-Client-Request-ID คำตอบ และส่วนหัวต้นฉบับไว้ ผลลัพธ์ที่ไม่ทราบหรือ result_pending_check ไม่ได้อนุญาตให้สร้างครั้งที่สอง",
              "unknown_no_replay": true
            },
            "material_combinations": [
              {
                "materials": [
                  "text",
                  "image"
                ],
                "metadata_authority": "saved_model_discovery_union",
                "mode": "text_to_image",
                "reference_maximum": 1,
                "reference_minimum": 0
              }
            ],
            "model_parameter_metadata": {
              "authority": "saved_model_discovery_union",
              "defaults_not_inferred": {
                "aspect_ratio": null,
                "exact_pixels": null,
                "explanation": "No universal/model default inferred. Omitted output_format uses provider default; dimensions are provider-derived, observed Ming2048 is not a universal default.",
                "n": null,
                "output_format": null,
                "quality": null,
                "resolution": null
              },
              "known_parameter_choices": {
                "aspect_ratio": {
                  "type": "enum",
                  "values": [
                    "1:1",
                    "4:3",
                    "3:4",
                    "16:9",
                    "9:16",
                    "auto"
                  ]
                },
                "input_references": {
                  "max": 1,
                  "min": 0,
                  "type": "range"
                },
                "n": {
                  "max": 6,
                  "min": 1,
                  "type": "range"
                },
                "output_format": {
                  "type": "enum",
                  "values": [
                    "svg"
                  ]
                }
              },
              "pointer": "/profiles/36",
              "scope": "Exact saved model metadata. Discovery unions are identified explicitly and are not represented as definitive selected-provider bounds."
            },
            "outputs": {
              "all_results": "เก็บการตอบกลับและส่วนหัวทั้งหมด ตัวระบุเดิม ผลลัพธ์จริงทุกรายการ และฟิลด์การใช้งาน/การคิดบัญชีทั้งหมด บันทึกแอสเซ็ตที่เป็นของคุณแต่ละชิ้นโดยไม่ซ้ำ และเก็บทุกบทบาทที่ชี้ไปยังแอสเซ็ตนั้น",
              "documented_formats": [
                "svg"
              ],
              "every_actual_output": true,
              "family": "image",
              "fields": [
                {
                  "name": "data[].url",
                  "type": "string"
                },
                {
                  "name": "data[].b64_json",
                  "type": "string"
                },
                {
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "The exact saved model metadata lists SVG. Preserve the actual returned MIME and unchanged vector bytes; keep every actual output and owned signed image link."
            },
            "parameters": [
              {
                "conditions": "ใช้ตัวเลือกระบุเส้นทางของ Ailoot นี้ตามที่ระบุไว้ทุกตัวอักษร",
                "default_known": false,
                "enum": [
                  "recraft/recraft-v4.1-pro-vector"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum_known": false,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum_known": false,
                "maximum": 6,
                "minimum": 1,
                "name": "n",
                "required": false,
                "type": "integer"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum": [
                  "1:1",
                  "4:3",
                  "3:4",
                  "16:9",
                  "9:16",
                  "auto"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum": [
                  "svg"
                ],
                "enum_known": true,
                "name": "output_format",
                "required": false,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum_known": false,
                "items": {
                  "properties": {
                    "image_url": {
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "type": "object"
                    },
                    "type": {
                      "const": "image_url"
                    }
                  },
                  "required": [
                    "type",
                    "image_url"
                  ],
                  "type": "object"
                },
                "maxItems": 1,
                "minItems": 0,
                "name": "input_references",
                "required": false,
                "type": "array"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum": [
                  "auto",
                  "low",
                  "medium",
                  "high",
                  "xhigh",
                  "max"
                ],
                "enum_known": true,
                "name": "quality",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "4:3",
                    "3:4",
                    "16:9",
                    "9:16",
                    "auto"
                  ],
                  "type": "string"
                },
                "input_references": {
                  "items": {
                    "properties": {
                      "image_url": {
                        "properties": {
                          "url": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 0,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "recraft/recraft-v4.1-pro-vector"
                  ],
                  "type": "string"
                },
                "n": {
                  "maximum": 6,
                  "minimum": 1,
                  "type": "integer"
                },
                "output_format": {
                  "enum": [
                    "svg"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "type": "string"
                },
                "quality": {
                  "enum": [
                    "auto",
                    "low",
                    "medium",
                    "high",
                    "xhigh",
                    "max"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "recraft/recraft-v4.1-pro-vector",
                "prompt": "A portrait of an Asian woman with neon green lights in the background, shallow depth of field."
              },
              "content_type": "application/json",
              "example_is_offline_content": true
            },
            "usage": {
              "meter": "Use the accepted method price and actual recorded usage; the request reserve is an estimate. A billing unit does not add an input capability.",
              "preserve": "Keep all returned usage, accounting and request identifiers with every actual output.",
              "settlement": "Retain the original operation; reconcile its result and accounting once."
            }
          },
          "input": {
            "conditions": [
              "ใช้ตัวเลือกระบุเส้นทางของ Ailoot นี้ตามที่ระบุไว้ทุกตัวอักษร",
              "quality เป็นตัวควบคุมทั่วไปที่ระบุไว้ในเอกสาร ผู้ให้บริการที่ไม่มีการตั้งค่าคุณภาพจะละเลยค่านี้ ไม่มีการรับประกันว่าคุณภาพจะดีขึ้นในแต่ละโมเดล"
            ],
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional": [
              "n",
              "aspect_ratio",
              "output_format",
              "input_references",
              "quality"
            ],
            "required": [
              "model",
              "prompt"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "cancel_endpoint": null,
            "create": {
              "http": "POST",
              "path": "/v1/images/generations"
            },
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "owned_content": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}/content",
              "url_source": "Use the exact returned signed URL; never construct a token."
            },
            "status": [
              {
                "http": "GET",
                "id_source": "task_id ที่ส่งกลับมาจริง หรือรายการในคลังที่เลือก ส่วน operation_id เป็นตัวระบุอีกตัวหนึ่ง",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the original X-Client-Request-ID, response and headers. An unknown or result_pending_check outcome does not authorize a second creation.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/images/generations"
          },
          "method_aliases": [],
          "output": {
            "all_results": "Retain the complete response and headers, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "documented_formats": [
              "svg"
            ],
            "every_actual_output": true,
            "family": "image",
            "fields": [
              {
                "name": "data[].url",
                "type": "string"
              },
              {
                "name": "data[].b64_json",
                "type": "string"
              },
              {
                "name": "usage",
                "type": "object"
              }
            ],
            "format": "The saved exact model metadata lists SVG. Preserve actual MIME and bytes; storage MIME support alone does not prove completion of the full selected generic output path."
          }
        },
        "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": {
              "quoted_unit": "per output image"
            },
            "label": "output image",
            "units": [
              {
                "amount": "0.6",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output",
                "label": "output image",
                "native_amount_usd_per_unit": "0.6",
                "native_quantity": 1,
                "public_unit_label": "per output image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output"
              }
            ]
          },
          {
            "basis": "ค่าประมาณนี้ไม่ใช่ค่าใช้จ่ายเพิ่มเติมหรืออัตราคงที่สำหรับการสร้างผลลัพธ์ที่เสร็จสมบูรณ์แล้ว",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "ต้นทุนการสร้างโดยประมาณ",
            "units": [
              {
                "amount": "0.6",
                "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.6",
                "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}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"recraft/recraft-v4.1-pro-vector\", \"prompt\": \"A portrait of an Asian woman with neon green lights in the background, shallow depth of field.\"}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n# Submit once. Retain the complete result, original identifiers and every response header.\n",
            "label": "curl · create once and retain the complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "images",
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "input_conditions": {
          "image": "Use the exact model reference-input range in the saved model metadata; a reference becomes required only for the models whose listed minimum is positive."
        },
        "label": "Images",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "image"
        ],
        "path": "/v1/images/generations",
        "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": {
              "quoted_unit": "per output image"
            },
            "label": "output image",
            "units": [
              {
                "amount": "0.6",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output",
                "label": "output image",
                "native_amount_usd_per_unit": "0.6",
                "native_quantity": 1,
                "public_unit_label": "per output image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output"
              }
            ]
          },
          {
            "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.6",
                "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.6",
                "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": "recraft/recraft-v4.1-pro-vector",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_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.6",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_output",
            "label": "output image",
            "native_amount_usd_per_unit": "0.6",
            "native_quantity": 1,
            "public_unit_label": "per output image",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "image_output"
          },
          {
            "amount": "0.6",
            "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.6",
            "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": "recraft/recraft-v4.1-pro-vector",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "502019cebefdce879cbb7ab04a10f59d867e02df10b2adbb7c2bfdca8243e378",
    "input_html_sha256": "cbff8050c525c65f026d3519d30a8702df1a1ce28c63e81c86b9aa2b76f9c07c",
    "private_audit_sha256": "1057ab7b4c2f8c02726b39e3d4261150d79b8a2c9c6db9977a910b7caebdbd44",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/th/recraft-recraft-v4-1-pro-vector/",
    "description": "Recraft V4.1 Pro Vector สร้างงาน SVG ที่แก้ไขได้สำหรับโลโก้ ตัวอักษร และภาพประกอบที่มีรายละเอียด เป็นรุ่นเวกเตอร์ Pro ของตระกูล V4.1 ที่รวมพรอมป์ต์ข้อความกับอินพุตภาพและสไตล์ที่เลือกใช้ได้ โดยคงชิ้นงานเป็นเวกเตอร์",
    "locale": "th",
    "md_url": "https://ailoot.ai/models/th/recraft-recraft-v4-1-pro-vector/index.md",
    "title": "Recraft: Recraft V4.1 Pro Vector — Ailoot",
    "url": "https://ailoot.ai/models/th/recraft-recraft-v4-1-pro-vector/"
  },
  "rawModel": {
    "about": "Recraft V4.1 Pro Vector เป็นรุ่น SVG แบบ Pro ในตระกูลสร้างภาพ V4.1 ของ Recraft ออกแบบสำหรับงานที่ผลลัพธ์ควรคงเป็นเวกเตอร์ที่แก้ไขได้ เช่น โลโก้ แนวคิดตัวพิมพ์ ไอคอน หรือภาพประกอบ การนำเสนอ V4.1 ของผู้ผลิตเน้นองค์ประกอบภาพและภาพประกอบที่ออกแบบอย่างตั้งใจ ส่วนเอกสารอ้างอิงโมเดลที่ตรงระบุรุ่นนี้แยกจาก Vector มาตรฐาน แรสเตอร์ Pro และรุ่น Utility ภาพสุดท้ายเป็น SVG แทนการส่งออกแรสเตอร์ความละเอียดสูง\n\nรหัสโมเดลของผู้ผลิตคือ recraftv4_1_pro_vector เอาต์พุตเวกเตอร์ไม่มีขนาดพิกเซลตายตัว เอกสารอ้างอิงขนาดรับอัตราส่วนความกว้างต่อความสูงสิบสี่แบบสำหรับโมเดลเวกเตอร์ และไม่รับขนาดพิกเซลที่แน่นอน ดังนั้นการตั้งค่าแรสเตอร์ 2K ของ Pro จึงไม่กำหนดความละเอียด SVG ของรุ่นนี้ ระบุสัดส่วนที่ต้องการและวิธีใช้ชิ้นงาน สำหรับโลโก้ ชิ้นงานสำคัญคือรูปเงาที่อ่านได้และพื้นที่สีที่แก้ไขปรับในเวิร์กโฟลว์ออกแบบได้\n\nโมเดลรองรับการสร้างภาพจากข้อความและภาพอ้างอิงสไตล์กำหนดเองที่เลือกใช้ได้ ขอบเขตพรอมป์ต์ตามเอกสารคือ 10,000 อักขระ สีที่ต้องการ สีพื้นหลังที่ต้องการ และ seed แบบสุ่มช่วยนำการสร้างได้ และเวิร์กโฟลว์อนุญาตผลลัพธ์หนึ่งถึงหกชิ้น สไตล์ที่บันทึกไว้ซึ่งเข้ากันได้หรือภาพอ้างอิงสามารถกำหนดภาษาภาพ สไตล์ต้องตรงกับโมเดลที่ใช้สร้างสไตล์นั้น สายหลัก V4.1 ไม่จำเป็นต้องมีสไตล์อ้างอิงในทุกคำขอ ต่างจากตระกูล V4 Styles โดยเฉพาะ สำหรับการสร้างโดยอ้างอิงสไตล์ ให้ใช้ภาพ PNG, JPG หรือ WebP หนึ่งถึงสิบภาพ ขนาดรวมไม่เกิน 64 MB และแต่ละภาพต่ำกว่า 20 MB ภาพอ้างอิงแต่ละภาพต้องมีด้านสั้นอย่างน้อย 256 พิกเซล ด้านยาวไม่เกิน 4,096 พิกเซล และความละเอียดไม่เกิน 16 เมกะพิกเซล ใช้ภาพอ้างอิงเหล่านี้หรือสไตล์ที่บันทึกไว้ซึ่งเข้ากันได้อย่างใดอย่างหนึ่ง ไม่ใช้ทั้งสองพร้อมกัน สำหรับการสร้างโดยอ้างอิงสไตล์ การจับคู่ flexible อนุญาตการตีความที่หลวมกว่า ส่วน precise ทำตามการเรนเดอร์ ชุดสี องค์ประกอบภาพ และแสงใกล้ชิดกว่า\n\nบรีฟเวกเตอร์ที่มีประโยชน์กำหนดประเภทกราฟิก หลักการรูปทรง ชุดสี แนวทางเส้น และการจัดวางก่อนเพิ่มรายละเอียดตกแต่ง สำหรับตราร้านสวน ให้ขอรูปเงาต้นอ่อนหนึ่งต้น เรขาคณิตโค้งมน สีแบนสองสี และการจัดองค์ประกอบรวมตรงกลาง สำหรับตัวอักษร ให้ใส่คำตามตัวอักษรจริงและอธิบายลำดับชั้นกับรูปทรง แล้วตรวจ SVG ที่ได้รับด้านช่องว่างภายในตัวอักษร ระยะห่าง และความชัดเจนขนาดเล็ก ตัวอย่างเวกเตอร์ของผู้ผลิตรองรับตัวพิมพ์ที่สื่ออารมณ์และภาพประกอบ แต่ไม่ได้รับประกันว่าตัวอักษรหรือเส้นพาธทุกเส้นที่สร้างเป็นงานสำเร็จแล้ว\n\nRecraft ระบุเวิร์กโฟลว์ image-to-image แยกต่างหากสำหรับโมเดลแรสเตอร์และเวกเตอร์ V4.1 โดยรวมภาพที่มีอยู่กับพรอมป์ต์ และใช้ strength ตั้งแต่ 0 ถึง 1 ควบคุมว่าผลลัพธ์ใหม่เปลี่ยนจากต้นฉบับมากเพียงใด strength ต่ำคงความใกล้เคียง ส่วนค่าสูงอนุญาตการเปลี่ยนแปลงมากขึ้น การดำเนินการนั้นไม่รับตัวควบคุมสไตล์กำหนดเองของ V4/V4.1 จึงควรเตรียมการแปลงภาพต้นทางและการสร้างโดยอ้างอิงสไตล์เป็นเวิร์กโฟลว์แยกกัน อินพุตภาพอาจเป็น PNG, JPG, WebP หรือ SVG ภายในขีดจำกัดภาพตามเอกสาร สำหรับ image-to-image ให้ส่ง PNG, JPG, WebP หรือ SVG ต่ำกว่า 20 MB ไม่เกิน 16 เมกะพิกเซล โดยทั้งสองด้านอยู่ระหว่าง 256 และ 4,096 พิกเซล\n\nV4.1 ไม่รองรับชื่อสไตล์คัดสรรหรือตัวควบคุม negative_prompt, text_layout, artistic_level และ no_text ระบุการจัดวางและตัวอักษรที่ต้องการในบรีฟเชิงบวก แทนการพึ่งกลไกเก่าของ V3 สำหรับชิ้นงานแบรนด์ที่มีรายละเอียด ให้ใช้ SVG เป็นไฟล์ทำงาน ตรวจเรขาคณิต และปรับสีหรือรูปทรงตามจำเป็นก่อนวางในเลย์เอาต์สุดท้าย รุ่น Pro Vector นี้คงตัวตนของตนเอง ไม่สามารถใช้แทนรุ่นแรสเตอร์มาตรฐานหรือ Utility ได้เพียงเพราะใช้ชื่อ V4.1 ร่วมกัน\n\nผ่าน Ailoot ให้เลือก ID โมเดลนี้ให้ตรงใน /v1/images/generations และส่งพรอมป์ต์สร้างสรรค์ เก็บทุกรายการ data ที่ได้รับ ไม่ว่าคำตอบจะมี URL หรือเนื้อหาภาพที่เข้ารหัส และบันทึกไบต์จริงพร้อมชนิดเนื้อหาที่ได้รับ เก็บ usage และ media task_id ที่มีไว้กับชิ้นงาน แล้วตรวจรูปทรง ตัวอักษร และพื้นที่สีในงานออกแบบที่ตั้งใจ",
    "alias_of": null,
    "aliases": [],
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.6",
            "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.6",
            "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": [
      "images"
    ],
    "id": "recraft/recraft-v4.1-pro-vector",
    "input": [
      "text",
      "image"
    ],
    "kind": "image",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "The displayed rates estimate the cost before generation. The final charge is calculated from the cost recorded for the original generation. Measured output duration and forecast quantities are not the final billable quantity.",
          "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, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "authentication": {
              "header": "Authorization",
              "scheme": "Bearer",
              "value": "$AILOOT_API_KEY"
            },
            "control_semantics": {
              "other_documented_controls": "Source generic image parsing preserves request JSON. Additional documented controls stay subject to the exact model; missing DTO fields do not create Source refusals.",
              "quality": "The saved common image schema documents this control and says providers without a quality knob ignore it.",
              "style": "Selected generic Source passes JSON fields through but the saved dedicated image request schema does not declare a style field. Its omission here is not a Source ban or a supported per-model promise."
            },
            "errors": [
              {
                "condition": "ฟิลด์ที่จำเป็น ตัวเลือกโมเดล ชนิดข้อมูล หรือรูปแบบการแทนข้อมูลขาเข้าไม่ถูกต้อง",
                "http_status": 400,
                "recovery": "ตรวจสอบรายละเอียดการตรวจสอบความถูกต้องที่ส่งกลับมาก่อนเตรียมคำขอแยกต่างหาก",
                "type": "invalid_request_error"
              },
              {
                "condition": "ไม่ทราบคำขอหรือผลลัพธ์ต้นฉบับ หรือจำเป็นต้องตรวจสอบ",
                "http_status": null,
                "recovery": "เก็บตัวระบุและส่วนหัวเดิมไว้ อ่านเฉพาะข้อมูลสถานะหรือรายการในคลังที่รองรับ ห้ามส่งคำขอสร้างซ้ำ",
                "type": null
              }
            ],
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "cancel_endpoint": null,
              "create": {
                "http": "POST",
                "path": "/v1/images/generations"
              },
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "owned_content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "Use the exact returned signed URL; never construct a token."
              },
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or selected library record; operation_id is a separate identifier",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "เก็บ X-Client-Request-ID คำตอบ และส่วนหัวต้นฉบับไว้ ผลลัพธ์ที่ไม่ทราบหรือ result_pending_check ไม่ได้อนุญาตให้สร้างครั้งที่สอง",
              "unknown_no_replay": true
            },
            "material_combinations": [
              {
                "materials": [
                  "text",
                  "image"
                ],
                "metadata_authority": "saved_model_discovery_union",
                "mode": "text_to_image",
                "reference_maximum": 1,
                "reference_minimum": 0
              }
            ],
            "model_parameter_metadata": {
              "authority": "saved_model_discovery_union",
              "defaults_not_inferred": {
                "aspect_ratio": null,
                "exact_pixels": null,
                "explanation": "No universal/model default inferred. Omitted output_format uses provider default; dimensions are provider-derived, observed Ming2048 is not a universal default.",
                "n": null,
                "output_format": null,
                "quality": null,
                "resolution": null
              },
              "known_parameter_choices": {
                "aspect_ratio": {
                  "type": "enum",
                  "values": [
                    "1:1",
                    "4:3",
                    "3:4",
                    "16:9",
                    "9:16",
                    "auto"
                  ]
                },
                "input_references": {
                  "max": 1,
                  "min": 0,
                  "type": "range"
                },
                "n": {
                  "max": 6,
                  "min": 1,
                  "type": "range"
                },
                "output_format": {
                  "type": "enum",
                  "values": [
                    "svg"
                  ]
                }
              },
              "pointer": "/profiles/36",
              "scope": "Exact saved model metadata. Discovery unions are identified explicitly and are not represented as definitive selected-provider bounds."
            },
            "outputs": {
              "all_results": "เก็บการตอบกลับและส่วนหัวทั้งหมด ตัวระบุเดิม ผลลัพธ์จริงทุกรายการ และฟิลด์การใช้งาน/การคิดบัญชีทั้งหมด บันทึกแอสเซ็ตที่เป็นของคุณแต่ละชิ้นโดยไม่ซ้ำ และเก็บทุกบทบาทที่ชี้ไปยังแอสเซ็ตนั้น",
              "documented_formats": [
                "svg"
              ],
              "every_actual_output": true,
              "family": "image",
              "fields": [
                {
                  "name": "data[].url",
                  "type": "string"
                },
                {
                  "name": "data[].b64_json",
                  "type": "string"
                },
                {
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "The exact saved model metadata lists SVG. Preserve the actual returned MIME and unchanged vector bytes; keep every actual output and owned signed image link."
            },
            "parameters": [
              {
                "conditions": "ใช้ตัวเลือกระบุเส้นทางของ Ailoot นี้ตามที่ระบุไว้ทุกตัวอักษร",
                "default_known": false,
                "enum": [
                  "recraft/recraft-v4.1-pro-vector"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum_known": false,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum_known": false,
                "maximum": 6,
                "minimum": 1,
                "name": "n",
                "required": false,
                "type": "integer"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum": [
                  "1:1",
                  "4:3",
                  "3:4",
                  "16:9",
                  "9:16",
                  "auto"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum": [
                  "svg"
                ],
                "enum_known": true,
                "name": "output_format",
                "required": false,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum_known": false,
                "items": {
                  "properties": {
                    "image_url": {
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "type": "object"
                    },
                    "type": {
                      "const": "image_url"
                    }
                  },
                  "required": [
                    "type",
                    "image_url"
                  ],
                  "type": "object"
                },
                "maxItems": 1,
                "minItems": 0,
                "name": "input_references",
                "required": false,
                "type": "array"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum": [
                  "auto",
                  "low",
                  "medium",
                  "high",
                  "xhigh",
                  "max"
                ],
                "enum_known": true,
                "name": "quality",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "4:3",
                    "3:4",
                    "16:9",
                    "9:16",
                    "auto"
                  ],
                  "type": "string"
                },
                "input_references": {
                  "items": {
                    "properties": {
                      "image_url": {
                        "properties": {
                          "url": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 0,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "recraft/recraft-v4.1-pro-vector"
                  ],
                  "type": "string"
                },
                "n": {
                  "maximum": 6,
                  "minimum": 1,
                  "type": "integer"
                },
                "output_format": {
                  "enum": [
                    "svg"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "type": "string"
                },
                "quality": {
                  "enum": [
                    "auto",
                    "low",
                    "medium",
                    "high",
                    "xhigh",
                    "max"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "recraft/recraft-v4.1-pro-vector",
                "prompt": "A portrait of an Asian woman with neon green lights in the background, shallow depth of field."
              },
              "content_type": "application/json",
              "example_is_offline_content": true
            },
            "usage": {
              "meter": "Use the accepted method price and actual recorded usage; the request reserve is an estimate. A billing unit does not add an input capability.",
              "preserve": "Keep all returned usage, accounting and request identifiers with every actual output.",
              "settlement": "Retain the original operation; reconcile its result and accounting once."
            }
          },
          "input": {
            "conditions": [
              "ใช้ตัวเลือกระบุเส้นทางของ Ailoot นี้ตามที่ระบุไว้ทุกตัวอักษร",
              "quality เป็นตัวควบคุมทั่วไปที่ระบุไว้ในเอกสาร ผู้ให้บริการที่ไม่มีการตั้งค่าคุณภาพจะละเลยค่านี้ ไม่มีการรับประกันว่าคุณภาพจะดีขึ้นในแต่ละโมเดล"
            ],
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional": [
              "n",
              "aspect_ratio",
              "output_format",
              "input_references",
              "quality"
            ],
            "required": [
              "model",
              "prompt"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "cancel_endpoint": null,
            "create": {
              "http": "POST",
              "path": "/v1/images/generations"
            },
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "owned_content": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}/content",
              "url_source": "Use the exact returned signed URL; never construct a token."
            },
            "status": [
              {
                "http": "GET",
                "id_source": "task_id ที่ส่งกลับมาจริง หรือรายการในคลังที่เลือก ส่วน operation_id เป็นตัวระบุอีกตัวหนึ่ง",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the original X-Client-Request-ID, response and headers. An unknown or result_pending_check outcome does not authorize a second creation.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/images/generations"
          },
          "method_aliases": [],
          "output": {
            "all_results": "Retain the complete response and headers, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "documented_formats": [
              "svg"
            ],
            "every_actual_output": true,
            "family": "image",
            "fields": [
              {
                "name": "data[].url",
                "type": "string"
              },
              {
                "name": "data[].b64_json",
                "type": "string"
              },
              {
                "name": "usage",
                "type": "object"
              }
            ],
            "format": "The saved exact model metadata lists SVG. Preserve actual MIME and bytes; storage MIME support alone does not prove completion of the full selected generic output path."
          }
        },
        "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": {
              "quoted_unit": "per output image"
            },
            "label": "output image",
            "units": [
              {
                "amount": "0.6",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output",
                "label": "output image",
                "native_amount_usd_per_unit": "0.6",
                "native_quantity": 1,
                "public_unit_label": "per output image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output"
              }
            ]
          },
          {
            "basis": "ค่าประมาณนี้ไม่ใช่ค่าใช้จ่ายเพิ่มเติมหรืออัตราคงที่สำหรับการสร้างผลลัพธ์ที่เสร็จสมบูรณ์แล้ว",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "ต้นทุนการสร้างโดยประมาณ",
            "units": [
              {
                "amount": "0.6",
                "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.6",
                "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}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"recraft/recraft-v4.1-pro-vector\", \"prompt\": \"A portrait of an Asian woman with neon green lights in the background, shallow depth of field.\"}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n# Submit once. Retain the complete result, original identifiers and every response header.\n",
            "label": "curl · create once and retain the complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "images",
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "input_conditions": {
          "image": "Use the exact model reference-input range in the saved model metadata; a reference becomes required only for the models whose listed minimum is positive."
        },
        "label": "Images",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "image"
        ],
        "path": "/v1/images/generations",
        "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": {
              "quoted_unit": "per output image"
            },
            "label": "output image",
            "units": [
              {
                "amount": "0.6",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output",
                "label": "output image",
                "native_amount_usd_per_unit": "0.6",
                "native_quantity": 1,
                "public_unit_label": "per output image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output"
              }
            ]
          },
          {
            "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.6",
                "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.6",
                "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": "recraft/recraft-v4.1-pro-vector",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_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.6",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_output",
            "label": "output image",
            "native_amount_usd_per_unit": "0.6",
            "native_quantity": 1,
            "public_unit_label": "per output image",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "image_output"
          },
          {
            "amount": "0.6",
            "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.6",
            "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": "recraft/recraft-v4.1-pro-vector",
        "request_model_id": "recraft/recraft-v4.1-pro-vector",
        "route_label": "Ultra"
      }
    ],
    "name": "Recraft: Recraft V4.1 Pro Vector",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.6,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.6,
      "varies": false
    },
    "short": "Recraft V4.1 Pro Vector สร้างงาน SVG ที่แก้ไขได้สำหรับโลโก้ ตัวอักษร และภาพประกอบที่มีรายละเอียด เป็นรุ่นเวกเตอร์ Pro ของตระกูล V4.1 ที่รวมพรอมป์ต์ข้อความกับอินพุตภาพและสไตล์ที่เลือกใช้ได้ โดยคงชิ้นงานเป็นเวกเตอร์",
    "title": "Recraft: Recraft V4.1 Pro Vector"
  },
  "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": "Recraft V4.1 Pro Vector สร้างงาน SVG ที่แก้ไขได้สำหรับโลโก้ ตัวอักษร และภาพประกอบที่มีรายละเอียด เป็นรุ่นเวกเตอร์ Pro ของตระกูล V4.1 ที่รวมพรอมป์ต์ข้อความกับอินพุตภาพและสไตล์ที่เลือกใช้ได้ โดยคงชิ้นงานเป็นเวกเตอร์",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "9fc0971ce779f0206399993dd0c4b8bc13d2083d1ddcca2981e5e5ea1071c172",
    "renderer_sha256": "890edb706fafafdd4f598bb324acf65fada58918b0911b97eb80e68be2ef65d9"
  },
  "sourceRevision": "5ab11fd293167f9d1cf43d3d7e4a47b522f942a5c67ea51ca0ab9af7ff1f7e24"
}
