Recraft: Recraft V4.1 Flash
Recraft V4.1 Flash genereert 1K-rasterafbeeldingen vanuit tekst voor snelle visuele iteratie. Het ondersteunt fotografie, portretten, complexe scènes en logoconcepten, met PNG- of verliesvrije WebP-uitvoer en expliciete kleurvoorkeuren.
Over het model
Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.
Recraft V4.1 Flash is het tekst-naar-beeldmodel van Recraft voor snelle iteratie en visueel werk op grote schaal. De fabrikant noemt fotografie, portretten, sfeer, complexe scènes, gemengde media en logoconcepten als sterke toepassingen. Een geschreven briefing wordt een rasterafbeelding die je met andere creatieve richtingen kan vergelijken voordat je een eindbeeld ontwikkelt. Flash is een specifiek model uit de V4.1-familie, met eigen uitvoerformaat en ondersteunde instellingen.
De native uitvoer valt in de 1K-rasterbeeldklasse van Recraft. Kies het canvas volgens de bedoelde plaatsing: een horizontale illustratie voor een paginakop, een verticaal portret of een vierkant beeld voor een compacte kaart. Uitvoerformaten zijn verliesvrije WebP en PNG.
Begin de briefing met hoofdonderwerp en visueel doel en beschrijf daarna kadrering, omgeving, belichting en medium. Een nuttige instructie voor een productconcept is: “Een compacte crèmekleurige radio op een walnoten bureau, driekwartaanzicht van voren, zacht raamlicht, rustige redactionele foto, veel lege ruimte links.” Benoem voor een illustratie vormtaal, palet en verband tussen de elementen. Maak de details die het idee bepalen expliciet in plaats van ongerelateerde bijvoeglijke naamwoorden toe te voegen. De gedocumenteerde promptruimte van Flash is maximaal 10.000 tekens, dus je kan een gedetailleerde scène beschrijven wanneer de taak dat nodig heeft.
De instellingen van de fabrikant omvatten voorkeurskleuren en een gewenste achtergrondkleur. Je kan een seed opgeven voor reproduceerbare resultaten en de generatie-interface documenteert één tot zes afbeeldingen per aanvraag. Die instellingen ondersteunen een nuttige vergelijkingstaak: hou onderwerp en compositie gelijk, varieer één visuele richting en beoordeel de resulterende beelden op de bedoelde lay-out. Kleurvoorkeuren beschrijven het gevraagde resultaat; vergelijk belangrijke merkkleuren met het afgewerkte beeld voordat je het met een bestaand designsysteem combineert.
Flash produceert rastergrafiek. Een logoconcept kan helpen een silhouet, sfeer of opstelling te kiezen, terwijl bewerkbare paden bij de afzonderlijk benoemde Vector-modellen horen. Flash heeft ook geen Pro-variant. De volledige V4.1-lijn biedt die afzonderlijke keuzes wanneer vectorbewerking of detail met hogere resolutie centraal staat in de levering. De fabrikant beschrijft een latere verfijningsstap om een gekozen ontwerp naar een gedetailleerder beeld te brengen; die stap is een afzonderlijke bewerking, geen ander native Flash-uitvoerformaat.
Deze editie ondersteunt geen afbeelding-naar-afbeeldinginvoer, aangepaste stijlen, stijlidentificaties, stijlmatching of stijlreferentiebeelden. De gedocumenteerde interface sluit ook negatieve prompts en expliciete tekstlay-outinstellingen uit. Zet het gewenste uiterlijk en de compositie in de positieve briefing. Citeer de bedoelde tekst wanneer letters deel uitmaken van een concept en controleer de weergegeven letters; gebruik een afzonderlijke lay-outfase wanneer exacte typografie en plaatsing essentieel zijn.
Een praktisch Flash-resultaat is een gekozen visuele richting met een heldere briefing, geschikte beeldverhouding en bruikbaar rasterbestand. Vergelijk onderwerp, kadrering, achtergrond en belangrijke details op de grootte waarop het beeld zal verschijnen. Bewaar de geslaagde prompt en het gekozen bestand samen, zodat de volgende creatieve stap de gekozen richting volgt. Snelle iteratie helpt het ontwerp te verkennen; native vectoruitvoer, stijlreferentiematching en de resolutie van een andere V4.1-editie blijven afzonderlijke modelkeuzes.
Ailoot Ultra · Afbeeldingen POST /v1/images/generations recraft/recraft-v4.1-flash
recraft/recraft-v4.1-flashAan de slag
Recraft V4.1 Flash genereert 1K-rasterafbeeldingen vanuit tekst voor snelle visuele iteratie. Het ondersteunt fotografie, portretten, complexe scènes en logoconcepten, met PNG- of verliesvrije WebP-uitvoer en expliciete kleurvoorkeuren.
- Toegestane invoer
- Tekst
- Resultaten
- Afbeeldingen
Beschikbaar in Ailoot · invoer en methoden
Ailoot Ultra · Afbeeldingen POST /v1/images/generations
- Invoer
text- Uitvoer
image- Uitvoerformaat
- Afbeeldingsbestand
- Aantal uitvoerresultaten
- 1 uitvoer
| Veld | Type | Vereiste | Waarden en limieten | Standaard |
|---|---|---|---|---|
Veldmodel | Typestring | VereisteVereist | Waarden en limieten recraft/recraft-v4.1-flash | Standaard— |
Veldprompt | Typestring | VereisteVereist | Waarden en limieten Minimumlengte: 1 Voorwaarden: Niet-lege UTF8-prompt. Er wordt geen tekenlimiet voor alle modellen van de fabrikant verzonnen. | Standaard— |
Veldn | Typeinteger | VereisteOptioneel | Waarden en limieten 1 | Standaard1 |
Veldresponse_format | Typestring | VereisteOptioneel | Waarden en limieten url, b64_json | Standaard— |
Veldstream | Typeboolean | VereisteOptioneel | Waarden en limieten false | Standaardfalse |
Combinaties van invoermaterialen
Tekst naar afbeelding · Vereist: prompt
Methodeparameters en levenscyclus
| Parameter | Contract |
|---|---|
Parametercontent_type | Contractapplication/json |
Parameterrequired | Contractmodel, prompt |
Parametermaterial_types | Contracttext |
Parameteroptional | Contractn, response_format, stream |
Parametern | Contract1 |
Parameterstream | Contractfalse |
Parameterresponse_format | Contracturl, b64_json |
Parameterreference_images | Contractfalse |
Parameteredit | Contractfalse |
Parameteroutput_format_optional | Contract |
Parameterresolution_control | Contractnull |
Parameteraspect_ratio_control | Contractnull |
Parameterother_fields | Contractgeweigerd, behalve voor de exacte vastgezette interne routering naar de aanbieder |
Levenscyclus: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · daadwerkelijk teruggegeven task_id of record in de mediabibliotheek
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Genereer één afbeelding op basis van een prompt.
Sla elk gegevensitem op; url/b64_json zijn coderingen van het resultaat.
Tarieven
Zo worden de uiteindelijke kosten berekend
De getoonde tarieven ramen de kosten vóór de generatie. De definitieve kosten worden berekend op basis van de kosten die voor de oorspronkelijke generatie zijn geregistreerd. De gemeten duur van het gegenereerde resultaat en de geraamde hoeveelheden vormen niet de definitieve factureerbare hoeveelheid.
Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.
- Snelle modus
- Niet opgegeven Wanneer de snelle modus geselecteerd is
- Flex-modus
- Niet opgegeven Wanneer de flex-modus geselecteerd is
- Maximale redeneerinspanning
- Niet opgegeven Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt
Geschatte tarieven ter vergelijking
Prijzen per configuratie
Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.
| Configuratie | Tariefstaffel | Verwachte hoeveelheid | Rekeneenheid | Kosten |
|---|---|---|---|---|
| ConfiguratieBasistarieven voor tokens | TariefstaffelBasistarief | Verwachte hoeveelheid— | Rekeneenheid— | Kosten Invoer · Invoertokens · Schatting uitsluitend ter vergelijking — / 1K tokens Uitvoer · Uitvoertokens · Schatting uitsluitend ter vergelijking — / 1K tokens Invoer · Cache lezen · Schatting uitsluitend ter vergelijking — / 1K tokens Invoer · Cache schrijven · Schatting uitsluitend ter vergelijking — / 1K tokens Invoer · Cache schrijven, 1 uur · Schatting uitsluitend ter vergelijking — / 1K tokens |
| ConfiguratieUltra | Tariefstaffel— | Verwachte hoeveelheid— | Rekeneenheidper uitvoerafbeelding | Kosten Uitvoer · afbeeldingsuitvoer · Schatting uitsluitend ter vergelijking $0.014 per uitvoerafbeelding |
| ConfiguratieGeschatte generatiekosten | Tariefstaffel— | Verwachte hoeveelheidschatting voor één generatie | Rekeneenheid— | Kosten Uitvoer · Geschatte generatiekosten · Schatting uitsluitend ter vergelijking $0.014 schatting vóór generatie Deze raming is geen extra kost of vast tarief voor de voltooide generatie. |
Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →
Details van het referentietarief
Referentiestaffels op modelniveau veranderen de methodeselectie, kostenramingen of afschrijvingen niet. Voor de actieve kostenberekening gelden de tarieven van de geselecteerde Ailoot-methode.
Prijsconfiguraties voor afbeeldingen
Prijzen per configuratie
| Configuratie | Factureringsvoorwaarden | Kosten |
|---|---|---|
| ConfiguratieUitvoerafbeelding | FactureringsvoorwaardenEr is geen prijsvariant gedeclareerd. | Kosten Uitvoer · Uitvoerafbeelding $0.014 per afbeelding Gelijkwaardige vermeldingen beschrijven dezelfde aanrekening; ze voegen geen tweede kost toe. |
Voorbeeldverzoeken
Ailoot Ultra · Afbeeldingen
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");
Resultaten ophalen en opslaan
Ailoot Ultra · Afbeeldingen
Download elke teruggegeven afbeelding of sla de Base64-inhoud ervan op
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Alle voltooide resultaten bewaren
Sla elke voltooide afbeelding op; haal elke teruggegeven URL op of decodeer de bijbehorende Base64-inhoud.
Sla elk gegevensitem op. Decodeer elke b64_json of haal elke teruggegeven ondertekende URL op. Kies een bestandsextensie op basis van de daadwerkelijke MIME/bytes.
Als het oorspronkelijke antwoord moet worden gecontroleerd
Als het resultaat van een afbeeldingsgeneratie of -bewerking gecontroleerd moet worden, bewaar dan de oorspronkelijke operation_id/X-Client-Request-ID en de teruggegeven resultaatinformatie. Haal bestaande eigen resultaten terug via de mediabibliotheek met daadwerkelijk teruggegeven task_id- of asset_id-waarden. Dien de generatie- of bewerkingsaanvraag niet opnieuw in en stel geen polling-URL samen op basis van operation_id.
Antwoordvelden
| Veld | Type |
|---|---|
Veldcreated | Typeinteger |
Velddata[].url | Typestring |
Velddata[].b64_json | Typebase64 string |
Veldusage | Typeobject |
Fouten en vervolgstappen
| Antwoord | Voorwaarde | Volgende stap |
|---|---|---|
Antwoord400 · invalid_request_error | VoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldig | Volgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag. |
Antwoordserver_error | VoorwaardeDe teruggegeven respons geeft aan dat de bewerking of het resultaat gecontroleerd moet worden | Volgende stapBewaar de oorspronkelijk teruggegeven bewerkings-/taak-ID, aanvraagheaders en respons; blijf de oorspronkelijke bewerking uitlezen via de ondersteunde leesaanvragen. Dien de aanmaakaanvraag niet opnieuw in. |
Aliasnamen
Modelaliasnamen
Ailoot Ultra recraft/recraft-v4.1-flash
Aliasnamen voor methodepaden
Gebruik de hierboven getoonde methodepaden.
Gerelateerde aanroeper-ID’s
FAQ · Recraft: Recraft V4.1 Flash
- Welke invoer en resultaten zijn beschikbaar?
POST /v1/images/generations·recraft/recraft-v4.1-flash:text→image- Welke velden gebruikt het verzoek?
POST /v1/images/generations·recraft/recraft-v4.1-flash:model,prompt,n,response_format,stream