Recraft: Recraft V3
Recraft V3 erstellt Fotos, Illustrationen und grafische Layouts mit einer auf Text abgestimmten Komposition und Stilsteuerung. Seine getrennten Raster- und SVG-Varianten eignen sich für Plakate, markenkonforme Bildserien, Icons und Designs, bei denen Wortlaut und visuelle Struktur zusammenspielen 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 ebenso wie für 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 zugleich Stilkonsistenz anhand von Beispielbildern, ohne erneutes Training.
Text als Teil der Komposition
V3 arbeitet mit Text innerhalb des Bildes, darunter längere Texte und mittelgroße Schriftzüge. Recraft beschreibt einen Layoutschritt, der Wörter und ihre Positionen vor der Bildgenerierung festlegt. Das Layout kann automatisch aus dem Briefing erzeugt oder in Recrafts Designumgebung manuell angeordnet werden. Das hilft, Überschrift, Illustration und Begleittext in einer Komposition zu verbinden. Der Hersteller dokumentiert außerdem ausdrückliche Textlayout-Koordinaten, die relativ zum Bild und nicht in einem festen Pixelraster angegeben werden. Jedes Textelement enthält ein einzelnes Wort und vier Eckpunkte in normalisierten Koordinaten: (0, 0) ist links oben und (1, 1) rechts unten. Koordinaten können ü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 exakten Wortlaut an und beschreiben Sie seine Hierarchie: welche Zeile führt, wo sie steht 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 umfasst 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 für die 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 Farbverläufe.
Benutzerdefinierte Stile lassen sich aus Referenzbildern, vorhandenen kompatiblen Stilen oder einer Kombination erstellen. Sie bieten eine wiederverwendbare visuelle Richtung für eine Bildserie. Die dokumentierte Mischsteuerung erlaubt separate Gewichtungen für Referenzen und Ausgangsstile; die Anzahl der Gewichtungen entspricht der Anzahl der Quellen. PaletteMatch und MaxWeight sind die beiden aufgeführten Mischregeln. Der Hersteller erlaubt bis zu 10 Stilreferenzbilder und verwendet für V3 den regulären Modus zur Stilanpassung. 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 lenken die Palette. Dokumentiert sind bis zu 10 RGB-Farben mit jeder Komponente von 0 bis 255. Optionale relative Gewichtungen reichen von 0 bis 1; sie müssen entweder für jede Farbe oder für keine angegeben werden, und ihre Summe darf 1 nicht überschreiten. Das künstlerische Niveau reicht von 0 für eine statische, klare Gestaltung bis 5 für dynamischere, eigenwillige Kompositionen. Ein negativer Prompt beschreibt unerwünschte Elemente; eine separate Steuerung ohne Text deaktiviert eingebettete Textlayouts. Ein Zufalls-Seed steht für Reproduzierbarkeit zur Verfügung. Diese Steuerelemente bieten unterschiedliche Einflussmöglichkeiten auf 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. Die Umwandlung von Raster in Vektor ist ein separater Vorgang gegenüber der direkten Erzeugung von Vektorgrafiken.
Beide Varianten haben eine eigene Identität. Ein Bild mit vektorartigem Erscheinungsbild und eine tatsächliche SVG-Ausgabe sind unterschiedliche Möglichkeiten. Wählen Sie die geplante Ausgabe bei der Vorbereitung eines Designablaufs, statt den gemeinsamen Namen V3 als Nachweis dafür zu behandeln, dass jeder Vorgang denselben Dateityp zurückgibt.
Vorhandene Grafiken bearbeiten und fertigstellen
Recrafts V3-Dokumentation führt Bild-zu-Bild-Generierung, Inpainting, Outpainting sowie Hintergrundersatz oder -generierung an. Bild-zu-Bild-Arbeit kombiniert ein vorhandenes Bild mit einem neuen Briefing. Inpainting erzeugt den ausgewählten Bereich anhand eines Bildes und einer passenden Maske neu; Outpainting ergänzt Inhalte außerhalb des ursprünglichen Rahmens. Hintergrundvorgänge betreffen die Umgebung eines Motivs.
Das zugehörige Werkzeugset umfasst außerdem Radieren, Hintergrundentfernung, Vektorisierung und zwei Verfahren zur Hochskalierung. Kreative Hochskalierung kann neue Details einführen; scharfe Hochskalierung zielt auf eine schärfere, größere Wiedergabe vorhandener Inhalte. Das sind getrennte Vorgänge mit eigenen Eingaben und Ergebnissen und keine zusätzlichen Bedeutungen des Raster- oder Vektormodellnamens.
Grenzen für Prompt, Größe und Quellbild
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 verwendet Seitenverhältnisse ohne feste Pixelgröße. Wird die Größe weggelassen, wählt das Herstellersystem sie anhand des Prompts.
Für Vorgänge mit Bildeingabe führt der Hersteller PNG, JPG und WebP an, dazu SVG, sofern der jeweilige Vorgang es erlaubt. Dateien müssen unter 20 MB bleiben, dürfen höchstens 16 MP haben und eine längste Seite von maximal 4096 Pixeln aufweisen. Die kürzeste Seite beträgt mindestens 256 Pixel, mit einer Ausnahme von 32 Pixeln für die scharfe Hochskalierung. Masken entsprechen der Bildgröße und verwenden reines Schwarz und Weiß; Stilreferenzen haben zusammen eine Grenze von 64 MB.
Formulieren Sie für ein Ailoot-API-Projekt aus der Aufgabe ein gezieltes Bildbriefing: exakter Text, Objektanordnung, visueller Stil und gewünschte Komposition. Ein Plakat, eine Produktszene und eine Iconserie benötigen unterschiedliche Briefings; bewahren Sie die relevanten Unterschiede zwischen V3-Varianten und Vorgängen, wenn Sie entscheiden, wie jedes Ergebnis eingesetzt wird.
Ailoot Ultra · Bilder POST /v1/images/generations recraft/recraft-v3
recraft/recraft-v3Einstieg
Recraft V3 erstellt Fotos, Illustrationen und grafische Layouts mit einer auf Text abgestimmten Komposition und Stilsteuerung. Seine getrennten Raster- und SVG-Varianten eignen sich für Plakate, markenkonforme Bildserien, Icons und Designs, bei denen Wortlaut und visuelle Struktur zusammenspielen 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 | VertragAusschließlich tatsächliche Bildreferenzen des Kunden; dafür 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 |
|---|---|---|---|---|
| KonfigurationBasistarife für Tokens | 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 · In Cache schreiben · Schätzung nur zum Vergleich — / 1K Tokens Eingabe · In 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 Generierungskosten | 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 abschließenden 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 denselben Betrag; 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 sämtliche tatsächlich zurückgegebenen Bilder als Ihnen zugeordnete Assets. 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