Source: https://ailoot.ai/models/ms/recraft-recraft-v4-pro/
Canonical: https://ailoot.ai/models/ms/recraft-recraft-v4-pro/
Language: ms

# Recraft: Recraft V4 Pro

[Markdown](https://ailoot.ai/models/ms/recraft-recraft-v4-pro/index.md) · [JSON](https://ailoot.ai/models/ms/recraft-recraft-v4-pro/facts.json)

## [Recraft: Recraft V4 Pro](https://ailoot.ai/models/ms/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.

- [**Ailoot Ultra · Imej** `POST /v1/images/generations` `recraft/recraft-v4-pro`](https://ailoot.ai/models/ms/recraft-recraft-v4-pro/#method-0)

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`](https://ailoot.ai/models/ms/#m=recraft%2Frecraft-v4-pro&route=Ultra&caller=recraft%2Frecraft-v4-pro&fmt=images)

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

| Medan | Jenis | Keperluan | Nilai & had | Lalai |
| --- | --- | --- | --- | --- |
| Medan`model` | Jenis`string` | KeperluanDiperlukan | Nilai & had recraft/recraft-v4-pro | Lalai— |
| Medan`prompt` | Jenis`string` | KeperluanDiperlukan | Nilai & had Panjang minimum: 1 | Lalai— |
| Medan`n` | Jenis`integer` | KeperluanPilihan | Nilai & had Minimum: 1 Maksimum: 6 | Lalai— |
| Medan`aspect_ratio` | Jenis`string` | KeperluanPilihan | Nilai & had 1:1, 4:3, 3:4, 16:9, 9:16, auto | Lalai— |
| Medan`input_references` | Jenis`array` | KeperluanPilihan | Nilai & had Item minimum: 0 Item maksimum: 1 | Lalai— |

Gabungan bahan input

**Teks kepada imej** · Diperlukan: prompt

Parameter kaedah dan kitar hayat

| Parameter | Kontrak |
| --- | --- |
| Parameter`content_type` | Kontrakapplication/json |
| Parameter`required` | Kontrakmodel, prompt |
| Parameter`material_types` | Kontraktext, image |
| Parameter`optional_controls` | Kontrakaspect\_ratio, n, input\_references |
| Parameter`exact_supported_parameters` | Kontrak{"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}} |
| Parameter`reference_material_rule` | KontrakHanya 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.

| Konfigurasi | Jadual kadar | Kuantiti ramalan | Unit pengebilan | Caj |
| --- | --- | --- | --- | --- |
| KonfigurasiKadar asas token | Jadual kadarKadar asas | Kuantiti 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 |
| KonfigurasiUltra | Jadual kadar— | Kuantiti ramalan— | Unit pengebilanbagi setiap imej keluaran | Caj Output · keluaran imej · Anggaran untuk perbandingan sahaja **$0.5** bagi setiap imej keluaran |
| KonfigurasiAnggaran kos penjanaan | Jadual kadar— | Kuantiti ramalananggaran untuk satu penjanaan | Unit 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 →](https://ailoot.ai/docs/ms/billing/reserve/)

#### 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

| Konfigurasi | Syarat pengebilan | Caj |
| --- | --- | --- |
| KonfigurasiImej output | Syarat 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

```bash
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
```

```python
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])
```

```js
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

| Medan | Jenis |
| --- | --- |
| Medan`created` | Jenisinteger |
| Medan`data[].url` | Jenisstring |
| Medan`data[].b64_json` | Jenisbase64 string |
| Medan`usage` | Jenisobject |

### Alias

#### Alias model

**Ailoot Ultra** [`recraft/recraft-v4-pro`](https://ailoot.ai/models/ms/#m=recraft%2Frecraft-v4-pro&route=Ultra&caller=recraft%2Frecraft-v4-pro&fmt=images)

#### Alias laluan kaedah

`/v1/images`

#### ID pemanggil berkaitan

[`recraft/recraft-v4-pro`](https://ailoot.ai/models/ms/#m=recraft%2Frecraft-v4-pro&route=Ultra&caller=recraft%2Frecraft-v4-pro&fmt=images)

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`

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](https://ailoot.ai/docs/ms/billing/subscriptions/) · [Lihat harga model](https://ailoot.ai/models/ms/)

## 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](mailto:support@ailoot.ai) · [Tawaran dan perjanjian lesen](https://ailoot.ai/legal/offer?lang=ms)

## Ailoot · Syarikat dan portfolio projeknya





Ailoot berteraskan pengalaman operasi yang mantap, pangkalan pelanggan yang besar, perkhidmatan yang stabil dan pemantauan KPI berterusan.





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





Ailoot menggunakan pengalaman operasi ini untuk akses API kepada ciri AI dalam produk pelanggan, ejen, aplikasi dan automasi.
