Recraft: Recraft V4.1 Flash
Recraft V4.1 Flash erzeugt Rasterbilder in 1K aus Text für schnelle visuelle Iterationen. Es unterstützt Fotografie, Porträts, komplexe Szenen und Logokonzepte mit PNG- oder verlustfreier WebP-Ausgabe und ausdrücklichen Farbwünschen.
Über das Modell
Diese Beschreibung erläutert die Fähigkeiten des Modells. Die über Ailoot verfügbaren Eingaben, Ausgaben und Optionen sind unten für die ausgewählte Methode aufgeführt.
Recraft V4.1 Flash ist Recrafts Text-zu-Bild-Modell für schnelle Iterationen und visuelle Arbeit mit hohem Volumen. Der Hersteller nennt Fotografie, Porträts, Atmosphäre, komplexe Szenen, Mixed Media und Logokonzepte als starke Einsatzgebiete. Ein schriftliches Briefing wird zu einem Rasterbild, das sich mit anderen kreativen Richtungen vergleichen lässt, bevor ein fertiges Bild ausgearbeitet wird. Flash ist ein bestimmtes Mitglied der V4.1-Familie mit eigener Ausgabegrösse und eigenen unterstützten Einstellungen.
Die native Ausgabe gehört zu Recrafts 1K-Rasterbildklasse. Wählen Sie die Bildfläche passend zum vorgesehenen Einsatz: eine horizontale Illustration für einen Seitenkopf, ein vertikales Porträt oder ein quadratisches Motiv für eine kompakte Karte. Als Ausgabeformate stehen verlustfreies WebP und PNG zur Verfügung.
Beginnen Sie das Briefing mit dem Hauptmotiv und dem visuellen Zweck und beschreiben Sie danach Bildausschnitt, Umgebung, Beleuchtung und Medium. Eine hilfreiche Anweisung für ein Produktkonzept lautet: «Ein kompaktes cremefarbenes Radio auf einem Schreibtisch aus Nussbaumholz, vordere Dreiviertelansicht, weiches Fensterlicht, ruhige redaktionelle Fotografie, grosszügiger Freiraum links.» Benennen Sie für eine Illustration die Formensprache, die Palette und die Beziehungen zwischen den Elementen. Halten Sie die Details, die die Idee bestimmen, ausdrücklich fest, statt unzusammenhängende Adjektive hinzuzufügen. Flash erlaubt laut Dokumentation Prompts mit bis zu 10'000 Zeichen, sodass sich eine detaillierte Szene beschreiben lässt, wenn die Aufgabe das erfordert.
Zu den Herstellereinstellungen gehören bevorzugte Farben und eine gewünschte Hintergrundfarbe. Ein Seed kann für reproduzierbare Ergebnisse angegeben werden; die Generierungsschnittstelle dokumentiert ein bis sechs Bilder pro Anfrage. Diese Einstellungen ermöglichen eine sinnvolle Vergleichsaufgabe: Motiv und Komposition konstant halten, eine visuelle Richtung variieren und die entstehenden Bilder für das vorgesehene Layout prüfen. Farbwünsche beschreiben das angeforderte Ergebnis; vergleichen Sie wichtige Markenfarben mit dem fertigen Bild, bevor Sie es mit einem bestehenden Designsystem kombinieren.
Flash erzeugt Rastergrafiken. Ein Logokonzept kann helfen, Silhouette, Stimmung oder Anordnung auszuwählen; bearbeitbare Pfade gehören dagegen zu den separat benannten Vector-Modellen. Flash hat zudem keine Pro-Variante. Die vollständige V4.1-Reihe bietet diese gesonderten Optionen, wenn Vektorbearbeitung oder höher auflösende Details für das Ergebnis entscheidend sind. Der Hersteller beschreibt einen späteren Verfeinerungsschritt, der einen gewählten Entwurf zu einem detaillierteren Bild weiterentwickelt; dieser Schritt ist eine eigenständige Operation und keine andere native Flash-Ausgabegrösse.
Diese Ausgabe unterstützt weder Bild-zu-Bild-Eingaben noch benutzerdefinierte Stile, Stilkennungen, Stilabgleich oder Stilreferenzbilder. Ihre dokumentierte Schnittstelle schliesst ausserdem negative Prompts und ausdrückliche Textlayout-Einstellungen aus. Beschreiben Sie das gewünschte Erscheinungsbild und die Komposition im positiven Briefing. Wenn Schrift zu einem Konzept gehört, zitieren Sie den gewünschten Wortlaut und prüfen Sie die gerenderten Buchstaben; nutzen Sie eine separate Layoutphase, wenn exakte Typografie und Platzierung entscheidend sind.
Ein praktisches Ergebnis von Flash ist eine ausgewählte visuelle Richtung mit klarem Briefing, passendem Seitenverhältnis und nutzbarer Rasterdatei. Vergleichen Sie Motiv, Bildausschnitt, Hintergrund und wichtige Details in der Grösse, in der das Bild erscheinen wird. Bewahren Sie den erfolgreichen Prompt gemeinsam mit der gewählten Datei auf, damit der nächste kreative Schritt der ausgewählten Richtung folgt. Schnelle Iterationen helfen, das Design zu erkunden; native Vektorausgabe, Stilabgleich anhand von Referenzen und die Auflösung einer anderen V4.1-Ausgabe bleiben getrennte Modellentscheidungen.
Ailoot Ultra · Bilder POST /v1/images/generations recraft/recraft-v4.1-flash
recraft/recraft-v4.1-flashEinstieg
Recraft V4.1 Flash erzeugt Rasterbilder in 1K aus Text für schnelle visuelle Iterationen. Es unterstützt Fotografie, Porträts, komplexe Szenen und Logokonzepte mit PNG- oder verlustfreier WebP-Ausgabe und ausdrücklichen Farbwünschen.
- Zulässige Eingaben
- Text
- Ergebnisse
- Bilder
In Ailoot verfügbar · Eingaben und Methoden
Ailoot Ultra · Bilder POST /v1/images/generations
- Eingabe
text- Ausgabe
image- Ausgabeformat
- Bilddatei
- Ausgabeanzahl
- 1 Ausgabe
| Feld | Typ | Anforderung | Werte und Limits | Standard |
|---|---|---|---|---|
Feldmodel | Typstring | AnforderungErforderlich | Werte und Limits recraft/recraft-v4.1-flash | Standard— |
Feldprompt | Typstring | AnforderungErforderlich | Werte und Limits Mindestlänge: 1 Bedingungen: Nicht leere UTF8-Textbeschreibung. Es wird keine herstellerweite Zeichengrenze erfunden. | Standard— |
Feldn | Typinteger | AnforderungOptional | Werte und Limits 1 | Standard1 |
Feldresponse_format | Typstring | AnforderungOptional | Werte und Limits url, b64_json | Standard— |
Feldstream | Typboolean | AnforderungOptional | Werte und Limits false | Standardfalse |
Kombinationen von Eingabematerialien
Text zu Bild · Erforderlich: prompt
Methodenparameter und Lebenszyklus
| Parameter | Vertrag |
|---|---|
Parametercontent_type | Vertragapplication/json |
Parameterrequired | Vertragmodel, prompt |
Parametermaterial_types | Vertragtext |
Parameteroptional | Vertragn, response_format, stream |
Parametern | Vertrag1 |
Parameterstream | Vertragfalse |
Parameterresponse_format | Vertragurl, b64_json |
Parameterreference_images | Vertragfalse |
Parameteredit | Vertragfalse |
Parameteroutput_format_optional | Vertrag |
Parameterresolution_control | Vertragnull |
Parameteraspect_ratio_control | Vertragnull |
Parameterother_fields | VertragAbgewiesen, ausser bei exakt festgelegtem internem Anbieterrouting |
Lebenszyklus: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · die tatsächlich zurückgegebene task_id oder ein Eintrag in der Medienbibliothek
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Erzeugen Sie ein Bild aus einer Textbeschreibung.
Speichern Sie jedes Datenelement; url/b64_json sind Ergebnisdarstellungen.
Tarife
So wird die endgültige Gebühr berechnet
Die angezeigten Tarife dienen zur Kostenschätzung vor der Generierung. Der endgültige Betrag wird aus den für die ursprüngliche Generierung erfassten Kosten berechnet. Die gemessene Ausgabedauer und prognostizierte Mengen sind nicht die endgültige abrechenbare Menge.
Tarifangaben erweitern die Anfrageoptionen nicht. Unterstützte Parameter stehen bei der ausgewählten Methode.
- Schnellmodus
- Nicht angegeben Wenn der Schnellmodus ausgewählt ist
- Flex-Modus
- Nicht angegeben Wenn der Modus flex ausgewählt ist
- Maximaler Denkaufwand
- Nicht angegeben Wenn beim maximalen Denkaufwand die Standardanpassung (default) verwendet wird
Geschätzte Tarife zum Vergleich
Preise nach Konfiguration
Ordnen Sie jede Gebühr den angezeigten Bedingungen zu. Verwenden Sie für jede Gruppe alternativer Konfigurationen einen Tarif.
| Konfiguration | Tarifstaffel | Prognostizierte Menge | Abrechnungseinheit | Gebühr |
|---|---|---|---|---|
| KonfigurationToken-Basistarife | TarifstaffelGrundtarif | Prognostizierte Menge— | Abrechnungseinheit— | Gebühr Eingabe · Eingabetoken · Schätzung nur zum Vergleich — / 1K Tokens Ausgabe · Ausgabetoken · Schätzung nur zum Vergleich — / 1K Tokens Eingabe · Cache lesen · Schätzung nur zum Vergleich — / 1K Tokens Eingabe · Cache schreiben · Schätzung nur zum Vergleich — / 1K Tokens Eingabe · Cache schreiben, 1 Stunde · Schätzung nur zum Vergleich — / 1K Tokens |
| KonfigurationUltra | Tarifstaffel— | Prognostizierte Menge— | Abrechnungseinheitpro Ausgabebild | Gebühr Ausgabe · Bildausgabe · Schätzung nur zum Vergleich $0.014 pro Ausgabebild |
| KonfigurationGeschätzte Erzeugungskosten | Tarifstaffel— | Prognostizierte MengeSchätzung für eine Generierung | Abrechnungseinheit— | Gebühr Ausgabe · Geschätzte Generierungskosten · Schätzung nur zum Vergleich $0.014 Schätzung vor der Generierung Diese Schätzung ist weder eine zusätzliche Gebühr noch ein fester Tarif für die abgeschlossene Generierung. |
Ailoot reserviert vor einer Anfrage einen geschätzten Betrag. Nach dem Ergebnis rechnet Ailoot die endgültige Gebühr anhand des gemessenen Verbrauchs ab. Bei Streaming erfolgt die Abrechnung anhand des abschliessenden Verbrauchsdatensatzes. So funktionieren Reservierung und Abrechnung →
Details zum Referenztarif
Referenztarifstaffeln auf Modellebene ändern weder Methodenauswahl noch Kostenvoranschläge oder Gebühren. Für die aktive Abrechnung gelten die Tarife der ausgewählten Ailoot-Methode.
Preiskonfigurationen für Bilder
Preise nach Konfiguration
| Konfiguration | Abrechnungsbedingungen | Gebühr |
|---|---|---|
| KonfigurationAusgabebild | AbrechnungsbedingungenEs ist keine Preisvariante deklariert. | Gebühr Ausgabe · Ausgabebild $0.014 pro Bild Gleichwertige Einträge beschreiben dieselbe Abbuchung; sie verursachen keine zweite Gebühr. |
Beispielanfragen
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");
Ergebnisse abrufen und speichern
Ailoot Ultra · Bilder
Laden Sie jedes zurückgegebene Bild herunter oder speichern Sie seinen Base64-Inhalt
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Alle fertiggestellten Ergebnisse aufbewahren
Speichern Sie jedes fertiggestellte Bild; rufen Sie jede zurückgegebene URL ab oder dekodieren Sie seinen Base64-Inhalt.
Jedes Datenelement speichern. Jedes b64_json dekodieren oder jede zurückgegebene signierte URL abrufen. Die Dateiendung anhand des tatsächlichen MIME-Typs bzw. der Bytes wählen.
Wenn die ursprüngliche Antwort geprüft werden muss
Wenn das Ergebnis einer Bildgenerierung oder -bearbeitung geprüft werden muss, die ursprüngliche operation_id/X-Client-Request-ID und die zurückgegebenen Ergebnisinformationen aufbewahren. Bereits vorhandene eigene Ergebnisse über die Medienbibliothek anhand tatsächlicher task_id- oder asset_id-Werte wiederherstellen. Die Generierungs-/Bearbeitungsanfrage nicht erneut senden und keine Abfrage-URL aus operation_id bilden.
Antwortfelder
| Feld | Typ |
|---|---|
Feldcreated | Typinteger |
Felddata[].url | Typstring |
Felddata[].b64_json | Typbase64 string |
Feldusage | Typobject |
Fehler und nächste Schritte
| Antwort | Bedingung | Nächster Schritt |
|---|---|---|
Antwort400 · invalid_request_error | BedingungPflichtfelder, Darstellung des Eingabematerials oder Parameterwert ungültig | Nächster SchrittDie angegebenen Felder vor einer neuen Erstellungsanfrage korrigieren. |
Antwortserver_error | BedingungDie zurückgegebene Antwort gibt an, dass der Vorgang oder das Ergebnis eine Prüfung erfordert | Nächster SchrittDie ursprünglich zurückgegebene Vorgangs-/Aufgaben-ID, die Anfrageheader und die Antwort aufbewahren; mit unterstützten Leseaufrufen für diesen ursprünglichen Vorgang fortfahren. Die Erstellungsanfrage nicht erneut senden. |
Aliasnamen
Modellaliasnamen
Ailoot Ultra recraft/recraft-v4.1-flash
Aliasnamen für Methodenpfade
Verwenden Sie die oben angezeigten Methodenpfade.
Zugehörige Aufrufer-IDs
FAQ · Recraft: Recraft V4.1 Flash
- Welche Eingaben und Ergebnisse sind verfügbar?
POST /v1/images/generations·recraft/recraft-v4.1-flash:text→image- Welche Felder verwendet die Anfrage?
POST /v1/images/generations·recraft/recraft-v4.1-flash:model,prompt,n,response_format,stream