Recraft: Recraft V4.1 Flash
Recraft V4.1 Flash generuje rastrové obrázky 1K z textu na rýchle vizuálne iterácie. Podporuje fotografiu, portréty, zložité scény a koncepty loga s výstupom PNG alebo bezstratovým WebP a explicitnými farebnými preferenciami.
O modeli
Tento opis pokrýva možnosti modelu. Dostupné vstupy, výstupy a voľby v Ailoot sú uvedené nižšie pre vybranú metódu.
Recraft V4.1 Flash je model Recraft text-to-image na rýchle iterácie a veľkoobjemovú vizuálnu prácu. Výrobca označuje fotografiu, portréty, atmosféru, zložité scény, zmiešané médiá a koncepty loga za silné použitia. Písané zadanie sa mení na rastrový obrázok, ktorý možno porovnať s ďalšími tvorivými smermi pred rozvinutím konečného vizuálu. Flash je konkrétny člen rodiny V4.1 s vlastnou výstupnou veľkosťou a podporovaným ovládaním.
Natívny výstup patrí do triedy rastrových obrázkov 1K Recraft. Plátno vyberte podľa zamýšľaného umiestnenia: vodorovná ilustrácia pre hlavičku stránky, zvislý portrét alebo štvorcový vizuál pre kompaktnú kartu. Výstupné formáty sú bezstratový WebP a PNG.
Zadanie začnite hlavným subjektom a vizuálnym účelom a potom opíšte rámovanie, prostredie, osvetlenie a médium. Pri produktovom koncepte je užitočný pokyn: „Kompaktné rádio krémovej farby na orechovom stole, čelný trojštvrťový pohľad, jemné okenné svetlo, pokojná redakčná fotografia, veľkorysý prázdny priestor vľavo.“ Pri ilustrácii určte jazyk tvarov, paletu a vzťah prvkov. Detaily definujúce nápad uveďte výslovne namiesto pridávania nesúvisiacich prídavných mien. Dokumentovaný limit zadania Flash je do 10 000 znakov, takže keď to úloha potrebuje, možno opísať podrobnú scénu.
Ovládanie výrobcu zahŕňa preferované farby a požadovanú farbu pozadia. Pre reprodukovateľné výsledky možno dodať seed a rozhranie generovania dokumentuje jeden až šesť obrázkov v požiadavke. Tieto ovládania podporujú užitočnú porovnávaciu úlohu: zachovajte subjekt a kompozíciu, meňte jeden vizuálny smer a výsledné obrázky posúďte voči zamýšľanému rozloženiu. Farebné preferencie opisujú požadovaný výsledok; pred spojením s existujúcim dizajnovým systémom porovnajte dôležité farby značky s dokončeným vizuálom.
Flash vytvára rastrovú grafiku. Koncept loga môže pomôcť vybrať siluetu, náladu alebo usporiadanie, kým editovateľné cesty patria samostatne pomenovaným modelom Vector. Flash tiež nemá variant Pro. Celý rad V4.1 poskytuje tieto samostatné voľby, keď sú jadrom výstupu vektorové úpravy alebo detaily vo vyššom rozlíšení. Výrobca opisuje neskorší krok vylepšenia vybraného návrhu na podrobnejší obrázok; tento krok je samostatná operácia, nie iná natívna výstupná veľkosť Flash.
Táto edícia nepodporuje vstup image-to-image, vlastné štýly, identifikátory štýlov, zhodu štýlu ani štýlové referenčné obrázky. Jej dokumentované rozhranie vylučuje aj negatívne zadania a explicitné ovládanie rozloženia textu. Požadovaný vzhľad a kompozíciu vložte do pozitívneho zadania. Keď je súčasťou konceptu písmo, zamýšľané znenie dajte do úvodzoviek a skontrolujte vykreslené písmená; ak je nevyhnutná presná typografia a umiestnenie, použite samostatnú fázu rozloženia.
Praktickým výsledkom Flash je vybraný vizuálny smer s jasným zadaním, vhodným pomerom strán a použiteľným rastrovým súborom. Subjekt, rámovanie, pozadie a dôležité detaily porovnajte pri veľkosti, v akej sa obrázok objaví. Úspešné zadanie a vybraný súbor uchovajte spoločne, aby ďalší tvorivý krok sledoval zvolený smer. Rýchle iterácie pomáhajú skúmať dizajn; natívny vektorový výstup, zhoda referenčného štýlu a rozlíšenie inej edície V4.1 zostávajú samostatnými voľbami modelu.
Ailoot Ultra · Obrázky POST /v1/images/generations recraft/recraft-v4.1-flash
recraft/recraft-v4.1-flashÚvod
Recraft V4.1 Flash generuje rastrové obrázky 1K z textu na rýchle vizuálne iterácie. Podporuje fotografiu, portréty, zložité scény a koncepty loga s výstupom PNG alebo bezstratovým WebP a explicitnými farebnými preferenciami.
- Povolené vstupy
- Text
- Výsledky
- Obrázky
Dostupné v Ailoot · vstupy a metódy
Ailoot Ultra · Obrázky POST /v1/images/generations
- Vstup
text- Výstup
image- Výstupný formát
- Súbor obrázka
- Počet výstupov
- 1 výstup
| Pole | Typ | Požiadavka | Hodnoty a limity | Predvolené |
|---|---|---|---|---|
Polemodel | Typstring | PožiadavkaPovinné | Hodnoty a limity recraft/recraft-v4.1-flash | Predvolené— |
Poleprompt | Typstring | PožiadavkaPovinné | Hodnoty a limity Minimálna dĺžka: 1 Podmienky: Neprázdne zadanie UTF8. Nevymýšľa sa žiadny limit znakov platný pre všetky modely výrobcu. | Predvolené— |
Polen | Typinteger | PožiadavkaVoliteľné | Hodnoty a limity 1 | Predvolené1 |
Poleresponse_format | Typstring | PožiadavkaVoliteľné | Hodnoty a limity url, b64_json | Predvolené— |
Polestream | Typboolean | PožiadavkaVoliteľné | Hodnoty a limity false | Predvolenéfalse |
Kombinácie vstupných podkladov
Z textu na obrázok · Povinné: prompt
Parametre a životný cyklus metódy
| Parameter | Špecifikácia |
|---|---|
Parametercontent_type | Špecifikáciaapplication/json |
Parameterrequired | Špecifikáciamodel, prompt |
Parametermaterial_types | Špecifikáciatext |
Parameteroptional | Špecifikácian, response_format, stream |
Parametern | Špecifikácia1 |
Parameterstream | Špecifikáciafalse |
Parameterresponse_format | Špecifikáciaurl, b64_json |
Parameterreference_images | Špecifikáciafalse |
Parameteredit | Špecifikáciafalse |
Parameteroutput_format_optional | Špecifikácia |
Parameterresolution_control | Špecifikácianull |
Parameteraspect_ratio_control | Špecifikácianull |
Parameterother_fields | Špecifikáciazamietnuté okrem presne stanovenej internej trasy poskytovateľa |
Životný cyklus: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · skutočne vrátené task_id alebo záznam v knižnici médií
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Vygenerujte jeden obrázok zo zadania.
Uložte každú dátovú položku; url/b64_json sú kódovania výsledku.
Cenník
Ako sa vypočíta konečný poplatok
Zobrazené sadzby slúžia na odhad nákladov pred generovaním. Konečný poplatok sa vypočíta z nákladov zaznamenaných pri pôvodnom generovaní. Namerané trvanie výstupu a predpokladané množstvá nepredstavujú konečné účtované množstvo.
Tarifné údaje nepridávajú možnosti požiadavky. Podporované parametre sú uvedené pri vybranej metóde.
- Rýchly režim
- Neuvedené Keď je zvolený rýchly režim
- Režim Flex
- Neuvedené Keď je zvolený režim flex
- Maximálna úroveň uvažovania
- Neuvedené Keď sa pri maximálnej úrovni uvažovania používa predvolená úprava (default)
Odhadované sadzby na porovnanie
Ceny podľa konfigurácie
Každý poplatok priraďte k zobrazeným podmienkam. Pre každú skupinu alternatívnych konfigurácií použite jednu sadzbu.
| Konfigurácia | Sadzobník | Odhadované množstvo | Účtovacia jednotka | Poplatok |
|---|---|---|---|---|
| KonfiguráciaZákladné sadzby za tokeny | SadzobníkZákladná sadzba | Odhadované množstvo— | Účtovacia jednotka— | Poplatok Vstup · Vstupné tokeny · Odhad iba na porovnanie — / 1K tokenov Výstup · Výstupné tokeny · Odhad iba na porovnanie — / 1K tokenov Vstup · Čítanie cache · Odhad iba na porovnanie — / 1K tokenov Vstup · Zápis do cache · Odhad iba na porovnanie — / 1K tokenov Vstup · Zápis do cache, 1 hod · Odhad iba na porovnanie — / 1K tokenov |
| KonfiguráciaUltra | Sadzobník— | Odhadované množstvo— | Účtovacia jednotkaza výstupný obrázok | Poplatok Výstup · výstup obrázka · Odhad iba na porovnanie $0.014 za výstupný obrázok |
| KonfiguráciaOdhadované náklady na generovanie | Sadzobník— | Odhadované množstvoodhad pre jedno generovanie | Účtovacia jednotka— | Poplatok Výstup · Odhadované náklady na generovanie · Odhad iba na porovnanie $0.014 odhad pred generovaním Tento odhad nepredstavuje dodatočný poplatok ani pevnú sadzbu za dokončené generovanie. |
Ailoot pred požiadavkou rezervuje odhadovanú sumu. Po získaní výsledku vyúčtuje konečný poplatok podľa nameraného využitia. Pri streamovaní sa vyúčtovanie riadi konečným záznamom využitia. Ako funguje rezervácia a vyúčtovanie →
Podrobnosti referenčnej tarify
Referenčné sadzobníky modelu nemenia výber metódy, cenové odhady ani poplatky. Aktívne poplatky používajú sadzby vybranej metódy Ailoot.
Cenové konfigurácie obrázkov
Ceny podľa konfigurácie
| Konfigurácia | Podmienky účtovania | Poplatok |
|---|---|---|
| KonfiguráciaVýstupný obrázok | Podmienky účtovaniaNie je deklarovaný žiadny cenový variant. | Poplatok Výstup · Výstupný obrázok $0.014 za obrázok Ekvivalentné položky opisujú rovnaký poplatok; nepridávajú druhý poplatok. |
Príklady požiadaviek
Ailoot Ultra · Obrázky
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");
Prijať a uložiť výsledky
Ailoot Ultra · Obrázky
Stiahnite každý vrátený obrázok alebo uložte jeho obsah Base64
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Uchovať všetky dokončené výsledky
Uložte každý dokončený obrázok; stiahnite obsah z každej vrátenej URL alebo dekódujte jeho obsah Base64.
Uložte každú dátovú položku. Dekódujte každé b64_json alebo stiahnite obsah z každej vrátenej podpísanej URL. Príponu názvu súboru vyberte podľa skutočného typu MIME/bajtov.
Ak treba overiť pôvodnú odpoveď
Ak je potrebné skontrolovať výsledok generovania alebo úpravy obrázka, uchovajte pôvodné operation_id/X-Client-Request-ID a vrátené informácie o výsledku. Existujúce vlastné výsledky obnovte cez knižnicu médií pomocou skutočných hodnôt task_id alebo asset_id. Požiadavku na generovanie/úpravu znova neodosielajte ani nevytvárajte URL na priebežné zisťovanie stavu z operation_id.
Polia odpovede
| Pole | Typ |
|---|---|
Polecreated | Typinteger |
Poledata[].url | Typstring |
Poledata[].b64_json | Typbase64 string |
Poleusage | Typobject |
Chyby a ďalšie kroky
| Odpoveď | Podmienka | Ďalší krok |
|---|---|---|
Odpoveď400 · invalid_request_error | PodmienkaNeplatné povinné polia, reprezentácia materiálu alebo hodnota parametra | Ďalší krokPred novou požiadavkou na vytvorenie opravte uvedené polia. |
Odpoveďserver_error | PodmienkaVrátená odpoveď uvádza, že operáciu alebo výsledok je potrebné skontrolovať | Ďalší krokUchovajte pôvodné vrátené ID operácie/úlohy, hlavičky požiadavky a odpoveď; naďalej čítajte údaje o tejto pôvodnej operácii podporovaným spôsobom. Požiadavku na vytvorenie znova neodosielajte. |
Aliasy
Aliasy modelov
Ailoot Ultra recraft/recraft-v4.1-flash
Aliasy ciest metód
Použite cesty metód uvedené vyššie.
Súvisiace ID na volanie
FAQ · Recraft: Recraft V4.1 Flash
- Aké vstupy a výsledky sú dostupné?
POST /v1/images/generations·recraft/recraft-v4.1-flash:text→image- Aké polia používa požiadavka?
POST /v1/images/generations·recraft/recraft-v4.1-flash:model,prompt,n,response_format,stream