modele

Recraft: Recraft V3

Markdown · JSON

Recraft: Recraft V3

Recraft V3 tworzy fotografie, ilustracje i układy graficzne z kompozycją uwzględniającą tekst oraz ustawieniami stylu. Jego odrębne warianty rastrowe i SVG pasują do plakatów, zestawów obrazów marki, ikon i projektów, w których słowa i struktura wizualna muszą działać razem.

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 V3 to model generowania obrazów stworzony do projektowania graficznego oraz scen fotograficznych i ilustracyjnych. Opis tekstowy określa temat, otoczenie i kompozycję; wynikiem jest obraz. V3 rozwija renderowanie tekstu i fotorealizm Recraft, zachowując spójność stylu z przykładowych obrazów bez ponownego treningu.

Tekst jako część kompozycji

V3 pracuje z tekstem wewnątrz obrazu, w tym dłuższymi treściami i literami średniej wielkości. Recraft opisuje etap układu, który ustala słowa i ich położenie przed generowaniem obrazu. Układ można utworzyć automatycznie z opisu lub rozmieścić ręcznie w środowisku projektowym Recraft. Pomaga to łączyć nagłówek, ilustrację i tekst uzupełniający w jednej kompozycji. Producent dokumentuje również jawne współrzędne układu tekstu, wyrażone względem obrazu, a nie jako stała siatka pikseli. Każdy element tekstowy zawiera jedno słowo i cztery punkty narożne we współrzędnych znormalizowanych: (0, 0) to lewy górny róg, a (1, 1) prawy dolny. Współrzędne mogą wykraczać poza ten zakres; wtedy kształt jest przycinany. Słowa jawnego układu tekstu muszą spełniać udokumentowane ograniczenia znaków.

Do plakatu lub okładki dostarcz dokładne słowa i opisz ich hierarchię: która linia prowadzi, gdzie się znajduje i jak obraz ją wspiera. Przy wyborze wyniku sprawdź wyrenderowaną pisownię i odstępy.

Styl, paleta i kierunek artystyczny

V3 obejmuje style fotograficzne, ilustracyjne i emblematów z biblioteki oraz osobną bibliotekę stylów wektorowych. Recraft V3 Raw jest domyślnym stylem modelu rastrowego; Vector art jest domyślny dla wariantu wektorowego. Photorealism dąży do wyglądu fotograficznego, a Illustration obejmuje stylizowane tekstury, cieniowanie i bardziej złożone przejścia kolorów. Style wektorowe preferują kształty, ograniczone palety i płaskie wypełnienia lub proste gradienty.

Niestandardowe style można budować z obrazów referencyjnych, istniejących zgodnych stylów lub połączenia obu. Dostarczają kierunek wizualny do wielokrotnego użycia w serii obrazów. Udokumentowane ustawienia mieszania pozwalają nadawać referencjom i stylom źródłowym osobne wagi; liczba wag odpowiada liczbie źródeł. PaletteMatch i MaxWeight to dwie wymienione zasady mieszania. Producent dopuszcza maksymalnie 10 obrazów referencyjnych stylu i używa zwykłego trybu dopasowania stylu dla V3. Zapisany styl niestandardowy i bezpośrednie referencje stylu są alternatywnymi wejściami, a styl niestandardowy musi odpowiadać modelowi użytemu do generowania.

Preferowane kolory i kolor tła kierują paletą. Udokumentowano maksymalnie 10 kolorów RGB, z każdą składową od 0 do 255. Opcjonalne wagi względne mieszczą się w zakresie od 0 do 1; trzeba je podać dla każdego koloru albo dla żadnego, a ich suma nie może przekraczać 1. Poziom artystyczny mieści się w zakresie od 0 dla statycznego, czystego przedstawienia do 5 dla bardziej dynamicznych, ekscentrycznych kompozycji. Prompt negatywny opisuje niepożądane elementy; osobne ustawienie bez tekstu wyłącza osadzone układy tekstowe. Ziarno losowości jest dostępne dla powtarzalności. Te ustawienia dają różne sposoby oddziaływania na scenę, jej styl i układ wizualny.

Obrazy rastrowe i osobny wariant SVG

Recraft dokumentuje dwa warianty V3. Model rastrowy tworzy bezstratny WebP lub PNG i pasuje do szczegółów fotograficznych, cieniowania oraz teksturowanej ilustracji. Recraft V3 Vector tworzy SVG: ścieżki i kształty, które można skalować bez stałej rozdzielczości w pikselach. Pasuje do piktogramów, koncepcji logo, odznak i szczegółowej grafiki wektorowej. Konwersja rastra do wektora jest odrębną operacją od bezpośredniego generowania grafiki wektorowej.

Oba warianty mają własną tożsamość. Obraz o wyglądzie wektorowym i rzeczywisty wynik SVG to różne wybory. Przy przygotowywaniu procesu projektowego wybierz zamierzony wynik, zamiast traktować wspólną nazwę V3 jako dowód, że każda operacja zwraca ten sam typ pliku.

Edycja i wykańczanie istniejącej grafiki

Dokumentacja V3 Recraft wymienia generowanie obraz–obraz, uzupełnianie fragmentów obrazu, rozszerzanie kadru oraz podmianę lub generowanie tła. Praca obraz–obraz łączy istniejący obraz z nowym opisem. Uzupełnianie fragmentów ponownie generuje wybrany obszar przy użyciu obrazu i pasującej maski; rozszerzanie kadru dodaje treść poza oryginalnymi granicami. Operacje tła dotyczą otoczenia tematu.

Towarzyszący zestaw narzędzi obejmuje także wymazywanie, usuwanie tła, wektoryzację i dwa sposoby zwiększania rozdzielczości. Kreatywne zwiększanie może wprowadzać nowe szczegóły; ostre zwiększanie celuje w wyraźniejsze większe odwzorowanie istniejącej treści. Są to odrębne operacje z własnymi wejściami i wynikami, a nie dodatkowe znaczenia nazwy modelu rastrowego lub wektorowego.

Limity promptu, rozmiaru i obrazu źródłowego

Specyfikacja generowania V3 producenta przyjmuje prompt do 1000 znaków i 1–6 obrazów na żądanie. Obsługuje 14 proporcji: 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 i 9:16. Udokumentowane przykłady rastrowe obejmują 1024x1024, 1820x1024 i 1024x1820. Dokładne wymiary rastra muszą pochodzić z obsługiwanej listy; SVG używa proporcji bez stałego rozmiaru w pikselach. Gdy rozmiar jest pominięty, system producenta wybiera go na podstawie promptu.

Dla operacji z obrazem wejściowym producent wymienia PNG, JPG i WebP oraz SVG tam, gdzie pozwala na to konkretna operacja. Pliki muszą mieć poniżej 20 MB, nie więcej niż 16 MP, z najdłuższym bokiem najwyżej 4096 pikseli. Najkrótszy bok ma co najmniej 256 pikseli, z wyjątkiem 32 pikseli dla ostrego zwiększania rozdzielczości. Maski odpowiadają rozmiarowi obrazu i używają czystej czerni oraz bieli; referencje stylu mają łączny limit 64 MB.

W projekcie API Ailoot przekształć zadanie w skupiony opis obrazu: dokładną treść, układ przedmiotów, styl wizualny i oczekiwaną kompozycję. Plakat, scena produktowa i seria ikon wymagają różnych opisów; zachowuj odpowiednie rozróżnienia wariantów i operacji V3 przy ustalaniu sposobu użycia każdego wyniku.

Ailoot Ultra · Obrazy POST /v1/images/generations recraft/recraft-v3

recraft/recraft-v3

Recraft /recraft/recraft-v3

Start

Recraft V3 tworzy fotografie, ilustracje i układy graficzne z kompozycją uwzględniającą tekst oraz ustawieniami stylu. Jego odrębne warianty rastrowe i SVG pasują do plakatów, zestawów obrazów marki, ikon i projektów, w których słowa i struktura wizualna muszą działać razem.

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

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

Aliasy ścieżek metod

/v1/images

Powiązane ID modeli

recraft/recraft-v3

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

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

Jakich pól używa żądanie?

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

Jakie limity obowiązują?

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