ByteDance Seed: Seedream 5.0 Flash
Seedream 5.0 Flash vytvára a upravuje obrázky z textu a vizuálnych referencií s priestorovo vedenými zmenami, viacjazyčným textom v obraze a rozkladom do vrstiev. ByteDance Seed určuje Flash pre rýchlejšie generovanie a ponecháva ho oddelený od edície Pro zameranej na kvalitu.
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.
Rýchlejšia edícia tvorby obrázkov
Seedream 5.0 Flash je model ByteDance Seed na generovanie a úpravu obrázkov pre postupy uprednostňujúce rýchlosť generovania. Návod Pro/Flash výrobcu opisuje tvorbu text-to-image aj image-to-image s jednou či viacerými referenciami. Rozlišuje rýchlejšie generovanie Flash od vyššej priority kvality obrázka pri Pro bez stanovenia pevnej doby odpovede pre každé zadanie.
Určujúcimi spoločnými funkciami sú interaktívne úpravy, rozklad do vrstiev a natívne viacjazyčné generovanie. Bežné generovanie vracia jeden dokončený obrázok. Postup Flash výrobcu nepodporuje sekvenčné generovanie súvisiacich obrázkov, webové vyhľadávanie ani streamovaný obrazový výstup. Optimalizácia zadania používa štandardný režim; samostatné ovládanie rýchlej optimalizácie patrí Pro, nie Flash.
Tvorba zo zadania a referencií
Určte zamýšľaný obrázok, hlavný subjekt, kompozíciu a vizuálne spracovanie a potom identifikujte, čo ovláda každá referencia. Pri produktovom vizuáli oddeľte referenciu určujúcu predmet od referencie poskytujúcej paletu alebo povrchový materiál. „Zachovaj siluetu a uhol pohľadu predmetu z prvého obrázka; druhý obrázok použi iba na tlmenú paletu pozadia“ dáva referenciám odlišné úlohy.
Výrobca odporúča stručné zadania, najviac 300 čínskych znakov alebo 600 anglických slov. Ide o usmernenie prípravy, nie uvedenú pevnú hranicu textového vstupu. Rozhodujúce požiadavky vypíšte ako prvé vrátane presného znenia, ktoré sa musí objaviť, požadovaného pomeru strán a detailov, ktoré sa nesmú zmeniť. Dokončený obrázok porovnajte s týmto zoznamom namiesto spoliehania sa iba na jeho celkový vzhľad.
Priestorovo vedené úpravy
Flash môže používať body, ohraničujúce rámčeky, šípky a voľné značky na určenie miesta úpravy. Dodajte zdrojový obrázok spolu s polohou a zmenou. Pri interiérovom koncepte označte stoličku, požadujte náhradu látky a určte podlahu, stenu, uhol kamery a blízke predmety na zachovanie. Ak sú značky iba usmernením, výslovne požiadajte o ich odstránenie z dokončeného obrázka.
Návod výrobcu na súradnicové úpravy používa značky <point> a <bbox> so súradnicami normalizovanými na 0–999 voči určenému vstupnému obrázku. Bod obsahuje x a y; rámček obsahuje súradnice ľavého horného a pravého dolného rohu. Určte číslo obrázka a cieľový objekt, najmä keď rámček zahŕňa viaceré subjekty. Pri úprave medzi obrázkami odlíšte objekt na prevzatie z jednej referencie a cieľovú oblasť v druhej.
Pri získavaní pomernej polohy používajte vlastné rozmery zobrazeného obrázka; priblíženie plátna, posúvanie ani súradnice prehliadača nie sú normalizovanými súradnicami obrázka. Opíšte chránené oblasti aj upravovanú oblasť. Perspektívu, osvetlenie a okolité detaily výsledku porovnajte s pôvodným zdrojom.
Rozdeľte kompozíciu do editovateľných vrstiev
Rozklad do vrstiev je samostatný režim prijímajúci presne jeden obrázok a vracajúci základný obrázok plus až 16 nezávislých vrstiev. Každá vrstva je PNG s alfa kanálom. Zadanie môže pomenovať prvky na oddelenie, napríklad nadpis, hlavný subjekt a dekorácie; bez zadania rozkladu model automaticky identifikuje hlavné prvky.
Výsledky zahŕňajú názvy vrstiev, opisy, poradie vrstvenia a umiestňovacie rámčeky. Základný obrázok použite s indexom vrstvenia nula a potom umiestňujte ďalšie vrstvy vo vzostupnom poradí vrstvenia. Absolútne rámčeky opisujú polohu vo výstupnom základnom obrázku; normalizované rámčeky opisujú pomerné umiestnenie na inom plátne. Tieto vrátené metadáta umiestnenia uchovajte s obrazovými súbormi, aby sa pred preusporiadaním dala zrekonštruovať pôvodná kompozícia.
Pri revízii plagátu oddeľte hlavný obraz od nadpisu a dekorácií a potom skontrolujte okraje aj každú obnovenú oblasť pozadia. Priehľadnú vrstvu možno upraviť ako jediný vstup s alfa kanálom s priehľadným výstupom PNG. Možnosť priehľadného pozadia je vymedzená na tento postup úpravy obrázka s jedným vstupom; bežné text-to-image generovanie je samostatná operácia.
Viacjazyčná kompozícia
Okrem čínštiny a angličtiny výrobca dokumentuje natívnu podporu zadaní a textu v obraze pre ruštinu, arabčinu, filipínčinu, thajčinu, turečtinu, kórejčinu, malajčinu, španielčinu, portugalčinu, indonézštinu, francúzštinu, nemčinu, vietnamčinu a japončinu. Dodajte presné schválené znenie a smer čítania a určte oblasť každého textového bloku. V konečnom obrázku kontrolujte diakritiku, spojené znaky, zalomenia riadkov a malé štítky.
Referenčné súbory a výstupné špecifikácie
Generovanie obrázkov prijíma až 10 referencií v JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC alebo HEIF. Každá môže mať do 30 MB, obe strany nad 14 pixelov, 196–36 000 000 pixelov spolu a pomer strán od 1:16 do 16:1. Rozklad do vrstiev naopak vyžaduje jeden JPEG alebo PNG s 262 144–36 000 000 pixelmi, do 30 MB, v rovnakom rozsahu pomeru strán.
Generovanie ponúka výstupné úrovne 1K, 1.5K a 2K s predvolenou 2K alebo explicitné rozmery s 921 600–4 624 220 pixelmi spolu a pomerom strán od 1:16 do 16:1. Na vlastné rozmery sa vzťahujú obe obmedzenia. Výstup vrstiev používa 1K, 1.5K, 2K alebo auto s predvoleným auto; základ aj každá vrstva si zachovávajú príslušné zdrojové pomery strán.
Dokončené obrázky sú JPEG alebo PNG. Formát základného obrázka možno vybrať samostatne, kým rozložené vrstvy zostávajú PNG s alfa kanálom. Dodanie môže používať zakódované obrazové dáta alebo odkazy na stiahnutie uchovávané 24 hodín. Každý vrátený obrázok a jeho metadáta uložte pre zamýšľaný dizajnový postup. Text, upravené detaily a zarovnanie vrstiev kontrolujte pri veľkosti, v akej sa bude obraz používať.
Ailoot Ultra · Obrázky POST /v1/images/generations bytedance-seed/seedream-5-0-flash
bytedance-seed/seedream-5-0-flash
bytedance-seed/seedream-5-0-flashÚvod
Vytvorte jeden hotový obrázok podľa textového zadania.
- Vytvorte statický obrázok produktu
- Preskúmajte vizuálny koncept
- Ilustrujte scénu
- 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 bytedance-seed/seedream-5-0-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áciavstupný obrázok | Sadzobník— | Odhadované množstvo— | Účtovacia jednotkaza vstupný obrázok | Poplatok Vstup · vstupný obrázok · Odhad iba na porovnanie $0 za vstupný obrázok |
| 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.036 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.036 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
Každý poplatok priraďte k zobrazeným podmienkam. Pre každú skupinu alternatívnych konfigurácií použite jednu sadzbu.
| 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.036 za obrázok |
| KonfiguráciaVstupný obrázok | Podmienky účtovaniaNie je deklarovaný žiadny cenový variant. | Poplatok Vstup · Vstupný obrázok $0 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": "bytedance-seed/seedream-5-0-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': 'bytedance-seed/seedream-5-0-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": "bytedance-seed/seedream-5-0-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 bytedance-seed/seedream-5-0-flash
Aliasy ciest metód
Použite cesty metód uvedené vyššie.
Súvisiace ID na volanie
FAQ · ByteDance Seed: Seedream 5.0 Flash
- Aké vstupy a výsledky sú dostupné?
POST /v1/images/generations·bytedance-seed/seedream-5-0-flash:text→image- Aké polia používa požiadavka?
POST /v1/images/generations·bytedance-seed/seedream-5-0-flash:model,prompt,n,response_format,stream