models

Recraft: Recraft V4

Markdown · JSON

Recraft: Recraft V4

Recraft V4 generuoja 1K rastrinius vaizdus, daug dėmesio skirdamas kompozicijai, spalvų santykiams ir išsamiai kūrybinei krypčiai. Jis apima iliustraciją, fotorealistines scenas ir grafinio dizaino koncepcijas su pasirenkama stiliaus įvestimi ir atskira vaizdo keitimo pagal vaizdą eiga.

Apie modelį

Šis aprašas apima modelio galimybes. Pasirinktam metodui Ailoot prieinamos įvestys, išvestys ir parinktys nurodytos toliau.

Recraft V4 yra standartinis rastrinis Recraft V4 kartos modelis. Gamintojas pabrėžia dizaino sprendimus: subalansuotą kompoziciją, nuoseklius spalvų santykius ir vizualinį sumanymą palaikančias detales. Jis gali dirbti su stilizuota iliustracija, fotografinėmis scenomis ir grafinio dizaino koncepcijomis. Naudokite jį, kai aprašui reikia vaizdo, jungiančio estetinius pasirinkimus ir tikslų užklausos laikymąsi – tiek tyrinėjant nuotaiką pagal trumpą kryptį, tiek detaliai nurodant apgalvotą išdėstymą.

Tikslus modelio kodas yra recraftv4. Gamintojo specifikacijoje nurodyta 1K rastrinė išvestis nenuostolingu WebP arba PNG formatu. Kvadratinis vaizdas yra 1024 × 1024 pikselių, 16:9 – 1344 × 768, o 2:3 – 832 × 1280; kiti palaikomi santykiai turi savo matmenis. V4 Pro yra atskira 2K rastrinė versija, o V4 Vector ir Pro Vector pateikia redaguojamą SVG. Rinkitės konkrečią V4 versiją pagal numatytą rezultatą, užuot jungę skirtingas išvesties savybes.

Gamintojo vadovas skiria trumpas interpretacines užklausas nuo struktūruotos kūrybinės krypties. Trumpa frazė gali palikti erdvės tyrinėti formą, nuotaiką ir kadravimą. Struktūruotas aprašas gali įvardyti objektą, aplinką, pozą, medžiagą, antrinius elementus, apšvietimą ir vizualinę hierarchiją. Pasakojamajai iliustracijai aprašykite dviratininką, kertantį mažą tiltą, ryškias supaprastintas formas, šiltas prislopintas spalvas ir aiškų judėjimą iš kairės į dešinę. Šie turinio ir kompozicijos sprendimai yra praktiškesni nei ilgas nesusijusių stiliaus būdvardžių sąrašas.

V4 spektras apima iliustraciją, erdvinius vaizdus ir fotorealistinę medžiagą. Vadovas iliustracijai rekomenduoja aprašyti piešimo logiką, o 3D atrodantį vaizdą – per medžiagas, šviesą, kamerą ir gylį. Pastarasis lieka rastriniu vaizdu, o ne redaguojamu tinkleliu. Plakato ar pakuotės koncepcijai nurodykite, kurie žodžiai svarbiausi, kur jie turi būti ir kaip sąveikauja vaizdas bei tipografija. Gamintojas pabrėžia įskaitomą trumpą ir vidutinio ilgio tekstą; prieš naudodami patikrinkite tikrą tekstą ir jo išdėstymą gautame vaizde.

Generavimas palaiko iki 10 000 simbolių užklausas, atsitiktinumo sėklą, nuo vieno iki šešių rezultatų, pageidaujamas spalvas ir norimą fono spalvą. Pasirenkami suderinami individualūs stiliai ir etaloniniai vaizdai gali nukreipti vizualinį apdorojimą per lankstų arba tikslų derinimą. Rinkitės aiškų etaloną ar vienam vizualiniam pasauliui priklausantį rinkinį, o užklausoje aprašykite naują objektą ir sceną. Etalono ir rezultato spalvų atitikimas negarantuojamas, todėl aiškiai nurodykite reikiamą paletę ir palyginkite su ja rezultatą. Generavimui pagal stiliaus etalonus naudokite nuo vieno iki dešimties PNG, JPG arba WebP vaizdų: iš viso ne daugiau kaip 64 MB, kiekvienas mažesnis nei 20 MB. Trumpesnė kiekvieno etalono kraštinė turi būti bent 256 pikselių, ilgesnė – ne daugiau kaip 4 096 pikselių, o raiška – ne didesnė nei 16 megapikselių. Naudokite šiuos etalonus arba suderinamą išsaugotą stilių, bet ne abu kartu.

Dokumentuota vaizdo keitimo pagal vaizdą operacija jungia esamą vaizdą ir užklausą, o strength nuo 0 iki 1 nustato, kiek nauja išvestis nutolsta nuo šaltinio. Ši operacija nepriima V4 stiliaus valdiklių. Dabartinė generavimo specifikacija taip pat nepalaiko parinktų stilių pavadinimų, negative_prompt, text_layout, artistic_level ir no_text. Paruoškite teigiamą norimo rezultato aprašymą ir įvertinkite medžiagą tikslinėje kompozicijoje. Standartinis V4 pateikia kryptingą rastrinę dizaino interpretaciją su konkrečia versija, formatu ir išvesties dydžiu. Vaizdo keitimui pagal vaizdą pateikite mažesnį nei 20 MB PNG, JPG, WebP arba SVG, ne daugiau kaip 16 megapikselių, su abiem kraštinėmis nuo 256 iki 4 096 pikselių.

Ailoot Ultra · Vaizdai POST /v1/images/generations recraft/recraft-v4

recraft/recraft-v4

Recraft /recraft/recraft-v4

Pradžia

Recraft V4 generuoja 1K rastrinius vaizdus, daug dėmesio skirdamas kompozicijai, spalvų santykiams ir išsamiai kūrybinei krypčiai. Jis apima iliustraciją, fotorealistines scenas ir grafinio dizaino koncepcijas su pasirenkama stiliaus įvestimi ir atskira vaizdo keitimo pagal vaizdą eiga.

Leidžiamos įvestys
Tekstas · Vaizdai
Rezultatai
Vaizdai

Prieinama Ailoot · įvestys ir metodai

Ailoot Ultra · Vaizdai POST /v1/images/generations
Įvestis
text, image
Išvestis
image
Išvesties formatas
Vaizdo failas
LaukasTipasReikalavimasReikšmės ir ribosNumatyta
LaukasmodelTipasstringReikalavimasPrivalomaReikšmės ir ribos
recraft/recraft-v4
Numatyta—
LaukaspromptTipasstringReikalavimasPrivalomaReikšmės ir ribos
Mažiausias ilgis: 1
Numatyta—
LaukasnTipasintegerReikalavimasNeprivalomaReikšmės ir ribos
Mažiausia reikšmė: 1
Didžiausia reikšmė: 6
Numatyta—
Laukasaspect_ratioTipasstringReikalavimasNeprivalomaReikšmės ir ribos
1:1, 4:3, 3:4, 16:9, 9:16, auto
Numatyta—
Laukasinput_referencesTipasarrayReikalavimasNeprivalomaReikšmės ir ribos
Mažiausias elementų skaičius: 0
Didžiausias elementų skaičius: 1
Numatyta—
Įvesties medžiagos deriniai

Iš teksto į vaizdą · Privaloma: prompt

reference_guided_image · Privaloma: prompt, actual image reference

Metodo parametrai ir gyvavimo ciklas
ParametrasSpecifikacija
Parametrascontent_typeSpecifikacijaapplication/json
ParametrasrequiredSpecifikacijamodel, prompt
Parametrasmaterial_typesSpecifikacijatext, image
Parametrasoptional_controlsSpecifikacijan, aspect_ratio, input_references
ParametrasnSpecifikacija{"minimum":1,"maximum":6}
Parametrasreference_imagesSpecifikacija{"minimum":0,"maximum":1,"source":"tikra kliento pateikta medžiaga"}
Parametrasprovider_specific_optionsSpecifikacijaTik išsaugotas tikslus galinio taško leidžiamų parametrų sąrašas style/controls/text_layout; jokių spėjamų struktūrų.

Metodo pseudonimai: /v1/images

Gyvavimo ciklas: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · faktiškai grąžinta task_id reikšmė arba medijos bibliotekos įrašas

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

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Pavyzdys su vien tekstine užklausa išlaiko oficialią ImageGenerationRequest struktūrą.

Išsaugokite kiekvieną grąžintą paveikslėlį ir visą atsakymą; rezultatų skaičius yra tikrasis, o ne prašomas n.

Planai

Kaip apskaičiuojamas galutinis mokestis

Rodomi įkainiai leidžia įvertinti kainą prieš generavimą. Galutinė suma apskaičiuojama pagal užfiksuotą pradinio generavimo kainą. Išmatuota rezultato trukmė ir prognozuoti kiekiai nėra galutinis apmokestinamas kiekis.

Tarifų informacija neprideda užklausos parinkčių. Palaikomi parametrai nurodyti prie pasirinkto metodo.

Spartusis režimas
Nenurodyta Pasirinkus spartųjį režimą
Flex režimas
Nenurodyta Pasirinkus flex režimą
Didžiausios samprotavimo pastangos
Nenurodyta Kai didžiausioms samprotavimo pastangoms taikomas numatytasis koregavimas (default)

Numatomi įkainiai palyginimui

Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

KonfigūracijaĮkainių lentelėNumatomas kiekisApskaitos vienetasMokestis
KonfigūracijaBaziniai žetonų įkainiaiĮkainių lentelėBazinis įkainisNumatomas kiekis—Apskaitos vienetas—Mokestis
Įvestis · Įvesties tokenai · Įvertis tik palyginimui — / 1K tokenų
Išvestis · Išvesties tokenai · Įvertis tik palyginimui — / 1K tokenų
Įvestis · Talpyklos skaitymas · Įvertis tik palyginimui — / 1K tokenų
Įvestis · Rašymas į talpyklą · Įvertis tik palyginimui — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val · Įvertis tik palyginimui — / 1K tokenų
KonfigūracijaUltraĮkainių lentelė—Numatomas kiekis—Apskaitos vienetasuž išvesties vaizdąMokestis
Išvestis · išvesties vaizdas · Įvertis tik palyginimui $0.08 už išvesties vaizdą
KonfigūracijaNumatoma generavimo kainaĮkainių lentelė—Numatomas kiekisvieno generavimo įvertisApskaitos vienetas—Mokestis
Išvestis · Numatoma generavimo kaina · Įvertis tik palyginimui $0.08 įvertis prieš generavimą

Šis įvertis nėra papildomas mokestis ar fiksuotas užbaigto generavimo įkainis.

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. Kaip veikia rezervavimas ir atsiskaitymas →

Informacinio tarifo duomenys

Modelio informacinės lentelės nekeičia metodo pasirinkimo, kainos įverčių ar mokesčių. Galiojantys mokesčiai nustatomi pagal pasirinkto Ailoot metodo įkainius.

Paveikslėlių kainodaros konfigūracijos

Kainos pagal konfigūraciją

KonfigūracijaApmokestinimo sąlygosMokestis
KonfigūracijaIšvesties paveikslėlisApmokestinimo sąlygosKainodaros variantas nedeklaruotas.Mokestis
Išvestis · Išvesties vaizdas $0.08 už vaizdą

Lygiaverčiai sąrašų įrašai apibūdina tą patį mokestį; jie neprideda antro mokesčio.

Užklausų pavyzdžiai

Ailoot Ultra · Vaizdai

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

Gauti ir išsaugoti rezultatus

Ailoot Ultra · Vaizdai

Atsisiųskite kiekvieną grąžintą vaizdą arba išsaugokite jo Base64 turinį

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną baigtą vaizdą; gaukite turinį iš kiekvieno grąžinto URL arba dekoduokite jo Base64 turinį.

Išsaugokite kiekvieną data elementą ir visus naudojimo duomenis; perimkite į savo saugyklą ir išsaugokite visus tikrus grąžintus paveikslėlius. Jokių išgalvotų URL ar ID.

Jei reikia patikrinti pradinį atsakymą

Jei vaizdo generavimo ar redagavimo rezultatą reikia patikrinti, išsaugokite pradinį operation_id/X-Client-Request-ID ir grąžintą informaciją apie rezultatą. Atkurkite prieigą prie esamų jums priklausančių rezultatų per medijos biblioteką, naudodami faktines task_id arba asset_id reikšmes. Pakartotinai neteikite generavimo ar redagavimo užklausos ir nekurkite būsenos tikrinimo URL iš operation_id.

Atsakymo laukai
LaukasTipas
LaukascreatedTipasinteger
Laukasdata[].urlTipasstring
Laukasdata[].b64_jsonTipasbase64 string
LaukasusageTipasobject
Klaidos ir tolesni veiksmai
AtsakymasSąlygaKitas žingsnis
Atsakymas400 · invalid_request_errorSąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmėKitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus.
Atsakymasserver_errorSąlygaGrąžintame atsakyme nurodoma, kad operaciją arba rezultatą reikia patikrintiKitas žingsnisIšsaugokite pradinį grąžintą operacijos ar užduoties ID, užklausos antraštes ir atsakymą; toliau tikrinkite tos pačios pradinės operacijos duomenis palaikomais būdais. Kūrimo užklausos pakartotinai neteikite.

Pseudonimai

Modelių pseudonimai

Ailoot Ultra recraft/recraft-v4

Metodų kelių pseudonimai

/v1/images

Susiję ID iškvietimui

recraft/recraft-v4

FAQ · Recraft: Recraft V4
Kokios įvestys ir rezultatai prieinami?

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

Kokius laukus naudoja užklausa?

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

Kokie apribojimai taikomi?

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

Išsamiau

Prijunkite Ailoot prie Claude Code, OpenCode, Hermes arba savo programos.

Įmonė ir jos projektų portfelis

Įmonė ir jos projektų portfelis: milijonai klientų; mėnesio pardavimai siekia milijardus.

Pirkite žetonus su nuolaida.

Prenumeratos nuolaida reguliariam darbui. Kodai — iki 50% žetonų pirkimui.

Prenumerata
Pasirinkite planą su nuolaida reguliarioms užklausoms.
Nuolaidos kodas iki 50%
Įveskite kodą perkant. Kaina perskaičiuojama pagal galiojančios akcijos sąlygas.
Išlaidos istorijoje
Kiekvienai užklausai išsaugomi modelis, žetonai ir suma.

Pasirinkti prenumeratą · Peržiūrėti modelių kainas

Prijunkite API prie produkto, kurį parduodate.

SaaS, programos ir botai pagal Ailoot ofertą bei licencijos sutartį. Perpardavimui paprašykite perpardavėjo licencijos.

Komercinė programa
Teksto, vaizdų, video ir garso kūrimą integruokite į mokamas paslaugos funkcijas.
Perpardavėjo licencija
Atsiųskite projekto aprašymą ir prieigos schemą. Paprašykite rašytinių naudojimo ir perpardavimo sąlygų.
Dokumentai svetainėje
Oferta, licencijos sutartis ir duomenų tvarkymo politika prieinamos prieš prisijungiant.

Paprašyti perpardavėjo licencijos · Oferta ir licencijos sutartis