modely

Recraft: Recraft V4 Pro

Markdown · JSON

Recraft: Recraft V4 Pro

Recraft V4 Pro generuje rastrové obrázky 2K pro detailní kompozice, fotorealismus, ilustraci a tvůrčí práci určenou k tisku. Je edicí V4 s vyšším rozlišením, textovými zadáními, volitelnými stylovými vstupy a samostatným postupem image-to-image.

O modelu

Tento popis zahrnuje schopnosti modelu. Vstupy, výstupy a možnosti dostupné v Ailoot jsou uvedeny níže pro vybranou metodu.

Recraft V4 Pro je rastrový model s vyšším rozlišením v rodině Recraft V4. V4 se zaměřuje na vizuální úsudek, vyváženou kompozici, souvislé barvy a pečlivou interpretaci tvůrčího směru. Výrobce určuje Pro pro jemnější detaily, realističtější složité scény a rozsáhlé produkční vizuály. Použijte jej pro detailní ilustraci, redakční obrázek, koncept plakátu či jiný materiál těžící z většího rastrového výsledku. Zůstává oddělený od pozdějšího modelu V4.1 a výstupu SVG V4 Pro Vector.

Konkrétní kód výrobce je recraftv4_pro. Dokumentovaný výstup je rastrový 2K v bezztrátovém WebP nebo PNG: 2048 × 2048 pixelů pro čtverec, 2688 × 1536 pro 16:9 a 1664 × 2560 pro 2:3. Ostatní podporované poměry mají vlastní rozměry. Zvolte poměr stran pro zamýšlené rozvržení nebo přesnou povolenou velikost; libovolná pixelová velikost není součástí dokumentované smlouvy generování. Standardní V4 má menší rastrový výstup 1K, zatímco vektorové modely nemají pevné pixelové rozlišení.

V4 může interpretovat krátký prompt pro zkoumání nebo strukturovaný prompt pro řízený výsledek. Pro konkrétní výtvarný směr postupuje příručka výrobce od objektu a prostředí k rámování, vlastnostem, prostorovým vztahům, osvětlení, hloubce a náladě. U redakčního produktového obrázku požadujte dramatickou svislou fotografii sochařsky pojaté židle, povrchy z kartáčovaného kovu, boční osvětlení, klidné tmavé pozadí a prostor nad předmětem pro nadpis. Pojmenování těchto vztahů objasňuje zamýšlenou kompozici více než obecný požadavek na prémiový obrázek.

Tvůrčí rozsah rodiny zahrnuje příběhovou ilustraci, fotorealistické scény a prostorové vizuály s vodítky pro materiál a osvětlení. Výsledek vypadající jako 3D je stále obrázkem, nikoli editovatelnou 3D scénou. U grafického plakátu určete vizuální vrstvy a jejich interakci: pozadí, ilustraci či fotografii, hierarchii nadpisu a podpůrný text. V4 je určen pro čitelné krátké a středně dlouhé fráze, ale konečný pravopis a hierarchii je třeba prohlédnout místo odvozování z názvu modelu.

Současná dokumentace generování dovoluje prompty do 10 000 znaků, jeden až šest výstupů, náhodný seed a ovládání preferovaných barev a barvy pozadí. Volitelné vlastní styly či kompatibilní referenční obrázky mohou vést vzhled pomocí flexible nebo precise matching. Model nepřijímá starší ovládání V3 negative_prompt, předpřipravené styly, text_layout, artistic_level ani no_text. Zamýšlený finální obrázek popište v pozitivním promptu a požadavky na objekt, rozvržení a barvy ponechte explicitní. Pro generování podle stylových referencí použijte jeden až deset obrázků PNG, JPG nebo WebP, celkem nejvýše 64 MB a každý pod 20 MB. Každá reference potřebuje nejkratší stranu alespoň 256 pixelů, nejdelší nejvýše 4 096 pixelů a rozlišení nejvýše 16 megapixelů. Použijte buď tyto reference, nebo kompatibilní uložený styl, nikoli obojí.

Recraft dokumentuje samostatnou operaci image-to-image pro V4. Kombinuje existující obrázek a prompt se silou od 0 do 1 řídící míru změny a v této operaci nepřijímá ovládání vlastních stylů V4. Zdroj připravte v rámci limitů obrazového vstupu výrobce a uveďte vlastnosti, které se mají přenést do nového výsledku. U většího finálního materiálu zkontrolujte jemné detaily, ořez a písmo v zamýšlené velikosti. Další rastrové detaily Pro tuto kontrolu podporují, zatímco obrázek zůstává generovanou interpretací dodaného tvůrčího zadání. Pro image-to-image dodejte PNG, JPG, WebP nebo SVG pod 20 MB, nejvýše 16 megapixelů, s oběma stranami mezi 256 a 4 096 pixely.

Ailoot Ultra · Obrázky POST /v1/images/generations recraft/recraft-v4-pro

recraft/recraft-v4-pro

Recraft /recraft/recraft-v4-pro

Úvod

Recraft V4 Pro generuje rastrové obrázky 2K pro detailní kompozice, fotorealismus, ilustraci a tvůrčí práci určenou k tisku. Je edicí V4 s vyšším rozlišením, textovými zadáními, volitelnými stylovými vstupy a samostatným postupem image-to-image.

Přijímané vstupy
Text · Obrázky
Výsledky
Obrázky

Dostupné v Ailoot · vstupy a metody

Ailoot Ultra · Obrázky POST /v1/images/generations
Vstup
text, image
Výstup
image
Výstupní formát
Soubor obrázku
PoleTypPožadavekHodnoty a limityVýchozí
PolemodelTypstringPožadavekPovinnéHodnoty a limity
recraft/recraft-v4-pro
Výchozí—
PolepromptTypstringPožadavekPovinnéHodnoty a limity
Minimální délka: 1
Výchozí—
PolenTypintegerPožadavekVolitelnéHodnoty a limity
Minimum: 1
Maximum: 6
Výchozí—
Poleaspect_ratioTypstringPožadavekVolitelnéHodnoty a limity
1:1, 4:3, 3:4, 16:9, 9:16, auto
Výchozí—
Poleinput_referencesTyparrayPožadavekVolitelnéHodnoty a limity
Minimální počet položek: 0
Maximální počet položek: 1
Výchozí—
Kombinace vstupních materiálů

Text na obrázek · Povinné: prompt

Parametry a životní cyklus metody
ParametrKontrakt
Parametrcontent_typeKontraktapplication/json
ParametrrequiredKontraktmodel, prompt
Parametrmaterial_typesKontrakttext, image
Parametroptional_controlsKontraktaspect_ratio, n, input_references
Parametrexact_supported_parametersKontrakt{"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}}
Parametrreference_material_ruleKontraktPouze skutečné obrazové reference zákazníka; vztahují se na ně podmínky koncového bodu poskytovatele.

Aliasy metody: /v1/images

Životní cyklus: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · skutečně vrácené task_id nebo záznam v knihovně médií

GET /v1/media/assets/{asset_id}/content

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Použijte přesný model a dokumentovaná vstupní pole.

Uchovejte celou odpověď, každý skutečný výstup a původní vrácená ID.

Tarify

Jak se vypočítá konečný poplatek

Zobrazené sazby slouží k odhadu ceny před generováním. Konečný poplatek se vypočítá z nákladů zaznamenaných u původního generování. Naměřená délka výstupu ani odhadovaná množství nejsou konečným účtovaným množstvím.

Údaje o tarifech nepřidávají možnosti požadavku. Podporované parametry jsou uvedeny u vybrané metody.

Rychlý režim
Neuvedeno Při výběru rychlého režimu
Režim flex
Neuvedeno Při výběru režimu flex
Maximální intenzita uvažování
Neuvedeno Když se při maximální intenzitě uvažování použije výchozí úprava (default)

Odhadované sazby pro srovnání

Ceny podle konfigurace

Přiřaďte každý poplatek k uvedeným podmínkám. Pro každou sadu alternativních konfigurací použijte jednu sazbu.

KonfiguraceTabulka sazebPředpokládané množstvíÚčtovací jednotkaPoplatek
KonfiguraceZákladní sazby za tokenyTabulka sazebZákladní sazbaPředpokládané množství—Účtovací jednotka—Poplatek
Vstup · Vstupní tokeny · Odhad pouze pro srovnání — / 1K tokenů
Výstup · Výstupní tokeny · Odhad pouze pro srovnání — / 1K tokenů
Vstup · Čtení z mezipaměti · Odhad pouze pro srovnání — / 1K tokenů
Vstup · Zápis do mezipaměti · Odhad pouze pro srovnání — / 1K tokenů
Vstup · Zápis do mezipaměti, 1 hodina · Odhad pouze pro srovnání — / 1K tokenů
KonfiguraceUltraTabulka sazeb—Předpokládané množství—Účtovací jednotkaza výstupní obrázekPoplatek
Výstup · výstup obrázku · Odhad pouze pro srovnání $0.5 za výstupní obrázek
KonfiguraceOdhadovaná cena generováníTabulka sazeb—Předpokládané množstvíodhad pro jedno generováníÚčtovací jednotka—Poplatek
Výstup · Odhadovaná cena generování · Odhad pouze pro srovnání $0.5 odhad před generováním

Tento odhad není dodatečným poplatkem ani pevnou sazbou za dokončené generování.

Ailoot před požadavkem rezervuje odhadovanou částku. Po výsledku vyúčtuje konečný poplatek podle naměřeného využití. Při streamování se účtování řídí konečným záznamem využití. Jak funguje rezervace a vyúčtování →

Podrobnosti referenčního tarifu

Referenční tabulky modelu nemění výběr metody, cenové nabídky ani poplatky. Skutečné poplatky používají sazby vybrané metody Ailoot.

Cenové konfigurace obrázků

Ceny podle konfigurace

KonfiguracePodmínky účtováníPoplatek
KonfiguraceVýstupní obrázekPodmínky účtováníNení deklarována žádná cenová varianta.Poplatek
Výstup · Výstupní obrázek $0.5 za obrázek

Ekvivalentní položky popisují tutéž účtovanou částku; nepřidávají druhý poplatek.

Příklady požadavků

Ailoot Ultra · Obrázky

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={'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");

Přijímání a ukládání výsledků

Ailoot Ultra · Obrázky

Stáhněte každý vrácený obrázek nebo uložte jeho obsah Base64

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Uchovejte všechny dokončené výsledky

Uložte každý dokončený obrázek; stáhněte obsah každé vrácené URL nebo dekódujte obsah Base64.

Uchovejte každou datovou položku a úplné údaje o využití; převezměte do správy a uložte všechny skutečně vrácené obrázky. Žádné vymyšlené URL ani ID.

Pokud je nutné ověřit původní odpověď

Pokud výsledek generování nebo úpravy obrázku vyžaduje kontrolu, uchovejte původní operation_id/X-Client-Request-ID a vrácené informace o výsledku. Existující vlastní výsledky obnovte prostřednictvím knihovny médií pomocí skutečných hodnot task_id nebo asset_id. Požadavek na generování či úpravu znovu neodesílejte a nevytvářejte URL pro dotazování na stav z operation_id.

Pole odpovědi
PoleTyp
PolecreatedTypinteger
Poledata[].urlTypstring
Poledata[].b64_jsonTypbase64 string
PoleusageTypobject

Aliasy

Aliasy modelu

Ailoot Ultra recraft/recraft-v4-pro

Aliasy cest metod

/v1/images

Související ID modelů

recraft/recraft-v4-pro

FAQ · Recraft: Recraft V4 Pro
Jaké vstupy a výsledky jsou dostupné?

POST /v1/images/generations · recraft/recraft-v4-pro: text, image → image

Jaká pole požadavek používá?

POST /v1/images/generations · recraft/recraft-v4-pro: model, prompt, n, aspect_ratio, input_references

Jaké limity platí?

POST /v1/images/generations · recraft/recraft-v4-pro: n.minimum: 1; n.maximum: 6

Další podrobnosti

Připojte Ailoot k Claude Code, OpenCode, Hermes nebo vlastní aplikaci.

Společnost a její portfolio projektů

Společnost a její portfolio projektů: miliony zákazníků; měsíční tržby v miliardách.

Nakupujte tokeny se slevou.

Sleva předplatného pro pravidelnou práci. Promo kódy až 50% na nákup tokenů.

Předplatné
Pro pravidelné požadavky vyberte tarif se slevou.
Promo kód až 50%
Při nákupu zadejte kód. Cena se přepočítá podle probíhající akce.
Výdaje v historii
U každého požadavku se uloží model, tokeny a částka.

Vybrat předplatné · Zobrazit ceny modelů

Připojte API k produktu, který prodáváte.

SaaS, aplikace a boti podle nabídky a licenční smlouvy Ailoot. Pro přeprodej požádejte o licenci přeprodejce.

Komerční aplikace
Začleňte generování textu, obrázků, videa a zvuku do placených funkcí své služby.
Licence pro přeprodejce
Pošlete popis projektu a způsob poskytování přístupu. Vyžádejte písemné podmínky použití a přeprodeje.
Dokumenty na webu
Nabídka, licenční smlouva a zásady zpracování dat jsou dostupné před připojením.

Požádat o licenci přeprodejce · Nabídka a licenční smlouva