ByteDance Seed: Seedream 5.0 Flash
A Seedream 5.0 Flash szövegből és vizuális referenciákból készít és szerkeszt képeket, térben irányított változtatásokkal, többnyelvű képszöveggel és rétegbontással. A ByteDance Seed a Flasht gyorsabb generáláshoz pozicionálja, a minőségre összpontosító Pro kiadástól elkülönítve.
A modellről
Ez a leírás a modell képességeit ismerteti. Az Ailootban elérhető bemenetek, kimenetek és lehetőségek alább, a kiválasztott metódusnál láthatók.
Gyorsabb képalkotó kiadás
A Seedream 5.0 Flash a ByteDance Seed képgeneráló és -szerkesztő modellje a generálási sebességet előtérbe helyező munkafolyamatokhoz. A gyártó Pro/Flash útmutatója szöveg-kép és egy- vagy többreferenciás kép-kép alkotást is leír. A Flash gyorsabb generálását megkülönbözteti a Pro magasabb képminőségre helyezett hangsúlyától, minden leírásra érvényes rögzített válaszidő megadása nélkül.
A meghatározó közös funkciók az interaktív szerkesztés, rétegbontás és natív többnyelvű generálás. A szokásos generálás egy kész képet ad vissza. A gyártó Flash folyamata nem támogat kapcsolódó képek sorozatos generálását, webes keresést vagy streamelt képkimenetet. Promptoptimalizálása standard módot használ; a külön gyors optimalizálási vezérlő a Próhoz tartozik, nem a Flashhez.
Alkotás leírásból és referenciákból
Add meg a kívánt képet, fő témát, kompozíciót és vizuális megoldást, majd azonosítsd, mit irányít minden referencia. Termékvizuálnál különítsd el a tárgyat rögzítő referenciát a palettát vagy felületanyagot adótól. „Tartsd meg a tárgy sziluettjét és nézőszögét az első képről; a második képet csak a visszafogott háttérpalettához használd” külön szerepet ad a referenciáknak.
A gyártó tömör promptot ajánl, legfeljebb 300 kínai karakterrel vagy 600 angol szóval. Ez előkészítési ajánlás, nem megadott szigorú szövegbemeneti vágási határ. A döntő követelményeket sorold előre, köztük a kötelező pontos szöveget, kívánt oldalarányt és változatlanul megtartandó részleteket. A kész képet e listához mérd, ne csak összhatására támaszkodj.
Térben irányított szerkesztés
A Flash pontokat, befoglaló téglalapokat, nyilakat és szabadkézi jelöléseket használhat a szerkesztés helyének azonosítására. A forrásképpel együtt adj helyet és változást. Belsőtér-koncepciónál jelöld meg a széket, kérj szövetcserét, és nevezd meg a megőrzendő padlót, falat, kameraszöget és közeli tárgyakat. Ha a jelölések csak útmutatók, kifejezetten kérd eltávolításukat a kész képről.
A gyártó koordinátaalapú szerkesztési útmutatója <point> és <bbox> címkéket használ, a megadott bemeneti képhez viszonyítva 0–999-re normalizált koordinátákkal. A pont x-et és y-t tartalmaz; a téglalap bal felső és jobb alsó koordinátát. Azonosítsd a képszámot és céltárgyat, különösen ha a téglalap több témát tartalmaz. Képek közötti szerkesztésnél különböztesd meg az egyik referenciából átveendő tárgyat és a másik célterületét.
Az arányos hely meghatározásához a megjelenített kép saját méreteit használd; vászonnagyítás, eltolás vagy böngészőkoordináta nem normalizált képkoordináta. A szerkesztett mellett a védett területeket is írd le. Az eredmény perspektíváját, megvilágítását és környező részleteit vesd össze az eredeti forrással.
Kompozíció szétválasztása szerkeszthető rétegekre
A rétegbontás külön mód, amely pontosan egy képet fogad és egy alapképet plusz legfeljebb 16 független réteget ad vissza. Minden réteg alfacsatornás PNG. Prompt megnevezheti a szétválasztandó elemeket, például címet, fő témát és díszítéseket; bontási prompt nélkül a modell automatikusan azonosítja a fő elemeket.
Az eredmény rétegneveket, leírásokat, rétegsorrendet és elhelyezési téglalapokat tartalmaz. Az alapképet nulla rétegindexszel használd, majd a többi réteget növekvő sorrendben helyezd rá. Az abszolút téglalapok a kimeneti alapképen való elhelyezést, a normalizált téglalapok másik vásznon való arányos elhelyezést írják le. A képfájlokkal együtt őrizd meg e visszaadott elhelyezési metaadatokat, hogy átrendezés előtt rekonstruálható legyen az eredeti kompozíció.
Plakátmódosításnál válaszd szét a fő grafikát, címet és díszítéseket, majd vizsgáld meg a széleket és minden helyreállított háttérrészt. Átlátszó réteg egyetlen alfacsatornás bemenetként szerkeszthető átlátszó PNG kimenettel. Az átlátszó háttér lehetősége ehhez az egybemenetes képszerkesztési munkafolyamathoz kötődik; a szokásos szöveg-kép generálás külön művelet.
Többnyelvű kompozíció
A kínai és angol mellett a gyártó orosz, arab, filippínó, thai, török, koreai, maláj, spanyol, portugál, indonéz, francia, német, vietnámi és japán nyelvhez dokumentál natív prompt- és képszöveg-támogatást. Add meg a pontos jóváhagyott szöveget és olvasási irányt, és azonosítsd az egyes szövegblokkok területét. A végső képen ellenőrizd az ékezeteket, kapcsolt karaktereket, sortöréseket és kis címkéket.
Referenciafájlok és kimeneti specifikációk
A képgenerálás legfeljebb 10 referenciát fogad JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC vagy HEIF formátumban. Mindegyik legfeljebb 30 MB lehet, mindkét oldala 14 pixel fölötti, összterülete 196–36 000 000 pixel, oldalaránya 1:16–16:1. A rétegbontás ehelyett egy JPEG vagy PNG képet igényel 262 144–36 000 000 pixellel, legfeljebb 30 MB-tal és ugyanilyen aránytartománnyal.
A generálás 1K, 1.5K és 2K kimeneti szintet kínál, alapértelmezetten 2K-val, vagy konkrét méreteket 921 600–4 624 220 összpixellel és 1:16–16:1 közötti aránnyal. Egyéni méretnél mindkét megkötés érvényes. A rétegkimenet 1K, 1.5K, 2K vagy auto lehet, alapértelmezetten auto; az alapkép és minden réteg megtartja saját forrásoldalarányát.
A kész képek JPEG vagy PNG formátumúak. Az alapkép formátuma külön választható, a bontott rétegek viszont alfacsatornás PNG-k maradnak. Az átadás kódolt képadattal vagy 24 órán át megőrzött letöltési linkkel történhet. A tervezett dizájnmunkához ments el minden visszaadott képet és metaadatát. A szöveget, szerkesztett részleteket és rétegilleszkedést a felhasználási méretben ellenőrizd.
Ailoot Ultra · Képek POST /v1/images/generations bytedance-seed/seedream-5-0-flash
bytedance-seed/seedream-5-0-flash
bytedance-seed/seedream-5-0-flashKezdő lépések
Szöveges feladatleírásból hozzon létre egyetlen kész képet.
- Állókép készítése egy termékről
- Vizuális koncepció feltérképezése
- Jelenet illusztrálása
- Elfogadott bemenetek
- Szöveg
- Eredmények
- Képek
Elérhető az Ailootban · bemenetek és metódusok
Ailoot Ultra · Képek POST /v1/images/generations
- Bemenet
text- Kimenet
image- Kimeneti formátum
- Képfájl
- Kimenetek száma
- 1 kimenet
| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
|---|---|---|---|---|
Mezőmodel | Típusstring | KövetelményKötelező | Értékek és korlátok bytedance-seed/seedream-5-0-flash | Alapértelmezett— |
Mezőprompt | Típusstring | KövetelményKötelező | Értékek és korlátok Minimális hossz: 1 Feltételek: Nem üres UTF8 szöveges utasítás. Nem vezetünk be kitalált, a gyártó összes modelljére érvényes karakterkorlátot. | Alapértelmezett— |
Mezőn | Típusinteger | KövetelményOpcionális | Értékek és korlátok 1 | Alapértelmezett1 |
Mezőresponse_format | Típusstring | KövetelményOpcionális | Értékek és korlátok url, b64_json | Alapértelmezett— |
Mezőstream | Típusboolean | KövetelményOpcionális | Értékek és korlátok false | Alapértelmezettfalse |
Bemeneti anyagok kombinációi
Szövegből kép · Kötelező: prompt
Metódus paraméterei és életciklusa
| Paraméter | Szerződés |
|---|---|
Paramétercontent_type | Szerződésapplication/json |
Paraméterrequired | Szerződésmodel, prompt |
Paramétermaterial_types | Szerződéstext |
Paraméteroptional | Szerződésn, response_format, stream |
Paramétern | Szerződés1 |
Paraméterstream | Szerződésfalse |
Paraméterresponse_format | Szerződésurl, b64_json |
Paraméterreference_images | Szerződésfalse |
Paraméteredit | Szerződésfalse |
Paraméteroutput_format_optional | Szerződés |
Paraméterresolution_control | Szerződésnull |
Paraméteraspect_ratio_control | Szerződésnull |
Paraméterother_fields | Szerződéselutasítva, kivéve a pontosan rögzített belső szolgáltatói útválasztást |
Életciklus: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · A ténylegesen visszaadott task_id vagy a médiatár bejegyzése
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Generáljon egy képet a szöveges utasításból.
Mentse el az összes adatelemet; az url/b64_json az eredmény kódolási formáját jelöli.
Díjcsomagok
A végső díj számítása
A megjelenített díjtételek a generálás előtti költségbecsléshez szolgálnak. A végleges díj az eredeti generáláshoz rögzített költségből számítódik. A kimenet mért időtartama és az előre jelzett mennyiségek nem azonosak a véglegesen elszámolandó mennyiséggel.
A díjszabás nem ad új kérési lehetőségeket. A támogatott paraméterek a kiválasztott módszernél szerepelnek.
- Gyors mód
- Nincs megadva Ha a gyors mód van kiválasztva
- Flex mód
- Nincs megadva Ha a flex mód van kiválasztva
- Maximális gondolkodási ráfordítás
- Nincs megadva Ha a maximális gondolkodási ráfordításra a default beállításhoz tartozó korrekció vonatkozik
Becsült díjak összehasonlításhoz
Árak beállításonként
Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.
| Beállítás | Díjtáblázat | Előre jelzett mennyiség | Elszámolási egység | Díj |
|---|---|---|---|---|
| BeállításTokenek alapdíjai | DíjtáblázatAlapdíj | Előre jelzett mennyiség— | Elszámolási egység— | Díj Bemenet · Bemeneti tokenek · Becslés, csak összehasonlításra — / 1K token Kimenet · Kimeneti tokenek · Becslés, csak összehasonlításra — / 1K token Bemenet · Gyorsítótár olvasása · Becslés, csak összehasonlításra — / 1K token Bemenet · Írás a gyorsítótárba · Becslés, csak összehasonlításra — / 1K token Bemenet · Írás a gyorsítótárba, 1 óra · Becslés, csak összehasonlításra — / 1K token |
| Beállításbemeneti kép | Díjtáblázat— | Előre jelzett mennyiség— | Elszámolási egységbemeneti képenként | Díj Bemenet · bemeneti kép · Becslés, csak összehasonlításra $0 bemeneti képenként |
| BeállításUltra | Díjtáblázat— | Előre jelzett mennyiség— | Elszámolási egységkimeneti képenként | Díj Kimenet · képkimenet · Becslés, csak összehasonlításra $0.036 kimeneti képenként |
| BeállításA generálás becsült költsége | Díjtáblázat— | Előre jelzett mennyiségbecslés egy generálásra | Elszámolási egység— | Díj Kimenet · Becsült generálási költség · Becslés, csak összehasonlításra $0.036 becslés a generálás előtt Ez a becslés nem jelent további díjat, és nem rögzített díjszabás az elkészült generálásra. |
Az Ailoot a kérés előtt becsült összeget foglal le. Az eredmény után a mért használat alapján elszámolja a végső díjat. Folyamatos átvitel esetén a végső használati rekordot használja. A foglalás és az elszámolás működése →
A referencia-díjszabás részletei
A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.
Képárazási beállítások
Árak beállításonként
Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.
| Beállítás | Elszámolási feltételek | Díj |
|---|---|---|
| BeállításKimeneti kép | Elszámolási feltételekNincs deklarált árazási változat. | Díj Kimenet · Kimeneti kép $0.036 képenként |
| BeállításBemeneti kép | Elszámolási feltételekNincs deklarált árazási változat. | Díj Bemenet · Bemeneti kép $0 képenként |
Az egyenértékű felsorolások ugyanazt a díjat írják le; nem jelentenek második díjat.
Példakérések
Ailoot Ultra · Képek
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");
Eredmények fogadása és mentése
Ailoot Ultra · Képek
Töltsön le minden visszaadott képet, vagy mentse a Base64-tartalmat
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Őrizzen meg minden elkészült eredményt
Mentsen minden elkészült képet; töltse le az összes visszaadott URL tartalmát, vagy dekódolja a Base64-tartalmat.
Mentsen minden adatelemet. Dekódoljon minden b64_json értéket, vagy töltse le minden visszaadott, aláírt URL tartalmát. A fájlnév kiterjesztését a tényleges MIME-típus/bájtok alapján válassza ki.
Ha az eredeti választ ellenőrizni kell
Ha egy képgenerálási vagy képszerkesztési eredmény ellenőrzést igényel, őrizze meg az eredeti operation_id/X-Client-Request-ID értéket és a visszaadott eredményadatokat. A saját, már meglévő eredményeket a médiatárból állítsa helyre a tényleges task_id vagy asset_id értékekkel. Ne küldje be újra a generálási/szerkesztési kérést, és ne állítson össze állapotlekérdezési URL-t az operation_id értékéből.
Válaszmezők
| Mező | Típus |
|---|---|
Mezőcreated | Típusinteger |
Meződata[].url | Típusstring |
Meződata[].b64_json | Típusbase64 string |
Mezőusage | Típusobject |
Hibák és következő lépések
| Válasz | Feltétel | Következő lépés |
|---|---|---|
Válasz400 · invalid_request_error | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |
Válaszserver_error | FeltételA visszaadott válasz szerint a művelet vagy az eredmény ellenőrzést igényel | Következő lépésŐrizze meg az eredetileg visszaadott művelet- vagy feladatazonosítót, a kérés fejléceit és a választ; folytassa az eredeti művelet támogatott lekérdezéseit. Ne küldje be újra a létrehozási kérést. |
Álnevek
Modell álnevei
Ailoot Ultra bytedance-seed/seedream-5-0-flash
Metódusútvonalak álnevei
Használja a fent látható metódusútvonalakat.
Kapcsolódó modellazonosítók
FAQ · ByteDance Seed: Seedream 5.0 Flash
- Milyen bemenetek és eredmények érhetők el?
POST /v1/images/generations·bytedance-seed/seedream-5-0-flash:text→image- Mely mezőket használja a kérés?
POST /v1/images/generations·bytedance-seed/seedream-5-0-flash:model,prompt,n,response_format,stream