modeller

Recraft: Recraft V4 Pro

Markdown · JSON

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.

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

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
FeltTypeKravVerdier & grenserStandard
FeltmodelTypestringKravPåkrevdVerdier & grenser
recraft/recraft-v4-pro
Standard—
FeltpromptTypestringKravPåkrevdVerdier & grenser
Minste lengde: 1
Standard—
FeltnTypeintegerKravValgfrittVerdier & grenser
Minimum: 1
Maksimum: 6
Standard—
Feltaspect_ratioTypestringKravValgfrittVerdier & grenser
1:1, 4:3, 3:4, 16:9, 9:16, auto
Standard—
Feltinput_referencesTypearrayKravValgfrittVerdier & grenser
Minste antall elementer: 0
Maksimalt antall elementer: 1
Standard—
Kombinasjoner av inngående materialer

Tekst til bilde · Påkrevd: prompt

Metodeparametere og livssyklus
ParameterAvtale
Parametercontent_typeAvtaleapplication/json
ParameterrequiredAvtalemodel, prompt
Parametermaterial_typesAvtaletext, image
Parameteroptional_controlsAvtaleaspect_ratio, n, input_references
Parameterexact_supported_parametersAvtale{"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_ruleAvtaleBare 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.

KonfigurasjonPrisplanForventet mengdeFaktureringsenhetKostnad
KonfigurasjonGrunnpriser for tokenerPrisplanGrunnsatsForventet 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
KonfigurasjonUltraPrisplan—Forventet mengde—Faktureringsenhetper utdatabildeKostnad
Utdata · bildeutdata · Estimat kun for sammenligning $0.5 per utdatabilde
KonfigurasjonAnslått genereringskostnadPrisplan—Forventet mengdeestimat for én genereringFaktureringsenhet—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 →

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

KonfigurasjonFaktureringsvilkårKostnad
KonfigurasjonUtdatabildeFaktureringsvilkå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
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");

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
FeltType
FeltcreatedTypeinteger
Feltdata[].urlTypestring
Feltdata[].b64_jsonTypebase64 string
FeltusageTypeobject

Aliaser

Modellaliaser

Ailoot Ultra recraft/recraft-v4-pro

Aliaser for metodestier

/v1/images

Tilknyttede anroper-ID-er

recraft/recraft-v4-pro

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

Flere detaljer

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 · Se modellpriser

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 · Offentlig tilbud og lisensavtale