model

Recraft: Recraft V4 Pro

Markdown · JSON

Recraft: Recraft V4 Pro

Recraft V4 Pro menjana imej raster 2K untuk komposisi terperinci, fotorealisme, ilustrasi dan kerja kreatif berorientasikan cetakan. Ia ialah edisi V4 resolusi lebih tinggi, dengan arahan teks, input gaya pilihan dan aliran imej-ke-imej berasingan.

Tentang model

Huraian ini merangkumi keupayaan model. Input, output dan pilihan yang tersedia di Ailoot disenaraikan di bawah untuk kaedah yang dipilih.

Recraft V4 Pro ialah model raster resolusi lebih tinggi dalam keluarga V4 Recraft. V4 berfokus pada pertimbangan visual, komposisi seimbang, warna padu dan tafsiran arah kreatif secara teliti. Pengeluar meletakkan Pro untuk butiran lebih halus, adegan kompleks lebih realistik dan visual produksi besar. Gunakannya untuk ilustrasi terperinci, imej editorial, konsep poster atau aset lain yang mendapat manfaat daripada hasil raster lebih besar. Ia kekal berasingan daripada model V4.1 kemudian dan output SVG V4 Pro Vector.

Kod tepat pengeluar ialah recraftv4_pro. Output yang didokumenkan ialah raster 2K dalam WebP tanpa kehilangan atau PNG: 2048 × 2048 piksel untuk segi empat sama, 2688 × 1536 untuk 16:9 dan 1664 × 2560 untuk 2:3. Nisbah disokong lain mempunyai dimensi sendiri. Pilih nisbah bidang mengikut susun atur dimaksudkan atau saiz tepat dibenarkan; saiz piksel sewenang-wenangnya bukan sebahagian kontrak penjanaan yang didokumenkan. V4 standard mempunyai output raster 1K lebih kecil, sementara model vektor tiada resolusi piksel tetap.

V4 boleh mentafsir prompt ringkas untuk penerokaan atau prompt berstruktur untuk hasil terkawal. Untuk arah seni khusus, panduan pengeluar bergerak daripada subjek dan persekitaran kepada pembingkaian, atribut, hubungan ruang, pencahayaan, kedalaman dan suasana. Untuk imej produk editorial, minta foto menegak dramatik kerusi berbentuk arca, permukaan logam dengan kemasan berus, cahaya sisi, latar belakang gelap tenang dan ruang di atas objek untuk tajuk. Menamakan hubungan ini menjelaskan komposisi dimaksudkan berbanding permintaan umum imej premium.

Julat kreatif keluarga merangkumi ilustrasi naratif, adegan fotorealistik dan visual berdimensi dengan petunjuk bahan serta pencahayaan. Hasil kelihatan 3D masih imej, bukan adegan 3D boleh sunting. Untuk poster grafik, tetapkan lapisan visual dan interaksinya: latar belakang, ilustrasi atau foto, hierarki tajuk serta teks sokongan. V4 diposisikan untuk frasa pendek dan sederhana yang boleh dibaca, tetapi ejaan serta hierarki siap perlu diperiksa tanpa disimpulkan daripada nama model.

Rujukan penjanaan semasa membenarkan prompt sehingga 10,000 aksara, satu hingga enam output, seed rawak serta kawalan warna pilihan dan warna latar belakang. Gaya tersuai pilihan atau imej rujukan serasi boleh memandu rupa dengan padanan fleksibel atau tepat. Model tidak menerima kawalan V3 lama negative_prompt, gaya yang dikurasi, text_layout, artistic_level atau no_text. Huraikan imej akhir dimaksudkan dalam prompt positif dan nyatakan keperluan subjek, susun atur serta warna secara eksplisit. Untuk penjanaan gaya rujukan, gunakan satu hingga sepuluh imej PNG, JPG atau WebP, jumlah tidak melebihi 64 MB dan setiap satu di bawah 20 MB. Setiap rujukan memerlukan sisi terpendek sekurang-kurangnya 256 piksel, sisi terpanjang tidak melebihi 4,096 piksel dan resolusi tidak melebihi 16 megapiksel. Gunakan sama ada rujukan ini atau gaya tersimpan serasi, bukan kedua-duanya.

Recraft mendokumenkan operasi imej-ke-imej berasingan untuk V4. Ia menggabungkan imej sedia ada dan prompt dengan kekuatan 0 hingga 1 untuk mengawal tahap perubahan, dan tidak menerima kawalan gaya tersuai V4 dalam operasi itu. Sediakan sumber dalam had input imej pengeluar dan nyatakan atribut yang perlu diteruskan ke hasil baharu. Untuk aset akhir lebih besar, semak butiran halus, pemotongan dan tulisan pada saiz dimaksudkan. Perincian raster tambahan Pro menyokong pemeriksaan itu, sementara imej kekal tafsiran terjana bagi arahan kreatif yang diberikan. Untuk imej-ke-imej, berikan PNG, JPG, WebP atau SVG di bawah 20 MB, tidak melebihi 16 megapiksel, dengan kedua-dua sisi antara 256 dan 4,096 piksel.

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

recraft/recraft-v4-pro

Recraft /recraft/recraft-v4-pro

Pengenalan

Recraft V4 Pro menjana imej raster 2K untuk komposisi terperinci, fotorealisme, ilustrasi dan kerja kreatif berorientasikan cetakan. Ia ialah edisi V4 resolusi lebih tinggi, dengan arahan teks, input gaya pilihan dan aliran imej-ke-imej berasingan.

Input yang diterima
Teks · Imej
Hasil
Imej

Tersedia di Ailoot · input & kaedah

Ailoot Ultra · Imej POST /v1/images/generations
Input
text, image
Output
image
Format output
Fail imej
MedanJenisKeperluanNilai & hadLalai
MedanmodelJenisstringKeperluanDiperlukanNilai & had
recraft/recraft-v4-pro
Lalai—
MedanpromptJenisstringKeperluanDiperlukanNilai & had
Panjang minimum: 1
Lalai—
MedannJenisintegerKeperluanPilihanNilai & had
Minimum: 1
Maksimum: 6
Lalai—
Medanaspect_ratioJenisstringKeperluanPilihanNilai & had
1:1, 4:3, 3:4, 16:9, 9:16, auto
Lalai—
Medaninput_referencesJenisarrayKeperluanPilihanNilai & had
Item minimum: 0
Item maksimum: 1
Lalai—
Gabungan bahan input

Teks kepada imej · Diperlukan: prompt

Parameter kaedah dan kitar hayat
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 rujukan imej sebenar pelanggan; syarat titik akhir pembekal mengawalnya.

Alias kaedah: /v1/images

Kitar hayat: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · task_id sebenar yang dikembalikan atau rekod pustaka media

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

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Gunakan model yang tepat dan medan input yang didokumenkan.

Simpan respons lengkap, setiap output sebenar dan ID asal yang dikembalikan.

Pelan harga

Cara caj akhir dikira

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.

Rujukan tarif tidak menambah pilihan permintaan. Parameter yang disokong disenaraikan untuk kaedah yang dipilih.

Mod pantas
Tidak dinyatakan Apabila mod pantas dipilih
Mod flex
Tidak dinyatakan Apabila mod flex dipilih
Usaha penaakulan maksimum
Tidak dinyatakan Apabila usaha penaakulan maksimum menggunakan pelarasan default

Anggaran kadar untuk perbandingan

Harga mengikut konfigurasi

Padankan setiap caj dengan syarat yang dipaparkan. Gunakan satu kadar bagi setiap set konfigurasi alternatif.

KonfigurasiJadual kadarKuantiti ramalanUnit pengebilanCaj
KonfigurasiKadar asas tokenJadual kadarKadar asasKuantiti ramalan—Unit pengebilan—Caj
Input · Token input · Anggaran untuk perbandingan sahaja — / 1K token
Output · Token output · Anggaran untuk perbandingan sahaja — / 1K token
Input · Bacaan cache · Anggaran untuk perbandingan sahaja — / 1K token
Input · Penulisan cache · Anggaran untuk perbandingan sahaja — / 1K token
Input · Penulisan cache, 1 jam · Anggaran untuk perbandingan sahaja — / 1K token
KonfigurasiUltraJadual kadar—Kuantiti ramalan—Unit pengebilanbagi setiap imej keluaranCaj
Output · keluaran imej · Anggaran untuk perbandingan sahaja $0.5 bagi setiap imej keluaran
KonfigurasiAnggaran kos penjanaanJadual kadar—Kuantiti ramalananggaran untuk satu penjanaanUnit pengebilan—Caj
Output · Anggaran kos penjanaan · Anggaran untuk perbandingan sahaja $0.5 anggaran sebelum penjanaan

Anggaran ini bukan caj tambahan atau kadar tetap bagi penjanaan yang telah selesai.

Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. Cara rizab dan penyelesaian caj berfungsi →

Butiran tarif rujukan

Jadual rujukan peringkat model tidak mengubah pemilihan kaedah, sebut harga atau caj. Caj aktif menggunakan kadar kaedah Ailoot yang dipilih.

Konfigurasi harga imej

Harga mengikut konfigurasi

KonfigurasiSyarat pengebilanCaj
KonfigurasiImej outputSyarat pengebilanTiada varian harga diisytiharkan.Caj
Output · Imej keluaran $0.5 bagi setiap imej

Penyenaraian setara menerangkan caj yang sama; ia tidak menambah fi kedua.

Contoh permintaan

Ailoot Ultra · Imej

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 · Imej

Muat turun setiap imej yang dikembalikan atau simpan kandungan 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 imej yang selesai; dapatkan setiap URL yang dikembalikan atau nyahkod kandungan Base64-nya.

Simpan setiap item data dan penggunaan lengkap; ambil pemilikan dan simpan semua imej sebenar yang dikembalikan. Jangan mereka-reka URL atau ID.

Jika respons asal perlu disemak

Jika hasil penjanaan atau penyuntingan imej memerlukan semakan, simpan operation_id/X-Client-Request-ID asal serta maklumat hasil yang dikembalikan. Pulihkan hasil sedia ada milik anda melalui pustaka media menggunakan nilai task_id atau asset_id sebenar. Jangan hantar semula permintaan penjanaan/penyuntingan atau bina URL tinjauan status daripada operation_id.

Medan respons
MedanJenis
MedancreatedJenisinteger
Medandata[].urlJenisstring
Medandata[].b64_jsonJenisbase64 string
MedanusageJenisobject

Alias

Alias model

Ailoot Ultra recraft/recraft-v4-pro

Alias laluan kaedah

/v1/images

ID pemanggil berkaitan

recraft/recraft-v4-pro

FAQ · Recraft: Recraft V4 Pro
Apakah input dan hasil yang tersedia?

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

Apakah medan yang digunakan oleh permintaan?

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

Apakah had yang terpakai?

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

Butiran lanjut

Sambungkan Ailoot kepada Claude Code, OpenCode, Hermes atau aplikasi anda.

Syarikat dan portfolio projeknya

Syarikat dan portfolio projeknya: jutaan pelanggan; jualan bernilai berbilion setiap bulan.

Beli token dengan diskaun.

Diskaun langganan untuk penggunaan berkala. Kod promosi — sehingga 50% bagi pembelian token.

Langganan
Pilih pelan berdiskaun untuk permintaan berkala anda.
Kod promosi sehingga 50%
Masukkan kod semasa pembelian. Harga dikira semula mengikut promosi semasa.
Perbelanjaan dalam sejarah
Model, token dan jumlah disimpan bagi setiap permintaan.

Pilih langganan · Lihat harga model

Sambungkan API kepada produk yang anda jual.

SaaS, aplikasi dan bot — di bawah tawaran rasmi serta perjanjian lesen Ailoot. Untuk jualan semula, mohon lesen penjual semula.

Aplikasi komersial
Tambahkan penjanaan teks, imej, video dan audio pada ciri berbayar perkhidmatan anda.
Lesen penjual semula
Hantar keterangan projek dan susunan akses. Minta terma penggunaan serta jualan semula secara bertulis.
Dokumen pada laman
Tawaran, perjanjian lesen dan dasar pemprosesan data tersedia sebelum sambungan.

Mohon lesen penjual semula · Tawaran dan perjanjian lesen