Recraft: Recraft V3
Recraft V3 erstellt Fotografien, Illustrationen und grafische Layouts mit textbewusster Komposition und Stileinstellungen. Seine getrennten Raster- und SVG-Varianten eignen sich für Plakate, Bildserien im Markendesign, Icons und Designs, bei denen Wortlaut und visuelle Struktur zusammenwirken müssen.
Ü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 V3 ist ein Bildgenerierungsmodell für Grafikdesign sowie fotografische und illustrierte Szenen. Ein schriftliches Briefing beschreibt Motiv, Umgebung und Komposition; das Ergebnis ist ein Bild. V3 entwickelt Recrafts Textdarstellung und Fotorealismus weiter und erhält dabei Stilkonsistenz anhand von Beispielbildern ohne erneutes Training.
Text als Teil der Komposition
V3 arbeitet mit Text innerhalb des Bildes, einschliesslich längerer Texte und mittelgrosser Schrift. Recraft beschreibt eine Layoutphase, die Wörter und ihre Positionen vor der Bildgenerierung festlegt. Das Layout kann automatisch aus dem Briefing erzeugt oder manuell in Recrafts Designumgebung angeordnet werden. Das hilft, eine Überschrift, eine Illustration und ergänzenden Text in einer Komposition miteinander zu verbinden. Der Hersteller dokumentiert auch ausdrückliche Textlayout-Koordinaten, die relativ zum Bild statt als festes Pixelraster angegeben werden. Jedes Textelement enthält ein einzelnes Wort und vier Eckpunkte in normalisierten Koordinaten: (0, 0) bezeichnet oben links, (1, 1) unten rechts. Koordinaten dürfen über diesen Bereich hinausgehen; dann wird die Form beschnitten. Wörter in ausdrücklich festgelegten Textlayouts müssen den dokumentierten Zeichenbeschränkungen entsprechen.
Geben Sie für ein Plakat oder Cover den genauen Wortlaut an und beschreiben Sie seine Hierarchie: welche Zeile führt, wo sie sitzt und wie das Bild sie unterstützt. Prüfen Sie bei der Auswahl eines Ergebnisses die gerenderte Schreibweise und die Abstände.
Stil, Palette und künstlerische Richtung
V3 enthält kuratierte Foto-, Illustrations- und Emblemstile sowie eine separate Bibliothek für Vektorstile. Recraft V3 Raw ist der Standardstil des Rastermodells; Vector art ist der Standard der Vektorvariante. Photorealism zielt auf ein fotografisches Erscheinungsbild, während Illustration stilisierte Texturen, Schattierungen und komplexere Farbübergänge ermöglicht. Vektorstile bevorzugen Formen, begrenzte Paletten und flächige Füllungen oder einfache Verläufe.
Benutzerdefinierte Stile lassen sich aus Referenzbildern, vorhandenen kompatiblen Stilen oder einer Kombination daraus erstellen. Sie bieten eine wiederverwendbare visuelle Richtung für eine Bildserie. Die dokumentierten Mischeinstellungen erlauben separate Gewichte für Referenzen und Ausgangsstile; die Anzahl der Gewichte entspricht der Anzahl der Quellen. PaletteMatch und MaxWeight sind die beiden aufgeführten Mischrichtlinien. Der Hersteller erlaubt bis zu 10 Stilreferenzbilder und nutzt für V3 den regulären Stilabgleich. Ein gespeicherter benutzerdefinierter Stil und direkte Stilreferenzen sind alternative Eingaben; ein benutzerdefinierter Stil muss zum für die Generierung verwendeten Modell passen.
Bevorzugte Farben und eine Hintergrundfarbe führen die Palette. Dokumentiert sind bis zu 10 RGB-Farben mit Komponenten von jeweils 0 bis 255. Optionale relative Gewichte reichen von 0 bis 1; sie müssen für jede Farbe oder für keine angegeben werden, und ihre Summe darf 1 nicht überschreiten. Der künstlerische Grad reicht von 0 für eine statische, klare Behandlung bis zu 5 für dynamischere, exzentrische Kompositionen. Ein negativer Prompt beschreibt unerwünschte Elemente; eine separate Einstellung für Bilder ohne Text deaktiviert eingebettete Textlayouts. Ein Zufalls-Seed steht für Reproduzierbarkeit zur Verfügung. Diese Einstellungen bieten unterschiedliche Ansatzpunkte für Szene, Stil und visuelles Layout.
Rasterbilder und eine separate SVG-Variante
Recraft dokumentiert zwei V3-Varianten. Das Rastermodell erzeugt verlustfreies WebP oder PNG und eignet sich für fotografische Details, Schattierungen und texturierte Illustrationen. Recraft V3 Vector erzeugt SVG: Pfade und Formen, die ohne feste Pixelauflösung skalierbar sind. Es eignet sich für Piktogramme, Logokonzepte, Abzeichen und detaillierte Vektorgrafiken. Raster-zu-Vektor-Konvertierung ist eine separate Operation gegenüber der direkten Generierung von Vektorgrafiken.
Beide Varianten haben eine eigene Identität. Ein Bild mit vektorähnlichem Aussehen und eine tatsächliche SVG-Ausgabe sind unterschiedliche Optionen. Wählen Sie bei der Vorbereitung eines Designablaufs die gewünschte Ausgabe, statt den gemeinsamen Namen V3 als Nachweis zu behandeln, dass jede Operation denselben Dateityp liefert.
Vorhandene Grafiken bearbeiten und fertigstellen
Recrafts V3-Dokumentation nennt Bild-zu-Bild-Generierung, Inpainting, Outpainting sowie Hintergrundaustausch oder Hintergrundgenerierung. Bild-zu-Bild-Arbeit kombiniert ein vorhandenes Bild mit einem neuen Briefing. Inpainting generiert den ausgewählten Bereich anhand eines Bildes und einer passenden Maske neu; Outpainting ergänzt Inhalt ausserhalb des ursprünglichen Rahmens. Hintergrundoperationen betreffen die Umgebung eines Motivs.
Zum zugehörigen Werkzeugsatz gehören ausserdem Radieren, Hintergrundentfernung, Vektorisierung und zwei Ansätze zur Hochskalierung. Kreative Hochskalierung kann neue Details hinzufügen; scharfe Hochskalierung zielt auf eine schärfere, grössere Darstellung des vorhandenen Inhalts. Dies sind getrennte Operationen mit eigenen Eingaben und Ergebnissen und keine zusätzlichen Bedeutungen der Raster- oder Vektormodellnamen.
Grenzen für Prompt, Grösse und Ausgangsbilder
Die V3-Generierungsspezifikation des Herstellers akzeptiert einen Prompt mit bis zu 1000 Zeichen und 1–6 Bilder pro Anfrage. Sie unterstützt 14 Seitenverhältnisse: 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 und 9:16. Dokumentierte Rasterbeispiele sind 1024x1024, 1820x1024 und 1024x1820. Exakte Rasterabmessungen müssen aus der unterstützten Liste stammen; SVG nutzt Seitenverhältnisse ohne feste Pixelgrösse. Wird die Grösse weggelassen, wählt das Herstellersystem sie anhand des Prompts aus.
Für Operationen mit Bildeingabe nennt der Hersteller PNG, JPG und WebP sowie SVG, sofern die jeweilige Operation es erlaubt. Dateien müssen unter 20 MB bleiben, dürfen höchstens 16 MP haben und auf der längsten Seite höchstens 4096 Pixel messen. Die kürzeste Seite beträgt mindestens 256 Pixel; für scharfe Hochskalierung gilt eine Ausnahme von 32 Pixeln. Masken entsprechen der Bildgrösse und verwenden reines Schwarz und Weiss; Stilreferenzen haben gemeinsam eine Grenze von 64 MB.
Formulieren Sie die Aufgabe für ein Ailoot-API-Projekt als gezieltes Bildbriefing: den genauen Text, die Anordnung der Objekte, den visuellen Stil und die gewünschte Komposition. Ein Plakat, eine Produktszene und eine Iconserie erfordern unterschiedliche Briefings; bewahren Sie bei der Entscheidung über die Verwendung jedes Ergebnisses die relevanten Unterschiede zwischen V3-Varianten und Operationen.
Ailoot Ultra · Bilder POST /v1/images/generations recraft/recraft-v3
recraft/recraft-v3Einstieg
Recraft V3 erstellt Fotografien, Illustrationen und grafische Layouts mit textbewusster Komposition und Stileinstellungen. Seine getrennten Raster- und SVG-Varianten eignen sich für Plakate, Bildserien im Markendesign, Icons und Designs, bei denen Wortlaut und visuelle Struktur zusammenwirken müssen.
- Zulässige Eingaben
- Text · Bilder
- Ergebnisse
- Bilder
In Ailoot verfügbar · Eingaben und Methoden
Ailoot Ultra · Bilder POST /v1/images/generations
- Eingabe
text,image- Ausgabe
image- Ausgabeformat
- Bilddatei
| Feld | Typ | Anforderung | Werte und Limits | Standard |
|---|---|---|---|---|
Feldmodel | Typstring | AnforderungErforderlich | Werte und Limits recraft/recraft-v3 | Standard— |
Feldprompt | Typstring | AnforderungErforderlich | Werte und Limits Mindestlänge: 1 | Standard— |
Feldn | Typinteger | AnforderungOptional | Werte und Limits Minimum: 1 Maximum: 6 | Standard— |
Feldaspect_ratio | Typstring | AnforderungOptional | Werte und Limits 1:1, 4:3, 3:4, 16:9, 9:16, auto | Standard— |
Feldinput_references | Typarray | AnforderungOptional | Werte und Limits Mindestanzahl Elemente: 0 Maximale Anzahl Elemente: 1 | Standard— |
Kombinationen von Eingabematerialien
Text zu Bild · Erforderlich: prompt
Methodenparameter und Lebenszyklus
| Parameter | Vertrag |
|---|---|
Parametercontent_type | Vertragapplication/json |
Parameterrequired | Vertragmodel, prompt |
Parametermaterial_types | Vertragtext, image |
Parameteroptional_controls | Vertragaspect_ratio, n, input_references |
Parameterexact_supported_parameters | Vertrag{"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_rule | VertragAusschliesslich tatsächliche Bildreferenzen des Kunden; für sie gelten die Bedingungen des Anbieterendpunkts. |
Methodenaliasnamen: /v1/images
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}
Verwenden Sie das exakte Modell und die dokumentierten Eingabefelder.
Bewahren Sie die vollständige Antwort, jede tatsächliche Ausgabe und die ursprünglich zurückgegebenen IDs auf.
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.08 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.08 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.08 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={'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");
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.
Bewahren Sie jedes Datenelement und die vollständigen Verbrauchsdaten auf; übernehmen und speichern Sie alle tatsächlich zurückgegebenen Bilder unter eigener Kontrolle. Keine erfundenen URLs oder IDs.
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 |
Aliasnamen
Modellaliasnamen
Ailoot Ultra recraft/recraft-v3
Aliasnamen für Methodenpfade
/v1/images
Zugehörige Aufrufer-IDs
FAQ · Recraft: Recraft V3
- Welche Eingaben und Ergebnisse sind verfügbar?
POST /v1/images/generations·recraft/recraft-v3:text,image→image- Welche Felder verwendet die Anfrage?
POST /v1/images/generations·recraft/recraft-v3:model,prompt,n,aspect_ratio,input_references- Welche Grenzen gelten?
POST /v1/images/generations·recraft/recraft-v3:n.minimum:1;n.maximum:6