Recraft: Recraft V3
Recraft V3 ustvarja fotografije, ilustracije in grafične postavitve s kompozicijo, ki upošteva besedilo, ter slogovnimi nastavitvami. Njegove ločene rastrske in SVG različice so primerne za plakate, slikovne zbirke blagovnih znamk, ikone in zasnove, pri katerih morata besedilo in vizualna struktura delovati skupaj.
O modelu
Ta opis zajema zmožnosti modela. Vhodi, izhodi in možnosti, ki so na voljo v Ailoot, so spodaj navedeni za izbrano metodo.
Recraft V3 je model za ustvarjanje slik, zasnovan za grafično oblikovanje ter fotografske in ilustrirane prizore. Pisni opis določa motiv, okolje in kompozicijo; rezultat je slika. V3 nadgrajuje Recraftovo upodabljanje besedila in fotorealizem ter brez ponovnega učenja ohranja slogovno skladnost na podlagi vzorčnih slik.
Besedilo kot del kompozicije
V3 dela z besedilom znotraj slike, tudi z daljšimi besedili in srednje velikimi napisi. Recraft opisuje fazo postavitve, ki pred ustvarjanjem slike določi besede in njihove položaje. Postavitev se lahko samodejno izdela iz opisa ali ročno uredi v Recraftovem oblikovalskem okolju. To pomaga povezati naslov, ilustracijo in spremljevalno besedilo v eni kompoziciji. Proizvajalec dokumentira tudi izrecne koordinate postavitve besedila, izražene glede na sliko in ne kot fiksna mreža slikovnih pik. Vsak besedilni element vsebuje eno besedo in štiri kotne točke v normaliziranih koordinatah: (0, 0) pomeni zgornji levi kot, (1, 1) pa spodnji desni. Koordinate lahko segajo zunaj tega območja; v tem primeru se oblika obreže. Besede v izrecni postavitvi besedila morajo upoštevati dokumentirane omejitve znakov.
Za plakat ali naslovnico podajte natančno besedilo in opišite njegovo hierarhijo: katera vrstica je vodilna, kje je postavljena in kako jo slika podpira. Pri izbiri rezultata preverite upodobljeni zapis in razmike.
Slog, paleta in likovna usmeritev
V3 vključuje predpripravljene fotografske, ilustracijske in emblemne sloge ter ločeno knjižnico vektorskih slogov. Recraft V3 Raw je privzeti slog rastrskega modela, Vector art pa privzeti slog vektorske različice. Photorealism stremi k fotografskemu videzu, Illustration pa dopušča stilizirane teksture, senčenje in kompleksnejše barvne prehode. Vektorski slogi dajejo prednost oblikam, omejenim paletam in enotnim polnilom ali preprostim prelivom.
Sloge po meri je mogoče izdelati iz referenčnih slik, obstoječih združljivih slogov ali njihove kombinacije. Omogočajo ponovno uporabo vizualne usmeritve v seriji slik. Dokumentirane nastavitve mešanja omogočajo ločene uteži za reference in izvorne sloge; število uteži se ujema s številom virov. Navedeni politiki mešanja sta PaletteMatch in MaxWeight. Proizvajalec dovoljuje do 10 referenčnih slik za slog in pri V3 uporablja običajni način slogovnega ujemanja. Shranjeni slog po meri in neposredne slogovne reference so alternativni vhodi, slog po meri pa mora ustrezati modelu, uporabljenemu za ustvarjanje.
Želene barve in barva ozadja usmerjajo paleto. Dokumentiranih je do 10 barv RGB, pri čemer je vsaka komponenta med 0 in 255. Izbirne relativne uteži segajo od 0 do 1; podane morajo biti za vsako barvo ali za nobeno, njihova vsota pa ne sme presegati 1. Umetniška raven sega od 0 za statično, čisto obdelavo do 5 za bolj dinamične, nekonvencionalne kompozicije. Negativni poziv opiše neželene elemente; ločena nastavitev brez besedila onemogoči vgrajene postavitve besedila. Za ponovljivost je na voljo naključno seme. Te nastavitve ločeno vplivajo na prizor, njegov slog in vizualno postavitev.
Rastrske slike in ločena različica SVG
Recraft dokumentira dve različici V3. Rastrski model ustvarja WebP brez izgub ali PNG in je primeren za fotografske podrobnosti, senčenje in teksturirano ilustracijo. Recraft V3 Vector ustvarja SVG: poti in oblike, ki jih je mogoče skalirati brez fiksne ločljivosti v slikovnih pikah. Primeren je za piktograme, zamisli za logotipe, značke in podrobne vektorske ilustracije. Pretvorba rastra v vektor je ločen postopek od neposrednega ustvarjanja vektorske grafike.
Obe različici imata lastno identiteto. Slika z vektorskim videzom in dejanski izhod SVG sta različni možnosti. Predvideni izhod izberite pri pripravi oblikovalskega postopka, namesto da skupno ime V3 obravnavate kot dokaz, da vsak postopek vrača isto vrsto datoteke.
Urejanje in dodelava obstoječih podob
Recraftova dokumentacija V3 navaja pretvorbo slike v sliko, zapolnjevanje izbranih delov slike, razširjanje slike ter zamenjavo ali ustvarjanje ozadja. Pretvorba slike v sliko združuje obstoječo sliko z novim opisom. Zapolnjevanje znova ustvari izbrano območje z uporabo slike in ustrezne maske; razširjanje dodaja vsebino zunaj prvotnega kadra. Postopki za ozadje obravnavajo okolico motiva.
Pripadajoči nabor orodij vključuje tudi brisanje, odstranjevanje ozadja, vektorizacijo in dva načina povečevanja ločljivosti. Ustvarjalno povečevanje lahko uvede nove podrobnosti; ostro povečevanje je namenjeno ostrejši povečani različici obstoječe vsebine. To so ločeni postopki z lastnimi vhodi in rezultati, ne dodatni pomeni imena rastrskega ali vektorskega modela.
Omejitve pozivov, velikosti in izvornih slik
Proizvajalčeva specifikacija za ustvarjanje z V3 sprejema poziv do 1000 znakov in 1–6 slik na zahtevo. Podpira 14 razmerij stranic: 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 in 9:16. Dokumentirani rastrski primeri vključujejo 1024x1024, 1820x1024 in 1024x1820. Natančne rastrske dimenzije morajo biti s podprtega seznama; SVG uporablja razmerja stranic brez fiksne velikosti v slikovnih pikah. Če velikost ni podana, jo proizvajalčev sistem izbere iz poziva.
Za postopke s slikovnim vhodom proizvajalec navaja PNG, JPG in WebP ter SVG, kjer ga posamezni postopek dovoljuje. Datoteke morajo biti manjše od 20 MB, z največ 16 MP in najdaljšo stranico največ 4096 slikovnih pik. Najkrajša stranica meri vsaj 256 slikovnih pik, z izjemo 32 slikovnih pik pri ostrem povečevanju. Maske se po velikosti ujemajo s sliko in uporabljajo čisto črno in belo; slogovne reference imajo skupno omejitev 64 MB.
Za projekt z Ailoot API nalogo pretvorite v osredotočen slikovni opis: natančno besedilo, razporeditev predmetov, vizualni slog in želeno kompozicijo. Plakat, prizor z izdelkom in serija ikon zahtevajo različne opise; pri odločanju o uporabi vsakega rezultata ohranite ustrezne razlike med različicami in postopki V3.
Ailoot Ultra · Slike POST /v1/images/generations recraft/recraft-v3
recraft/recraft-v3Začetek
Recraft V3 ustvarja fotografije, ilustracije in grafične postavitve s kompozicijo, ki upošteva besedilo, ter slogovnimi nastavitvami. Njegove ločene rastrske in SVG različice so primerne za plakate, slikovne zbirke blagovnih znamk, ikone in zasnove, pri katerih morata besedilo in vizualna struktura delovati skupaj.
- Dovoljeni vhodi
- Besedilo · Slike
- Rezultati
- Slike
Na voljo v Ailoot · vhodi in metode
Ailoot Ultra · Slike POST /v1/images/generations
- Vhod
text,image- Izhod
image- Izhodni format
- Slikovna datoteka
| Polje | Vrsta | Zahteva | Vrednosti in omejitve | Privzeto |
|---|---|---|---|---|
Poljemodel | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve recraft/recraft-v3 | Privzeto— |
Poljeprompt | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve Najmanjša dolžina: 1 | Privzeto— |
Poljen | Vrstainteger | ZahtevaIzbirno | Vrednosti in omejitve Najmanj: 1 Največ: 6 | Privzeto— |
Poljeaspect_ratio | Vrstastring | ZahtevaIzbirno | Vrednosti in omejitve 1:1, 4:3, 3:4, 16:9, 9:16, auto | Privzeto— |
Poljeinput_references | Vrstaarray | ZahtevaIzbirno | Vrednosti in omejitve Najmanjše število elementov: 0 Največ elementov: 1 | Privzeto— |
Kombinacije vhodnih gradiv
Iz besedila v sliko · Obvezno: prompt
Parametri in življenjski cikel metode
| Parameter | Specifikacija |
|---|---|
Parametercontent_type | Specifikacijaapplication/json |
Parameterrequired | Specifikacijamodel, prompt |
Parametermaterial_types | Specifikacijatext, image |
Parameteroptional_controls | Specifikacijaaspect_ratio, n, input_references |
Parameterexact_supported_parameters | Specifikacija{"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}} |
Parameterreference_material_rule | SpecifikacijaSamo dejanske slikovne reference stranke; zanje veljajo pogoji ponudnikove končne točke. |
Druga imena metode: /v1/images
Življenjski cikel: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · Dejansko vrnjeni task_id ali zapis v medijski knjižnici
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Uporabite natančen model in dokumentirana vhodna polja.
Ohranite celoten odgovor, vsak dejanski izhod in prvotne vrnjene ID-je.
Cenik
Kako se izračuna končni strošek
Prikazane cene so namenjene oceni stroškov pred generiranjem. Končni znesek se izračuna na podlagi stroška, zabeleženega za izvirno generiranje. Izmerjeno trajanje izhoda in napovedane količine niso končna obračunska količina.
Tarifni podatki ne dodajajo možnosti zahteve. Podprti parametri so navedeni pri izbrani metodi.
- Hitri način
- Ni navedeno Ko je izbran hitri način
- Način flex
- Ni navedeno Ko je izbran način flex
- Najvišja raven razmišljanja
- Ni navedeno Ko najvišja raven razmišljanja uporablja privzeto prilagoditev (default)
Ocenjene cene za primerjavo
Cene po nastavitvah
Vsak strošek povežite s prikazanimi pogoji. Za vsak nabor alternativnih nastavitev uporabite eno ceno.
| Nastavitev | Cenovna lestvica | Predvidena količina | Obračunska enota | Strošek |
|---|---|---|---|---|
| NastavitevOsnovne cene žetonov | Cenovna lestvicaOsnovna cena | Predvidena količina— | Obračunska enota— | Strošek Vhod · Vhodni žetoni · Ocena samo za primerjavo — / 1K žetonov Izhod · Izhodni žetoni · Ocena samo za primerjavo — / 1K žetonov Vhod · Branje predpomnilnika · Ocena samo za primerjavo — / 1K žetonov Vhod · Zapis v predpomnilnik · Ocena samo za primerjavo — / 1K žetonov Vhod · Zapis v predpomnilnik, 1 ura · Ocena samo za primerjavo — / 1K žetonov |
| NastavitevUltra | Cenovna lestvica— | Predvidena količina— | Obračunska enotana izhodno sliko | Strošek Izhod · izhod slike · Ocena samo za primerjavo $0.08 na izhodno sliko |
| NastavitevOcenjeni strošek ustvarjanja | Cenovna lestvica— | Predvidena količinaocena za eno generiranje | Obračunska enota— | Strošek Izhod · Ocenjeni stroški ustvarjanja · Ocena samo za primerjavo $0.08 ocena pred ustvarjanjem Ta ocena ni dodatno plačilo ali fiksna cena za dokončano generiranje. |
Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. Kako delujeta rezervacija in obračun →
Podrobnosti referenčne tarife
Referenčne lestvice modela ne spreminjajo izbire metode, ocen cen ali stroškov. Veljavni stroški uporabljajo cene izbrane metode Ailoot.
Konfiguracije cen slik
Cene po nastavitvah
| Nastavitev | Obračunski pogoji | Strošek |
|---|---|---|
| NastavitevIzhodna slika | Obračunski pogojiRazličica cen ni deklarirana. | Strošek Izhod · Izhodna slika $0.08 na sliko Enakovredne navedbe opisujejo isti zaračunani znesek; ne dodajajo druge pristojbine. |
Primeri zahtev
Ailoot Ultra · Slike
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");
Prejmi in shrani rezultate
Ailoot Ultra · Slike
Prenesite vsako vrnjeno sliko ali shranite njeno vsebino Base64
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Ohrani vse dokončane rezultate
Shranite vsako dokončano sliko; pridobite vsebino z vsake vrnjene URL ali dekodirajte njeno vsebino Base64.
Ohranite vsak element data in celotno porabo; pridobite lastništvo in shranite vse dejansko vrnjene slike. Brez izmišljenih URL-jev ali ID-jev.
Če je treba preveriti izvirni odgovor
Če je treba preveriti rezultat generiranja ali urejanja slike, shranite izvirni operation_id/X-Client-Request-ID in vrnjene podatke o rezultatu. Obstoječe rezultate, ki vam pripadajo, pridobite prek medijske knjižnice z dejanskimi vrednostmi task_id ali asset_id. Zahteve za generiranje/urejanje ne pošiljajte znova in iz operation_id ne sestavljajte URL za periodično preverjanje stanja.
Polja odgovora
| Polje | Vrsta |
|---|---|
Poljecreated | Vrstainteger |
Poljedata[].url | Vrstastring |
Poljedata[].b64_json | Vrstabase64 string |
Poljeusage | Vrstaobject |
Druga imena
Druga imena modelov
Ailoot Ultra recraft/recraft-v3
Druga imena poti metod
/v1/images
Povezani ID-ji za klic
FAQ · Recraft: Recraft V3
- Kateri vhodi in rezultati so na voljo?
POST /v1/images/generations·recraft/recraft-v3:text,image→image- Katera polja uporablja zahteva?
POST /v1/images/generations·recraft/recraft-v3:model,prompt,n,aspect_ratio,input_references- Katere omejitve veljajo?
POST /v1/images/generations·recraft/recraft-v3:n.minimum:1;n.maximum:6