Recraft: Recraft V4.1 Flash
Recraft V4.1 Flash generuoja 1K rastrinius vaizdus iš teksto ir leidžia greitai išbandyti vizualines idėjas. Jis palaiko fotografiją, portretus, sudėtingas scenas ir logotipų koncepcijas, pateikia PNG arba nenuostolingo WebP rezultatus ir leidžia aiškiai nurodyti spalvų pageidavimus.
Apie modelį
Šis aprašas apima modelio galimybes. Pasirinktam metodui Ailoot prieinamos įvestys, išvestys ir parinktys nurodytos toliau.
Recraft V4.1 Flash yra Recraft modelis vaizdams iš teksto generuoti, skirtas greitoms iteracijoms ir didelės apimties vizualiniam darbui. Gamintojas tarp stipriųjų taikymo sričių įvardija fotografiją, portretus, atmosferą, sudėtingas scenas, mišrias technikas ir logotipų koncepcijas. Rašytinis aprašas virsta rastriniu vaizdu, kurį galima palyginti su kitomis kūrybinėmis kryptimis prieš kuriant galutinę medžiagą. Flash yra konkretus V4.1 šeimos narys, turintis savo išvesties dydį ir palaikomus valdiklius.
Pradinė išvestis priklauso Recraft 1K rastrinių vaizdų klasei. Drobę rinkitės pagal numatomą vietą: horizontali iliustracija puslapio antraštei, vertikalus portretas arba kvadratinis vaizdas kompaktiškai kortelei. Išvesties formatai – nenuostolingas WebP ir PNG.
Aprašą pradėkite nuo pagrindinio objekto ir vizualinės paskirties, tada aprašykite kadravimą, aplinką, apšvietimą ir techniką. Produkto koncepcijai naudinga instrukcija: „Kompaktiškas kreminės spalvos radijo imtuvas ant riešutmedžio stalo, vaizdas iš priekio trijų ketvirčių kampu, minkšta lango šviesa, rami redakcinė fotografija, daug tuščios vietos kairėje.“ Iliustracijai nurodykite formų kalbą, paletę ir elementų santykius. Aiškiai išvardykite idėją apibrėžiančias detales, užuot pridėję nesusijusių būdvardžių. Dokumentuotas Flash užklausos limitas yra iki 10 000 simbolių, todėl prireikus galima išsamiai aprašyti sceną.
Gamintojo valdikliai apima pageidaujamas spalvas ir norimą fono spalvą. Atkuriamiems rezultatams galima pateikti sėklą, o generavimo sąsajoje dokumentuotas nuo vieno iki šešių vaizdų skaičius vienoje užklausoje. Šie valdikliai padeda naudingai lyginti: nekeiskite objekto ir kompozicijos, pakeiskite vieną vizualinę kryptį ir įvertinkite rezultatus numatytame makete. Spalvų pageidavimai apibūdina norimą rezultatą; prieš jungdami jį su esama dizaino sistema palyginkite svarbias prekės ženklo spalvas su galutine medžiaga.
Flash kuria rastrinę grafiką. Logotipo koncepcija gali padėti pasirinkti siluetą, nuotaiką ar išdėstymą, o redaguojami kontūrai priklauso atskirai įvardytiems Vector modeliams. Flash taip pat neturi Pro versijos. Visa V4.1 linija siūlo šiuos atskirus pasirinkimus, kai svarbiausia yra vektorinis redagavimas ar didesnės raiškos detalės. Gamintojas aprašo vėlesnį tobulinimo etapą, kuris pasirinktą eskizą paverčia detalesniu vaizdu; tai atskira operacija, o ne kitoks pradinis Flash išvesties dydis.
Ši versija nepalaiko vaizdo keitimo pagal vaizdą įvesties, individualių stilių, stilių identifikatorių, stiliaus derinimo ar stiliaus etaloninių vaizdų. Jos dokumentuota sąsaja taip pat nepalaiko neigiamų užklausų ir aiškių teksto išdėstymo valdiklių. Norimą išvaizdą ir kompoziciją įrašykite į teigiamą aprašą. Jei koncepcijoje yra raidžių, cituokite norimą tekstą ir tikrinkite atvaizduotas raides; kai būtina tiksli tipografija ir vieta, naudokite atskirą maketavimo etapą.
Praktiškas Flash rezultatas yra pasirinkta vizualinė kryptis su aiškiu aprašu, tinkamu kraštinių santykiu ir tinkamu naudoti rastriniu failu. Palyginkite objektą, kadravimą, foną ir svarbias detales tokiu dydžiu, kokiu vaizdas bus rodomas. Sėkmingą užklausą laikykite kartu su pasirinktu failu, kad kitas kūrybinis etapas tęstų pasirinktą kryptį. Greitos iteracijos padeda tyrinėti dizainą; pradinė vektorinė išvestis, derinimas pagal stiliaus etalonus ir kitos V4.1 versijos raiška lieka atskirais modelio pasirinkimais.
Ailoot Ultra · Vaizdai POST /v1/images/generations recraft/recraft-v4.1-flash
recraft/recraft-v4.1-flashPradžia
Recraft V4.1 Flash generuoja 1K rastrinius vaizdus iš teksto ir leidžia greitai išbandyti vizualines idėjas. Jis palaiko fotografiją, portretus, sudėtingas scenas ir logotipų koncepcijas, pateikia PNG arba nenuostolingo WebP rezultatus ir leidžia aiškiai nurodyti spalvų pageidavimus.
- Leidžiamos įvestys
- Tekstas
- Rezultatai
- Vaizdai
Prieinama Ailoot · įvestys ir metodai
Ailoot Ultra · Vaizdai POST /v1/images/generations
- Įvestis
text- Išvestis
image- Išvesties formatas
- Vaizdo failas
- Išvesčių skaičius
- 1 išvestis
| Laukas | Tipas | Reikalavimas | Reikšmės ir ribos | Numatyta |
|---|---|---|---|---|
Laukasmodel | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos recraft/recraft-v4.1-flash | Numatyta— |
Laukasprompt | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausias ilgis: 1 Sąlygos: Netuščia UTF8 tekstinė užklausa. Bendra viso gamintojo simbolių riba nėra išgalvojama. | Numatyta— |
Laukasn | Tipasinteger | ReikalavimasNeprivaloma | Reikšmės ir ribos 1 | Numatyta1 |
Laukasresponse_format | Tipasstring | ReikalavimasNeprivaloma | Reikšmės ir ribos url, b64_json | Numatyta— |
Laukasstream | Tipasboolean | ReikalavimasNeprivaloma | Reikšmės ir ribos false | Numatytafalse |
Įvesties medžiagos deriniai
Iš teksto į vaizdą · Privaloma: prompt
Metodo parametrai ir gyvavimo ciklas
| Parametras | Specifikacija |
|---|---|
Parametrascontent_type | Specifikacijaapplication/json |
Parametrasrequired | Specifikacijamodel, prompt |
Parametrasmaterial_types | Specifikacijatext |
Parametrasoptional | Specifikacijan, response_format, stream |
Parametrasn | Specifikacija1 |
Parametrasstream | Specifikacijafalse |
Parametrasresponse_format | Specifikacijaurl, b64_json |
Parametrasreference_images | Specifikacijafalse |
Parametrasedit | Specifikacijafalse |
Parametrasoutput_format_optional | Specifikacija |
Parametrasresolution_control | Specifikacijanull |
Parametrasaspect_ratio_control | Specifikacijanull |
Parametrasother_fields | Specifikacijaatmetama, išskyrus tikslų užfiksuotą vidinį teikėjo maršruto parinkimą |
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}
Sugeneruokite vieną paveikslėlį pagal tekstinę užklausą.
Išsaugokite kiekvieną data elementą; url/b64_json yra rezultato kodavimo formos.
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 kiekis | Apskaitos vienetas | Mokestis |
|---|---|---|---|---|
| KonfigūracijaBaziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Numatomas 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 · vaizdo išvestis · Įvertis tik palyginimui $0.014 už išvesties vaizdą |
| KonfigūracijaNumatoma generavimo kaina | Įkainių lentelė— | Numatomas kiekisvieno generavimo įvertis | Apskaitos vienetas— | Mokestis Išvestis · Numatoma generavimo kaina · Įvertis tik palyginimui $0.014 į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ūracija | Apmokestinimo sąlygos | Mokestis |
|---|---|---|
| KonfigūracijaIšvesties paveikslėlis | Apmokestinimo sąlygosKainodaros variantas nedeklaruotas. | Mokestis Išvestis · Išvesties vaizdas $0.014 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
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=json.loads('{"model": "recraft/recraft-v4.1-flash", "prompt": "A lighthouse on a cliff, watercolor", "n": 1, "response_format": "b64_json"}')
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.1-flash', 'prompt': 'A lighthouse on a cliff, watercolor', 'n': 1, 'response_format': 'b64_json'}
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.1-flash", "prompt": "A lighthouse on a cliff, watercolor", "n": 1, "response_format": "b64_json"};
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}/contentGET /v1/media/assetsGET /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ą duomenų elementą. Iškoduokite kiekvieną b64_json arba atsisiųskite turinį pagal kiekvieną grąžintą pasirašytą URL. Failo plėtinį pasirinkite pagal faktinį MIME tipą ir baitus.
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
| Laukas | Tipas |
|---|---|
Laukascreated | Tipasinteger |
Laukasdata[].url | Tipasstring |
Laukasdata[].b64_json | Tipasbase64 string |
Laukasusage | Tipasobject |
Klaidos ir tolesni veiksmai
| Atsakymas | Sąlyga | Kitas žingsnis |
|---|---|---|
Atsakymas400 · invalid_request_error | SąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmė | Kitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus. |
Atsakymasserver_error | SąlygaGrąžintame atsakyme nurodoma, kad operaciją arba rezultatą reikia patikrinti | Kitas ž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.1-flash
Metodų kelių pseudonimai
Naudokite aukščiau nurodytus metodų kelius.
Susiję ID iškvietimui
FAQ · Recraft: Recraft V4.1 Flash
- Kokios įvestys ir rezultatai prieinami?
POST /v1/images/generations·recraft/recraft-v4.1-flash:text→image- Kokius laukus naudoja užklausa?
POST /v1/images/generations·recraft/recraft-v4.1-flash:model,prompt,n,response_format,stream