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

# Recraft: Recraft V4 Pro

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

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

Recraft V4 Pro genererer rasterbilder i 2K for detaljerte komposisjoner, fotorealisme, illustrasjon og trykkorientert kreativt arbeid. Den er V4-utgaven med høyere oppløsning, med tekstbeskrivelser, valgfrie stilinndata og en egen bilde-til-bilde-arbeidsflyt.

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

Om modellen

Denne beskrivelsen dekker modellens funksjoner. Tilgjengelige inndata, utdata og alternativer i Ailoot er oppført nedenfor for den valgte metoden.

Recraft V4 Pro er rastermodellen med høyere oppløsning i Recrafts V4-familie. V4 legger vekt på visuell vurdering, balansert komposisjon, sammenhengende farger og grundig tolkning av kreativ regi. Produsenten posisjonerer Pro for finere detaljer, mer realistiske komplekse scener og omfattende produksjonsbilder. Bruk den til en detaljert illustrasjon, et redaksjonelt bilde, et plakatkonsept eller annet materiale som har nytte av et større rasterresultat. Den forblir atskilt fra den senere V4.1-modellen og SVG-utdataene i V4 Pro Vector.

Den spesifikke produsentkoden er recraftv4\_pro. De dokumenterte utdataene er raster i 2K som tapsfri WebP eller PNG: 2048 × 2048 piksler for et kvadrat, 2688 × 1536 for 16:9 og 1664 × 2560 for 2:3. Andre støttede sideforhold har egne dimensjoner. Velg et sideforhold for den tiltenkte layouten eller en nøyaktig tillatt størrelse; en vilkårlig pikselstørrelse inngår ikke i den dokumenterte genereringskontrakten. Standardutgaven V4 har mindre rasterutdata i 1K, mens vektormodeller ikke har noen fast pikseloppløsning.

V4 kan tolke en kort prompt for utforskning eller en strukturert prompt for et kontrollert resultat. For en bestemt visuell retning går produsentens veiledning fra motiv og miljø til utsnitt, egenskaper, romlige forhold, lyssetting, dybde og stemning. For et redaksjonelt produktbilde kan du be om et dramatisk vertikalt fotografi av en skulpturell stol, overflater i børstet metall, sidelys, en rolig mørk bakgrunn og plass over objektet til en tittel. Å navngi disse sammenhengene gjør den tiltenkte komposisjonen tydeligere enn en generell forespørsel om et eksklusivt bilde.

Familiens kreative spenn omfatter fortellende illustrasjon, fotorealistiske scener og bilder med dybde og signaler om materiale og lyssetting. Et 3D-lignende resultat er fortsatt et bilde, ikke en redigerbar 3D-scene. For en grafisk plakat angir du de visuelle lagene og samspillet mellom dem: bakgrunn, illustrasjon eller fotografi, overskriftshierarki og støttetekst. V4 er posisjonert for lesbare korte og middels lange fraser, men den ferdige stavingen og hierarkiet bør undersøkes fremfor å utledes fra modellnavnet.

Den nåværende genereringsreferansen tillater prompter på opptil 10 000 tegn, ett til seks resultater, en tilfeldig seed og kontroller for foretrukne farger og bakgrunnsfarge. Valgfrie egendefinerte stiler eller kompatible referansebilder kan styre utseendet med flexible eller precise matching. Modellen godtar ikke de eldre V3-kontrollene negative\_prompt, kuraterte stiler, text\_layout, artistic\_level og no\_text. Beskriv ønsket sluttbilde i den positive prompten, og hold kravene til motiv, layout og farger uttrykkelige. For generering med referansestil bruker du ett til ti PNG-, JPG- eller WebP-bilder, høyst 64 MB til sammen og under 20 MB hver. Hver referanse trenger en kortside på minst 256 piksler, en langside på høyst 4 096 piksler og en oppløsning på høyst 16 megapiksler. Bruk enten disse referansene eller en kompatibel lagret stil, fremfor begge deler.

Recraft dokumenterer en separat bilde-til-bilde-operasjon for V4. Den kombinerer et eksisterende bilde og en prompt med styrke fra 0 til 1 for å styre endringsgraden, og godtar ikke kontroller for egendefinerte V4-stiler i denne operasjonen. Klargjør kilden innenfor produsentens grenser for bildeinndata, og angi egenskapene som skal videreføres til det nye resultatet. For et større sluttbilde kontrollerer du fine detaljer, utsnitt og bokstaver i ønsket størrelse. Pros ekstra rasterdetaljer støtter denne kontrollen, mens bildet forblir en generert tolkning av den innsendte kreative beskrivelsen. For bilde-til-bilde sender du inn PNG, JPG, WebP eller SVG under 20 MB, høyst 16 megapiksler, med begge sider mellom 256 og 4 096 piksler.

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

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

Recraft /`recraft/recraft-v4-pro`

### Start

Recraft V4 Pro genererer rasterbilder i 2K for detaljerte komposisjoner, fotorealisme, illustrasjon og trykkorientert kreativt arbeid. Den er V4-utgaven med høyere oppløsning, med tekstbeskrivelser, valgfrie stilinndata og en egen bilde-til-bilde-arbeidsflyt.

Godkjente inndata

Tekst · Bilder

Resultater

Bilder

### Tilgjengelig i Ailoot · inndata & metoder

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

Inndatatyper

`text`, `image`

Utdatatyper

`image`

Utdataformat

Bildefil

| Felt | Type | Krav | Verdier & grenser | Standard |
| --- | --- | --- | --- | --- |
| Felt`model` | Type`string` | KravPåkrevd | Verdier & grenser recraft/recraft-v4-pro | Standard— |
| Felt`prompt` | Type`string` | KravPåkrevd | Verdier & grenser Minste lengde: 1 | Standard— |
| Felt`n` | Type`integer` | KravValgfritt | Verdier & grenser Minimum: 1 Maksimum: 6 | Standard— |
| Felt`aspect_ratio` | Type`string` | KravValgfritt | Verdier & grenser 1:1, 4:3, 3:4, 16:9, 9:16, auto | Standard— |
| Felt`input_references` | Type`array` | KravValgfritt | Verdier & grenser Minste antall elementer: 0 Maksimalt antall elementer: 1 | Standard— |

Kombinasjoner av inngående materialer

**Tekst til bilde** · Påkrevd: prompt

Metodeparametere og livssyklus

| Parameter | Avtale |
| --- | --- |
| Parameter`content_type` | Avtaleapplication/json |
| Parameter`required` | Avtalemodel, prompt |
| Parameter`material_types` | Avtaletext, image |
| Parameter`optional_controls` | Avtaleaspect\_ratio, n, input\_references |
| Parameter`exact_supported_parameters` | Avtale{"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` | AvtaleBare faktiske bildereferanser fra kunden; vilkårene for leverandørens endepunkt gjelder for dem. |

Metodealiaser: `/v1/images`

Livssyklus: `synchronous_result_then_owned_library`

`GET /v1/media/tasks/{task_id}` · faktisk returnert task\_id eller oppføring i mediebiblioteket

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

`GET /v1/media/assets`

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

Bruk den eksakte modellen og de dokumenterte inndatafeltene.

Behold hele svaret, alle faktiske utdata og opprinnelige returnerte ID-er.

### Priser

##### Slik beregnes det endelige beløpet

De viste satsene anslår kostnaden før generering. Det endelige beløpet beregnes ut fra kostnaden som er registrert for den opprinnelige genereringen. Målt varighet på utdataene og anslåtte mengder er ikke den endelige fakturerbare mengden.

Tariffopplysninger legger ikke til forespørselsvalg. Støttede parametere står ved den valgte metoden.

Hurtigmodus

Ikke angitt Når hurtigmodus er valgt

Flex-modus

Ikke angitt Når flex-modus er valgt

Maksimal resonneringsinnsats

Ikke angitt Når justeringen «default» brukes for maksimal resonneringsinnsats

#### Estimerte satser for sammenligning

#### Priser etter konfigurasjon

Knytt hver kostnad til de viste vilkårene. Bruk én sats for hvert sett med alternative konfigurasjoner.

| Konfigurasjon | Prisplan | Forventet mengde | Faktureringsenhet | Kostnad |
| --- | --- | --- | --- | --- |
| KonfigurasjonGrunnpriser for tokener | PrisplanGrunnsats | Forventet mengde— | Faktureringsenhet— | Kostnad Inndata · Inngående tokener · Estimat kun for sammenligning **—** / 1K tokener Utdata · Utgående tokener · Estimat kun for sammenligning **—** / 1K tokener Inndata · Lesing fra hurtigbuffer · Estimat kun for sammenligning **—** / 1K tokener Inndata · Skriving til hurtigbuffer · Estimat kun for sammenligning **—** / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time · Estimat kun for sammenligning **—** / 1K tokener |
| KonfigurasjonUltra | Prisplan— | Forventet mengde— | Faktureringsenhetper utdatabilde | Kostnad Utdata · bildeutdata · Estimat kun for sammenligning **$0.5** per utdatabilde |
| KonfigurasjonAnslått genereringskostnad | Prisplan— | Forventet mengdeestimat for én generering | Faktureringsenhet— | Kostnad Utdata · Anslått genereringskostnad · Estimat kun for sammenligning **$0.5** estimat før generering Dette anslaget er verken en tilleggsavgift eller en fast sats for den fullførte genereringen. |

Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. [Slik fungerer reservasjon og oppgjør →](https://ailoot.ai/docs/nb/billing/reserve/)

#### Detaljer om referansetariffen

Referanseprisplaner på modellnivå endrer ikke metodevalg, prisoverslag eller kostnader. Aktive kostnader bruker satsene til den valgte Ailoot-metoden.

Konfigurasjoner for bildeprising

#### Priser etter konfigurasjon

| Konfigurasjon | Faktureringsvilkår | Kostnad |
| --- | --- | --- |
| KonfigurasjonUtdatabilde | FaktureringsvilkårIngen prisvariant er deklarert. | Kostnad Utdata · Utdatabilde **$0.5** per bilde Tilsvarende oppføringer beskriver samme belastning; de legger ikke til enda en avgift. |

### Eksempelforespørsler

#### Ailoot Ultra · Bilder

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

### Motta og lagre resultater

#### Ailoot Ultra · Bilder

Last ned hvert returnerte bilde eller lagre Base64-innholdet

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

##### Behold alle ferdige resultater

Lagre hvert ferdige bilde; hent hver returnerte URL eller dekod Base64-innholdet.

Behold hvert dataelement og alt forbruk; ta eierskap til og lagre alle faktiske returnerte bilder. Ingen oppdiktede adresser eller ID-er.

##### Hvis det opprinnelige svaret må kontrolleres

Hvis et resultat fra bildegenerering eller bilderedigering må kontrolleres, bevar opprinnelig operation\_id/X-Client-Request-ID og den returnerte resultatinformasjonen. Hent eksisterende resultater du eier via mediebiblioteket, ved hjelp av faktiske task\_id- eller asset\_id-verdier. Ikke send genererings-/redigeringsforespørselen på nytt, og ikke konstruer en URL for statusavlesning fra operation\_id.

Svarfelter

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

### Aliaser

#### Modellaliaser

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

#### Aliaser for metodestier

`/v1/images`

#### Tilknyttede anroper-ID-er

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

FAQ · Recraft: Recraft V4 Pro

Hvilke inndata og resultater er tilgjengelige?

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

Hvilke felt bruker forespørselen?

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

Hvilke grenser gjelder?

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

Koble Ailoot til Claude Code, OpenCode, Hermes eller egen applikasjon.

## Selskapet og dets prosjektportefølje

Selskapet og dets prosjektportefølje: millioner av kunder; månedlig salg for milliarder.

## Kjøp tokener med rabatt.

Abonnementsrabatt for jevnlig bruk. Kampanjekoder gir opptil 50% på tokenkjøp.

Abonnement

Velg et rabattabonnement for faste forespørsler.

Kampanjekode opptil 50%

Oppgi kode ved kjøp. Prisen beregnes på nytt etter gjeldende kampanje.

Kostnader i historikken

Modell, tokener og beløp lagres for hver forespørsel.

[Velg abonnement](https://ailoot.ai/docs/nb/billing/subscriptions/) · [Se modellpriser](https://ailoot.ai/models/nb/)

## Koble API-et til produktet du selger.

SaaS, apper og boter etter Ailoots offentlige tilbud og lisensavtale. Be om forhandlerlisens for videresalg.

Kommersiell applikasjon

Bygg tekst-, bilde-, video- og lydgenerering inn i betalte funksjoner i tjenesten.

Forhandlerlisens

Send prosjektbeskrivelse og tilgangsopplegg. Be om skriftlige vilkår for bruk og videresalg.

Dokumenter på nettstedet

Offentlig tilbud, lisensavtale og retningslinjer for databehandling er tilgjengelige før tilkobling.

[Be om forhandlerlisens](mailto:support@ailoot.ai) · [Offentlig tilbud og lisensavtale](https://ailoot.ai/legal/offer?lang=nb)

## Ailoot · Selskapet og dets prosjektportefølje





Ailoot bygger på etablert driftserfaring, en stor kundebase, stabil tjeneste og løpende KPI-kontroll.





Selskapet og dets prosjektportefølje: millioner av kunder; månedlig salg for milliarder.





Ailoot bruker denne driftserfaringen til API-tilgang til AI-funksjoner i kundenes produkter, agenter, applikasjoner og automatiseringer.
