models

Recraft: Recraft V4.1 Flash

Markdown · JSON

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-flash

Recraft /recraft/recraft-v4.1-flash

Einstieg

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
FeldTypAnforderungWerte und LimitsStandard
FeldmodelTypstringAnforderungErforderlichWerte und Limits
recraft/recraft-v4.1-flash
Standard—
FeldpromptTypstringAnforderungErforderlichWerte und Limits
Mindestlänge: 1
Bedingungen: Nicht leere UTF8-Textbeschreibung. Es wird keine herstellerweite Zeichengrenze erfunden.
Standard—
FeldnTypintegerAnforderungOptionalWerte und Limits
1
Standard1
Feldresponse_formatTypstringAnforderungOptionalWerte und Limits
url, b64_json
Standard—
FeldstreamTypbooleanAnforderungOptionalWerte und Limits
false
Standardfalse
Kombinationen von Eingabematerialien

Text zu Bild · Erforderlich: prompt

Methodenparameter und Lebenszyklus
ParameterVertrag
Parametercontent_typeVertragapplication/json
ParameterrequiredVertragmodel, prompt
Parametermaterial_typesVertragtext
ParameteroptionalVertragn, response_format, stream
ParameternVertrag1
ParameterstreamVertragfalse
Parameterresponse_formatVertragurl, b64_json
Parameterreference_imagesVertragfalse
ParametereditVertragfalse
Parameteroutput_format_optionalVertrag
Parameterresolution_controlVertragnull
Parameteraspect_ratio_controlVertragnull
Parameterother_fieldsVertragAbgewiesen, 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.

KonfigurationTarifstaffelPrognostizierte MengeAbrechnungseinheitGebühr
KonfigurationToken-BasistarifeTarifstaffelGrundtarifPrognostizierte 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
KonfigurationUltraTarifstaffel—Prognostizierte Menge—Abrechnungseinheitpro AusgabebildGebühr
Ausgabe · Bildausgabe · Schätzung nur zum Vergleich $0.014 pro Ausgabebild
KonfigurationGeschätzte ErzeugungskostenTarifstaffel—Prognostizierte MengeSchätzung für eine GenerierungAbrechnungseinheit—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

KonfigurationAbrechnungsbedingungenGebühr
KonfigurationAusgabebildAbrechnungsbedingungenEs 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

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=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}/content
  • GET /v1/media/assets
  • GET /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
FeldTyp
FeldcreatedTypinteger
Felddata[].urlTypstring
Felddata[].b64_jsonTypbase64 string
FeldusageTypobject
Fehler und nächste Schritte
AntwortBedingungNächster Schritt
Antwort400 · invalid_request_errorBedingungPflichtfelder, Darstellung des Eingabematerials oder Parameterwert ungültigNächster SchrittDie angegebenen Felder vor einer neuen Erstellungsanfrage korrigieren.
Antwortserver_errorBedingungDie zurückgegebene Antwort gibt an, dass der Vorgang oder das Ergebnis eine Prüfung erfordertNä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

recraft/recraft-v4.1-flash

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

Weitere Details

Verbinden Sie Ailoot mit Claude Code, OpenCode, Hermes oder Ihrer eigenen Anwendung.

Das Unternehmen und sein Projektportfolio

Das Unternehmen und sein Projektportfolio: Millionen von Kunden; monatliche Umsätze in Milliardenhöhe.

Tokens mit Rabatt kaufen.

Aborabatt für regelmäßige Arbeit. Aktionscodes bieten bis 50% beim Tokenkauf.

Abo
Wählen Sie einen Tarif mit Rabatt für Ihre regelmäßigen Anfragen.
Aktionscode bis 50%
Geben Sie den Code beim Kauf ein. Der Preis wird nach den gültigen Aktionsbedingungen berechnet.
Ausgaben in der Historie
Modell, Tokens und Betrag werden für jede Anfrage gespeichert.

Abo wählen · Modellpreise ansehen

Verbinden Sie die API mit dem Produkt, das Sie verkaufen.

SaaS, Anwendungen und Bots nach dem offiziellen Angebot und Lizenzvertrag von Ailoot. Fordern Sie für den Weiterverkauf eine Reseller-Lizenz an.

Kommerzielle Anwendung
Integrieren Sie Text-, Bild-, Video- und Audioerzeugung in kostenpflichtige Funktionen Ihres Dienstes.
Reseller-Lizenz
Senden Sie Projektbeschreibung und Zugangsmodell. Fordern Sie schriftliche Nutzungs- und Weiterverkaufsbedingungen an.
Dokumente auf der Website
Offizielles Angebot, Lizenzvertrag und Datenschutzerklärung sind vor der Verbindung zugänglich.

Reseller-Lizenz anfordern · Offizielles Angebot und Lizenzvertrag