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

# Recraft: Recraft V4.1 Flash

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

## [Recraft: Recraft V4.1 Flash](https://ailoot.ai/models/nb/recraft-recraft-v4-1-flash/)

Recraft V4.1 Flash genererer rasterbilder i 1K fra tekst for rask visuell iterasjon. Den støtter fotografering, portretter, komplekse scener og logokonsepter, med PNG- eller tapsfrie WebP-utdata og uttrykkelige fargepreferanser.

- [**Ailoot Ultra · Bilder** `POST /v1/images/generations` `recraft/recraft-v4.1-flash`](https://ailoot.ai/models/nb/recraft-recraft-v4-1-flash/#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.1 Flash er Recrafts tekst-til-bilde-modell for rask iterasjon og visuelt arbeid i stort volum. Produsenten angir fotografering, portretter, atmosfære, komplekse scener, blandede medier og logokonsepter som sterke bruksområder. En skriftlig beskrivelse blir til et rasterbilde som kan sammenlignes med andre kreative retninger før sluttmaterialet utvikles. Flash er et bestemt medlem av V4.1-familien, med egen utdatastørrelse og egne støttede kontroller.

De opprinnelige utdataene tilhører Recrafts rasterbildeklasse 1K. Velg lerret etter den tiltenkte plasseringen: en horisontal illustrasjon til en sidetopp, et vertikalt portrett eller et kvadratisk bilde til et kompakt kort. Utdataformatene er tapsfri WebP og PNG.

Start beskrivelsen med hovedmotivet og det visuelle formålet, og beskriv deretter utsnitt, omgivelser, lyssetting og medium. For et produktkonsept er en nyttig instruksjon: «En kompakt kremfarget radio på et skrivebord i valnøtt, trekvart utsnitt forfra, mykt vinduslys, rolig redaksjonelt fotografi, rikelig tom plass til venstre.» For en illustrasjon angir du formspråket, paletten og forholdet mellom elementene. Hold detaljene som definerer ideen uttrykkelige, fremfor å legge til urelaterte adjektiver. Flashs dokumenterte promptramme er opptil 10 000 tegn, så en detaljert scene kan beskrives når oppgaven trenger det.

Produsentens kontroller inkluderer foretrukne farger og ønsket bakgrunnsfarge. En seed kan oppgis for reproduserbare resultater, og genereringsgrensesnittet dokumenterer ett til seks bilder i en forespørsel. Disse kontrollene støtter en nyttig sammenligningsoppgave: hold motiv og komposisjon faste, varier én visuell retning og vurder resultatbildene for ønsket layout. Fargepreferanser beskriver det forespurte resultatet; sammenlign viktige merkevarefarger med det ferdige materialet før det kombineres med et eksisterende designsystem.

Flash produserer rastergrafikk. Et logokonsept kan hjelpe med å velge silhuett, stemning eller oppsett, mens redigerbare baner tilhører de egne navngitte Vector-modellene. Flash har heller ingen Pro-variant. Hele V4.1-serien tilbyr disse separate valgene når vektorredigering eller detaljer med høyere oppløsning er sentralt for leveransen. Produsenten beskriver et senere forbedringstrinn for å ta et valgt utkast mot et mer detaljert bilde; dette trinnet er en egen operasjon fremfor en annen opprinnelig utdatastørrelse for Flash.

Denne utgaven støtter ikke bilde-til-bilde-inndata, egendefinerte stiler, stilidentifikatorer, stilmatching eller stilreferansebilder. Det dokumenterte grensesnittet utelukker også negative prompter og uttrykkelige kontroller for tekstlayout. Legg ønsket utseende og komposisjon i den positive beskrivelsen. Når bokstaver er en del av et konsept, setter du ønsket ordlyd i anførselstegn og undersøker de gjengitte bokstavene; bruk et eget layouttrinn når nøyaktig typografi og plassering er avgjørende.

Et praktisk resultat fra Flash er en valgt visuell retning med en tydelig beskrivelse, passende sideforhold og en brukbar rasterfil. Sammenlign motiv, utsnitt, bakgrunn og viktige detaljer i den størrelsen bildet skal vises. Behold den vellykkede prompten og den valgte filen sammen, slik at neste kreative trinn følger den valgte retningen. Rask iterasjon hjelper med å utforske designet; opprinnelige vektorutdata, matching av referansestil og oppløsningen til en annen V4.1-utgave forblir separate modellvalg.

**Ailoot Ultra · Bilder** `POST /v1/images/generations` `recraft/recraft-v4.1-flash`

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

Recraft /`recraft/recraft-v4.1-flash`

### Start

Recraft V4.1 Flash genererer rasterbilder i 1K fra tekst for rask visuell iterasjon. Den støtter fotografering, portretter, komplekse scener og logokonsepter, med PNG- eller tapsfrie WebP-utdata og uttrykkelige fargepreferanser.

Godkjente inndata

Tekst

Resultater

Bilder

### Tilgjengelig i Ailoot · inndata & metoder

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

Inndatatyper

`text`

Utdatatyper

`image`

Utdataformat

Bildefil

Antall utdata

1 utdata

| Felt | Type | Krav | Verdier & grenser | Standard |
| --- | --- | --- | --- | --- |
| Felt`model` | Type`string` | KravPåkrevd | Verdier & grenser recraft/recraft-v4.1-flash | Standard— |
| Felt`prompt` | Type`string` | KravPåkrevd | Verdier & grenser Minste lengde: 1 Vilkår: UTF8-ledetekst med innhold. Ingen tegnbegrensning som gjelder hele produsenten, er funnet på. | Standard— |
| Felt`n` | Type`integer` | KravValgfritt | Verdier & grenser 1 | Standard1 |
| Felt`response_format` | Type`string` | KravValgfritt | Verdier & grenser url, b64\_json | Standard— |
| Felt`stream` | Type`boolean` | KravValgfritt | Verdier & grenser false | Standardfalse |

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 |
| Parameter`optional` | Avtalen, response\_format, stream |
| Parameter`n` | Avtale1 |
| Parameter`stream` | Avtalefalse |
| Parameter`response_format` | Avtaleurl, b64\_json |
| Parameter`reference_images` | Avtalefalse |
| Parameter`edit` | Avtalefalse |
| Parameter`output_format_optional` | Avtale |
| Parameter`resolution_control` | Avtalenull |
| Parameter`aspect_ratio_control` | Avtalenull |
| Parameter`other_fields` | AvtaleAvvises, bortsett fra den eksakte fastsatte interne leverandørrutingen |

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

Generer ett bilde fra ledeteksten.

Lagre hvert dataelement; url/b64\_json er kodinger av resultatet.

### 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.014** per utdatabilde |
| KonfigurasjonAnslått genereringskostnad | Prisplan— | Forventet mengdeestimat for én generering | Faktureringsenhet— | Kostnad Utdata · Anslått genereringskostnad · Estimat kun for sammenligning **$0.014** 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.014** 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=json.loads('{"model": "recraft/recraft-v4.1-flash", "prompt": "A lighthouse on a cliff, watercolor", "n": 1, "response_format": "b64_json"}')

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.1-flash', 'prompt': 'A lighthouse on a cliff, watercolor', 'n': 1, 'response_format': 'b64_json'}
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.1-flash", "prompt": "A lighthouse on a cliff, watercolor", "n": 1, "response_format": "b64_json"};
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.

Lagre hvert dataelement. Dekod hver b64\_json, eller hent hver returnerte signerte URL. Velg filendelse ut fra faktisk MIME-type/byteinnhold.

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

Feil og neste trinn

| Svar | Vilkår | Neste trinn |
| --- | --- | --- |
| Svar400 · `invalid_request_error` | VilkårUgyldige påkrevde felter, materialrepresentasjon eller parameterverdi | Neste trinnKorriger de angitte feltene før en ny opprettelsesforespørsel. |
| Svar`server_error` | VilkårDet returnerte svaret angir at operasjonen eller resultatet må kontrolleres | Neste trinnBevar den opprinnelige returnerte operasjons-/oppgave-ID-en, forespørselshodene og svaret; fortsett å lese den opprinnelige operasjonen på de støttede måtene. Ikke send opprettelsesforespørselen på nytt. |

### Aliaser

#### Modellaliaser

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

#### Aliaser for metodestier

Bruk metodestiene som vises ovenfor.

#### Tilknyttede anroper-ID-er

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

FAQ · Recraft: Recraft V4.1 Flash

Hvilke inndata og resultater er tilgjengelige?

`POST /v1/images/generations` · `recraft/recraft-v4.1-flash`: `text` → `image`

Hvilke felt bruker forespørselen?

`POST /v1/images/generations` · `recraft/recraft-v4.1-flash`: `model`, `prompt`, `n`, `response_format`, `stream`

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.
