ByteDance Seed: Seedream 5.0 Flash
Seedream 5.0 Flash ustvarja in ureja slike iz besedila in vizualnih referenc, s prostorsko usmerjenimi spremembami, večjezičnim besedilom v slikah in razgradnjo na plasti. ByteDance Seed Flash namenja hitrejšemu ustvarjanju ter ga ohranja ločenega od različice Pro s poudarkom na kakovosti.
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.
Hitrejša različica za ustvarjanje slik
Seedream 5.0 Flash je model ByteDance Seed za ustvarjanje in urejanje slik v postopkih, ki dajejo prednost hitrosti ustvarjanja. Proizvajalčev vodič Pro/Flash opisuje ustvarjanje iz besedila v sliko ter iz slike v sliko z eno ali več referencami. Hitrejše ustvarjanje Flash razlikuje od višje prednosti kakovosti slike pri Pro, ne določa pa fiksnega odzivnega časa za vsak opis.
Ključne skupne zmožnosti so interaktivno urejanje, razgradnja na plasti in izvorno večjezično ustvarjanje. Običajno ustvarjanje vrne eno končno sliko. Proizvajalčev postopek Flash ne podpira zaporednega ustvarjanja povezanih slik, spletnega iskanja ali pretočnega izhoda slik. Njegova optimizacija poziva uporablja standardni način; ločeni nadzor hitre optimizacije pripada Pro, ne Flash.
Ustvarjanje iz opisa in referenc
Navedite predvideno sliko, glavni motiv, kompozicijo in vizualno obdelavo, nato označite, kaj nadzoruje vsaka referenca. Pri vizualu izdelka ločite referenco, ki določa predmet, od tiste, ki prispeva paleto ali površinski material. »Ohrani silhueto in zorni kot predmeta iz prve slike; drugo uporabi samo za zadržano paleto ozadja« referencama dodeli ločeni vlogi.
Proizvajalec priporoča jedrnate pozive, največ 300 kitajskih znakov ali 600 angleških besed. To je napotek za pripravo, ne navedena trda omejitev besedilnega vhoda. Odločilne zahteve navedite najprej, vključno s točnim besedilom, ki se mora pojaviti, želenim razmerjem stranic in podrobnostmi, ki morajo ostati nespremenjene. Končno sliko preverite glede na ta seznam, namesto da se zanašate samo na njen splošni videz.
Prostorsko usmerjeno urejanje
Flash lahko s točkami, omejevalnimi okvirji, puščicami in prostoročnimi oznakami določi, kje naj se zgodi ureditev. Priložite izvorno sliko skupaj z lokacijo in spremembo. Pri zasnovi interierja označite stol, zahtevajte zamenjavo tkanine in navedite tla, steno, kot kamere ter bližnje predmete za ohranitev. Če oznake služijo samo usmerjanju, izrecno zahtevajte njihovo odstranitev iz končne slike.
Proizvajalčev vodič koordinatnega urejanja uporablja oznaki <point> in <bbox> s koordinatami, normaliziranimi na 0–999 glede na določeno vhodno sliko. Točka vsebuje x in y; okvir koordinate zgornjega levega in spodnjega desnega kota. Označite številko slike in ciljni predmet, zlasti kadar okvir vključuje več motivov. Pri urejanju med slikami ločite predmet za prevzem iz ene reference in ciljno območje v drugi.
Pri pridobivanju sorazmerne lokacije uporabite lastne mere prikazane slike; povečava platna, premikanje pogleda ali koordinate brskalnika niso normalizirane koordinate slike. Opišite zaščitena območja in urejeno območje. Perspektivo, osvetlitev in okoliške podrobnosti rezultata primerjajte z izvirnim virom.
Kompozicijo razdelite na urejevalne plasti
Razgradnja na plasti je ločen način, ki sprejme natanko eno sliko in vrne osnovno sliko ter do 16 neodvisnih plasti. Vsaka plast je PNG z alfa kanalom. Poziv lahko poimenuje elemente za ločevanje, denimo naslov, glavni motiv in okrasje; brez poziva za razgradnjo model glavne elemente samodejno prepozna.
Rezultati vključujejo imena plasti, opise, vrstni red zlaganja in okvirje postavitve. Osnovno sliko uporabite z indeksom zlaganja nič, nato druge plasti postavite po naraščajočem vrstnem redu zlaganja. Absolutni okvirji opisujejo postavitev v izhodni osnovni sliki; normalizirani okvirji sorazmerno postavitev na drugem platnu. Te vrnjene metapodatke postavitve hranite s slikovnimi datotekami, da lahko izvirno kompozicijo rekonstruirate pred prerazporeditvijo.
Pri spremembi plakata ločite glavno grafiko od naslova in okrasja, nato preglejte robove in morebitno obnovljeno območje ozadja. Prosojno plast lahko urejate kot en sam vhod z alfa kanalom, z izhodom prosojnega PNG. Možnost prosojnega ozadja velja za ta postopek urejanja slike z enim vhodom; običajno ustvarjanje iz besedila v sliko je ločena operacija.
Večjezična kompozicija
Poleg kitajščine in angleščine proizvajalec dokumentira izvorno podporo pozivom in besedilu v slikah v ruščini, arabščini, filipinščini, tajščini, turščini, korejščini, malajščini, španščini, portugalščini, indonezijščini, francoščini, nemščini, vietnamščini in japonščini. Podajte točno odobreno besedilo in smer branja ter označite območje vsakega besedilnega bloka. V končni sliki preglejte naglase, povezane znake, prelome vrstic in drobne oznake.
Referenčne datoteke in izhodne specifikacije
Ustvarjanje slik sprejme do 10 referenc v formatih JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC ali HEIF. Vsaka je lahko velika do 30 MB, z obema stranicama nad 14 pikslov, skupno 196–36.000.000 piksli in razmerjem stranic od 1:16 do 16:1. Razgradnja na plasti namesto tega zahteva en JPEG ali PNG s 262.144–36.000.000 piksli, do 30 MB, v istem razponu razmerij.
Ustvarjanje ponuja izhodne razrede 1K, 1.5K in 2K, privzeto 2K, ali izrecne mere s skupno 921.600–4.624.220 piksli in razmerji od 1:16 do 16:1. Za poljubne mere veljata obe omejitvi. Izhod plasti uporablja 1K, 1.5K, 2K ali auto, privzeto auto; osnova in vsaka plast ohranijo razmerja svojih virov.
Končne slike so JPEG ali PNG. Format osnovne slike lahko izberete ločeno, razgrajene plasti pa ostanejo PNG z alfa kanalom. Dostava lahko uporablja kodirane slikovne podatke ali povezave za prenos, ki se hranijo 24 ur. Vsako vrnjeno sliko in njene metapodatke shranite za predvideni oblikovalski postopek. Besedilo, urejene podrobnosti in poravnavo plasti preverite pri velikosti, pri kateri bo grafika uporabljena.
Ailoot Ultra · Slike POST /v1/images/generations bytedance-seed/seedream-5-0-flash
bytedance-seed/seedream-5-0-flash
bytedance-seed/seedream-5-0-flashZačetek
Ustvarite eno dokončano sliko na podlagi besedilnih navodil.
- Ustvarite statično sliko izdelka
- Raziščite vizualni koncept
- Ilustrirajte prizor
- Dovoljeni vhodi
- Besedilo
- Rezultati
- Slike
Na voljo v Ailoot · vhodi in metode
Ailoot Ultra · Slike POST /v1/images/generations
- Vhod
text- Izhod
image- Izhodni format
- Slikovna datoteka
- Število izhodov
- 1 izhod
| Polje | Vrsta | Zahteva | Vrednosti in omejitve | Privzeto |
|---|---|---|---|---|
Poljemodel | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve bytedance-seed/seedream-5-0-flash | Privzeto— |
Poljeprompt | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve Najmanjša dolžina: 1 Pogoji: Neprazen poziv UTF8. Splošne omejitve števila znakov za vse modele proizvajalca ne določamo. | Privzeto— |
Poljen | Vrstainteger | ZahtevaIzbirno | Vrednosti in omejitve 1 | Privzeto1 |
Poljeresponse_format | Vrstastring | ZahtevaIzbirno | Vrednosti in omejitve url, b64_json | Privzeto— |
Poljestream | Vrstaboolean | ZahtevaIzbirno | Vrednosti in omejitve false | Privzetofalse |
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 |
Parameteroptional | Specifikacijan, response_format, stream |
Parametern | Specifikacija1 |
Parameterstream | Specifikacijafalse |
Parameterresponse_format | Specifikacijaurl, b64_json |
Parameterreference_images | Specifikacijafalse |
Parameteredit | Specifikacijafalse |
Parameteroutput_format_optional | Specifikacija |
Parameterresolution_control | Specifikacijanull |
Parameteraspect_ratio_control | Specifikacijanull |
Parameterother_fields | Specifikacijazavrnjeno, razen za natančno pripeto notranje usmerjanje ponudnika |
Ž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}
Ustvarite eno sliko iz poziva.
Shranite vsak element data; url/b64_json sta kodiranji rezultatov.
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 |
| Nastavitevvhodna slika | Cenovna lestvica— | Predvidena količina— | Obračunska enotana vhodno sliko | Strošek Vhod · vhodna slika · Ocena samo za primerjavo $0 na vhodno sliko |
| NastavitevUltra | Cenovna lestvica— | Predvidena količina— | Obračunska enotana izhodno sliko | Strošek Izhod · izhod slike · Ocena samo za primerjavo $0.036 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.036 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
Vsak strošek povežite s prikazanimi pogoji. Za vsak nabor alternativnih nastavitev uporabite eno ceno.
| Nastavitev | Obračunski pogoji | Strošek |
|---|---|---|
| NastavitevIzhodna slika | Obračunski pogojiRazličica cen ni deklarirana. | Strošek Izhod · Izhodna slika $0.036 na sliko |
| NastavitevVhodna slika | Obračunski pogojiRazličica cen ni deklarirana. | Strošek Vhod · Vhodna slika $0 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=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");
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.
Shranite vsak podatkovni element. Dekodirajte vsak b64_json ali pridobite vsebino z vsakega vrnjenega podpisanega URL. Končnico imena datoteke izberite glede na dejanski tip MIME oziroma bajte.
Č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 |
Napake in naslednji koraki
| Odgovor | Pogoj | Naslednji korak |
|---|---|---|
Odgovor400 · invalid_request_error | PogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametra | Naslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja. |
Odgovorserver_error | PogojVrnjeni odgovor navaja, da je treba operacijo ali rezultat preveriti | Naslednji korakShranite izvirni vrnjeni ID operacije/opravila, glave zahteve in odgovor; nadaljujte s podprtimi branji te izvirne operacije. Zahteve za ustvarjanje ne pošiljajte znova. |
Druga imena
Druga imena modelov
Ailoot Ultra bytedance-seed/seedream-5-0-flash
Druga imena poti metod
Uporabite zgoraj navedene poti metod.
Povezani ID-ji za klic
FAQ · ByteDance Seed: Seedream 5.0 Flash
- Kateri vhodi in rezultati so na voljo?
POST /v1/images/generations·bytedance-seed/seedream-5-0-flash:text→image- Katera polja uporablja zahteva?
POST /v1/images/generations·bytedance-seed/seedream-5-0-flash:model,prompt,n,response_format,stream