{
  "aboutHtml": "<p>FLUX Video Upscale ialah aliran kerja resolusi super video Black Forest Labs yang dikuasakan oleh FLUX 3. Ia menerima klip sedia ada dan memulangkan MP4 yang dibesarkan, dengan pembingkaian dan audio sumber dibawa ke dalam hasil. Penerangan ringkas pilihan boleh membimbing butiran visual yang dipertingkat. Dua modnya memberikan pilihan bermakna antara kekal hampir dengan rupa yang dibekalkan dan menjana butiran lebih agresif, bukannya menganggap setiap imej yang lebih besar sebagai pembinaan semula yang sama setianya.</p><h4>Pilih penambahbaikan tepat atau kreatif</h4><p>Tetapan kreativiti memilih mod. Nilai 0 ialah profil tepat yang setia kepada sumber: pengeluar mengesyorkannya apabila wajah, produk atau aset jenama perlu mengekalkan identitinya. Nilai 1 membolehkan penambahbaikan butiran kreatif dan merupakan lalai. Ia boleh memulihkan atau mereka tekstur dengan lebih agresif, yang berguna untuk rakaman janaan, pemandangan, orang ramai atau permukaan yang butirannya boleh dikembangkan secara kreatif.</p><p>Pembuat memberi amaran jelas bahawa penambahbaikan kreatif tidak mengekalkan wajah dan produk dengan ketat yang sama. Periksa ciri yang mesti terus dapat dikenal pasti: rupa wajah, garis bentuk produk, tulisan, corak bahan atau logo. Visual yang kelihatan lebih tajam masih boleh mengandungi butiran yang berubah atau baru direka. Untuk demonstrasi produk, gunakan rupa produk yang dimaksudkan sebagai kriteria semakan, bukannya memilih versi hanya kerana teksturnya lebih rumit.</p><p>Prompt pilihan menerangkan kandungan klip untuk membimbing penambahbaikan; penerangan kosong meminta pembesaran neutral. Taklimat adegan janaan asal boleh mengenal pasti dinding batu berlumut, cahaya siang lembut dan tekstur daun halus. Kekalkan susunan kata tentang bahan yang patut diperhalus. Permintaan untuk menggantikan objek, membina semula latar atau mengubah dialog ialah keputusan penyuntingan, manakala profil ini mengekalkan trek audio sumber.</p><h4>Skala dan keluasan bingkai output</h4><p>upscale_factor yang didokumentasikan berjulat daripada 1.5 hingga 3, dengan 2 sebagai lalai. Ia membesarkan resolusi sumber sambil mengekalkan nisbah aspek. Faktor terpilih dan dimensi input menentukan output yang dimaksudkan, jadi klip landskap dan komposisi potret perlu dirancang berdasarkan bingkai sebenar. Sediakan saiz paparan sasaran sebelum memilih jumlah pembesaran yang berguna.</p><p>Spesifikasi tepat mengehadkan setiap bingkai output kepada 13.75 unit megapiksel pengeluar. Dokumentasinya mentakrifkan satu unit tersebut sebagai 1,048,576 piksel, memberikan had 14,417,920 piksel, iaitu kira-kira 14.4 juta. Itu menjelaskan ungkapan 14.4 megapiksel yang dibundarkan dalam panduan. Oleh itu, sumber besar mungkin menerima pembesaran kurang daripada faktor yang diminta. Periksa dimensi yang dihantar, bukannya menganggap permintaan 3× sentiasa menghasilkan tiga kali setiap dimensi sumber.</p><p>Had resolusi sumber yang diterbitkan ialah 2560×1440. Aliran kerja ini meningkatkan sumber yang layak ke arah 4K dan seterusnya; ia tidak menerima sumber yang sudah lebih besar hanya kerana output lebih tinggi dikehendaki. Kecilkan atau sediakan salinan kerja yang sesuai sebelum menggunakan profil yang didokumentasikan itu. Simpan rakaman asal secara berasingan supaya perbandingan akhir tidak terhad kepada perantaraan yang telah diubah saiz.</p><h4>Sediakan sumber pendek yang mudah ditafsirkan</h4><p>Panduan persediaan biasa pembuat mengehadkan sumber kepada dua puluh saat dan lima puluh MB. Klip dibekalkan melalui URL video atau MP4 terenkod. Rujukan tepatnya menyatakan pemprosesan merangkumi dua puluh saat pertama: sedikit lebihan tempoh mungkin hanya diproses hingga tanda itu, manakala klip yang jauh lebih panjang ditolak. Tiada toleransi angka diterbitkan. Pangkas kepada segmen dua puluh saat atau lebih pendek yang dimaksudkan, bukannya bergantung pada tingkah laku sempadan yang tidak dinyatakan itu.</p><p>Pilih versi dengan pemampatan paling sedikit yang tersedia. Artifak pemampatan mengehadkan jumlah butiran sebenar yang boleh dipulihkan oleh pembesar, dan penambahbaikan kreatif boleh menghasilkan tekstur munasabah tanpa membuktikan kandungan adegan asal. Selesaikan suntingan dan pemangkasan yang dimaksudkan sebelum membesarkan klip terpilih. Aliran kerja asal boleh bermula dengan menyiapkan syot produk, memilih sela tindakan berguna dan kemudian membesarkan pilihan akhir itu sambil mengekalkan sumber yang tidak diubah untuk perbandingan.</p><p>Hasil mengekalkan trek audio sumber. Periksa pemasaannya dengan gambar, khususnya pada awal dan akhir segmen terpilih. Profil yang didokumentasikan tidak menyediakan pemilih kadar bingkai berasingan, penjanaan dialog baharu atau kawalan penyuntingan rujukan imej. Tujuannya ialah video lebih besar dan olahan butiran terpilih, dengan bahan masa dan bunyi sumber dikekalkan dalam segmen yang diproses.</p><h4>Simpan dan periksa klip yang dihantar</h4><p>Aliran kerja pengeluar adalah tak segerak: tugas yang dihantar membekalkan identiti dan lokasi status, dan hasil yang lengkap mengandungi pautan penghantaran MP4 bertandatangan. Pautan itu luput selepas kira-kira satu jam. Simpan klip sebenar, sumber, faktor terpilih, mod kreativiti dan penerangan kandungan, bukannya bergantung pada lokasi sementara. Bezakan status gagal atau disekat moderasi daripada video yang lengkap.</p><p>Semak bingkai individu untuk wajah, tanda dan perubahan permukaan, kemudian tonton urutan untuk kesinambungan, gerakan dan penjajaran audio. Output tepat dan kreatif memenuhi keperluan visual berbeza; artifak berguna ialah klip dibesarkan yang memenuhi matlamat kesetiaan terpilih pada saiz paparan yang dimaksudkan. Resolusi lebih besar sahaja bukan bukti bahawa identiti asal, perkataan atau butiran halus kekal betul.</p>",
  "aboutText": "FLUX Video Upscale ialah aliran kerja resolusi super video Black Forest Labs yang dikuasakan oleh FLUX 3. Ia menerima klip sedia ada dan memulangkan MP4 yang dibesarkan, dengan pembingkaian dan audio sumber dibawa ke dalam hasil. Penerangan ringkas pilihan boleh membimbing butiran visual yang dipertingkat. Dua modnya memberikan pilihan bermakna antara kekal hampir dengan rupa yang dibekalkan dan menjana butiran lebih agresif, bukannya menganggap setiap imej yang lebih besar sebagai pembinaan semula yang sama setianya.\n\n### Pilih penambahbaikan tepat atau kreatif\n\nTetapan kreativiti memilih mod. Nilai 0 ialah profil tepat yang setia kepada sumber: pengeluar mengesyorkannya apabila wajah, produk atau aset jenama perlu mengekalkan identitinya. Nilai 1 membolehkan penambahbaikan butiran kreatif dan merupakan lalai. Ia boleh memulihkan atau mereka tekstur dengan lebih agresif, yang berguna untuk rakaman janaan, pemandangan, orang ramai atau permukaan yang butirannya boleh dikembangkan secara kreatif.\n\nPembuat memberi amaran jelas bahawa penambahbaikan kreatif tidak mengekalkan wajah dan produk dengan ketat yang sama. Periksa ciri yang mesti terus dapat dikenal pasti: rupa wajah, garis bentuk produk, tulisan, corak bahan atau logo. Visual yang kelihatan lebih tajam masih boleh mengandungi butiran yang berubah atau baru direka. Untuk demonstrasi produk, gunakan rupa produk yang dimaksudkan sebagai kriteria semakan, bukannya memilih versi hanya kerana teksturnya lebih rumit.\n\nPrompt pilihan menerangkan kandungan klip untuk membimbing penambahbaikan; penerangan kosong meminta pembesaran neutral. Taklimat adegan janaan asal boleh mengenal pasti dinding batu berlumut, cahaya siang lembut dan tekstur daun halus. Kekalkan susunan kata tentang bahan yang patut diperhalus. Permintaan untuk menggantikan objek, membina semula latar atau mengubah dialog ialah keputusan penyuntingan, manakala profil ini mengekalkan trek audio sumber.\n\n### Skala dan keluasan bingkai output\n\nupscale_factor yang didokumentasikan berjulat daripada 1.5 hingga 3, dengan 2 sebagai lalai. Ia membesarkan resolusi sumber sambil mengekalkan nisbah aspek. Faktor terpilih dan dimensi input menentukan output yang dimaksudkan, jadi klip landskap dan komposisi potret perlu dirancang berdasarkan bingkai sebenar. Sediakan saiz paparan sasaran sebelum memilih jumlah pembesaran yang berguna.\n\nSpesifikasi tepat mengehadkan setiap bingkai output kepada 13.75 unit megapiksel pengeluar. Dokumentasinya mentakrifkan satu unit tersebut sebagai 1,048,576 piksel, memberikan had 14,417,920 piksel, iaitu kira-kira 14.4 juta. Itu menjelaskan ungkapan 14.4 megapiksel yang dibundarkan dalam panduan. Oleh itu, sumber besar mungkin menerima pembesaran kurang daripada faktor yang diminta. Periksa dimensi yang dihantar, bukannya menganggap permintaan 3× sentiasa menghasilkan tiga kali setiap dimensi sumber.\n\nHad resolusi sumber yang diterbitkan ialah 2560×1440. Aliran kerja ini meningkatkan sumber yang layak ke arah 4K dan seterusnya; ia tidak menerima sumber yang sudah lebih besar hanya kerana output lebih tinggi dikehendaki. Kecilkan atau sediakan salinan kerja yang sesuai sebelum menggunakan profil yang didokumentasikan itu. Simpan rakaman asal secara berasingan supaya perbandingan akhir tidak terhad kepada perantaraan yang telah diubah saiz.\n\n### Sediakan sumber pendek yang mudah ditafsirkan\n\nPanduan persediaan biasa pembuat mengehadkan sumber kepada dua puluh saat dan lima puluh MB. Klip dibekalkan melalui URL video atau MP4 terenkod. Rujukan tepatnya menyatakan pemprosesan merangkumi dua puluh saat pertama: sedikit lebihan tempoh mungkin hanya diproses hingga tanda itu, manakala klip yang jauh lebih panjang ditolak. Tiada toleransi angka diterbitkan. Pangkas kepada segmen dua puluh saat atau lebih pendek yang dimaksudkan, bukannya bergantung pada tingkah laku sempadan yang tidak dinyatakan itu.\n\nPilih versi dengan pemampatan paling sedikit yang tersedia. Artifak pemampatan mengehadkan jumlah butiran sebenar yang boleh dipulihkan oleh pembesar, dan penambahbaikan kreatif boleh menghasilkan tekstur munasabah tanpa membuktikan kandungan adegan asal. Selesaikan suntingan dan pemangkasan yang dimaksudkan sebelum membesarkan klip terpilih. Aliran kerja asal boleh bermula dengan menyiapkan syot produk, memilih sela tindakan berguna dan kemudian membesarkan pilihan akhir itu sambil mengekalkan sumber yang tidak diubah untuk perbandingan.\n\nHasil mengekalkan trek audio sumber. Periksa pemasaannya dengan gambar, khususnya pada awal dan akhir segmen terpilih. Profil yang didokumentasikan tidak menyediakan pemilih kadar bingkai berasingan, penjanaan dialog baharu atau kawalan penyuntingan rujukan imej. Tujuannya ialah video lebih besar dan olahan butiran terpilih, dengan bahan masa dan bunyi sumber dikekalkan dalam segmen yang diproses.\n\n### Simpan dan periksa klip yang dihantar\n\nAliran kerja pengeluar adalah tak segerak: tugas yang dihantar membekalkan identiti dan lokasi status, dan hasil yang lengkap mengandungi pautan penghantaran MP4 bertandatangan. Pautan itu luput selepas kira-kira satu jam. Simpan klip sebenar, sumber, faktor terpilih, mod kreativiti dan penerangan kandungan, bukannya bergantung pada lokasi sementara. Bezakan status gagal atau disekat moderasi daripada video yang lengkap.\n\nSemak bingkai individu untuk wajah, tanda dan perubahan permukaan, kemudian tonton urutan untuk kesinambungan, gerakan dan penjajaran audio. Output tepat dan kreatif memenuhi keperluan visual berbeza; artifak berguna ialah klip dibesarkan yang memenuhi matlamat kesetiaan terpilih pada saiz paparan yang dimaksudkan. Resolusi lebih besar sahaja bukan bukti bahawa identiti asal, perkataan atau butiran halus kekal betul.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "262a3bd61052814e2e09a96666162aaee172ff5991318146a4ae2101fd993e9d",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "ms",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Black Forest Labs: FLUX Video Upscale</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Tutup\">×</button></div><div class=\"idline\"><span>Black Forest Labs /</span><code>black-forest-labs/flux-video-upscale</code><button type=\"button\" id=\"copy-id\">Salin ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Bahagian kad model\"><button type=\"button\" data-card-jump=\"overview\">Pengenalan</button><button type=\"button\" data-card-jump=\"methods\">Input &amp; kaedah</button><button type=\"button\" data-card-jump=\"pricing\">Pelan harga</button><button type=\"button\" data-card-jump=\"examples\">Contoh</button><button type=\"button\" data-card-jump=\"results\">Hasil</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Kaedah 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|black-forest-labs%2Fflux-video-upscale\">Video</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\">Pengenalan</h3><p class=\"mdesc-full\">FLUX Video Upscale membesarkan klip sedia ada melalui penambahbaikan butiran yang setia kepada sumber atau secara kreatif. Profil yang didokumentasikan menawarkan penskalaan 1.5×–3×, mengekalkan audio dan pembingkaian sumber, serta mengehadkan panjang sumber, resolusi input dan keluasan bingkai output.</p><dl class=\"card-io\" data-card-io><div><dt>Input yang diterima</dt><dd>Teks · Imej · Audio · Video</dd></div><div><dt>Hasil</dt><dd>Video</dd></div></dl><details class=\"card-about\"><summary>Tentang model</summary><p class=\"note-s\" data-model-method-boundary>Huraian ini merangkumi keupayaan model. Input, output dan pilihan yang tersedia di Ailoot disenaraikan di bawah untuk kaedah yang dipilih.</p><div class=\"mabout\" id=\"m-about\"><p>FLUX Video Upscale ialah aliran kerja resolusi super video Black Forest Labs yang dikuasakan oleh FLUX 3. Ia menerima klip sedia ada dan memulangkan MP4 yang dibesarkan, dengan pembingkaian dan audio sumber dibawa ke dalam hasil. Penerangan ringkas pilihan boleh membimbing butiran visual yang dipertingkat. Dua modnya memberikan pilihan bermakna antara kekal hampir dengan rupa yang dibekalkan dan menjana butiran lebih agresif, bukannya menganggap setiap imej yang lebih besar sebagai pembinaan semula yang sama setianya.</p><h4>Pilih penambahbaikan tepat atau kreatif</h4><p>Tetapan kreativiti memilih mod. Nilai 0 ialah profil tepat yang setia kepada sumber: pengeluar mengesyorkannya apabila wajah, produk atau aset jenama perlu mengekalkan identitinya. Nilai 1 membolehkan penambahbaikan butiran kreatif dan merupakan lalai. Ia boleh memulihkan atau mereka tekstur dengan lebih agresif, yang berguna untuk rakaman janaan, pemandangan, orang ramai atau permukaan yang butirannya boleh dikembangkan secara kreatif.</p><p>Pembuat memberi amaran jelas bahawa penambahbaikan kreatif tidak mengekalkan wajah dan produk dengan ketat yang sama. Periksa ciri yang mesti terus dapat dikenal pasti: rupa wajah, garis bentuk produk, tulisan, corak bahan atau logo. Visual yang kelihatan lebih tajam masih boleh mengandungi butiran yang berubah atau baru direka. Untuk demonstrasi produk, gunakan rupa produk yang dimaksudkan sebagai kriteria semakan, bukannya memilih versi hanya kerana teksturnya lebih rumit.</p><p>Prompt pilihan menerangkan kandungan klip untuk membimbing penambahbaikan; penerangan kosong meminta pembesaran neutral. Taklimat adegan janaan asal boleh mengenal pasti dinding batu berlumut, cahaya siang lembut dan tekstur daun halus. Kekalkan susunan kata tentang bahan yang patut diperhalus. Permintaan untuk menggantikan objek, membina semula latar atau mengubah dialog ialah keputusan penyuntingan, manakala profil ini mengekalkan trek audio sumber.</p><h4>Skala dan keluasan bingkai output</h4><p>upscale_factor yang didokumentasikan berjulat daripada 1.5 hingga 3, dengan 2 sebagai lalai. Ia membesarkan resolusi sumber sambil mengekalkan nisbah aspek. Faktor terpilih dan dimensi input menentukan output yang dimaksudkan, jadi klip landskap dan komposisi potret perlu dirancang berdasarkan bingkai sebenar. Sediakan saiz paparan sasaran sebelum memilih jumlah pembesaran yang berguna.</p><p>Spesifikasi tepat mengehadkan setiap bingkai output kepada 13.75 unit megapiksel pengeluar. Dokumentasinya mentakrifkan satu unit tersebut sebagai 1,048,576 piksel, memberikan had 14,417,920 piksel, iaitu kira-kira 14.4 juta. Itu menjelaskan ungkapan 14.4 megapiksel yang dibundarkan dalam panduan. Oleh itu, sumber besar mungkin menerima pembesaran kurang daripada faktor yang diminta. Periksa dimensi yang dihantar, bukannya menganggap permintaan 3× sentiasa menghasilkan tiga kali setiap dimensi sumber.</p><p>Had resolusi sumber yang diterbitkan ialah 2560×1440. Aliran kerja ini meningkatkan sumber yang layak ke arah 4K dan seterusnya; ia tidak menerima sumber yang sudah lebih besar hanya kerana output lebih tinggi dikehendaki. Kecilkan atau sediakan salinan kerja yang sesuai sebelum menggunakan profil yang didokumentasikan itu. Simpan rakaman asal secara berasingan supaya perbandingan akhir tidak terhad kepada perantaraan yang telah diubah saiz.</p><h4>Sediakan sumber pendek yang mudah ditafsirkan</h4><p>Panduan persediaan biasa pembuat mengehadkan sumber kepada dua puluh saat dan lima puluh MB. Klip dibekalkan melalui URL video atau MP4 terenkod. Rujukan tepatnya menyatakan pemprosesan merangkumi dua puluh saat pertama: sedikit lebihan tempoh mungkin hanya diproses hingga tanda itu, manakala klip yang jauh lebih panjang ditolak. Tiada toleransi angka diterbitkan. Pangkas kepada segmen dua puluh saat atau lebih pendek yang dimaksudkan, bukannya bergantung pada tingkah laku sempadan yang tidak dinyatakan itu.</p><p>Pilih versi dengan pemampatan paling sedikit yang tersedia. Artifak pemampatan mengehadkan jumlah butiran sebenar yang boleh dipulihkan oleh pembesar, dan penambahbaikan kreatif boleh menghasilkan tekstur munasabah tanpa membuktikan kandungan adegan asal. Selesaikan suntingan dan pemangkasan yang dimaksudkan sebelum membesarkan klip terpilih. Aliran kerja asal boleh bermula dengan menyiapkan syot produk, memilih sela tindakan berguna dan kemudian membesarkan pilihan akhir itu sambil mengekalkan sumber yang tidak diubah untuk perbandingan.</p><p>Hasil mengekalkan trek audio sumber. Periksa pemasaannya dengan gambar, khususnya pada awal dan akhir segmen terpilih. Profil yang didokumentasikan tidak menyediakan pemilih kadar bingkai berasingan, penjanaan dialog baharu atau kawalan penyuntingan rujukan imej. Tujuannya ialah video lebih besar dan olahan butiran terpilih, dengan bahan masa dan bunyi sumber dikekalkan dalam segmen yang diproses.</p><h4>Simpan dan periksa klip yang dihantar</h4><p>Aliran kerja pengeluar adalah tak segerak: tugas yang dihantar membekalkan identiti dan lokasi status, dan hasil yang lengkap mengandungi pautan penghantaran MP4 bertandatangan. Pautan itu luput selepas kira-kira satu jam. Simpan klip sebenar, sumber, faktor terpilih, mod kreativiti dan penerangan kandungan, bukannya bergantung pada lokasi sementara. Bezakan status gagal atau disekat moderasi daripada video yang lengkap.</p><p>Semak bingkai individu untuk wajah, tanda dan perubahan permukaan, kemudian tonton urutan untuk kesinambungan, gerakan dan penjajaran audio. Output tepat dan kreatif memenuhi keperluan visual berbeza; artifak berguna ialah klip dibesarkan yang memenuhi matlamat kesetiaan terpilih pada saiz paparan yang dimaksudkan. Resolusi lebih besar sahaja bukan bukti bahawa identiti asal, perkataan atau butiran halus kekal betul.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Tersedia di Ailoot · input &amp; kaedah</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Penjanaan video</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>Input</dt><dd><code>text</code>, <code>image</code>, <code>audio</code>, <code>video</code></dd></div><div><dt>Output</dt><dd><code>video</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Medan</th><th>Jenis</th><th>Keperluan</th><th>Nilai &amp; had</th><th>Lalai</th></tr></thead><tbody><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Diperlukan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>black-forest-labs/flux-video-upscale</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">input_references</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>array</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Diperlukan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>Item minimum: 1</div><div>Item maksimum: 1</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">upscale_factor</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>number</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Diperlukan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>Minimum: 1.5</div><div>Maksimum: 3</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">creativity</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>integer</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Diperlukan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>0, 1</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Parameter kaedah dan kitar hayat</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Kontrak</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>application/json</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>model, input_references, upscale_factor, creativity</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>text, image, audio, video</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_conditions</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>Gunakan tepat satu URL kandungan aset video siap sebenar milik anda dengan tandatangan yang dikembalikan. Pemilik aset, jenis dan bukti bait yang disimpan mesti sepadan dengan permintaan.</td></tr></tbody></table></div><p>Kitar hayat: <code>asynchronous_job_then_owned_outputs</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}</code> · id atau polling_url sebenar yang dikembalikan</p><p class=\"note-s\"><code>GET /v1/videos/{request_id}/content</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Pelan harga</h3><div class=\"card-result-process\" data-billing-basis><h5>Cara caj akhir dikira</h5><p class=\"note-s\">Kadar yang dipaparkan menganggarkan kos sebelum penjanaan. Caj akhir dikira berdasarkan kos yang direkodkan untuk penjanaan asal. Tempoh output yang diukur dan kuantiti ramalan bukan kuantiti akhir yang boleh dibilkan.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Rujukan tarif tidak menambah pilihan permintaan. Parameter yang disokong disenaraikan untuk kaedah yang dipilih.</p><dl data-price-conditions><dt>Mod pantas</dt><dd>Tidak dinyatakan <span class=\"note-s\">Apabila mod pantas dipilih</span></dd><dt>Mod flex</dt><dd>Tidak dinyatakan <span class=\"note-s\">Apabila mod flex dipilih</span></dd><dt>Usaha penaakulan maksimum</dt><dd>Tidak dinyatakan <span class=\"note-s\">Apabila usaha penaakulan maksimum menggunakan pelarasan default</span></dd></dl></div><div data-declared-tariff-pricing><h4>Anggaran kadar untuk perbandingan</h4><h4>Harga mengikut konfigurasi</h4><p class=\"note-s\">Padankan setiap caj dengan syarat yang dipaparkan. Gunakan satu kadar bagi setiap set konfigurasi alternatif.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfigurasi</th><th>Jadual kadar</th><th>Kuantiti ramalan</th><th>Unit pengebilan</th><th>Syarat pengebilan</th><th>Piksel setiap megapiksel</th><th>Caj</th></tr></thead><tbody><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Kadar asas token</th><td data-cell-label=\"Jadual kadar\"><span class=\"card-cell-label\">Jadual kadar</span>Kadar asas</td><td data-cell-label=\"Kuantiti ramalan\"><span class=\"card-cell-label\">Kuantiti ramalan</span>—</td><td data-cell-label=\"Unit pengebilan\"><span class=\"card-cell-label\">Unit pengebilan</span>—</td><td data-cell-label=\"Syarat pengebilan\"><span class=\"card-cell-label\">Syarat pengebilan</span>—</td><td data-cell-label=\"Piksel setiap megapiksel\"><span class=\"card-cell-label\">Piksel setiap megapiksel</span>—</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Input · Token input · Anggaran untuk perbandingan sahaja</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Output · Token output · Anggaran untuk perbandingan sahaja</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Bacaan cache · Anggaran untuk perbandingan sahaja</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Penulisan cache · Anggaran untuk perbandingan sahaja</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Penulisan cache, 1 jam · Anggaran untuk perbandingan sahaja</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Harga video</th><td data-cell-label=\"Jadual kadar\"><span class=\"card-cell-label\">Jadual kadar</span>—</td><td data-cell-label=\"Kuantiti ramalan\"><span class=\"card-cell-label\">Kuantiti ramalan</span>—</td><td data-cell-label=\"Unit pengebilan\"><span class=\"card-cell-label\">Unit pengebilan</span>bagi setiap megapiksel-saat</td><td data-cell-label=\"Syarat pengebilan\"><span class=\"card-cell-label\">Syarat pengebilan</span>kualiti: creative</td><td data-cell-label=\"Piksel setiap megapiksel\"><span class=\"card-cell-label\">Piksel setiap megapiksel</span>1,048,576</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Output · Harga video · Anggaran untuk perbandingan sahaja</span> <b>$0.21</b> <span class=\"price-unit\">bagi setiap megapiksel-saat</span></div></td></tr><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Harga video</th><td data-cell-label=\"Jadual kadar\"><span class=\"card-cell-label\">Jadual kadar</span>—</td><td data-cell-label=\"Kuantiti ramalan\"><span class=\"card-cell-label\">Kuantiti ramalan</span>—</td><td data-cell-label=\"Unit pengebilan\"><span class=\"card-cell-label\">Unit pengebilan</span>bagi setiap megapiksel-saat</td><td data-cell-label=\"Syarat pengebilan\"><span class=\"card-cell-label\">Syarat pengebilan</span>quality: precise</td><td data-cell-label=\"Piksel setiap megapiksel\"><span class=\"card-cell-label\">Piksel setiap megapiksel</span>1,048,576</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Output · Harga video · Anggaran untuk perbandingan sahaja</span> <b>$0.15</b> <span class=\"price-unit\">bagi setiap megapiksel-saat</span></div></td></tr><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Anggaran kos penjanaan</th><td data-cell-label=\"Jadual kadar\"><span class=\"card-cell-label\">Jadual kadar</span>—</td><td data-cell-label=\"Kuantiti ramalan\"><span class=\"card-cell-label\">Kuantiti ramalan</span>anggaran untuk satu penjanaan</td><td data-cell-label=\"Unit pengebilan\"><span class=\"card-cell-label\">Unit pengebilan</span>—</td><td data-cell-label=\"Syarat pengebilan\"><span class=\"card-cell-label\">Syarat pengebilan</span>—</td><td data-cell-label=\"Piksel setiap megapiksel\"><span class=\"card-cell-label\">Piksel setiap megapiksel</span>—</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Output · Anggaran kos penjanaan · Anggaran untuk perbandingan sahaja</span> <b>$0.15</b> <span class=\"price-unit\">anggaran sebelum penjanaan</span></div><p class=\"note-s\">Anggaran ini bukan caj tambahan atau kadar tetap bagi penjanaan yang telah selesai.</p></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. <a href=\"/docs/ms/billing/reserve/\">Cara rizab dan penyelesaian caj berfungsi →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Contoh permintaan</h3><h4>Ailoot Ultra · Penjanaan video</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Pilihan kod\"><button class=\"cg-tab\" id=\"model-code-1097-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1097-panel-0\" aria-selected=\"true\" tabindex=\"0\">Gunakan input sebenar dan simpan hasil lengkap</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Salin kod\"><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-1097-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1097-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_INPUT_REFERENCES_JSON:?Set the actual documented input value}&quot;\nexport AILOOT_INPUT_REFERENCES_JSON\n: &quot;${AILOOT_UPSCALE_FACTOR:?Set the actual documented input value}&quot;\nexport AILOOT_UPSCALE_FACTOR\n: &quot;${AILOOT_CREATIVITY:?Set the actual documented input value}&quot;\nexport AILOOT_CREATIVITY\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\nrequest={&#39;model&#39;: &#39;black-forest-labs/flux-video-upscale&#39;, &#39;input_references&#39;: &#39;${ACTUAL_OWNED_INPUT_REFERENCES}&#39;, &#39;upscale_factor&#39;: &#39;${ACTUAL_UPSCALE_FACTOR}&#39;, &#39;creativity&#39;: &#39;${ACTUAL_CREATIVITY}&#39;}\nrequest[&#39;input_references&#39;]=json.loads(os.environ[&#39;AILOOT_INPUT_REFERENCES_JSON&#39;])\nrequest[&#39;upscale_factor&#39;]=float(os.environ[&#39;AILOOT_UPSCALE_FACTOR&#39;])\nrequest[&#39;creativity&#39;]=int(os.environ[&#39;AILOOT_CREATIVITY&#39;])\nPath(&#39;request.json&#39;).write_text(json.dumps(request,ensure_ascii=False),encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Terima dan simpan hasil</h3><h4>Ailoot Ultra · Penjanaan video</h4><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{request_id}</code></li><li><code>GET /v1/videos/{request_id}/content</code></li></ul><h5>Simpan semua aset yang selesai</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Pilihan kod\"><button class=\"cg-tab\" id=\"model-code-1098-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1098-panel-0\" aria-selected=\"true\" tabindex=\"0\">GET semua aset yang selesai</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Salin kod\"><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-1098-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1098-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}&quot;\nexport AILOOT_STATUS_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\nfrom urllib.parse import urlsplit,urljoin\nf=Path(os.environ[&quot;AILOOT_STATUS_FILE&quot;])\nif not f.is_file():raise SystemExit(&quot;Choose the actual completed status file&quot;)\nr=json.loads(f.read_text())\nif r.get(&quot;status&quot;)!=&quot;completed&quot; or not isinstance(r.get(&quot;data&quot;),list) or not r[&quot;data&quot;]:raise SystemExit(&quot;Wait for a completed status with asset paths&quot;)\nurls=[]\nfor x in r[&quot;data&quot;]:\n    if not isinstance(x,str) or &quot;\\n&quot; in x or &quot;\\r&quot; in x:raise SystemExit(&quot;Invalid asset path&quot;)\n    u=urljoin(&quot;https://api.ailoot.ai&quot;,x)\n    z=urlsplit(u)\n    if z.scheme!=&quot;https&quot; or z.netloc!=&quot;api.ailoot.ai&quot; or z.username or z.password:raise SystemExit(&quot;Use the actual Ailoot asset paths from status&quot;)\n    urls.append(u)\nPath(&quot;asset-urls.txt&quot;).write_text(&quot;\\n&quot;.join(urls)+&quot;\\n&quot;)\nPY_REQUEST\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error &quot;$asset_url&quot; \\\n    -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o &quot;video-${index}.mp4&quot;\n  index=$((index + 1))\ndone &lt; asset-urls.txt\n</code></pre></div></div></div><div class=\"card-result-process\" data-all-results><h5>Simpan semua hasil yang selesai</h5><p class=\"note-s\">Simpan setiap video yang selesai atau fail yang dikembalikan; dapatkan setiap URL aset yang benar-benar dikembalikan.</p><p class=\"note-s\">Simpan respons dan pengepala yang lengkap, setiap output sebenar, pengecam asal yang dikembalikan serta semua medan penggunaan. Pulihkan operasi asal tanpa menghantar permintaan penciptaan sekali lagi.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Jika respons asal perlu disemak</h5><p class=\"note-s\">Simpan X-Client-Request-ID, X-Ailoot-Task-Id dan id/polling_url sebenar yang dikembalikan. Teruskan tugas asal; jangan hantar permintaan penciptaan sekali lagi.</p></div><details class=\"card-about\" data-output-fields><summary>Medan respons</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Medan</th><th>Jenis</th></tr></thead><tbody><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span></td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">status</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span></td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">data[]</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span></td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">outputs[]</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span></td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Alias model</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=black-forest-labs%2Fflux-video-upscale&amp;route=Ultra&amp;caller=black-forest-labs%2Fflux-video-upscale&amp;fmt=videos\"><code>black-forest-labs/flux-video-upscale</code></a></span></p><h4>Alias laluan kaedah</h4><p class=\"note-s\">Gunakan laluan kaedah yang dipaparkan di atas.</p><h4>ID pemanggil berkaitan</h4><p class=\"note-s\"><a href=\"#m=black-forest-labs%2Fflux-video-upscale&amp;route=Ultra&amp;caller=black-forest-labs%2Fflux-video-upscale&amp;fmt=videos\"><code>black-forest-labs/flux-video-upscale</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "black-forest-labs/flux-video-upscale",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "black-forest-labs/flux-video-upscale",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|black-forest-labs%2Fflux-video-upscale",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Kadar yang dipaparkan menganggarkan kos sebelum penjanaan. Caj akhir dikira berdasarkan kos yang direkodkan untuk penjanaan asal. Tempoh output yang diukur dan kuantiti ramalan bukan kuantiti akhir yang boleh dibilkan.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual zero-based output index from completed manifest"
                  }
                }
              ],
              "creation_id_field": "id",
              "media_library": {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              "mode": "asynchronous_job_then_owned_outputs",
              "operation_id_is_not_task_id": true,
              "output_content_response": "owned MP4 bytes with Range support",
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned id or polling_url",
                  "path": "/v1/videos/{request_id}"
                }
              ],
              "unknown": "Simpan X-Client-Request-ID, X-Ailoot-Task-Id dan id/polling_url sebenar yang dikembalikan. Teruskan tugas asal; jangan hantar permintaan penciptaan sekali lagi."
            },
            "outputs": {
              "all_results": "Simpan respons dan pengepala yang lengkap, setiap output sebenar, pengecam asal yang dikembalikan serta semua medan penggunaan. Pulihkan operasi asal tanpa menghantar permintaan penciptaan sekali lagi.",
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": null
                },
                {
                  "description": null,
                  "name": "status",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[]",
                  "type": null
                },
                {
                  "description": null,
                  "name": "outputs[]",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "black-forest-labs/flux-video-upscale"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "type": {
                      "const": "video_url"
                    },
                    "video_url": {
                      "additionalProperties": false,
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "type": "object"
                    }
                  },
                  "required": [
                    "type",
                    "video_url"
                  ],
                  "type": "object"
                },
                "maximum_items": 1,
                "minimum_items": 1,
                "name": "input_references",
                "required": true,
                "type": "array"
              },
              {
                "maximum": 3,
                "minimum": 1.5,
                "name": "upscale_factor",
                "required": true,
                "type": "number"
              },
              {
                "enum": [
                  0,
                  1
                ],
                "enum_known": true,
                "name": "creativity",
                "required": true,
                "type": "integer"
              }
            ],
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "creativity": {
                  "enum": [
                    0,
                    1
                  ],
                  "type": "integer"
                },
                "input_references": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "type": {
                        "const": "video_url"
                      },
                      "video_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      }
                    },
                    "required": [
                      "type",
                      "video_url"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "black-forest-labs/flux-video-upscale"
                  ],
                  "type": "string"
                },
                "upscale_factor": {
                  "maximum": 3,
                  "minimum": 1.5,
                  "type": "number"
                }
              },
              "required": [
                "model",
                "input_references",
                "upscale_factor",
                "creativity"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "creativity": "${ACTUAL_CREATIVITY}",
                "input_references": "${ACTUAL_OWNED_INPUT_REFERENCES}",
                "model": "black-forest-labs/flux-video-upscale",
                "upscale_factor": "${ACTUAL_UPSCALE_FACTOR}"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Gunakan tepat satu URL kandungan aset video siap sebenar milik anda dengan tandatangan yang dikembalikan. Pemilik aset, jenis dan bukti bait yang disimpan mesti sepadan dengan permintaan."
            ],
            "material_types": [
              "text",
              "image",
              "audio",
              "video"
            ],
            "required": [
              "model",
              "input_references",
              "upscale_factor",
              "creativity"
            ]
          },
          "lifecycle": {
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual zero-based output index from completed manifest"
                }
              }
            ],
            "creation_id_field": "id",
            "media_library": {
              "http": "GET",
              "path": "/v1/media/assets"
            },
            "mode": "asynchronous_job_then_owned_outputs",
            "operation_id_is_not_task_id": true,
            "output_content_response": "owned MP4 bytes with Range support",
            "status": [
              {
                "http": "GET",
                "id_source": "id atau polling_url sebenar yang dikembalikan",
                "path": "/v1/videos/{request_id}"
              }
            ],
            "unknown": "Keep X-Client-Request-ID, X-Ailoot-Task-Id and actual returned id/polling_url. Continue the original job; do not submit creation again."
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "video",
            "fields": [
              {
                "description": null,
                "name": "id",
                "type": null
              },
              {
                "description": null,
                "name": "status",
                "type": null
              },
              {
                "description": null,
                "name": "data[]",
                "type": null
              },
              {
                "description": null,
                "name": "outputs[]",
                "type": null
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "kualiti: creative",
              "pixels_per_megapixel": 1048576,
              "quoted_unit": "per megapixel-second"
            },
            "label": "Harga video",
            "units": [
              {
                "amount": "0.21",
                "amount_unit": "usd_per_megapixel_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_megapixel_second_creative",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.21",
                "native_quantity": 1,
                "public_unit_label": "per megapixel-second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "megapixel_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "quality: precise",
              "pixels_per_megapixel": 1048576,
              "quoted_unit": "per megapixel-second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.15",
                "amount_unit": "usd_per_megapixel_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_megapixel_second_precise",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.15",
                "native_quantity": 1,
                "public_unit_label": "per megapixel-second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "megapixel_second"
              }
            ]
          },
          {
            "basis": "Anggaran ini bukan caj tambahan atau kadar tetap bagi penjanaan yang telah selesai.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Anggaran kos penjanaan",
            "units": [
              {
                "amount": "0.15",
                "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.15",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_INPUT_REFERENCES_JSON:?Set the actual documented input value}\"\nexport AILOOT_INPUT_REFERENCES_JSON\n: \"${AILOOT_UPSCALE_FACTOR:?Set the actual documented input value}\"\nexport AILOOT_UPSCALE_FACTOR\n: \"${AILOOT_CREATIVITY:?Set the actual documented input value}\"\nexport AILOOT_CREATIVITY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'black-forest-labs/flux-video-upscale', 'input_references': '${ACTUAL_OWNED_INPUT_REFERENCES}', 'upscale_factor': '${ACTUAL_UPSCALE_FACTOR}', 'creativity': '${ACTUAL_CREATIVITY}'}\nrequest['input_references']=json.loads(os.environ['AILOOT_INPUT_REFERENCES_JSON'])\nrequest['upscale_factor']=float(os.environ['AILOOT_UPSCALE_FACTOR'])\nrequest['creativity']=int(os.environ['AILOOT_CREATIVITY'])\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n",
            "label": "Use actual input and retain the complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}\"\nexport AILOOT_STATUS_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nfrom urllib.parse import urlsplit,urljoin\nf=Path(os.environ[\"AILOOT_STATUS_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose the actual completed status file\")\nr=json.loads(f.read_text())\nif r.get(\"status\")!=\"completed\" or not isinstance(r.get(\"data\"),list) or not r[\"data\"]:raise SystemExit(\"Wait for a completed status with asset paths\")\nurls=[]\nfor x in r[\"data\"]:\n    if not isinstance(x,str) or \"\\n\" in x or \"\\r\" in x:raise SystemExit(\"Invalid asset path\")\n    u=urljoin(\"https://api.ailoot.ai\",x)\n    z=urlsplit(u)\n    if z.scheme!=\"https\" or z.netloc!=\"api.ailoot.ai\" or z.username or z.password:raise SystemExit(\"Use the actual Ailoot asset paths from status\")\n    urls.append(u)\nPath(\"asset-urls.txt\").write_text(\"\\n\".join(urls)+\"\\n\")\nPY_REQUEST\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error \"$asset_url\" \\\n    -H \"Authorization: Bearer $AILOOT_API_KEY\" -o \"video-${index}.mp4\"\n  index=$((index + 1))\ndone < asset-urls.txt\n",
            "label": "GET all completed assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "audio",
          "video"
        ],
        "label": "Penjanaan video",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "videos",
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "quality: creative",
              "pixels_per_megapixel": 1048576,
              "quoted_unit": "per megapixel-second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.21",
                "amount_unit": "usd_per_megapixel_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_megapixel_second_creative",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.21",
                "native_quantity": 1,
                "public_unit_label": "per megapixel-second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "megapixel_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "quality: precise",
              "pixels_per_megapixel": 1048576,
              "quoted_unit": "per megapixel-second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.15",
                "amount_unit": "usd_per_megapixel_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_megapixel_second_precise",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.15",
                "native_quantity": 1,
                "public_unit_label": "per megapixel-second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "megapixel_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.15",
                "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.15",
                "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": "black-forest-labs/flux-video-upscale",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.21",
            "amount_unit": "usd_per_megapixel_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_megapixel_second_creative",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.21",
            "native_quantity": 1,
            "public_unit_label": "per megapixel-second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "megapixel_second"
          },
          {
            "amount": "0.15",
            "amount_unit": "usd_per_megapixel_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_megapixel_second_precise",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.15",
            "native_quantity": 1,
            "public_unit_label": "per megapixel-second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "megapixel_second"
          },
          {
            "amount": "0.15",
            "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.15",
            "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": "black-forest-labs/flux-video-upscale",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "28fa2bc87d221dfac40e23adf52aa1943360a1337143fc2aa759ccdb8d6fe59a",
    "input_html_sha256": "50f3dd486cc085b112c0ac660b08fabff3bfcdba7222e5b1dc3a4d859ae84f56",
    "private_audit_sha256": "362f3c5f1599e6c92d5ba7d203346121a4d6aef414c714dded6c9389f82e1b89",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ms/black-forest-labs-flux-video-upscale/",
    "description": "FLUX Video Upscale membesarkan klip sedia ada melalui penambahbaikan butiran yang setia kepada sumber atau secara kreatif. Profil yang didokumentasikan menawarkan penskalaan 1.5×–3×, mengekalkan audio dan pembingkaian sumber, serta mengehadkan panjang sumber, resolusi input dan keluasan bingkai output.",
    "locale": "ms",
    "md_url": "https://ailoot.ai/models/ms/black-forest-labs-flux-video-upscale/index.md",
    "title": "Black Forest Labs: FLUX Video Upscale — Ailoot",
    "url": "https://ailoot.ai/models/ms/black-forest-labs-flux-video-upscale/"
  },
  "rawModel": {
    "about": "FLUX Video Upscale ialah aliran kerja resolusi super video Black Forest Labs yang dikuasakan oleh FLUX 3. Ia menerima klip sedia ada dan memulangkan MP4 yang dibesarkan, dengan pembingkaian dan audio sumber dibawa ke dalam hasil. Penerangan ringkas pilihan boleh membimbing butiran visual yang dipertingkat. Dua modnya memberikan pilihan bermakna antara kekal hampir dengan rupa yang dibekalkan dan menjana butiran lebih agresif, bukannya menganggap setiap imej yang lebih besar sebagai pembinaan semula yang sama setianya.\n\n### Pilih penambahbaikan tepat atau kreatif\n\nTetapan kreativiti memilih mod. Nilai 0 ialah profil tepat yang setia kepada sumber: pengeluar mengesyorkannya apabila wajah, produk atau aset jenama perlu mengekalkan identitinya. Nilai 1 membolehkan penambahbaikan butiran kreatif dan merupakan lalai. Ia boleh memulihkan atau mereka tekstur dengan lebih agresif, yang berguna untuk rakaman janaan, pemandangan, orang ramai atau permukaan yang butirannya boleh dikembangkan secara kreatif.\n\nPembuat memberi amaran jelas bahawa penambahbaikan kreatif tidak mengekalkan wajah dan produk dengan ketat yang sama. Periksa ciri yang mesti terus dapat dikenal pasti: rupa wajah, garis bentuk produk, tulisan, corak bahan atau logo. Visual yang kelihatan lebih tajam masih boleh mengandungi butiran yang berubah atau baru direka. Untuk demonstrasi produk, gunakan rupa produk yang dimaksudkan sebagai kriteria semakan, bukannya memilih versi hanya kerana teksturnya lebih rumit.\n\nPrompt pilihan menerangkan kandungan klip untuk membimbing penambahbaikan; penerangan kosong meminta pembesaran neutral. Taklimat adegan janaan asal boleh mengenal pasti dinding batu berlumut, cahaya siang lembut dan tekstur daun halus. Kekalkan susunan kata tentang bahan yang patut diperhalus. Permintaan untuk menggantikan objek, membina semula latar atau mengubah dialog ialah keputusan penyuntingan, manakala profil ini mengekalkan trek audio sumber.\n\n### Skala dan keluasan bingkai output\n\nupscale_factor yang didokumentasikan berjulat daripada 1.5 hingga 3, dengan 2 sebagai lalai. Ia membesarkan resolusi sumber sambil mengekalkan nisbah aspek. Faktor terpilih dan dimensi input menentukan output yang dimaksudkan, jadi klip landskap dan komposisi potret perlu dirancang berdasarkan bingkai sebenar. Sediakan saiz paparan sasaran sebelum memilih jumlah pembesaran yang berguna.\n\nSpesifikasi tepat mengehadkan setiap bingkai output kepada 13.75 unit megapiksel pengeluar. Dokumentasinya mentakrifkan satu unit tersebut sebagai 1,048,576 piksel, memberikan had 14,417,920 piksel, iaitu kira-kira 14.4 juta. Itu menjelaskan ungkapan 14.4 megapiksel yang dibundarkan dalam panduan. Oleh itu, sumber besar mungkin menerima pembesaran kurang daripada faktor yang diminta. Periksa dimensi yang dihantar, bukannya menganggap permintaan 3× sentiasa menghasilkan tiga kali setiap dimensi sumber.\n\nHad resolusi sumber yang diterbitkan ialah 2560×1440. Aliran kerja ini meningkatkan sumber yang layak ke arah 4K dan seterusnya; ia tidak menerima sumber yang sudah lebih besar hanya kerana output lebih tinggi dikehendaki. Kecilkan atau sediakan salinan kerja yang sesuai sebelum menggunakan profil yang didokumentasikan itu. Simpan rakaman asal secara berasingan supaya perbandingan akhir tidak terhad kepada perantaraan yang telah diubah saiz.\n\n### Sediakan sumber pendek yang mudah ditafsirkan\n\nPanduan persediaan biasa pembuat mengehadkan sumber kepada dua puluh saat dan lima puluh MB. Klip dibekalkan melalui URL video atau MP4 terenkod. Rujukan tepatnya menyatakan pemprosesan merangkumi dua puluh saat pertama: sedikit lebihan tempoh mungkin hanya diproses hingga tanda itu, manakala klip yang jauh lebih panjang ditolak. Tiada toleransi angka diterbitkan. Pangkas kepada segmen dua puluh saat atau lebih pendek yang dimaksudkan, bukannya bergantung pada tingkah laku sempadan yang tidak dinyatakan itu.\n\nPilih versi dengan pemampatan paling sedikit yang tersedia. Artifak pemampatan mengehadkan jumlah butiran sebenar yang boleh dipulihkan oleh pembesar, dan penambahbaikan kreatif boleh menghasilkan tekstur munasabah tanpa membuktikan kandungan adegan asal. Selesaikan suntingan dan pemangkasan yang dimaksudkan sebelum membesarkan klip terpilih. Aliran kerja asal boleh bermula dengan menyiapkan syot produk, memilih sela tindakan berguna dan kemudian membesarkan pilihan akhir itu sambil mengekalkan sumber yang tidak diubah untuk perbandingan.\n\nHasil mengekalkan trek audio sumber. Periksa pemasaannya dengan gambar, khususnya pada awal dan akhir segmen terpilih. Profil yang didokumentasikan tidak menyediakan pemilih kadar bingkai berasingan, penjanaan dialog baharu atau kawalan penyuntingan rujukan imej. Tujuannya ialah video lebih besar dan olahan butiran terpilih, dengan bahan masa dan bunyi sumber dikekalkan dalam segmen yang diproses.\n\n### Simpan dan periksa klip yang dihantar\n\nAliran kerja pengeluar adalah tak segerak: tugas yang dihantar membekalkan identiti dan lokasi status, dan hasil yang lengkap mengandungi pautan penghantaran MP4 bertandatangan. Pautan itu luput selepas kira-kira satu jam. Simpan klip sebenar, sumber, faktor terpilih, mod kreativiti dan penerangan kandungan, bukannya bergantung pada lokasi sementara. Bezakan status gagal atau disekat moderasi daripada video yang lengkap.\n\nSemak bingkai individu untuk wajah, tanda dan perubahan permukaan, kemudian tonton urutan untuk kesinambungan, gerakan dan penjajaran audio. Output tepat dan kreatif memenuhi keperluan visual berbeza; artifak berguna ialah klip dibesarkan yang memenuhi matlamat kesetiaan terpilih pada saiz paparan yang dimaksudkan. Resolusi lebih besar sahaja bukan bukti bahawa identiti asal, perkataan atau butiran halus kekal betul.",
    "alias_of": null,
    "aliases": [],
    "author": "Black Forest Labs",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "video"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.15",
            "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.15",
            "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": "Maklumat lengkap tentang harga konfigurasi terdapat dalam butiran."
      }
    ],
    "ctx": null,
    "formats": [
      "videos"
    ],
    "id": "black-forest-labs/flux-video-upscale",
    "input": [
      "text",
      "image",
      "audio",
      "video"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Kadar yang dipaparkan menganggarkan kos sebelum penjanaan. Caj akhir dikira berdasarkan kos yang direkodkan untuk penjanaan asal. Tempoh output yang diukur dan kuantiti ramalan bukan kuantiti akhir yang boleh dibilkan.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual zero-based output index from completed manifest"
                  }
                }
              ],
              "creation_id_field": "id",
              "media_library": {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              "mode": "asynchronous_job_then_owned_outputs",
              "operation_id_is_not_task_id": true,
              "output_content_response": "owned MP4 bytes with Range support",
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned id or polling_url",
                  "path": "/v1/videos/{request_id}"
                }
              ],
              "unknown": "Simpan X-Client-Request-ID, X-Ailoot-Task-Id dan id/polling_url sebenar yang dikembalikan. Teruskan tugas asal; jangan hantar permintaan penciptaan sekali lagi."
            },
            "outputs": {
              "all_results": "Simpan respons dan pengepala yang lengkap, setiap output sebenar, pengecam asal yang dikembalikan serta semua medan penggunaan. Pulihkan operasi asal tanpa menghantar permintaan penciptaan sekali lagi.",
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": null
                },
                {
                  "description": null,
                  "name": "status",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[]",
                  "type": null
                },
                {
                  "description": null,
                  "name": "outputs[]",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "black-forest-labs/flux-video-upscale"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "type": {
                      "const": "video_url"
                    },
                    "video_url": {
                      "additionalProperties": false,
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "type": "object"
                    }
                  },
                  "required": [
                    "type",
                    "video_url"
                  ],
                  "type": "object"
                },
                "maximum_items": 1,
                "minimum_items": 1,
                "name": "input_references",
                "required": true,
                "type": "array"
              },
              {
                "maximum": 3,
                "minimum": 1.5,
                "name": "upscale_factor",
                "required": true,
                "type": "number"
              },
              {
                "enum": [
                  0,
                  1
                ],
                "enum_known": true,
                "name": "creativity",
                "required": true,
                "type": "integer"
              }
            ],
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "creativity": {
                  "enum": [
                    0,
                    1
                  ],
                  "type": "integer"
                },
                "input_references": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "type": {
                        "const": "video_url"
                      },
                      "video_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      }
                    },
                    "required": [
                      "type",
                      "video_url"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "black-forest-labs/flux-video-upscale"
                  ],
                  "type": "string"
                },
                "upscale_factor": {
                  "maximum": 3,
                  "minimum": 1.5,
                  "type": "number"
                }
              },
              "required": [
                "model",
                "input_references",
                "upscale_factor",
                "creativity"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "creativity": "${ACTUAL_CREATIVITY}",
                "input_references": "${ACTUAL_OWNED_INPUT_REFERENCES}",
                "model": "black-forest-labs/flux-video-upscale",
                "upscale_factor": "${ACTUAL_UPSCALE_FACTOR}"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Gunakan tepat satu URL kandungan aset video siap sebenar milik anda dengan tandatangan yang dikembalikan. Pemilik aset, jenis dan bukti bait yang disimpan mesti sepadan dengan permintaan."
            ],
            "material_types": [
              "text",
              "image",
              "audio",
              "video"
            ],
            "required": [
              "model",
              "input_references",
              "upscale_factor",
              "creativity"
            ]
          },
          "lifecycle": {
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual zero-based output index from completed manifest"
                }
              }
            ],
            "creation_id_field": "id",
            "media_library": {
              "http": "GET",
              "path": "/v1/media/assets"
            },
            "mode": "asynchronous_job_then_owned_outputs",
            "operation_id_is_not_task_id": true,
            "output_content_response": "owned MP4 bytes with Range support",
            "status": [
              {
                "http": "GET",
                "id_source": "id atau polling_url sebenar yang dikembalikan",
                "path": "/v1/videos/{request_id}"
              }
            ],
            "unknown": "Keep X-Client-Request-ID, X-Ailoot-Task-Id and actual returned id/polling_url. Continue the original job; do not submit creation again."
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "video",
            "fields": [
              {
                "description": null,
                "name": "id",
                "type": null
              },
              {
                "description": null,
                "name": "status",
                "type": null
              },
              {
                "description": null,
                "name": "data[]",
                "type": null
              },
              {
                "description": null,
                "name": "outputs[]",
                "type": null
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "kualiti: creative",
              "pixels_per_megapixel": 1048576,
              "quoted_unit": "per megapixel-second"
            },
            "label": "Harga video",
            "units": [
              {
                "amount": "0.21",
                "amount_unit": "usd_per_megapixel_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_megapixel_second_creative",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.21",
                "native_quantity": 1,
                "public_unit_label": "per megapixel-second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "megapixel_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "quality: precise",
              "pixels_per_megapixel": 1048576,
              "quoted_unit": "per megapixel-second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.15",
                "amount_unit": "usd_per_megapixel_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_megapixel_second_precise",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.15",
                "native_quantity": 1,
                "public_unit_label": "per megapixel-second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "megapixel_second"
              }
            ]
          },
          {
            "basis": "Anggaran ini bukan caj tambahan atau kadar tetap bagi penjanaan yang telah selesai.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Anggaran kos penjanaan",
            "units": [
              {
                "amount": "0.15",
                "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.15",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_INPUT_REFERENCES_JSON:?Set the actual documented input value}\"\nexport AILOOT_INPUT_REFERENCES_JSON\n: \"${AILOOT_UPSCALE_FACTOR:?Set the actual documented input value}\"\nexport AILOOT_UPSCALE_FACTOR\n: \"${AILOOT_CREATIVITY:?Set the actual documented input value}\"\nexport AILOOT_CREATIVITY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'black-forest-labs/flux-video-upscale', 'input_references': '${ACTUAL_OWNED_INPUT_REFERENCES}', 'upscale_factor': '${ACTUAL_UPSCALE_FACTOR}', 'creativity': '${ACTUAL_CREATIVITY}'}\nrequest['input_references']=json.loads(os.environ['AILOOT_INPUT_REFERENCES_JSON'])\nrequest['upscale_factor']=float(os.environ['AILOOT_UPSCALE_FACTOR'])\nrequest['creativity']=int(os.environ['AILOOT_CREATIVITY'])\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n",
            "label": "Use actual input and retain the complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}\"\nexport AILOOT_STATUS_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nfrom urllib.parse import urlsplit,urljoin\nf=Path(os.environ[\"AILOOT_STATUS_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose the actual completed status file\")\nr=json.loads(f.read_text())\nif r.get(\"status\")!=\"completed\" or not isinstance(r.get(\"data\"),list) or not r[\"data\"]:raise SystemExit(\"Wait for a completed status with asset paths\")\nurls=[]\nfor x in r[\"data\"]:\n    if not isinstance(x,str) or \"\\n\" in x or \"\\r\" in x:raise SystemExit(\"Invalid asset path\")\n    u=urljoin(\"https://api.ailoot.ai\",x)\n    z=urlsplit(u)\n    if z.scheme!=\"https\" or z.netloc!=\"api.ailoot.ai\" or z.username or z.password:raise SystemExit(\"Use the actual Ailoot asset paths from status\")\n    urls.append(u)\nPath(\"asset-urls.txt\").write_text(\"\\n\".join(urls)+\"\\n\")\nPY_REQUEST\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error \"$asset_url\" \\\n    -H \"Authorization: Bearer $AILOOT_API_KEY\" -o \"video-${index}.mp4\"\n  index=$((index + 1))\ndone < asset-urls.txt\n",
            "label": "GET all completed assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "audio",
          "video"
        ],
        "label": "Penjanaan video",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "videos",
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "quality: creative",
              "pixels_per_megapixel": 1048576,
              "quoted_unit": "per megapixel-second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.21",
                "amount_unit": "usd_per_megapixel_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_megapixel_second_creative",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.21",
                "native_quantity": 1,
                "public_unit_label": "per megapixel-second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "megapixel_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "quality: precise",
              "pixels_per_megapixel": 1048576,
              "quoted_unit": "per megapixel-second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.15",
                "amount_unit": "usd_per_megapixel_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_megapixel_second_precise",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.15",
                "native_quantity": 1,
                "public_unit_label": "per megapixel-second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "megapixel_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.15",
                "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.15",
                "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": "black-forest-labs/flux-video-upscale",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.21",
            "amount_unit": "usd_per_megapixel_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_megapixel_second_creative",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.21",
            "native_quantity": 1,
            "public_unit_label": "per megapixel-second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "megapixel_second"
          },
          {
            "amount": "0.15",
            "amount_unit": "usd_per_megapixel_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_megapixel_second_precise",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.15",
            "native_quantity": 1,
            "public_unit_label": "per megapixel-second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "megapixel_second"
          },
          {
            "amount": "0.15",
            "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.15",
            "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": "black-forest-labs/flux-video-upscale",
        "request_model_id": "black-forest-labs/flux-video-upscale",
        "route_label": "Ultra"
      }
    ],
    "name": "Black Forest Labs: FLUX Video Upscale",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.15,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.15,
      "varies": false
    },
    "short": "FLUX Video Upscale membesarkan klip sedia ada melalui penambahbaikan butiran yang setia kepada sumber atau secara kreatif. Profil yang didokumentasikan menawarkan penskalaan 1.5×–3×, mengekalkan audio dan pembingkaian sumber, serta mengehadkan panjang sumber, resolusi input dan keluasan bingkai output."
  },
  "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": "FLUX Video Upscale membesarkan klip sedia ada melalui penambahbaikan butiran yang setia kepada sumber atau secara kreatif. Profil yang didokumentasikan menawarkan penskalaan 1.5×–3×, mengekalkan audio dan pembingkaian sumber, serta mengehadkan panjang sumber, resolusi input dan keluasan bingkai output.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "3eed4805d6cd1f6656769c09e0ae88a3564a72a4fabf42658b2932336e3dba5b",
    "renderer_sha256": "1dab5ba62521e9568c8b7c82005622cabbf330a075df7cce1f83274a04009460"
  },
  "sourceRevision": "14ad541676b9581b67c8efe5b0c4e52ab68e39317701aba609f514e770aed59e"
}
