modele

Recraft: Recraft V4 Pro

Markdown · JSON

Recraft: Recraft V4 Pro

Recraft V4 Pro generuje rastrowe obrazy 2K do szczegółowych kompozycji, fotorealizmu, ilustracji i prac twórczych przeznaczonych do druku. To wersja V4 o wyższej rozdzielczości, z opisami tekstowymi, opcjonalnymi danymi stylu i osobnym procesem obraz–obraz.

O modelu

Ten opis przedstawia możliwości modelu. Dane wejściowe, wyniki i opcje dostępne w Ailoot podano poniżej dla wybranej metody.

Recraft V4 Pro to rastrowy model o wyższej rozdzielczości w rodzinie V4 Recraft. V4 koncentruje się na osądzie wizualnym, zrównoważonej kompozycji, spójnym kolorze i starannej interpretacji kierunku twórczego. Producent pozycjonuje Pro do drobniejszych szczegółów, bardziej realistycznych złożonych scen i rozbudowanych grafik produkcyjnych. Używaj go do szczegółowej ilustracji, obrazu redakcyjnego, koncepcji plakatu lub innego materiału korzystającego z większego wyniku rastrowego. Pozostaje odrębny od późniejszego modelu V4.1 i wyniku SVG V4 Pro Vector.

Dokładny kod producenta to recraftv4_pro. Udokumentowany wynik to raster 2K w bezstratnym WebP lub PNG: 2048 × 2048 pikseli dla kwadratu, 2688 × 1536 dla 16:9 i 1664 × 2560 dla 2:3. Pozostałe obsługiwane proporcje mają własne wymiary. Wybierz proporcje do zamierzonego układu lub dokładny dozwolony rozmiar; dowolny rozmiar w pikselach nie jest częścią udokumentowanej umowy generowania. Standardowy V4 ma mniejszy rastrowy wynik 1K, a modele wektorowe nie mają stałej rozdzielczości w pikselach.

V4 może interpretować krótki prompt do eksploracji lub ustrukturyzowany prompt do kontrolowanego wyniku. Przy konkretnym kierunku artystycznym przewodnik producenta przechodzi od tematu i otoczenia do kadru, cech, relacji przestrzennych, światła, głębi i nastroju. Do redakcyjnego obrazu produktu poproś o dramatyczną pionową fotografię rzeźbiarskiego krzesła, powierzchnie ze szczotkowanego metalu, boczne światło, spokojne ciemne tło i przestrzeń nad przedmiotem na tytuł. Nazwanie tych relacji czyni zamierzoną kompozycję jaśniejszą niż ogólna prośba o luksusowy obraz.

Zakres twórczy rodziny obejmuje ilustrację narracyjną, sceny fotorealistyczne i przestrzenne grafiki ze wskazówkami materiału i światła. Wynik wyglądający jak 3D nadal jest obrazem, a nie edytowalną sceną 3D. W plakacie graficznym określ warstwy wizualne i ich interakcję: tło, ilustrację lub fotografię, hierarchię nagłówka i tekst uzupełniający. V4 jest pozycjonowany pod kątem czytelnych krótkich i średnich fraz, ale końcową pisownię i hierarchię należy sprawdzić, zamiast wywodzić je z nazwy modelu.

Obecna dokumentacja generowania dopuszcza prompty do 10 000 znaków, od jednego do sześciu wyników, ziarno losowości oraz ustawienia preferowanego koloru i koloru tła. Opcjonalne style niestandardowe lub zgodne obrazy referencyjne mogą kierować wyglądem z elastycznym lub precyzyjnym dopasowaniem. Model nie przyjmuje starszych ustawień V3: negative_prompt, stylów z biblioteki, text_layout, artistic_level lub no_text. Opisz zamierzony końcowy obraz w prompcie pozytywnym i jasno określ temat, układ i wymagania kolorystyczne. Do generowania ze stylem referencyjnym użyj od jednego do dziesięciu obrazów PNG, JPG lub WebP, nie więcej niż 64 MB łącznie i poniżej 20 MB każdy. Każda referencja wymaga najkrótszego boku co najmniej 256 pikseli, najdłuższego nie większego niż 4096 pikseli i rozdzielczości nie większej niż 16 megapikseli. Używaj tych referencji albo zgodnego zapisanego stylu, zamiast obu naraz.

Recraft dokumentuje osobną operację obraz–obraz dla V4. Łączy istniejący obraz i prompt z siłą od 0 do 1 do sterowania stopniem zmiany i nie przyjmuje w tej operacji ustawień niestandardowych stylów V4. Przygotuj źródło w limitach obrazu wejściowego producenta i określ cechy, które mają przejść do nowego wyniku. W większym materiale docelowym sprawdź drobne szczegóły, kadr i napisy w zamierzonym rozmiarze. Dodatkowa szczegółowość rastra Pro wspiera tę kontrolę, a obraz pozostaje wygenerowaną interpretacją dostarczonego opisu twórczego. Do operacji obraz–obraz dostarcz PNG, JPG, WebP lub SVG poniżej 20 MB, nie więcej niż 16 megapikseli, z oboma bokami od 256 do 4096 pikseli.

Ailoot Ultra · Obrazy POST /v1/images/generations recraft/recraft-v4-pro

recraft/recraft-v4-pro

Recraft /recraft/recraft-v4-pro

Start

Recraft V4 Pro generuje rastrowe obrazy 2K do szczegółowych kompozycji, fotorealizmu, ilustracji i prac twórczych przeznaczonych do druku. To wersja V4 o wyższej rozdzielczości, z opisami tekstowymi, opcjonalnymi danymi stylu i osobnym procesem obraz–obraz.

Akceptowane dane wejściowe
Tekst · Obrazy
Wyniki
Obrazy

Dostępne w Ailoot · dane wejściowe i metody

Ailoot Ultra · Obrazy POST /v1/images/generations
Wejście
text, image
Wyjście
image
Format wyjściowy
Plik obrazu
PoleTypWymaganieWartości i limityDomyślnie
PolemodelTypstringWymaganieWymaganeWartości i limity
recraft/recraft-v4-pro
Domyślnie—
PolepromptTypstringWymaganieWymaganeWartości i limity
Minimalna długość: 1
Domyślnie—
PolenTypintegerWymaganieOpcjonalneWartości i limity
Minimum: 1
Maksimum: 6
Domyślnie—
Poleaspect_ratioTypstringWymaganieOpcjonalneWartości i limity
1:1, 4:3, 3:4, 16:9, 9:16, auto
Domyślnie—
Poleinput_referencesTyparrayWymaganieOpcjonalneWartości i limity
Minimalna liczba elementów: 0
Maksymalna liczba elementów: 1
Domyślnie—
Kombinacje materiałów wejściowych

Tekst na obraz · Wymagane: prompt

Parametry i cykl życia 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_ruleKontraktWyłącznie rzeczywiste obrazy referencyjne klienta; obowiązują warunki endpointu dostawcy.

Aliasy metody: /v1/images

Cykl życia: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · Rzeczywiście zwrócony task_id lub wpis w bibliotece multimediów

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

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Użyj dokładnego modelu i udokumentowanych pól wejściowych.

Zachowaj kompletną odpowiedź, wszystkie rzeczywiste wyniki i pierwotne zwrócone identyfikatory.

Cennik

Jak obliczana jest ostateczna opłata

Wyświetlane stawki służą do oszacowania kosztu przed generowaniem. Ostateczna opłata jest obliczana na podstawie kosztu zarejestrowanego dla pierwotnego generowania. Zmierzony czas trwania wyniku i prognozowane ilości nie stanowią ostatecznej ilości podlegającej rozliczeniu.

Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.

Tryb szybki
Nie określono Gdy wybrany jest tryb szybki
Tryb flex
Nie określono Gdy wybrany jest tryb flex
Maksymalna intensywność rozumowania
Nie określono Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)

Szacunkowe stawki do porównania

Ceny według konfiguracji

Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.

KonfiguracjaTabela stawekPrzewidywana ilośćJednostka rozliczeniowaOpłata
KonfiguracjaBazowe stawki za tokenyTabela stawekStawka podstawowaPrzewidywana ilość—Jednostka rozliczeniowa—Opłata
Wejście · Tokeny wejściowe · Szacunek tylko do porównania — / 1K tokenów
Wyjście · Tokeny wyjściowe · Szacunek tylko do porównania — / 1K tokenów
Wejście · Odczyt cache · Szacunek tylko do porównania — / 1K tokenów
Wejście · Zapis do cache · Szacunek tylko do porównania — / 1K tokenów
Wejście · Zapis do cache, 1 godz. · Szacunek tylko do porównania — / 1K tokenów
KonfiguracjaUltraTabela stawek—Przewidywana ilość—Jednostka rozliczeniowaza obraz wyjściowyOpłata
Wyjście · obraz na wyjściu · Szacunek tylko do porównania $0.5 za obraz wyjściowy
KonfiguracjaSzacowany koszt generowaniaTabela stawek—Przewidywana ilośćszacunek dla jednego generowaniaJednostka rozliczeniowa—Opłata
Wyjście · Szacowany koszt generowania · Szacunek tylko do porównania $0.5 szacunek przed generowaniem

Ten szacunek nie jest dodatkową opłatą ani stałą stawką za ukończone generowanie.

Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →

Szczegóły taryfy referencyjnej

Referencyjne tabele modelu nie zmieniają wyboru metody, wyceny ani opłat. Naliczane opłaty korzystają ze stawek wybranej metody Ailoot.

Konfiguracje cen obrazów

Ceny według konfiguracji

KonfiguracjaWarunki rozliczaniaOpłata
KonfiguracjaObraz wyjściowyWarunki rozliczaniaNie zadeklarowano wariantu cenowego.Opłata
Wyjście · Obraz wyjściowy $0.5 za obraz

Równoważne pozycje opisują tę samą opłatę; nie doliczają drugiej opłaty.

Przykładowe żądania

Ailoot Ultra · Obrazy

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

Odbieranie i zapisywanie wyników

Ailoot Ultra · Obrazy

Pobierz każdy zwrócony obraz lub zapisz jego zawartość Base64

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Zachowaj wszystkie ukończone wyniki

Zapisz każdy ukończony obraz; pobierz każdy zwrócony URL lub zdekoduj zawartość Base64.

Zachowaj każdy element data i kompletne dane użycia; zapewnij własność i zapisz wszystkie rzeczywiście zwrócone obrazy. Bez zmyślonych adresów URL ani identyfikatorów.

Jeśli trzeba sprawdzić pierwotną odpowiedź

Jeśli wynik generowania lub edycji obrazu wymaga sprawdzenia, zachowaj pierwotny operation_id/X-Client-Request-ID oraz zwrócone informacje o wyniku. Odzyskaj istniejące własne wyniki z biblioteki multimediów, używając rzeczywistych wartości task_id lub asset_id. Nie wysyłaj ponownie żądania generowania lub edycji ani nie twórz adresu URL do sprawdzania stanu na podstawie operation_id.

Pola odpowiedzi
PoleTyp
PolecreatedTypinteger
Poledata[].urlTypstring
Poledata[].b64_jsonTypbase64 string
PoleusageTypobject

Aliasy

Aliasy modelu

Ailoot Ultra recraft/recraft-v4-pro

Aliasy ścieżek metod

/v1/images

Powiązane ID modeli

recraft/recraft-v4-pro

FAQ · Recraft: Recraft V4 Pro
Jakie dane wejściowe i wyniki są dostępne?

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

Jakich pól używa żądanie?

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

Jakie limity obowiązują?

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

Więcej szczegółów

Połącz Ailoot z Claude Code, OpenCode, Hermes albo własną aplikacją.

Firma i jej portfel projektów

Firma i jej portfel projektów: miliony klientów; miesięczna sprzedaż liczona w miliardach.

Kupuj tokeny z rabatem.

Rabat subskrypcji do regularnej pracy. Kody promocyjne — do 50% na tokeny.

Subskrypcja
Wybierz plan z rabatem do regularnych żądań.
Kod promocyjny do 50%
Wpisz kod przy zakupie. Cena zostanie przeliczona według aktualnej promocji.
Koszty w historii
Model, tokeny i kwota są zapisywane dla każdego żądania.

Wybierz subskrypcję · Sprawdź ceny modeli

Połącz API z produktem, który sprzedajesz.

SaaS, aplikacje i boty na warunkach oferty i umowy licencyjnej Ailoot. Do odsprzedaży poproś o licencję resellerską.

Aplikacja komercyjna
Wbuduj generowanie tekstu, obrazów, wideo i dźwięku w płatne funkcje usługi.
Licencja resellerska
Prześlij opis projektu i schemat dostępu. Poproś o pisemne warunki używania i odsprzedaży.
Dokumenty na stronie
Oferta, umowa licencyjna i polityka przetwarzania danych są dostępne przed połączeniem.

Poproś o licencję resellerską · Oferta i umowa licencyjna