modeller

Recraft: Recraft V3

Markdown · JSON

Recraft: Recraft V3

Recraft V3 lager fotografier, illustrasjoner og grafiske layouter med tekstbevisst komposisjon og stilkontroller. De egne raster- og SVG-variantene passer til plakater, merkevarebildesett, ikoner og design der ordlyd og visuell struktur må fungere sammen.

Om modellen

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

Recraft V3 er en bildegenereringsmodell bygget for grafisk design så vel som fotografiske og illustrerte scener. En skriftlig beskrivelse angir motiv, omgivelser og komposisjon; resultatet er et bilde. V3 videreutvikler Recrafts tekstgjengivelse og fotorealisme og bevarer samtidig stilkonsistens fra eksempelbilder uten ny trening.

Tekst som del av komposisjonen

V3 arbeider med tekst i bildet, inkludert lengre tekst og mellomstore bokstaver. Recraft beskriver et layouttrinn som fastsetter ord og plassering før bildegenerering. Layouten kan produseres automatisk fra beskrivelsen eller arrangeres manuelt i Recrafts designmiljø. Dette bidrar til å knytte en overskrift, en illustrasjon og støttetekst sammen i én komposisjon. Produsenten dokumenterer også uttrykkelige tekstlayoutkoordinater, angitt relativt til bildet fremfor som et fast pikselnett. Hvert tekstelement inneholder ett ord og fire hjørnepunkter i normaliserte koordinater: (0, 0) er øvre venstre og (1, 1) nedre høyre hjørne. Koordinatene kan strekke seg utenfor dette intervallet, og da beskjæres formen. Ord i uttrykkelig tekstlayout må følge de dokumenterte tegnbegrensningene.

For en plakat eller et omslag oppgir du den nøyaktige ordlyden og beskriver hierarkiet: hvilken linje som leder, hvor den står og hvordan bildet støtter den. Kontroller den gjengitte stavingen og avstanden når du velger et resultat.

Stil, palett og visuell regi

V3 inkluderer kuraterte fotografiske stiler, illustrasjons- og emblemstiler, i tillegg til et eget bibliotek med vektorstiler. Recraft V3 Raw er rastermodellens standardstil; Vector art er standard for vektorvarianten. Photorealism sikter mot et fotografisk utseende, mens Illustration rommer stiliserte teksturer, skyggelegging og mer komplekse fargeoverganger. Vektorstiler favoriserer former, begrensede paletter og flate fyll eller enkle graderinger.

Egendefinerte stiler kan bygges fra referansebilder, eksisterende kompatible stiler eller en kombinasjon. De gir en gjenbrukbar visuell retning gjennom en bildeserie. De dokumenterte blandingskontrollene lar referanser og kildestiler ha separate vekter; antallet vekter samsvarer med kildene. PaletteMatch og MaxWeight er de to oppførte blandingsreglene. Produsenten tillater opptil 10 stilreferansebilder og bruker vanlig stilmatchingsmodus for V3. En lagret egendefinert stil og direkte stilreferanser er alternative inndata, og en egendefinert stil må passe modellen som brukes til genereringen.

Foretrukne farger og en bakgrunnsfarge styrer paletten. Opptil 10 RGB-farger er dokumentert, med hver komponent fra 0 til 255. Valgfrie relative vekter går fra 0 til 1; de må oppgis for hver farge eller for ingen, og summen kan ikke overstige 1. Kunstnerisk nivå går fra 0 for en statisk, ren behandling til 5 for mer dynamiske, eksentriske komposisjoner. En negativ prompt beskriver uønskede elementer; en egen kontroll for ingen tekst deaktiverer innebygde tekstlayouter. En tilfeldig seed er tilgjengelig for reproduserbarhet. Disse kontrollene gir ulike virkemidler for scenen, stilsettingen og den visuelle layouten.

Rasterbilder og en egen SVG-variant

Recraft dokumenterer to V3-varianter. Rastermodellen produserer tapsfri WebP eller PNG og passer til fotografiske detaljer, skyggelegging og teksturert illustrasjon. Recraft V3 Vector produserer SVG: baner og former som kan skaleres uten en fast pikseloppløsning. Den passer til piktogrammer, logokonsepter, merker og detaljert vektorgrafikk. Konvertering fra raster til vektor er en egen operasjon, atskilt fra å generere vektorgrafikk direkte.

Begge variantene har sin egen identitet. Et bilde med vektorlignende utseende og faktiske SVG-utdata er forskjellige valg. Velg ønsket resultat når du klargjør en designarbeidsflyt, fremfor å behandle det felles V3-navnet som bevis på at hver operasjon returnerer samme filtype.

Redigering og ferdigstilling av eksisterende illustrasjoner

Recrafts V3-dokumentasjon oppgir bilde-til-bilde-generering, utfylling av bildeområder, utvidelse utenfor bildekanten og bakgrunnsutskifting eller -generering. Bilde-til-bilde-arbeid kombinerer et eksisterende bilde med en ny beskrivelse. Utfylling regenererer det valgte området ved hjelp av et bilde og en samsvarende maske; utvidelse legger til innhold utenfor originalrammen. Bakgrunnsoperasjoner gjelder omgivelsene til et motiv.

Det tilhørende verktøysettet inkluderer også visking, bakgrunnsfjerning, vektorisering og to tilnærminger til oppskalering. Kreativ oppskalering kan innføre nye detaljer; skarp oppskalering sikter mot en skarpere, større gjengivelse av eksisterende innhold. Dette er egne operasjoner med egne inndata og resultater, fremfor flere betydninger av navnet på raster- eller vektormodellen.

Grenser for prompt, størrelse og kildebilder

Produsentens V3-genereringsspesifikasjon godtar en prompt på opptil 1000 tegn og 1–6 bilder per forespørsel. Den støtter 14 sideforhold: 1:1, 2:1, 1:2, 3:2, 2:3, 4:3, 3:4, 5:4, 4:5, 6:10, 14:10, 10:14, 16:9 og 9:16. Dokumenterte rastereksempler omfatter 1024x1024, 1820x1024 og 1024x1820. Nøyaktige rasterdimensjoner må være fra den støttede listen; SVG bruker sideforhold uten fast pikselstørrelse. Når størrelse utelates, velger produsentens system den fra prompten.

For operasjoner med bildeinndata oppgir produsenten PNG, JPG og WebP, med SVG der den konkrete operasjonen tillater det. Filer må være under 20 MB, ikke større enn 16 MP, med en langside på høyst 4096 piksler. Kortsiden er minst 256 piksler, med et unntak på 32 piksler for skarp oppskalering. Masker samsvarer med bildestørrelsen og bruker rent svart og hvitt; stilreferanser har en samlet grense på 64 MB.

For et Ailoot API-prosjekt gjør du oppgaven om til en avgrenset bildebeskrivelse: nøyaktig tekst, objektoppsett, visuell stil og ønsket komposisjon. En plakat, en produktscene og en ikonserie krever ulike beskrivelser; bevar de relevante skillene mellom V3-variantene og operasjonene når du avgjør hvordan hvert resultat skal brukes.

Ailoot Ultra · Bilder POST /v1/images/generations recraft/recraft-v3

recraft/recraft-v3

Recraft /recraft/recraft-v3

Start

Recraft V3 lager fotografier, illustrasjoner og grafiske layouter med tekstbevisst komposisjon og stilkontroller. De egne raster- og SVG-variantene passer til plakater, merkevarebildesett, ikoner og design der ordlyd og visuell struktur må fungere sammen.

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-v3
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.08 per utdatabilde
KonfigurasjonAnslått genereringskostnadPrisplan—Forventet mengdeestimat for én genereringFaktureringsenhet—Kostnad
Utdata · Anslått genereringskostnad · Estimat kun for sammenligning $0.08 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.08 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-v3', '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-v3', '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-v3", "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-v3

Aliaser for metodestier

/v1/images

Tilknyttede anroper-ID-er

recraft/recraft-v3

FAQ · Recraft: Recraft V3
Hvilke inndata og resultater er tilgjengelige?

POST /v1/images/generations · recraft/recraft-v3: text, image → image

Hvilke felt bruker forespørselen?

POST /v1/images/generations · recraft/recraft-v3: model, prompt, n, aspect_ratio, input_references

Hvilke grenser gjelder?

POST /v1/images/generations · recraft/recraft-v3: 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