model

Recraft: Recraft V4 Pro

Markdown · JSON

Recraft: Recraft V4 Pro

Recraft V4 Pro menghasilkan gambar raster 2K untuk komposisi terperinci, fotorealisme, ilustrasi, dan pekerjaan kreatif berorientasi cetak. Ini adalah edisi V4 beresolusi lebih tinggi, dengan brief teks, masukan gaya opsional, dan alur gambar ke gambar terpisah.

Tentang model

Deskripsi ini mencakup kemampuan model. Masukan, keluaran, dan opsi yang tersedia di Ailoot tercantum di bawah untuk metode yang dipilih.

Recraft V4 Pro adalah model raster beresolusi lebih tinggi dalam keluarga V4 Recraft. V4 berfokus pada pertimbangan visual, komposisi seimbang, warna padu, dan penafsiran arahan kreatif secara cermat. Produsen menempatkan Pro untuk detail lebih halus, adegan kompleks lebih realistis, serta visual produksi besar. Gunakan untuk ilustrasi terperinci, gambar editorial, konsep poster, atau aset lain yang diuntungkan oleh hasil raster lebih besar. Model tetap terpisah dari model V4.1 yang lebih baru dan keluaran SVG V4 Pro Vector.

Kode produsen yang tepat adalah recraftv4_pro. Keluaran terdokumentasi berupa raster 2K dalam WebP lossless atau PNG: 2048 × 2048 piksel untuk persegi, 2688 × 1536 untuk 16:9, dan 1664 × 2560 untuk 2:3. Rasio lain yang didukung memiliki dimensi masing-masing. Pilih rasio aspek untuk tata letak yang dimaksud atau ukuran tepat yang diizinkan; ukuran piksel sembarang bukan bagian kontrak generasi terdokumentasi. V4 standar memiliki keluaran raster 1K lebih kecil, sementara model vektor tidak memiliki resolusi piksel tetap.

V4 dapat menafsirkan prompt pendek untuk eksplorasi atau prompt terstruktur untuk hasil terkendali. Untuk arahan seni tertentu, panduan produsen bergerak dari subjek dan lingkungan menuju pembingkaian, atribut, hubungan ruang, pencahayaan, kedalaman, serta suasana. Untuk gambar produk editorial, minta foto vertikal dramatis kursi skulptural, permukaan logam bertekstur sikat, cahaya samping, latar gelap tenang, dan ruang di atas objek bagi judul. Menyebut hubungan itu memperjelas komposisi yang dimaksud dibanding permintaan umum gambar premium.

Jangkauan kreatif keluarga mencakup ilustrasi naratif, adegan fotorealistis, serta visual berdimensi dengan petunjuk material dan pencahayaan. Hasil tampak 3D tetap berupa gambar, bukan adegan 3D yang dapat diedit. Untuk poster grafis, tentukan lapisan visual dan interaksinya: latar, ilustrasi atau foto, hierarki judul, serta teks pendukung. V4 ditujukan untuk frasa pendek dan menengah yang terbaca, tetapi ejaan serta hierarki selesai harus diperiksa, alih-alih disimpulkan dari nama model.

Referensi generasi saat ini mengizinkan prompt hingga 10.000 karakter, satu hingga enam keluaran, seed acak, serta kendali warna pilihan dan warna latar. Gaya khusus opsional atau gambar referensi kompatibel dapat memandu tampilan dengan pencocokan fleksibel atau presisi. Model tidak menerima kendali V3 lama negative_prompt, gaya kurasi, text_layout, artistic_level, atau no_text. Jelaskan gambar akhir yang dimaksud dalam prompt positif dan nyatakan persyaratan subjek, tata letak, serta warna secara eksplisit. Untuk generasi bergaya referensi, gunakan satu hingga sepuluh gambar PNG, JPG, atau WebP, total tidak lebih dari 64 MB dan masing-masing di bawah 20 MB. Setiap referensi memerlukan sisi terpendek minimal 256 piksel, sisi terpanjang maksimal 4.096 piksel, dan resolusi maksimal 16 megapiksel. Gunakan referensi ini atau gaya tersimpan kompatibel, bukan keduanya.

Recraft mendokumentasikan operasi gambar ke gambar terpisah untuk V4. Operasi menggabungkan gambar yang sudah ada dan prompt dengan strength 0 hingga 1 untuk mengendalikan tingkat perubahan, serta tidak menerima kendali gaya khusus V4 dalam operasi itu. Siapkan sumber dalam batas masukan gambar produsen dan nyatakan atribut yang harus terbawa ke hasil baru. Untuk aset akhir lebih besar, periksa detail halus, potongan, dan huruf pada ukuran yang dimaksud. Detail raster tambahan Pro mendukung pemeriksaan itu, sementara gambar tetap merupakan penafsiran hasil generasi atas brief kreatif yang diberikan. Untuk gambar ke gambar, berikan PNG, JPG, WebP, atau SVG di bawah 20 MB, maksimal 16 megapiksel, dengan kedua sisi antara 256 dan 4.096 piksel.

Ailoot Ultra · Gambar POST /v1/images/generations recraft/recraft-v4-pro

recraft/recraft-v4-pro

Recraft /recraft/recraft-v4-pro

Mulai

Recraft V4 Pro menghasilkan gambar raster 2K untuk komposisi terperinci, fotorealisme, ilustrasi, dan pekerjaan kreatif berorientasi cetak. Ini adalah edisi V4 beresolusi lebih tinggi, dengan brief teks, masukan gaya opsional, dan alur gambar ke gambar terpisah.

Masukan yang diterima
Teks · Gambar
Hasil
Gambar

Tersedia di Ailoot · masukan & metode

Ailoot Ultra · Gambar POST /v1/images/generations
Masukan
text, image
Keluaran
image
Format keluaran
Berkas gambar
KolomJenisPersyaratanNilai & batasanBawaan
KolommodelJenisstringPersyaratanWajibNilai & batasan
recraft/recraft-v4-pro
Bawaan—
KolompromptJenisstringPersyaratanWajibNilai & batasan
Panjang minimum: 1
Bawaan—
KolomnJenisintegerPersyaratanOpsionalNilai & batasan
Minimum: 1
Maksimum: 6
Bawaan—
Kolomaspect_ratioJenisstringPersyaratanOpsionalNilai & batasan
1:1, 4:3, 3:4, 16:9, 9:16, auto
Bawaan—
Kolominput_referencesJenisarrayPersyaratanOpsionalNilai & batasan
Item minimum: 0
Item maksimum: 1
Bawaan—
Kombinasi bahan masukan

Teks ke gambar · Wajib: prompt

Parameter metode dan siklus hidup
ParameterKontrak
Parametercontent_typeKontrakapplication/json
ParameterrequiredKontrakmodel, prompt
Parametermaterial_typesKontraktext, image
Parameteroptional_controlsKontrakaspect_ratio, n, input_references
Parameterexact_supported_parametersKontrak{"aspect_ratio":{"type":"enum","values":["1:1","4:3","3:4","16:9","9:16","auto"]},"n":{"type":"range","min":1,"max":6},"input_references":{"type":"range","min":0,"max":1}}
Parameterreference_material_ruleKontrakHanya referensi gambar aktual pelanggan; ketentuan endpoint penyedia berlaku untuk referensi tersebut.

Alias metode: /v1/images

Siklus hidup: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · task_id aktual yang dikembalikan atau catatan pustaka media

GET /v1/media/assets/{asset_id}/content

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Gunakan model yang persis dan bidang masukan yang didokumentasikan.

Simpan respons secara utuh, setiap keluaran aktual, dan ID asli yang dikembalikan.

Paket

Cara menghitung biaya akhir

Tarif yang ditampilkan memperkirakan biaya sebelum pembuatan. Biaya akhir dihitung dari biaya yang tercatat untuk proses pembuatan awal. Durasi keluaran yang terukur dan kuantitas perkiraan bukanlah kuantitas akhir yang ditagihkan.

Referensi tarif tidak menambah opsi permintaan. Parameter yang didukung tercantum pada metode yang dipilih.

Mode Fast
Tidak ditentukan Saat mode fast dipilih
Mode Flex
Tidak ditentukan Saat mode flex dipilih
Upaya penalaran maksimum
Tidak ditentukan Saat upaya penalaran maksimum menggunakan penyesuaian default

Perkiraan tarif untuk perbandingan

Harga menurut konfigurasi

Cocokkan setiap biaya dengan kondisi yang ditampilkan. Gunakan satu tarif untuk setiap kelompok konfigurasi alternatif.

KonfigurasiJadwal tarifJumlah perkiraanSatuan penagihanBiaya
KonfigurasiTarif dasar tokenJadwal tarifTarif dasarJumlah perkiraan—Satuan penagihan—Biaya
Masukan · Token masukan · Perkiraan hanya untuk perbandingan — / 1K token
Keluaran · Token keluaran · Perkiraan hanya untuk perbandingan — / 1K token
Masukan · Pembacaan cache · Perkiraan hanya untuk perbandingan — / 1K token
Masukan · Penulisan cache · Perkiraan hanya untuk perbandingan — / 1K token
Masukan · Penulisan cache, 1 jam · Perkiraan hanya untuk perbandingan — / 1K token
KonfigurasiUltraJadwal tarif—Jumlah perkiraan—Satuan penagihanper gambar keluaranBiaya
Keluaran · keluaran gambar · Perkiraan hanya untuk perbandingan $0.5 per gambar keluaran
KonfigurasiPerkiraan biaya pembuatanJadwal tarif—Jumlah perkiraanestimasi satu kali pembuatanSatuan penagihan—Biaya
Keluaran · Perkiraan biaya pembuatan · Perkiraan hanya untuk perbandingan $0.5 estimasi sebelum pembuatan

Perkiraan ini bukan biaya tambahan maupun tarif tetap untuk proses pembuatan yang telah selesai.

Ailoot mencadangkan perkiraan dana sebelum permintaan. Setelah hasil diterima, tagihan akhir diselesaikan berdasarkan penggunaan yang terukur. Penyelesaian tagihan streaming menggunakan catatan penggunaan akhir. Cara kerja cadangan dan penyelesaian tagihan →

Detail tarif referensi

Jadwal referensi tingkat model tidak mengubah pemilihan metode, estimasi harga, atau biaya. Biaya aktif menggunakan tarif metode Ailoot yang dipilih.

Konfigurasi harga gambar

Harga menurut konfigurasi

KonfigurasiKondisi penagihanBiaya
KonfigurasiGambar keluaranKondisi penagihanTidak ada varian harga yang dideklarasikan.Biaya
Keluaran · Gambar keluaran $0.5 per gambar

Daftar yang setara menjelaskan tagihan yang sama; tidak menambahkan biaya kedua.

Contoh permintaan

Ailoot Ultra · Gambar

curlPython SDKNode.js SDK
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p={'model': 'recraft/recraft-v4-pro', 'prompt': 'a red panda astronaut floating in space, studio lighting'}

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT
from openai import OpenAI
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")

request={'model': 'recraft/recraft-v4-pro', 'prompt': 'a red panda astronaut floating in space, studio lighting'}
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.images.generate(**request)
Path("sdk-result.txt").write_text(str(result),encoding="utf-8")
save_images([{"b64_json":getattr(item,"b64_json",None),"url":getattr(item,"url",None)} for item in result.data])
import OpenAI from "openai";
import { readFileSync, writeFileSync } from "node:fs";
const key=process.env.AILOOT_API_KEY;
if(!key) throw new Error("Set your actual Ailoot API key");
const client=new OpenAI({baseURL:"https://api.ailoot.ai/v1",apiKey:key,maxRetries:0});
const request={"model": "recraft/recraft-v4-pro", "prompt": "a red panda astronaut floating in space, studio lighting"};
const result=await client.images.generate(request);
writeFileSync("sdk-result.json",JSON.stringify(result,null,2));
if(!result.data?.length) throw new Error("No completed images");
for(let index=0;index<result.data.length;index++) {
  const item=result.data[index];let encoded=item.b64_json,uri=item.url||"",raw;
  if(!encoded && uri.startsWith("data:image/")) {
    const comma=uri.indexOf(",");if(comma<0 || !uri.slice(0,comma).includes(";base64")) throw new Error("Unsupported image data URI");
    encoded=uri.slice(comma+1);
  }
  if(encoded) {
    if(encoded.length%4!==0 || !/^[A-Za-z0-9+/]*={0,2}$/.test(encoded)) throw new Error("Invalid Base64");
    raw=Buffer.from(encoded,"base64");
  } else if(uri) {
    const u=new URL(uri,"https://api.ailoot.ai");
    if(u.protocol!=="https:" || u.username || u.password) throw new Error("Invalid returned URL");
    const owned=u.origin==="https://api.ailoot.ai" && u.pathname.startsWith("/v1/media/assets/") && u.pathname.endsWith("/content");
    const response=await fetch(u,{headers:owned?{Authorization:"Bearer "+key}:{},redirect:"manual"});
    if(!response.ok) throw new Error("Image content download failed: "+response.status);
    raw=Buffer.from(await response.arrayBuffer());
  } else throw new Error("Image has neither bytes nor URL");
  if(!raw.length) throw new Error("Empty image result");
  const ext=raw.subarray(0,4).equals(Buffer.from([137,80,78,71]))?"png":raw[0]===255&&raw[1]===216?"jpg":raw.toString("ascii",0,4)==="RIFF"&&raw.toString("ascii",8,12)==="WEBP"?"webp":raw.toString("utf8").trimStart().startsWith("<svg")||raw.toString("utf8").trimStart().startsWith("<?xml")?"svg":"bin";
  writeFileSync(`image-${index}.${ext}`,raw);
}
console.log("Every returned image saved; sdk-result.json retains complete metadata");

Terima dan simpan hasil

Ailoot Ultra · Gambar

Unduh setiap gambar yang dikembalikan atau simpan konten Base64-nya

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Simpan semua hasil yang selesai

Simpan setiap gambar yang selesai; ambil setiap URL yang dikembalikan atau dekode konten Base64-nya.

Simpan setiap item data dan penggunaan secara utuh; ambil kepemilikan dan simpan semua gambar aktual yang dikembalikan. Tidak ada URL atau ID yang dibuat-buat.

Jika respons asli perlu diperiksa

Jika hasil pembuatan atau penyuntingan gambar perlu diperiksa, simpan operation_id/X-Client-Request-ID asli dan informasi hasil yang dikembalikan. Pulihkan hasil milik Anda yang sudah ada melalui pustaka media menggunakan nilai task_id atau asset_id aktual. Jangan mengirim ulang permintaan pembuatan/penyuntingan atau membuat URL polling dari operation_id.

Kolom respons
KolomJenis
KolomcreatedJenisinteger
Kolomdata[].urlJenisstring
Kolomdata[].b64_jsonJenisbase64 string
KolomusageJenisobject

Alias

Alias model

Ailoot Ultra recraft/recraft-v4-pro

Alias jalur metode

/v1/images

ID pemanggil terkait

recraft/recraft-v4-pro

FAQ · Recraft: Recraft V4 Pro
Input dan hasil apa yang tersedia?

POST /v1/images/generations · recraft/recraft-v4-pro: text, image → image

Kolom apa yang digunakan permintaan?

POST /v1/images/generations · recraft/recraft-v4-pro: model, prompt, n, aspect_ratio, input_references

Batasan apa yang berlaku?

POST /v1/images/generations · recraft/recraft-v4-pro: n.minimum: 1; n.maximum: 6

Rincian selengkapnya

Hubungkan Ailoot ke Claude Code, OpenCode, Hermes, atau aplikasi Anda.

Perusahaan dan portofolio proyeknya

Perusahaan dan portofolio proyeknya: jutaan pelanggan; penjualan miliaran setiap bulan.

Beli token dengan diskon.

Diskon langganan untuk pekerjaan rutin. Kode promo — hingga 50% untuk pembelian token.

Langganan
Pilih paket dengan diskon untuk permintaan rutin Anda.
Kode promo hingga 50%
Masukkan kode saat membeli. Harga dihitung ulang sesuai promosi aktif.
Biaya dalam riwayat
Model, token, dan jumlah tagihan disimpan untuk setiap permintaan.

Pilih langganan · Lihat harga model

Hubungkan API ke produk yang Anda jual.

SaaS, aplikasi, dan bot — sesuai penawaran dan perjanjian lisensi Ailoot. Untuk penjualan kembali, mintalah lisensi reseller.

Aplikasi komersial
Integrasikan pembuatan teks, gambar, video, dan suara dalam fitur berbayar layanan Anda.
Lisensi reseller
Kirim deskripsi proyek dan skema akses. Mintalah ketentuan penggunaan dan penjualan kembali secara tertulis.
Dokumen di situs
Penawaran, perjanjian lisensi, dan kebijakan pemrosesan data tersedia sebelum koneksi.

Minta lisensi reseller · Penawaran dan perjanjian lisensi