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.
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-flashStart
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 |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrevd | Verdier & grenser recraft/recraft-v4.1-flash | Standard— |
Feltprompt | Typestring | KravPåkrevd | Verdier & grenser Minste lengde: 1 Vilkår: UTF8-ledetekst med innhold. Ingen tegnbegrensning som gjelder hele produsenten, er funnet på. | Standard— |
Feltn | Typeinteger | KravValgfritt | Verdier & grenser 1 | Standard1 |
Feltresponse_format | Typestring | KravValgfritt | Verdier & grenser url, b64_json | Standard— |
Feltstream | Typeboolean | KravValgfritt | Verdier & grenser false | Standardfalse |
Kombinasjoner av inngående materialer
Tekst til bilde · Påkrevd: prompt
Metodeparametere og livssyklus
| Parameter | Avtale |
|---|---|
Parametercontent_type | Avtaleapplication/json |
Parameterrequired | Avtalemodel, prompt |
Parametermaterial_types | Avtaletext |
Parameteroptional | Avtalen, response_format, stream |
Parametern | Avtale1 |
Parameterstream | Avtalefalse |
Parameterresponse_format | Avtaleurl, b64_json |
Parameterreference_images | Avtalefalse |
Parameteredit | Avtalefalse |
Parameteroutput_format_optional | Avtale |
Parameterresolution_control | Avtalenull |
Parameteraspect_ratio_control | Avtalenull |
Parameterother_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 →
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
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
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])
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}/contentGET /v1/media/assetsGET /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 |
|---|---|
Feltcreated | Typeinteger |
Feltdata[].url | Typestring |
Feltdata[].b64_json | Typebase64 string |
Feltusage | 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. |
Svarserver_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
Aliaser for metodestier
Bruk metodestiene som vises ovenfor.
Tilknyttede anroper-ID-er
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