Recraft: Recraft V4 Pro
Recraft V4 Pro erzeugt Rasterbilder in 2K für detailreiche Kompositionen, Fotorealismus, Illustrationen und auf Druck ausgerichtete kreative Arbeit. Es ist die höher auflösende V4-Ausgabe mit Textbriefings, optionalen Stileingaben und einem separaten Bild-zu-Bild-Ablauf.
Ü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 Pro ist das höher auflösende Rastermodell in Recrafts V4-Familie. V4 konzentriert sich auf visuelles Urteilsvermögen, ausgewogene Komposition, stimmige Farben und eine sorgfältige Interpretation kreativer Vorgaben. Der Hersteller positioniert Pro für feinere Details, realistischere komplexe Szenen und umfangreiche Produktionsmotive. Nutzen Sie es für eine detaillierte Illustration, ein redaktionelles Bild, ein Plakatkonzept oder ein anderes Motiv, das von einem grösseren Rasterergebnis profitiert. Es bleibt vom späteren Modell V4.1 und von der SVG-Ausgabe von V4 Pro Vector getrennt.
Der genaue Herstellercode lautet recraftv4_pro. Die dokumentierte Ausgabe ist ein Rasterbild in 2K als verlustfreies WebP oder PNG: 2048 × 2048 Pixel für ein Quadrat, 2688 × 1536 für 16:9 und 1664 × 2560 für 2:3. Weitere unterstützte Seitenverhältnisse haben eigene Abmessungen. Wählen Sie ein Seitenverhältnis für das vorgesehene Layout oder eine exakt erlaubte Grösse; beliebige Pixelgrössen gehören nicht zum dokumentierten Generierungsvertrag. Das standardmässige V4 hat eine kleinere 1K-Rasterausgabe, während Vektormodelle keine feste Pixelauflösung haben.
V4 kann einen kurzen Prompt zur Erkundung oder einen strukturierten Prompt für ein kontrolliertes Ergebnis interpretieren. Für eine bestimmte künstlerische Richtung führt der Herstellerleitfaden von Motiv und Umgebung über Bildausschnitt, Eigenschaften, räumliche Beziehungen und Beleuchtung bis zu Tiefe und Stimmung. Fordern Sie für ein redaktionelles Produktbild eine dramatische vertikale Fotografie eines skulpturalen Stuhls, Oberflächen aus gebürstetem Metall, Seitenlicht, einen ruhigen dunklen Hintergrund und Platz oberhalb des Objekts für einen Titel an. Diese Beziehungen zu benennen macht die beabsichtigte Komposition klarer als eine allgemeine Bitte um ein hochwertiges Bild.
Das kreative Spektrum der Familie umfasst erzählerische Illustration, fotorealistische Szenen und räumlich wirkende Motive mit Material- und Lichthinweisen. Ein Ergebnis in 3D-Anmutung bleibt ein Bild und ist keine bearbeitbare 3D-Szene. Geben Sie für ein grafisches Plakat die visuellen Ebenen und ihr Zusammenspiel vor: Hintergrund, Illustration oder Fotografie, Hierarchie der Überschriften und ergänzender Text. V4 wird für lesbare kurze und mittellange Formulierungen positioniert; prüfen Sie jedoch fertige Schreibweise und Hierarchie, statt sie aus dem Modellnamen abzuleiten.
Die aktuelle Generierungsreferenz erlaubt Prompts mit bis zu 10'000 Zeichen, ein bis sechs Ausgaben, einen Zufalls-Seed sowie Einstellungen für bevorzugte Farben und Hintergrundfarbe. Optionale benutzerdefinierte Stile oder kompatible Referenzbilder können das Erscheinungsbild mit flexiblem oder präzisem Abgleich vorgeben. Das Modell akzeptiert die älteren V3-Einstellungen negative_prompt, kuratierte Stile, text_layout, artistic_level und no_text nicht. Beschreiben Sie das gewünschte fertige Bild im positiven Prompt und halten Sie Anforderungen an Motiv, Layout und Farben ausdrücklich fest. Für die Generierung anhand von Stilreferenzen verwenden Sie ein bis zehn PNG-, JPG- oder WebP-Bilder, insgesamt höchstens 64 MB und jeweils unter 20 MB. Bei jeder Referenz muss die kürzeste Seite mindestens 256 Pixel, die längste höchstens 4'096 Pixel und die Auflösung höchstens 16 Megapixel betragen. Verwenden Sie entweder diese Referenzen oder einen kompatiblen gespeicherten Stil, nicht beides zusammen.
Recraft dokumentiert eine separate Bild-zu-Bild-Operation für V4. Sie kombiniert ein vorhandenes Bild und einen Prompt mit einer Stärke von 0 bis 1 zur Steuerung des Änderungsgrads und akzeptiert dabei keine Einstellungen für benutzerdefinierte V4-Stile. Bereiten Sie die Vorlage innerhalb der Bild-Eingabegrenzen des Herstellers vor und nennen Sie die Eigenschaften, die in das neue Ergebnis übernommen werden sollen. Prüfen Sie bei einem grösseren fertigen Bild feine Details, Beschnitt und Schrift in der vorgesehenen Grösse. Die zusätzlichen Rasterdetails von Pro unterstützen diese Prüfung; das Bild bleibt eine generierte Interpretation des gelieferten kreativen Briefings. Für Bild-zu-Bild liefern Sie PNG, JPG, WebP oder SVG unter 20 MB mit höchstens 16 Megapixeln und beiden Seiten zwischen 256 und 4'096 Pixeln.
Ailoot Ultra · Bilder POST /v1/images/generations recraft/recraft-v4-pro
recraft/recraft-v4-proEinstieg
Recraft V4 Pro erzeugt Rasterbilder in 2K für detailreiche Kompositionen, Fotorealismus, Illustrationen und auf Druck ausgerichtete kreative Arbeit. Es ist die höher auflösende V4-Ausgabe mit Textbriefings, optionalen Stileingaben und einem separaten Bild-zu-Bild-Ablauf.
- 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-v4-pro | 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.5 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.5 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.5 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-v4-pro', '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-v4-pro', '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-v4-pro", "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-v4-pro
Aliasnamen für Methodenpfade
/v1/images
Zugehörige Aufrufer-IDs
FAQ · Recraft: Recraft V4 Pro
- Welche Eingaben und Ergebnisse sind verfügbar?
POST /v1/images/generations·recraft/recraft-v4-pro:text,image→image- Welche Felder verwendet die Anfrage?
POST /v1/images/generations·recraft/recraft-v4-pro:model,prompt,n,aspect_ratio,input_references- Welche Grenzen gelten?
POST /v1/images/generations·recraft/recraft-v4-pro:n.minimum:1;n.maximum:6