modely

Recraft: Recraft V3

Markdown · JSON

Recraft: Recraft V3

Recraft V3 vytváří fotografie, ilustrace a grafická rozvržení s kompozicí zohledňující text a ovládáním stylu. Jeho samostatné rastrové a SVG varianty se hodí pro plakáty, značkové obrazové sady, ikony a návrhy, v nichž musí text a vizuální struktura fungovat společně.

O modelu

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

Recraft V3 je model generování obrázků vytvořený pro grafický design i fotografické a ilustrované scény. Písemné zadání popisuje objekt, prostředí a kompozici; výsledkem je obrázek. V3 rozvíjí vykreslování textu a fotorealismus Recraft a současně bez přetrénování zachovává stylovou konzistenci z ukázkových obrázků.

Text jako součást kompozice

V3 pracuje s textem uvnitř obrázku včetně delších textů a středně velkého písma. Recraft popisuje fázi rozvržení, která určuje slova a jejich polohy před generováním obrázku. Rozvržení lze vytvořit automaticky ze zadání nebo uspořádat ručně v designovém prostředí Recraft. To pomáhá propojit nadpis, ilustraci a podpůrný text v jedné kompozici. Výrobce dokumentuje také explicitní souřadnice rozvržení textu vyjádřené relativně k obrázku místo pevné pixelové sítě. Každý textový prvek obsahuje jediné slovo a čtyři rohové body v normalizovaných souřadnicích: (0, 0) je levý horní roh a (1, 1) pravý dolní. Souřadnice mohou přesahovat tento rozsah; v takovém případě se tvar ořízne. Slova explicitního rozvržení textu musí dodržovat dokumentovaná omezení znaků.

U plakátu či obálky dodejte přesné znění a popište hierarchii: který řádek vede, kde je umístěn a jak jej obrázek podporuje. Při výběru výsledku zkontrolujte vykreslený pravopis a mezery.

Styl, paleta a výtvarný směr

V3 zahrnuje předpřipravené fotografické, ilustrační a emblémové styly plus samostatnou knihovnu vektorových stylů. Recraft V3 Raw je výchozím stylem rastrového modelu; Vector art je výchozí pro vektorovou variantu. Photorealism usiluje o fotografický vzhled, zatímco Illustration zahrnuje stylizované textury, stínování a složitější barevné přechody. Vektorové styly upřednostňují tvary, omezené palety a ploché výplně či jednoduché přechody.

Vlastní styly lze sestavit z referenčních obrázků, existujících kompatibilních stylů nebo jejich kombinace. Poskytují opakovaně použitelný vizuální směr pro sérii obrázků. Dokumentované ovládání míchání dovoluje referencím a zdrojovým stylům samostatné váhy; počty vah odpovídají zdrojům. PaletteMatch a MaxWeight jsou dvě uvedené zásady míchání. Výrobce dovoluje až 10 stylových referenčních obrázků a pro V3 používá běžný režim style-match. Uložený vlastní styl a přímé stylové reference jsou alternativními vstupy a vlastní styl musí odpovídat modelu použitému pro generování.

Preferované barvy a barva pozadí vedou paletu. Dokumentováno je až 10 barev RGB s každou složkou od 0 do 255. Volitelné relativní váhy mají rozsah 0 až 1; musí být dodány pro každou barvu, nebo pro žádnou, a jejich součet nesmí překročit 1. Artistic level sahá od 0 pro statické, čisté zpracování do 5 pro dynamičtější excentrické kompozice. Negativní prompt popisuje nežádoucí prvky; samostatné ovládání no-text vypíná vložená textová rozvržení. Pro reprodukovatelnost je dostupný náhodný seed. Tato ovládání poskytují různé prostředky řízení scény, jejího stylu a vizuálního rozvržení.

Rastrové obrázky a samostatná varianta SVG

Recraft dokumentuje dvě varianty V3. Rastrový model vytváří bezztrátové WebP nebo PNG a hodí se pro fotografické detaily, stínování a texturovanou ilustraci. Recraft V3 Vector vytváří SVG: cesty a tvary škálovatelné bez pevného pixelového rozlišení. Hodí se pro piktogramy, koncepty log, odznaky a detailní vektorovou grafiku. Převod rastru na vektor je samostatnou operací od přímého generování vektorové grafiky.

Obě varianty mají vlastní identitu. Obrázek s vektorovým vzhledem a skutečný výstup SVG jsou různé volby. Zamýšlený výstup vyberte při přípravě designového postupu místo považování společného názvu V3 za důkaz, že každá operace vrací stejný typ souboru.

Úpravy a dokončování existující grafiky

Dokumentace V3 Recraft uvádí generování image-to-image, inpainting, outpainting a nahrazování či generování pozadí. Práce image-to-image spojuje existující obrázek s novým zadáním. Inpainting regeneruje vybranou oblast pomocí obrázku a odpovídající masky; outpainting přidává obsah za původní rám. Operace s pozadím řeší okolí objektu.

Doprovodná sada nástrojů zahrnuje také mazání, odstraňování pozadí, vektorizaci a dva způsoby zvětšování. Creative upscaling může přidat nové detaily; crisp upscaling cílí na ostřejší větší podobu existujícího obsahu. Jde o oddělené operace s vlastními vstupy a výsledky místo dalších významů názvu rastrového či vektorového modelu.

Limity promptu, velikosti a zdrojových obrázků

Specifikace generování V3 výrobce přijímá prompt do 1000 znaků a 1–6 obrázků na požadavek. Podporuje 14 poměrů stran: 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 a 9:16. Dokumentované rastrové příklady zahrnují 1024x1024, 1820x1024 a 1024x1820. Přesné rastrové rozměry musí pocházet z podporovaného seznamu; SVG používá poměry stran bez pevné pixelové velikosti. Pokud je velikost vynechána, systém výrobce ji vybere podle promptu.

Pro operace s obrazovým vstupem výrobce uvádí PNG, JPG a WebP, se SVG tam, kde jej konkrétní operace dovoluje. Soubory musí mít pod 20 MB, nejvýše 16 MP a nejdelší stranu nejvýše 4096 pixelů. Nejkratší strana má alespoň 256 pixelů s výjimkou 32 pixelů pro crisp upscaling. Masky odpovídají velikosti obrázku a používají čistou černou a bílou; stylové reference mají souhrnný limit 64 MB.

Pro projekt Ailoot API převeďte úlohu na soustředěné obrazové zadání: přesný text, uspořádání předmětů, vizuální styl a požadovanou kompozici. Plakát, produktová scéna a série ikon vyžadují různá zadání; při rozhodování o použití výsledků zachovejte rozdíly příslušných variant V3 a operací.

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

recraft/recraft-v3

Recraft /recraft/recraft-v3

Úvod

Recraft V3 vytváří fotografie, ilustrace a grafická rozvržení s kompozicí zohledňující text a ovládáním stylu. Jeho samostatné rastrové a SVG varianty se hodí pro plakáty, značkové obrazové sady, ikony a návrhy, v nichž musí text a vizuální struktura fungovat společně.

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-v3
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.08 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.08 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.08 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-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");

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

Aliasy cest metod

/v1/images

Související ID modelů

recraft/recraft-v3

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

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

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

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

Jaké limity platí?

POST /v1/images/generations · recraft/recraft-v3: 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