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

# Recraft: Recraft V4 Pro

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

## [Recraft: Recraft V4 Pro](https://ailoot.ai/models/nl/recraft-recraft-v4-pro/)

Recraft V4 Pro genereert 2K-rasterafbeeldingen voor gedetailleerde composities, fotorealisme, illustratie en drukwerkgericht creatief werk. Het is de V4-editie met hogere resolutie, met tekstbriefings, optionele stijlinvoer en een afzonderlijke afbeelding-naar-afbeeldingprocedure.

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

Over het model

Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.

Recraft V4 Pro is het rastermodel met hogere resolutie in Recrafts V4-familie. V4 richt zich op visueel oordeel, evenwichtige compositie, samenhangende kleur en zorgvuldige interpretatie van creatieve richting. De producent positioneert Pro voor fijnere details, realistischere complexe scènes en omvangrijke productiebeelden. Gebruik het voor een gedetailleerde illustratie, redactioneel beeld, posterconcept of ander beeld dat baat heeft bij een groter rasterresultaat. Het staat los van het latere V4.1-model en de SVG-uitvoer van V4 Pro Vector.

De specifieke producentcode is recraftv4\_pro. De gedocumenteerde uitvoer is 2K-raster in verliesloos WebP of PNG: 2048 × 2048 pixels voor een vierkant, 2688 × 1536 voor 16:9 en 1664 × 2560 voor 2:3. Andere ondersteunde verhoudingen hebben eigen afmetingen. Kies een beeldverhouding voor de gewenste lay-out of een exact toegestaan formaat; een willekeurige pixelmaat hoort niet bij het gedocumenteerde generatiecontract. Standaard V4 heeft kleinere 1K-rasteruitvoer, terwijl vectormodellen geen vaste pixelresolutie hebben.

V4 kan een korte prompt voor verkenning of een gestructureerde prompt voor een gecontroleerd resultaat interpreteren. Voor een specifieke artdirection gaat de fabrikantgids van onderwerp en omgeving naar kadrering, eigenschappen, ruimtelijke relaties, belichting, diepte en sfeer. Vraag voor een redactioneel productbeeld om een dramatische verticale foto van een sculpturale stoel, oppervlakken van geborsteld metaal, zijlicht, een rustige donkere achtergrond en ruimte boven het object voor een titel. Die relaties benoemen maakt de gewenste compositie duidelijker dan een algemeen verzoek om een hoogwaardig beeld.

Het creatieve bereik van de familie omvat verhalende illustratie, fotorealistische scènes en ruimtelijke beelden met materiaal- en lichtaanwijzingen. Een 3D-ogend resultaat blijft een afbeelding en geen bewerkbare 3D-scène. Specificeer voor een grafische poster de visuele lagen en hun interactie: achtergrond, illustratie of foto, kophiërarchie en ondersteunende tekst. V4 wordt gepositioneerd voor leesbare korte en middellange zinnen, maar controleer uiteindelijke spelling en hiërarchie in plaats van die uit de modelnaam af te leiden.

De huidige generatiereferentie staat prompts tot 10000 tekens, één tot zes uitvoerafbeeldingen, een willekeurige seed en instellingen voor voorkeurskleur en achtergrondkleur toe. Optionele aangepaste stijlen of compatibele referentieafbeeldingen kunnen uiterlijk sturen met flexible of precise matching. Het model accepteert de oudere V3-instellingen negative\_prompt, voorgeselecteerde stijlen, text\_layout, artistic\_level of no\_text niet. Beschrijf de gewenste uiteindelijke afbeelding in de positieve prompt en houd onderwerp-, lay-out- en kleureisen expliciet. Gebruik voor generatie met een referentiestijl één tot tien PNG-, JPG- of WebP-afbeeldingen, samen maximaal 64 MB en elk kleiner dan 20 MB. Elke referentie vereist een kortste zijde van minimaal 256 pixels, een langste zijde van maximaal 4096 pixels en een resolutie van maximaal 16 megapixels. Gebruik deze referenties óf een compatibele opgeslagen stijl, niet beide.

Recraft documenteert een afzonderlijke afbeelding-naar-afbeeldingoperatie voor V4. Deze combineert een bestaande afbeelding en prompt met sterkte van 0 tot 1 om de mate van verandering te regelen en accepteert in die operatie geen instellingen voor aangepaste V4-stijlen. Bereid de bron binnen de afbeeldingsinvoerlimieten van de producent voor en benoem de eigenschappen die in het nieuwe resultaat moeten doorwerken. Controleer voor een groter definitief beeld fijne details, uitsnede en letters op het beoogde formaat. De extra rasterdetails van Pro ondersteunen die inspectie, terwijl het beeld een gegenereerde interpretatie van de aangeleverde creatieve briefing blijft. Lever voor afbeelding naar afbeelding PNG, JPG, WebP of SVG kleiner dan 20 MB aan, maximaal 16 megapixels, met beide zijden tussen 256 en 4096 pixels.

**Ailoot Ultra · Afbeeldingen** `POST /v1/images/generations` `recraft/recraft-v4-pro`

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

Recraft /`recraft/recraft-v4-pro`

### Aan de slag

Recraft V4 Pro genereert 2K-rasterafbeeldingen voor gedetailleerde composities, fotorealisme, illustratie en drukwerkgericht creatief werk. Het is de V4-editie met hogere resolutie, met tekstbriefings, optionele stijlinvoer en een afzonderlijke afbeelding-naar-afbeeldingprocedure.

Toegestane invoer

Tekst · Afbeeldingen

Resultaten

Afbeeldingen

### Beschikbaar in Ailoot · invoer en methoden

**Ailoot Ultra · Afbeeldingen** `POST /v1/images/generations`

Invoertypen

`text`, `image`

Uitvoertypen

`image`

Uitvoerformaat

Afbeeldingsbestand

| Veld | Type | Vereiste | Waarden en limieten | Standaard |
| --- | --- | --- | --- | --- |
| Veld`model` | Type`string` | VereisteVereist | Waarden en limieten recraft/recraft-v4-pro | Standaard— |
| Veld`prompt` | Type`string` | VereisteVereist | Waarden en limieten Minimumlengte: 1 | Standaard— |
| Veld`n` | Type`integer` | VereisteOptioneel | Waarden en limieten Minimum: 1 Maximum: 6 | Standaard— |
| Veld`aspect_ratio` | Type`string` | VereisteOptioneel | Waarden en limieten 1:1, 4:3, 3:4, 16:9, 9:16, auto | Standaard— |
| Veld`input_references` | Type`array` | VereisteOptioneel | Waarden en limieten Minimumaantal items: 0 Maximumaantal items: 1 | Standaard— |

Combinaties van invoermaterialen

**Tekst naar afbeelding** · Vereist: prompt

Methodeparameters en levenscyclus

| Parameter | Contract |
| --- | --- |
| Parameter`content_type` | Contractapplication/json |
| Parameter`required` | Contractmodel, prompt |
| Parameter`material_types` | Contracttext, image |
| Parameter`optional_controls` | Contractaspect\_ratio, n, input\_references |
| Parameter`exact_supported_parameters` | Contract{"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` | ContractUitsluitend daadwerkelijke afbeeldingsreferenties van de klant; de voorwaarden van het providerendpoint zijn hierop van toepassing. |

Methodealiasnamen: `/v1/images`

Levenscyclus: `synchronous_result_then_owned_library`

`GET /v1/media/tasks/{task_id}` · de daadwerkelijk geretourneerde task\_id of het record in de mediabibliotheek

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

`GET /v1/media/assets`

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

Gebruik het exacte model en de gedocumenteerde invoervelden.

Bewaar het volledige antwoord, alle daadwerkelijke uitvoer en de oorspronkelijk geretourneerde IDs.

### Tarieven

##### Zo worden de uiteindelijke kosten berekend

De weergegeven tarieven geven een schatting van de kosten vóór de generatie. Het definitieve bedrag wordt berekend op basis van de kosten die voor de oorspronkelijke generatie zijn geregistreerd. De gemeten duur van de uitvoer en de geschatte hoeveelheden zijn niet de definitieve factureerbare hoeveelheid.

Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.

Snelle modus

Niet opgegeven Wanneer de snelle modus is geselecteerd

Flexmodus

Niet opgegeven Wanneer de modus flex is geselecteerd

Maximale redeneerinspanning

Niet opgegeven Wanneer bij maximale redeneerinspanning de default-aanpassing wordt gebruikt

#### Geschatte tarieven ter vergelijking

#### Prijzen per configuratie

Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.

| Configuratie | Tariefstaffel | Verwachte hoeveelheid | Rekeneenheid | Kosten |
| --- | --- | --- | --- | --- |
| ConfiguratieBasistarieven voor tokens | TariefstaffelBasistarief | Verwachte hoeveelheid— | Rekeneenheid— | Kosten Invoer · Invoertokens · Schatting uitsluitend ter vergelijking **—** / 1K tokens Uitvoer · Uitvoertokens · Schatting uitsluitend ter vergelijking **—** / 1K tokens Invoer · Cache lezen · Schatting uitsluitend ter vergelijking **—** / 1K tokens Invoer · Cache schrijven · Schatting uitsluitend ter vergelijking **—** / 1K tokens Invoer · Cache schrijven, 1 uur · Schatting uitsluitend ter vergelijking **—** / 1K tokens |
| ConfiguratieUltra | Tariefstaffel— | Verwachte hoeveelheid— | Rekeneenheidper uitvoerafbeelding | Kosten Uitvoer · afbeeldingsuitvoer · Schatting uitsluitend ter vergelijking **$0.5** per uitvoerafbeelding |
| ConfiguratieGeschatte generatiekosten | Tariefstaffel— | Verwachte hoeveelheidschatting voor één generatie | Rekeneenheid— | Kosten Uitvoer · Geschatte generatiekosten · Schatting uitsluitend ter vergelijking **$0.5** schatting vóór generatie Deze schatting is geen extra bedrag of vast tarief voor de voltooide generatie. |

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. [Zo werken reservering en afrekening →](https://ailoot.ai/docs/nl/billing/reserve/)

#### Details van het referentietarief

Referentiestaffels op modelniveau veranderen de methodeselectie, kostenramingen of afschrijvingen niet. Voor de actieve kostenberekening gelden de tarieven van de geselecteerde Ailoot-methode.

Prijsconfiguraties voor afbeeldingen

#### Prijzen per configuratie

| Configuratie | Factureringsvoorwaarden | Kosten |
| --- | --- | --- |
| ConfiguratieUitvoerafbeelding | FactureringsvoorwaardenEr is geen prijsvariant gedeclareerd. | Kosten Uitvoer · Uitvoerafbeelding **$0.5** per afbeelding Gelijkwaardige vermeldingen beschrijven dezelfde kosten; ze voegen geen tweede vergoeding toe. |

### Voorbeeldverzoeken

#### Ailoot Ultra · Afbeeldingen

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");
```

### Resultaten ophalen en opslaan

#### Ailoot Ultra · Afbeeldingen

Download elke teruggegeven afbeelding of sla de Base64-inhoud ervan op

- `GET /v1/media/tasks/{task_id}`
- `GET /v1/media/assets/{asset_id}/content`
- `GET /v1/media/assets`
- `GET /v1/media/assets/{asset_id}`

##### Alle voltooide resultaten bewaren

Sla elke voltooide afbeelding op; haal elke teruggegeven URL op of decodeer de bijbehorende Base64-inhoud.

Bewaar elk data-item en het volledige gebruik; neem alle daadwerkelijk geretourneerde afbeeldingen in eigendom en sla ze op. Geen verzonnen URLs of IDs.

##### Als het oorspronkelijke antwoord moet worden gecontroleerd

Als het resultaat van een afbeeldingsgeneratie of -bewerking moet worden gecontroleerd, bewaar dan de oorspronkelijke operation\_id/X-Client-Request-ID en de geretourneerde resultaatinformatie. Haal bestaande eigen resultaten terug via de mediabibliotheek met de daadwerkelijke task\_id- of asset\_id-waarden. Dien de generatie-/bewerkingsaanvraag niet opnieuw in en bouw geen polling-URL op basis van operation\_id.

Antwoordvelden

| Veld | Type |
| --- | --- |
| Veld`created` | Typeinteger |
| Veld`data[].url` | Typestring |
| Veld`data[].b64_json` | Typebase64 string |
| Veld`usage` | Typeobject |

### Aliasnamen

#### Modelaliasnamen

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

#### Aliasnamen voor methodepaden

`/v1/images`

#### Gerelateerde aanroeper-ID’s

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

FAQ · Recraft: Recraft V4 Pro

Welke invoer en resultaten zijn beschikbaar?

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

Welke velden gebruikt het verzoek?

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

Welke limieten gelden?

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

Verbind Ailoot met Claude Code, OpenCode, Hermes of je eigen applicatie.

## Het bedrijf en zijn projectenportefeuille

Het bedrijf en zijn projectenportefeuille: miljoenen klanten; maandelijkse verkopen in de miljarden.

## Koop tokens met korting.

Abonnementsvoordeel voor regelmatig gebruik. Promotiecodes geven tot 50% korting op tokens.

Abonnement

Kies een abonnement met korting voor je terugkerende verzoeken.

Promotiecode tot 50%

Vul de code bij aankoop in. De prijs wordt volgens de lopende actie herberekend.

Kosten in de geschiedenis

Model, tokens en bedrag worden per verzoek bewaard.

[Kies een abonnement](https://ailoot.ai/docs/nl/billing/subscriptions/) · [Bekijk modelprijzen](https://ailoot.ai/models/nl/)

## Verbind de API met het product dat je verkoopt.

SaaS, apps en bots volgens de openbare aanbodvoorwaarden en licentieovereenkomst van Ailoot. Vraag voor doorverkoop een resellerlicentie aan.

Commerciële applicatie

Voeg tekst-, beeld-, video- en geluidsgeneratie aan betaalde functies van je service toe.

Resellerlicentie

Stuur een projectbeschrijving en toegangsschema. Vraag schriftelijke voorwaarden voor gebruik en doorverkoop.

Documenten op de site

Aanbodvoorwaarden, licentieovereenkomst en gegevensbeleid zijn vóór het verbinden beschikbaar.

[Vraag een resellerlicentie aan](mailto:support@ailoot.ai) · [Aanbodvoorwaarden en licentieovereenkomst](https://ailoot.ai/legal/offer?lang=nl)

## Ailoot · Het bedrijf en zijn projectenportefeuille





Ailoot bouwt op opgebouwde operationele ervaring, een groot klantenbestand, een stabiele dienst en doorlopende KPI-controle.





Het bedrijf en zijn projectenportefeuille: miljoenen klanten; maandelijkse verkopen in de miljarden.





Ailoot gebruikt die operationele ervaring voor API-toegang tot AI-functies in klantproducten, agents, applicaties en automatiseringen.
