{
  "aboutHtml": "<p>PixVerse v3.5 是用於文字轉影片與圖片轉影片創作的影片模型。文字提示詞可建立新場景，提供的圖片則可作為視覺起點。可用此模型發展簡短事件，讓主體、動態與最終構圖都清楚可辨。</p><p>撰寫文字創作說明時，從觀眾應追隨的動作開始。玩具車從一疊書旁駛過、人物從書桌前抬頭，或光線在房間裡移動，都能為鏡頭設定具體用途。加入在整段影片中辨識主體所需的場景與視覺細節。</p><p>以圖片為起點撰寫創作說明時，準備參考圖應以主體的重要特徵為重點。讓輪廓、姿勢與材質細節保持可見，並為指定動作保留空間。描述場景如何從該影格發展。保留原始圖片，讓完成的動態能與實際起點核對。</p><p>文件中的目錄包含橫式、直式與方形畫面、多種解析度選項，以及 normal（一般）或 fast（快速）動態模式。選擇所用工作流程提供的控制項，並將實際設定值與結果一起保存。以片段實際使用的尺寸與形狀，評估指定動作。</p><p>規劃清楚可辨的結尾。移動的主體應停在實用的位置；揭示畫面的鏡頭應以重要細節可見作結。將這個最終狀態寫入創作說明，再檢查生成片段是否達成。結尾會決定鏡頭與另一段影片或圖像銜接的難易程度。</p><p>製作風格化場景時，透過色彩、光線與材質描述可見的視覺處理。提示詞與參考圖應保留相同的主體細節。檢查主體穿越畫面，或轉向另一個視角時，這些細節如何變化。判斷視覺連貫性時，應依據完整片段。</p><p>檢視完成片段的動態、物件互動與時序。注意會影響場景意義的形狀、外觀或空間關係變化。將開場、結尾與主要動作一起檢查。以相同的播放尺寸比較候選版本，讓選擇反映最終使用格式。</p><p>將完成的影片、提示詞、參考圖與設定一起保存。需要修改時，寫下觀察到的不符之處，再調整相關指示。保留場景中已成功的部分，讓下一個候選版本提供聚焦明確的比較。</p>",
  "aboutText": "PixVerse v3.5 是用於文字轉影片與圖片轉影片創作的影片模型。文字提示詞可建立新場景，提供的圖片則可作為視覺起點。可用此模型發展簡短事件，讓主體、動態與最終構圖都清楚可辨。\n\n撰寫文字創作說明時，從觀眾應追隨的動作開始。玩具車從一疊書旁駛過、人物從書桌前抬頭，或光線在房間裡移動，都能為鏡頭設定具體用途。加入在整段影片中辨識主體所需的場景與視覺細節。\n\n以圖片為起點撰寫創作說明時，準備參考圖應以主體的重要特徵為重點。讓輪廓、姿勢與材質細節保持可見，並為指定動作保留空間。描述場景如何從該影格發展。保留原始圖片，讓完成的動態能與實際起點核對。\n\n文件中的目錄包含橫式、直式與方形畫面、多種解析度選項，以及 normal（一般）或 fast（快速）動態模式。選擇所用工作流程提供的控制項，並將實際設定值與結果一起保存。以片段實際使用的尺寸與形狀，評估指定動作。\n\n規劃清楚可辨的結尾。移動的主體應停在實用的位置；揭示畫面的鏡頭應以重要細節可見作結。將這個最終狀態寫入創作說明，再檢查生成片段是否達成。結尾會決定鏡頭與另一段影片或圖像銜接的難易程度。\n\n製作風格化場景時，透過色彩、光線與材質描述可見的視覺處理。提示詞與參考圖應保留相同的主體細節。檢查主體穿越畫面，或轉向另一個視角時，這些細節如何變化。判斷視覺連貫性時，應依據完整片段。\n\n檢視完成片段的動態、物件互動與時序。注意會影響場景意義的形狀、外觀或空間關係變化。將開場、結尾與主要動作一起檢查。以相同的播放尺寸比較候選版本，讓選擇反映最終使用格式。\n\n將完成的影片、提示詞、參考圖與設定一起保存。需要修改時，寫下觀察到的不符之處，再調整相關指示。保留場景中已成功的部分，讓下一個候選版本提供聚焦明確的比較。",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "5000b2bb57c73438ff8764aaca3e880de8f55d308eb81d6b34575aa488907602",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "zh-hant-tw",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">PixVerse v3.5</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"關閉\">×</button></div><div class=\"idline\"><span>PixVerse /</span><code>pixverse-v3.5</code><button type=\"button\" id=\"copy-id\">複製 ID</button></div><nav class=\"card-jump-nav\" aria-label=\"模型卡片區段\"><button type=\"button\" data-card-jump=\"overview\">入門</button><button type=\"button\" data-card-jump=\"methods\">輸入與方法</button><button type=\"button\" data-card-jump=\"pricing\">方案</button><button type=\"button\" data-card-jump=\"examples\">範例</button><button type=\"button\" data-card-jump=\"results\">結果</button><button type=\"button\" data-card-jump=\"aliases\">別名</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API 方法\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|videos|/v1/videos|pixverse-v3.5\">影片</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\">PixVerse v3.5 可根據文字或圖片生成影片。文件中的控制項包含多種畫面形狀、解析度選項與動態模式，可發展具有明確動作與剪接點的簡短視覺場景。</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>PixVerse v3.5 是用於文字轉影片與圖片轉影片創作的影片模型。文字提示詞可建立新場景，提供的圖片則可作為視覺起點。可用此模型發展簡短事件，讓主體、動態與最終構圖都清楚可辨。</p><p>撰寫文字創作說明時，從觀眾應追隨的動作開始。玩具車從一疊書旁駛過、人物從書桌前抬頭，或光線在房間裡移動，都能為鏡頭設定具體用途。加入在整段影片中辨識主體所需的場景與視覺細節。</p><p>以圖片為起點撰寫創作說明時，準備參考圖應以主體的重要特徵為重點。讓輪廓、姿勢與材質細節保持可見，並為指定動作保留空間。描述場景如何從該影格發展。保留原始圖片，讓完成的動態能與實際起點核對。</p><p>文件中的目錄包含橫式、直式與方形畫面、多種解析度選項，以及 normal（一般）或 fast（快速）動態模式。選擇所用工作流程提供的控制項，並將實際設定值與結果一起保存。以片段實際使用的尺寸與形狀，評估指定動作。</p><p>規劃清楚可辨的結尾。移動的主體應停在實用的位置；揭示畫面的鏡頭應以重要細節可見作結。將這個最終狀態寫入創作說明，再檢查生成片段是否達成。結尾會決定鏡頭與另一段影片或圖像銜接的難易程度。</p><p>製作風格化場景時，透過色彩、光線與材質描述可見的視覺處理。提示詞與參考圖應保留相同的主體細節。檢查主體穿越畫面，或轉向另一個視角時，這些細節如何變化。判斷視覺連貫性時，應依據完整片段。</p><p>檢視完成片段的動態、物件互動與時序。注意會影響場景意義的形狀、外觀或空間關係變化。將開場、結尾與主要動作一起檢查。以相同的播放尺寸比較候選版本，讓選擇反映最終使用格式。</p><p>將完成的影片、提示詞、參考圖與設定一起保存。需要修改時，寫下觀察到的不符之處，再調整相關指示。保留場景中已成功的部分，讓下一個候選版本提供聚焦明確的比較。</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 · Video</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>輸入</dt><dd><code>text</code>, <code>image</code></dd></div><div><dt>輸出</dt><dd><code>video</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>欄位</th><th>類型</th><th>要求</th><th>值與限制</th><th>預設值</th></tr></thead><tbody><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>必填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div>pixverse-v3.5</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\">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>16:9, 4:3, 1:1, 3:4, 9:16</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\">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>360p, 540p, 720p, 1080p</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\">motion_mode</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>normal, fast</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\">duration</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>5, 8</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\">end_image</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\">lip_sync_tts_content</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\">lip_sync_tts_speaker_id</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>條件: 請使用供應商支援且實際存在的聲音 ID；不得自行編造聲音 ID。</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\">image</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string or array&lt;string&gt;</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div>條件: 請使用您實際可公開存取的圖片 URL 或 base64 圖片；所選模型支援圖片輸入。</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\">negative_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></tbody></table></div><details class=\"note-s\" data-method-contract><summary>方法參數與生命週期</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>參數</th><th>規格</th></tr></thead><tbody><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>content_type</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>application/json</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>required</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>model, 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>aspect_ratio, quality, motion_mode, duration, end_image, lip_sync_tts_content, lip_sync_tts_speaker_id, image, negative_prompt</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 路由選擇值。, 請描述場景及其中的動態。, 請使用清單中列出的所選模型長寬比。, 請使用清單中列出的所選模型品質值。, 請使用清單中列出的所選模型動態模式。, 請使用清單中列出的長度；沒有未明示的預設值。, 可選填結束影格，以選取支援的圖片模式。, 所選模型的語音內容，可不填。, 請使用供應商支援且實際存在的聲音 ID；不得自行編造聲音 ID。, 請使用您實際可公開存取的圖片 URL 或 base64 圖片；所選模型支援圖片輸入。, 請描述要避免的內容。</td></tr></tbody></table></div><p>方法別名： <code>/v1/videos/generations</code></p><p>生命週期： <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/generations/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}/content</code></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>flex 模式</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></tr></thead><tbody><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>基礎 token 費率</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><div><span>輸入 · 輸入 Token · 僅供比較的估算</span> <b>—</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸出 · 輸出 Token · 僅供比較的估算</span> <b>—</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 讀取快取 · 僅供比較的估算</span> <b>—</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 寫入快取 · 僅供比較的估算</span> <b>—</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 寫入快取，1 小時 · 僅供比較的估算</span> <b>—</b> <span class=\"price-unit\">/ 1K Token</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><div><span>輸出 · 預估生成費用 · 僅供比較的估算</span> <b>$0.2</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/zh-hant-tw/billing/reserve/\">預留金額與結算的運作方式 →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">請求範例</h3><h4>Ailoot Ultra · Video</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"程式碼版本\"><button class=\"cg-tab\" id=\"model-code-2813-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2813-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · 僅建立一次並保留回執</button><button class=\"cg-tab\" id=\"model-code-2813-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2813-panel-1\" aria-selected=\"false\" tabindex=\"-1\">讀取原始任務</button><button class=\"cg-tab\" id=\"model-code-2813-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2813-panel-2\" aria-selected=\"false\" tabindex=\"-1\">儲存您擁有的每個已完成素材</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-2813-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2813-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncat &gt; request.json &lt;&lt;&#39;JSON&#39;\n{\n  &quot;model&quot;: &quot;pixverse-v3.5&quot;,\n  &quot;prompt&quot;: &quot;A cat is walking on grass.&quot;\n}\nJSON\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n# Create once; retain id, polling_url, original task identifiers and every header.\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2813-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2813-tab-1\" hidden><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_STATUS&#39;\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(&quot;result.json&quot;).read_text())\nu=urljoin(&quot;https://api.ailoot.ai&quot;,r[&quot;polling_url&quot;])\np=urlsplit(u)\nif p.scheme!=&quot;https&quot; or p.netloc!=&quot;api.ailoot.ai&quot; or p.username or p.password:\n    raise SystemExit(&quot;Unexpected returned polling URL; preserve the response&quot;)\nsubprocess.run([&quot;curl&quot;,&quot;--fail-with-body&quot;,&quot;--silent&quot;,&quot;--show-error&quot;,u,&quot;-H&quot;,&quot;Authorization: Bearer &quot;+os.environ[&quot;AILOOT_API_KEY&quot;],&quot;-D&quot;,&quot;status-headers.txt&quot;,&quot;-o&quot;,&quot;status.json&quot;],check=True)\n# Read this same original polling_url again while pending.\n# Preserve unknown/result_pending_check; do not repeat creation.\nPY_STATUS\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2813-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-2813-tab-2\" hidden><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_ASSETS&#39;\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(&quot;status.json&quot;).read_text())\nroles={}\ndef visit(v,path=&quot;&quot;):\n    if isinstance(v,dict):\n        for k,x in v.items(): visit(x,path+&quot;/&quot;+k)\n    elif isinstance(v,list):\n        for i,x in enumerate(v): visit(x,path+&quot;/&quot;+str(i))\n    elif isinstance(v,str):\n        u=urljoin(&quot;https://api.ailoot.ai&quot;,v); p=urlsplit(u)\n        if p.scheme==&quot;https&quot; and p.netloc==&quot;api.ailoot.ai&quot; and not p.username and not p.password and p.path.startswith(&quot;/v1/media/assets/&quot;) and p.path.endswith(&quot;/content&quot;):\n            roles.setdefault(u,[]).append(path)\nvisit(r)\nif not roles: raise SystemExit(&quot;No completed owned assets; retain the original status&quot;)\nmanifest=[]\nfor i,(u,paths) in enumerate(roles.items()):\n    target=Path(f&quot;asset-{i}.bin&quot;)\n    subprocess.run([&quot;curl&quot;,&quot;--fail-with-body&quot;,&quot;--silent&quot;,&quot;--show-error&quot;,u,&quot;-H&quot;,&quot;Authorization: Bearer &quot;+os.environ[&quot;AILOOT_API_KEY&quot;],&quot;-o&quot;,str(target)],check=True)\n    raw=target.read_bytes()\n    if not raw: raise SystemExit(&quot;Empty asset; retain original status and metadata&quot;)\n    ext=&quot;glb&quot; if raw[:4]==b&quot;glTF&quot; else &quot;png&quot; if raw[:8]==b&quot;\\x89PNG\\r\\n\\x1a\\n&quot; else &quot;jpg&quot; if raw[:3]==b&quot;\\xff\\xd8\\xff&quot; else &quot;webp&quot; if raw[:4]==b&quot;RIFF&quot; and raw[8:12]==b&quot;WEBP&quot; else &quot;mp4&quot; if raw[4:8]==b&quot;ftyp&quot; else &quot;bin&quot;\n    name=f&quot;asset-{i}.{ext}&quot;\n    if target.name!=name: target.rename(name)\n    manifest.append({&quot;file&quot;:name,&quot;response_paths&quot;:paths,&quot;bytes&quot;:len(raw)})\nPath(&quot;asset-manifest.json&quot;).write_text(json.dumps(manifest,indent=2))\nprint(&quot;Saved&quot;,len(manifest),&quot;unique owned assets; every response role retained&quot;)\nPY_ASSETS\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">接收並儲存結果</h3><h4>Ailoot Ultra · Video</h4><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{request_id}</code></li><li><code>GET /v1/videos/generations/{request_id}</code></li><li><code>GET /v1/videos/{request_id}/content</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 取得素材。</p><p class=\"note-s\">請保留完整回應與標頭、原始識別碼、每個實際輸出，以及所有用量／帳務欄位。請儲存每個不重複的自有資產，並保留指向該資產的每個角色。</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>需要檢查原始回應時</h5><p class=\"note-s\">請保留回傳的公開工作或操作 id，以及所有標頭。僅讀取原始工作；unknown 或 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\">id</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\">polling_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\">provider_task_id</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\">task_id</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\">status</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\">video_url</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>string</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=pixverse-v3.5&amp;route=Ultra&amp;caller=pixverse-v3.5&amp;fmt=videos\"><code>pixverse-v3.5</code></a></span></p><h4>方法路徑別名</h4><p class=\"note-s\"><code>/v1/videos/generations</code></p><h4>相關呼叫用 ID</h4><p class=\"note-s\"><a href=\"#m=pixverse-v3.5&amp;route=Ultra&amp;caller=pixverse-v3.5&amp;fmt=videos\"><code>pixverse-v3.5</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "pixverse-v3.5",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "pixverse-v3.5",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|pixverse-v3.5",
      "ordinal": 0,
      "rawMethod": {
        "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.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "cancel_endpoint": null,
              "completed_states": [
                "completed"
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "failed_states": [
                "failed"
              ],
              "id_source": "Use returned polling_url and id. Keep provider_task_id and X-Ailoot-Task-Id as separate original identifiers.",
              "mode": "submit_once_poll_original",
              "owned_content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "Use the exact returned signed URL; never construct a token."
              },
              "pending_states": [
                "pending",
                "processing"
              ],
              "state_field": "status",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "unknown": "請保留回傳的公開工作或操作 id，以及所有標頭。僅讀取原始工作；unknown 或 result_pending_check 均不代表可以再次建立。",
              "unknown_no_replay": true
            },
            "outputs": {
              "all_results": "請保留完整回應與標頭、原始識別碼、每個實際輸出，以及所有用量／帳務欄位。請儲存每個不重複的自有資產，並保留指向該資產的每個角色。",
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "name": "id",
                  "type": "string"
                },
                {
                  "name": "polling_url",
                  "type": "string"
                },
                {
                  "name": "provider_task_id",
                  "type": "string"
                },
                {
                  "name": "task_id",
                  "type": "string"
                },
                {
                  "name": "status",
                  "type": "string"
                },
                {
                  "name": "video_url",
                  "type": "string"
                }
              ],
              "maximum_outputs": null
            },
            "parameters": [
              {
                "conditions": "請原樣使用這個 Ailoot 路由選擇值。",
                "default_known": false,
                "enum": [
                  "pixverse-v3.5"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "請描述場景及其中的動態。",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "請使用清單中列出的所選模型長寬比。",
                "default_known": false,
                "enum": [
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "conditions": "請使用清單中列出的所選模型品質值。",
                "default_known": false,
                "enum": [
                  "360p",
                  "540p",
                  "720p",
                  "1080p"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "quality",
                "required": false,
                "type": "string"
              },
              {
                "conditions": "請使用清單中列出的所選模型動態模式。",
                "default_known": false,
                "enum": [
                  "normal",
                  "fast"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "motion_mode",
                "required": false,
                "type": "string"
              },
              {
                "conditions": "請使用清單中列出的長度；沒有未明示的預設值。",
                "default_known": false,
                "enum": [
                  5,
                  8
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "duration",
                "required": false,
                "type": "integer"
              },
              {
                "conditions": "可選填結束影格，以選取支援的圖片模式。",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "end_image",
                "required": false,
                "type": "string"
              },
              {
                "conditions": "所選模型的語音內容，可不填。",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "lip_sync_tts_content",
                "required": false,
                "type": "string"
              },
              {
                "conditions": "請使用供應商支援且實際存在的聲音 ID；不得自行編造聲音 ID。",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "lip_sync_tts_speaker_id",
                "required": false,
                "type": "string"
              },
              {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                ],
                "conditions": "請使用您實際可公開存取的圖片 URL 或 base64 圖片；所選模型支援圖片輸入。",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "image",
                "required": false,
                "type": "string or array<string>"
              },
              {
                "conditions": "請描述要避免的內容。",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "negative_prompt",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "16:9",
                    "4:3",
                    "1:1",
                    "3:4",
                    "9:16"
                  ],
                  "type": "string"
                },
                "duration": {
                  "enum": [
                    5,
                    8
                  ],
                  "type": "integer"
                },
                "end_image": {
                  "type": "string"
                },
                "image": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  ]
                },
                "lip_sync_tts_content": {
                  "type": "string"
                },
                "lip_sync_tts_speaker_id": {
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "pixverse-v3.5"
                  ],
                  "type": "string"
                },
                "motion_mode": {
                  "enum": [
                    "normal",
                    "fast"
                  ],
                  "type": "string"
                },
                "negative_prompt": {
                  "type": "string"
                },
                "prompt": {
                  "type": "string"
                },
                "quality": {
                  "enum": [
                    "360p",
                    "540p",
                    "720p",
                    "1080p"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "pixverse-v3.5",
                "prompt": "A cat is walking on grass."
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "conditions": [
              "請原樣使用這個 Ailoot 路由選擇值。",
              "請描述場景及其中的動態。",
              "請使用清單中列出的所選模型長寬比。",
              "請使用清單中列出的所選模型品質值。",
              "請使用清單中列出的所選模型動態模式。",
              "請使用清單中列出的長度；沒有未明示的預設值。",
              "可選填結束影格，以選取支援的圖片模式。",
              "所選模型的語音內容，可不填。",
              "請使用供應商支援且實際存在的聲音 ID；不得自行編造聲音 ID。",
              "請使用您實際可公開存取的圖片 URL 或 base64 圖片；所選模型支援圖片輸入。",
              "請描述要避免的內容。"
            ],
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional": [
              "aspect_ratio",
              "quality",
              "motion_mode",
              "duration",
              "end_image",
              "lip_sync_tts_content",
              "lip_sync_tts_speaker_id",
              "image",
              "negative_prompt"
            ],
            "required": [
              "model",
              "prompt"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "cancel_endpoint": null,
            "completed_states": [
              "completed"
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "failed_states": [
              "failed"
            ],
            "id_source": "Use returned polling_url and id. Keep provider_task_id and X-Ailoot-Task-Id as separate original identifiers.",
            "mode": "submit_once_poll_original",
            "owned_content": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}/content",
              "url_source": "Use the exact returned signed URL; never construct a token."
            },
            "pending_states": [
              "pending",
              "processing"
            ],
            "state_field": "status",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "unknown": "Keep the returned public task or operation id and all headers. Read only the original task; unknown or result_pending_check does not authorize another creation.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations"
          ],
          "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.",
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "name": "id",
                "type": "string"
              },
              {
                "name": "polling_url",
                "type": "string"
              },
              {
                "name": "provider_task_id",
                "type": "string"
              },
              {
                "name": "task_id",
                "type": "string"
              },
              {
                "name": "status",
                "type": "string"
              },
              {
                "name": "video_url",
                "type": "string"
              }
            ],
            "maximum_outputs": null
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "此估算並非額外費用，也不是本次生成完成後的固定費率。",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "預估生成費用",
            "units": [
              {
                "amount": "0.2",
                "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.2",
                "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}\"\ncat > request.json <<'JSON'\n{\n  \"model\": \"pixverse-v3.5\",\n  \"prompt\": \"A cat is walking on grass.\"\n}\nJSON\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n# Create once; retain id, polling_url, original task identifiers and every header.\n",
            "label": "curl · create once and retain receipt",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_STATUS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(\"result.json\").read_text())\nu=urljoin(\"https://api.ailoot.ai\",r[\"polling_url\"])\np=urlsplit(u)\nif p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or p.username or p.password:\n    raise SystemExit(\"Unexpected returned polling URL; preserve the response\")\nsubprocess.run([\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",u,\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"],\"-D\",\"status-headers.txt\",\"-o\",\"status.json\"],check=True)\n# Read this same original polling_url again while pending.\n# Preserve unknown/result_pending_check; do not repeat creation.\nPY_STATUS\n",
            "label": "Read the original task",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(\"status.json\").read_text())\nroles={}\ndef visit(v,path=\"\"):\n    if isinstance(v,dict):\n        for k,x in v.items(): visit(x,path+\"/\"+k)\n    elif isinstance(v,list):\n        for i,x in enumerate(v): visit(x,path+\"/\"+str(i))\n    elif isinstance(v,str):\n        u=urljoin(\"https://api.ailoot.ai\",v); p=urlsplit(u)\n        if p.scheme==\"https\" and p.netloc==\"api.ailoot.ai\" and not p.username and not p.password and p.path.startswith(\"/v1/media/assets/\") and p.path.endswith(\"/content\"):\n            roles.setdefault(u,[]).append(path)\nvisit(r)\nif not roles: raise SystemExit(\"No completed owned assets; retain the original status\")\nmanifest=[]\nfor i,(u,paths) in enumerate(roles.items()):\n    target=Path(f\"asset-{i}.bin\")\n    subprocess.run([\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",u,\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"],\"-o\",str(target)],check=True)\n    raw=target.read_bytes()\n    if not raw: raise SystemExit(\"Empty asset; retain original status and metadata\")\n    ext=\"glb\" if raw[:4]==b\"glTF\" else \"png\" if raw[:8]==b\"\\x89PNG\\r\\n\\x1a\\n\" else \"jpg\" if raw[:3]==b\"\\xff\\xd8\\xff\" else \"webp\" if raw[:4]==b\"RIFF\" and raw[8:12]==b\"WEBP\" else \"mp4\" if raw[4:8]==b\"ftyp\" else \"bin\"\n    name=f\"asset-{i}.{ext}\"\n    if target.name!=name: target.rename(name)\n    manifest.append({\"file\":name,\"response_paths\":paths,\"bytes\":len(raw)})\nPath(\"asset-manifest.json\").write_text(json.dumps(manifest,indent=2))\nprint(\"Saved\",len(manifest),\"unique owned assets; every response role retained\")\nPY_ASSETS\n",
            "label": "Save every completed owned asset",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Video",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "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.2",
                "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.2",
                "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": "pixverse-v3.5",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.2",
            "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.2",
            "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": "pixverse-v3.5",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "e8782964297a083cd40e6d14b944e1e03b0860ffd8e7d3cfb049d8c39cdcb482",
    "input_html_sha256": "37d7b27db10d07e375895d759b6931ddaa7c6441b20cf5bbbeed1f7d6da4856b",
    "private_audit_sha256": "bb5b75cbcfb1e3375386812d8957542a628b229b223d9ab7a30fe0995f4959e3",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/zh-hant-tw/pixverse-v3-5/",
    "description": "PixVerse v3.5 可根據文字或圖片生成影片。文件中的控制項包含多種畫面形狀、解析度選項與動態模式，可發展具有明確動作與剪接點的簡短視覺場景。",
    "locale": "zh-hant-tw",
    "md_url": "https://ailoot.ai/models/zh-hant-tw/pixverse-v3-5/index.md",
    "title": "PixVerse v3.5 — Ailoot",
    "url": "https://ailoot.ai/models/zh-hant-tw/pixverse-v3-5/"
  },
  "rawModel": {
    "about": "PixVerse v3.5 是用於文字轉影片與圖片轉影片創作的影片模型。文字提示詞可建立新場景，提供的圖片則可作為視覺起點。可用此模型發展簡短事件，讓主體、動態與最終構圖都清楚可辨。\n\n撰寫文字創作說明時，從觀眾應追隨的動作開始。玩具車從一疊書旁駛過、人物從書桌前抬頭，或光線在房間裡移動，都能為鏡頭設定具體用途。加入在整段影片中辨識主體所需的場景與視覺細節。\n\n以圖片為起點撰寫創作說明時，準備參考圖應以主體的重要特徵為重點。讓輪廓、姿勢與材質細節保持可見，並為指定動作保留空間。描述場景如何從該影格發展。保留原始圖片，讓完成的動態能與實際起點核對。\n\n文件中的目錄包含橫式、直式與方形畫面、多種解析度選項，以及 normal（一般）或 fast（快速）動態模式。選擇所用工作流程提供的控制項，並將實際設定值與結果一起保存。以片段實際使用的尺寸與形狀，評估指定動作。\n\n規劃清楚可辨的結尾。移動的主體應停在實用的位置；揭示畫面的鏡頭應以重要細節可見作結。將這個最終狀態寫入創作說明，再檢查生成片段是否達成。結尾會決定鏡頭與另一段影片或圖像銜接的難易程度。\n\n製作風格化場景時，透過色彩、光線與材質描述可見的視覺處理。提示詞與參考圖應保留相同的主體細節。檢查主體穿越畫面，或轉向另一個視角時，這些細節如何變化。判斷視覺連貫性時，應依據完整片段。\n\n檢視完成片段的動態、物件互動與時序。注意會影響場景意義的形狀、外觀或空間關係變化。將開場、結尾與主要動作一起檢查。以相同的播放尺寸比較候選版本，讓選擇反映最終使用格式。\n\n將完成的影片、提示詞、參考圖與設定一起保存。需要修改時，寫下觀察到的不符之處，再調整相關指示。保留場景中已成功的部分，讓下一個候選版本提供聚焦明確的比較。",
    "about_sha256": "bee0d5d3934d0f374c69b6d3230135ad2ba8f481b24837f6b9804b39c56e36c6",
    "alias_of": null,
    "aliases": [],
    "author": "PixVerse",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.2",
            "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.2",
            "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,
    "display_name": "PixVerse v3.5",
    "formats": [
      "videos"
    ],
    "id": "pixverse-v3.5",
    "input": [
      "text",
      "image"
    ],
    "kind": "video",
    "locale": "en",
    "max_out": null,
    "methods": [
      {
        "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.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "cancel_endpoint": null,
              "completed_states": [
                "completed"
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "failed_states": [
                "failed"
              ],
              "id_source": "Use returned polling_url and id. Keep provider_task_id and X-Ailoot-Task-Id as separate original identifiers.",
              "mode": "submit_once_poll_original",
              "owned_content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "Use the exact returned signed URL; never construct a token."
              },
              "pending_states": [
                "pending",
                "processing"
              ],
              "state_field": "status",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "unknown": "請保留回傳的公開工作或操作 id，以及所有標頭。僅讀取原始工作；unknown 或 result_pending_check 均不代表可以再次建立。",
              "unknown_no_replay": true
            },
            "outputs": {
              "all_results": "請保留完整回應與標頭、原始識別碼、每個實際輸出，以及所有用量／帳務欄位。請儲存每個不重複的自有資產，並保留指向該資產的每個角色。",
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "name": "id",
                  "type": "string"
                },
                {
                  "name": "polling_url",
                  "type": "string"
                },
                {
                  "name": "provider_task_id",
                  "type": "string"
                },
                {
                  "name": "task_id",
                  "type": "string"
                },
                {
                  "name": "status",
                  "type": "string"
                },
                {
                  "name": "video_url",
                  "type": "string"
                }
              ],
              "maximum_outputs": null
            },
            "parameters": [
              {
                "conditions": "請原樣使用這個 Ailoot 路由選擇值。",
                "default_known": false,
                "enum": [
                  "pixverse-v3.5"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "請描述場景及其中的動態。",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "請使用清單中列出的所選模型長寬比。",
                "default_known": false,
                "enum": [
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "conditions": "請使用清單中列出的所選模型品質值。",
                "default_known": false,
                "enum": [
                  "360p",
                  "540p",
                  "720p",
                  "1080p"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "quality",
                "required": false,
                "type": "string"
              },
              {
                "conditions": "請使用清單中列出的所選模型動態模式。",
                "default_known": false,
                "enum": [
                  "normal",
                  "fast"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "motion_mode",
                "required": false,
                "type": "string"
              },
              {
                "conditions": "請使用清單中列出的長度；沒有未明示的預設值。",
                "default_known": false,
                "enum": [
                  5,
                  8
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "duration",
                "required": false,
                "type": "integer"
              },
              {
                "conditions": "可選填結束影格，以選取支援的圖片模式。",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "end_image",
                "required": false,
                "type": "string"
              },
              {
                "conditions": "所選模型的語音內容，可不填。",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "lip_sync_tts_content",
                "required": false,
                "type": "string"
              },
              {
                "conditions": "請使用供應商支援且實際存在的聲音 ID；不得自行編造聲音 ID。",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "lip_sync_tts_speaker_id",
                "required": false,
                "type": "string"
              },
              {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                ],
                "conditions": "請使用您實際可公開存取的圖片 URL 或 base64 圖片；所選模型支援圖片輸入。",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "image",
                "required": false,
                "type": "string or array<string>"
              },
              {
                "conditions": "請描述要避免的內容。",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "negative_prompt",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "16:9",
                    "4:3",
                    "1:1",
                    "3:4",
                    "9:16"
                  ],
                  "type": "string"
                },
                "duration": {
                  "enum": [
                    5,
                    8
                  ],
                  "type": "integer"
                },
                "end_image": {
                  "type": "string"
                },
                "image": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  ]
                },
                "lip_sync_tts_content": {
                  "type": "string"
                },
                "lip_sync_tts_speaker_id": {
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "pixverse-v3.5"
                  ],
                  "type": "string"
                },
                "motion_mode": {
                  "enum": [
                    "normal",
                    "fast"
                  ],
                  "type": "string"
                },
                "negative_prompt": {
                  "type": "string"
                },
                "prompt": {
                  "type": "string"
                },
                "quality": {
                  "enum": [
                    "360p",
                    "540p",
                    "720p",
                    "1080p"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "pixverse-v3.5",
                "prompt": "A cat is walking on grass."
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "conditions": [
              "請原樣使用這個 Ailoot 路由選擇值。",
              "請描述場景及其中的動態。",
              "請使用清單中列出的所選模型長寬比。",
              "請使用清單中列出的所選模型品質值。",
              "請使用清單中列出的所選模型動態模式。",
              "請使用清單中列出的長度；沒有未明示的預設值。",
              "可選填結束影格，以選取支援的圖片模式。",
              "所選模型的語音內容，可不填。",
              "請使用供應商支援且實際存在的聲音 ID；不得自行編造聲音 ID。",
              "請使用您實際可公開存取的圖片 URL 或 base64 圖片；所選模型支援圖片輸入。",
              "請描述要避免的內容。"
            ],
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional": [
              "aspect_ratio",
              "quality",
              "motion_mode",
              "duration",
              "end_image",
              "lip_sync_tts_content",
              "lip_sync_tts_speaker_id",
              "image",
              "negative_prompt"
            ],
            "required": [
              "model",
              "prompt"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "cancel_endpoint": null,
            "completed_states": [
              "completed"
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "failed_states": [
              "failed"
            ],
            "id_source": "Use returned polling_url and id. Keep provider_task_id and X-Ailoot-Task-Id as separate original identifiers.",
            "mode": "submit_once_poll_original",
            "owned_content": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}/content",
              "url_source": "Use the exact returned signed URL; never construct a token."
            },
            "pending_states": [
              "pending",
              "processing"
            ],
            "state_field": "status",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "unknown": "Keep the returned public task or operation id and all headers. Read only the original task; unknown or result_pending_check does not authorize another creation.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations"
          ],
          "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.",
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "name": "id",
                "type": "string"
              },
              {
                "name": "polling_url",
                "type": "string"
              },
              {
                "name": "provider_task_id",
                "type": "string"
              },
              {
                "name": "task_id",
                "type": "string"
              },
              {
                "name": "status",
                "type": "string"
              },
              {
                "name": "video_url",
                "type": "string"
              }
            ],
            "maximum_outputs": null
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "此估算並非額外費用，也不是本次生成完成後的固定費率。",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "預估生成費用",
            "units": [
              {
                "amount": "0.2",
                "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.2",
                "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}\"\ncat > request.json <<'JSON'\n{\n  \"model\": \"pixverse-v3.5\",\n  \"prompt\": \"A cat is walking on grass.\"\n}\nJSON\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n# Create once; retain id, polling_url, original task identifiers and every header.\n",
            "label": "curl · create once and retain receipt",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_STATUS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(\"result.json\").read_text())\nu=urljoin(\"https://api.ailoot.ai\",r[\"polling_url\"])\np=urlsplit(u)\nif p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or p.username or p.password:\n    raise SystemExit(\"Unexpected returned polling URL; preserve the response\")\nsubprocess.run([\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",u,\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"],\"-D\",\"status-headers.txt\",\"-o\",\"status.json\"],check=True)\n# Read this same original polling_url again while pending.\n# Preserve unknown/result_pending_check; do not repeat creation.\nPY_STATUS\n",
            "label": "Read the original task",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(\"status.json\").read_text())\nroles={}\ndef visit(v,path=\"\"):\n    if isinstance(v,dict):\n        for k,x in v.items(): visit(x,path+\"/\"+k)\n    elif isinstance(v,list):\n        for i,x in enumerate(v): visit(x,path+\"/\"+str(i))\n    elif isinstance(v,str):\n        u=urljoin(\"https://api.ailoot.ai\",v); p=urlsplit(u)\n        if p.scheme==\"https\" and p.netloc==\"api.ailoot.ai\" and not p.username and not p.password and p.path.startswith(\"/v1/media/assets/\") and p.path.endswith(\"/content\"):\n            roles.setdefault(u,[]).append(path)\nvisit(r)\nif not roles: raise SystemExit(\"No completed owned assets; retain the original status\")\nmanifest=[]\nfor i,(u,paths) in enumerate(roles.items()):\n    target=Path(f\"asset-{i}.bin\")\n    subprocess.run([\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",u,\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"],\"-o\",str(target)],check=True)\n    raw=target.read_bytes()\n    if not raw: raise SystemExit(\"Empty asset; retain original status and metadata\")\n    ext=\"glb\" if raw[:4]==b\"glTF\" else \"png\" if raw[:8]==b\"\\x89PNG\\r\\n\\x1a\\n\" else \"jpg\" if raw[:3]==b\"\\xff\\xd8\\xff\" else \"webp\" if raw[:4]==b\"RIFF\" and raw[8:12]==b\"WEBP\" else \"mp4\" if raw[4:8]==b\"ftyp\" else \"bin\"\n    name=f\"asset-{i}.{ext}\"\n    if target.name!=name: target.rename(name)\n    manifest.append({\"file\":name,\"response_paths\":paths,\"bytes\":len(raw)})\nPath(\"asset-manifest.json\").write_text(json.dumps(manifest,indent=2))\nprint(\"Saved\",len(manifest),\"unique owned assets; every response role retained\")\nPY_ASSETS\n",
            "label": "Save every completed owned asset",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Video",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "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.2",
                "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.2",
                "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": "pixverse-v3.5",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.2",
            "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.2",
            "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": "pixverse-v3.5",
        "request_model_id": "pixverse-v3.5",
        "route_label": "Ultra"
      }
    ],
    "name": "PixVerse v3.5",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.2,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.2,
      "varies": false
    },
    "short": "PixVerse v3.5 可根據文字或圖片生成影片。文件中的控制項包含多種畫面形狀、解析度選項與動態模式，可發展具有明確動作與剪接點的簡短視覺場景。",
    "short_sha256": "af1e75d5dc2af0e46892fc66ce79d96238b489e351c7b41f5659cbb519ef8076"
  },
  "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": "PixVerse v3.5 可根據文字或圖片生成影片。文件中的控制項包含多種畫面形狀、解析度選項與動態模式，可發展具有明確動作與剪接點的簡短視覺場景。",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "c950983d64d39aed644d9cd4060ec50489b733572de1dd740a220a8755f692b3",
    "renderer_sha256": "13a3fc1b22d07359278e2249d630bfc9bb9e6416c71ba53def933fb5a903660b"
  },
  "sourceRevision": "2b157958fea2a069c1d0a82b95b9898c0c49591dbb4cc1f976a8ae99306b5248"
}
