ByteDance Seed: Seedream 5.0 Flash
Seedream 5.0 Flash mencipta dan menyunting imej daripada teks serta rujukan visual, dengan perubahan berpandukan ruang, teks imej pelbagai bahasa dan penguraian lapisan. ByteDance Seed meletakkan Flash untuk penjanaan lebih pantas, sambil membezakannya daripada edisi Pro yang berfokus kualiti.
Tentang model
Huraian ini merangkumi keupayaan model. Input, output dan pilihan yang tersedia di Ailoot disenaraikan di bawah untuk kaedah yang dipilih.
Edisi penciptaan imej lebih pantas
Seedream 5.0 Flash ialah model penjanaan dan penyuntingan imej ByteDance Seed untuk aliran yang mengutamakan kelajuan penjanaan. Panduan Pro/Flash pengeluar menerangkan penciptaan teks-ke-imej serta imej-ke-imej dengan satu atau berbilang rujukan. Ia membezakan penjanaan lebih pantas Flash daripada keutamaan kualiti imej lebih tinggi Pro, tanpa menetapkan masa respons tetap untuk setiap arahan.
Ciri bersama utamanya ialah penyuntingan interaktif, penguraian lapisan dan penjanaan natif pelbagai bahasa. Penjanaan biasa mengembalikan satu imej siap. Aliran Flash pengeluar tidak menyokong penjanaan imej berkaitan secara berurutan, carian web atau output imej penstriman. Pengoptimuman promptnya menggunakan mod standard; kawalan pengoptimuman pantas berasingan milik Pro, bukannya Flash.
Mencipta daripada arahan dan rujukan
Nyatakan gambar dimaksudkan, subjek utama, komposisi dan olahan visual, kemudian kenal pasti perkara yang dikawal oleh setiap rujukan. Untuk visual produk, asingkan rujukan yang menetapkan objek daripada rujukan yang membekalkan palet atau bahan permukaan. “Kekalkan siluet objek dan sudut pandangan daripada imej pertama; gunakan imej kedua hanya untuk palet latar belakang redup” memberikan peranan berbeza kepada rujukan.
Pengeluar mengesyorkan prompt ringkas, tidak melebihi 300 aksara Cina atau 600 perkataan Inggeris. Ini ialah panduan persediaan, bukannya had mutlak input teks yang dinyatakan. Senaraikan keperluan penentu dahulu, termasuk perkataan tepat yang mesti muncul, nisbah bidang dikehendaki dan butiran yang mesti kekal. Periksa imej siap terhadap senarai itu tanpa bergantung hanya pada rupa keseluruhannya.
Penyuntingan berpandukan ruang
Flash boleh menggunakan titik, kotak pembatas, anak panah dan tanda bebas untuk mengenal pasti tempat suntingan perlu berlaku. Berikan imej sumber bersama lokasi dan perubahan. Untuk konsep dalaman, tandakan kerusi, minta penggantian fabrik dan kenal pasti lantai, dinding, sudut kamera serta objek berdekatan yang perlu dikekalkan. Jika tanda hanya panduan, minta secara eksplisit agar ia dibuang daripada imej siap.
Panduan penyuntingan koordinat pengeluar menggunakan tag <point> dan <bbox> dengan koordinat dinormalkan kepada 0–999 relatif kepada imej input tertentu. Titik mengandungi x dan y; kotak mengandungi koordinat kiri atas dan kanan bawah. Kenal pasti nombor imej serta objek sasaran, khususnya apabila kotak merangkumi beberapa subjek. Untuk suntingan merentas imej, bezakan objek yang diambil daripada satu rujukan dan kawasan destinasi dalam rujukan lain.
Gunakan dimensi imej yang dipaparkan itu sendiri ketika mendapatkan lokasi berkadar; zum kanvas, penganjakan atau koordinat pelayar bukan koordinat imej dinormalkan. Huraikan kawasan dilindungi serta kawasan disunting. Bandingkan perspektif, pencahayaan dan butiran sekeliling hasil dengan sumber asal.
Pisahkan komposisi kepada lapisan boleh sunting
Penguraian lapisan ialah mod berasingan yang menerima tepat satu imej dan mengembalikan imej asas serta sehingga 16 lapisan bebas. Setiap lapisan ialah PNG dengan alfa. Prompt boleh menamakan unsur untuk dipisahkan, seperti tajuk, subjek utama dan hiasan; tanpa prompt penguraian, model mengenal pasti unsur utama secara automatik.
Hasil merangkumi nama lapisan, penerangan, urutan tindanan dan kotak kedudukan. Gunakan imej asas dengan indeks tindanan sifar, kemudian letakkan lapisan lain mengikut urutan tindanan menaik. Kotak mutlak menerangkan kedudukan dalam imej asas output; kotak dinormalkan menerangkan kedudukan berkadar pada kanvas berbeza. Simpan metadata kedudukan yang dikembalikan bersama fail imej supaya komposisi asal boleh dibina semula sebelum disusun semula.
Untuk pindaan poster, pisahkan karya utama daripada tajuk dan hiasan, kemudian periksa pinggir serta sebarang kawasan latar belakang yang dipulihkan. Lapisan lutsinar boleh disunting sebagai satu input saluran alfa dengan output PNG lutsinar. Pilihan latar belakang lutsinar terhad kepada aliran penyuntingan imej input tunggal itu; penjanaan teks-ke-imej biasa ialah operasi berasingan.
Komposisi pelbagai bahasa
Selain bahasa Cina dan Inggeris, pengeluar mendokumenkan sokongan natif prompt serta teks imej untuk bahasa Rusia, Arab, Filipina, Thai, Turki, Korea, Melayu, Sepanyol, Portugis, Indonesia, Perancis, Jerman, Vietnam dan Jepun. Berikan perkataan tepat yang diluluskan serta arah bacaan, dan kenal pasti kawasan yang mengandungi setiap blok teks. Semak aksen, aksara bersambung, pemisahan baris dan label kecil dalam imej akhir.
Fail rujukan dan spesifikasi output
Penjanaan imej menerima sehingga 10 rujukan dalam JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC atau HEIF. Setiap satu boleh sehingga 30 MB, dengan kedua-dua sisi melebihi 14 piksel, jumlah 196–36,000,000 piksel dan nisbah bidang 1:16 hingga 16:1. Penguraian lapisan pula memerlukan satu JPEG atau PNG dengan 262,144–36,000,000 piksel, sehingga 30 MB, dalam julat nisbah sama.
Penjanaan menawarkan peringkat output 1K, 1.5K dan 2K, dengan 2K sebagai lalai, atau dimensi eksplisit dengan jumlah 921,600–4,624,220 piksel dan nisbah 1:16 hingga 16:1. Kedua-dua kekangan terpakai kepada dimensi tersuai. Output lapisan menggunakan 1K, 1.5K, 2K atau auto, dengan auto sebagai lalai; imej asas dan setiap lapisan mengekalkan nisbah bidang sumber masing-masing.
Imej siap berupa JPEG atau PNG. Format imej asas boleh dipilih secara berasingan, sementara lapisan terurai kekal PNG dengan alfa. Penyerahan boleh menggunakan data imej berkod atau pautan muat turun yang dikekalkan selama 24 jam. Simpan setiap imej yang dikembalikan dan metadatanya untuk aliran reka bentuk dimaksudkan. Periksa teks, butiran disunting dan penjajaran lapisan pada saiz karya akan digunakan.
Ailoot Ultra · Imej POST /v1/images/generations bytedance-seed/seedream-5-0-flash
bytedance-seed/seedream-5-0-flash
bytedance-seed/seedream-5-0-flashPengenalan
Hasilkan satu imej siap berdasarkan ringkasan arahan dalam bentuk teks.
- Hasilkan imej pegun produk
- Terokai konsep visual
- Ilustrasikan satu adegan
- Input yang diterima
- Teks
- Hasil
- Imej
Tersedia di Ailoot · input & kaedah
Ailoot Ultra · Imej POST /v1/images/generations
- Input
text- Output
image- Format output
- Fail imej
- Bilangan output
- 1 output
| Medan | Jenis | Keperluan | Nilai & had | Lalai |
|---|---|---|---|---|
Medanmodel | Jenisstring | KeperluanDiperlukan | Nilai & had bytedance-seed/seedream-5-0-flash | Lalai— |
Medanprompt | Jenisstring | KeperluanDiperlukan | Nilai & had Panjang minimum: 1 Syarat: Prompt UTF8 yang tidak kosong. Tiada had aksara menyeluruh pengeluar direka-reka. | Lalai— |
Medann | Jenisinteger | KeperluanPilihan | Nilai & had 1 | Lalai1 |
Medanresponse_format | Jenisstring | KeperluanPilihan | Nilai & had url, b64_json | Lalai— |
Medanstream | Jenisboolean | KeperluanPilihan | Nilai & had false | Lalaifalse |
Gabungan bahan input
Teks kepada imej · Diperlukan: prompt
Parameter kaedah dan kitar hayat
| Parameter | Kontrak |
|---|---|
Parametercontent_type | Kontrakapplication/json |
Parameterrequired | Kontrakmodel, prompt |
Parametermaterial_types | Kontraktext |
Parameteroptional | Kontrakn, response_format, stream |
Parametern | Kontrak1 |
Parameterstream | Kontrakfalse |
Parameterresponse_format | Kontrakurl, b64_json |
Parameterreference_images | Kontrakfalse |
Parameteredit | Kontrakfalse |
Parameteroutput_format_optional | Kontrak |
Parameterresolution_control | Kontraknull |
Parameteraspect_ratio_control | Kontraknull |
Parameterother_fields | Kontrakditolak kecuali penghalaan pembekal dalaman tepat yang dipinkan |
Kitar hayat: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · task_id sebenar yang dikembalikan atau rekod pustaka media
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Jana satu imej daripada prompt.
Simpan setiap item data; url/b64_json ialah pengekodan hasil.
Pelan harga
Cara caj akhir dikira
Kadar yang dipaparkan menganggarkan kos sebelum penjanaan. Caj akhir dikira berdasarkan kos yang direkodkan untuk penjanaan asal. Tempoh output yang diukur dan kuantiti ramalan bukan kuantiti akhir yang boleh dibilkan.
Rujukan tarif tidak menambah pilihan permintaan. Parameter yang disokong disenaraikan untuk kaedah yang dipilih.
- Mod pantas
- Tidak dinyatakan Apabila mod pantas dipilih
- Mod flex
- Tidak dinyatakan Apabila mod flex dipilih
- Usaha penaakulan maksimum
- Tidak dinyatakan Apabila usaha penaakulan maksimum menggunakan pelarasan default
Anggaran kadar untuk perbandingan
Harga mengikut konfigurasi
Padankan setiap caj dengan syarat yang dipaparkan. Gunakan satu kadar bagi setiap set konfigurasi alternatif.
| Konfigurasi | Jadual kadar | Kuantiti ramalan | Unit pengebilan | Caj |
|---|---|---|---|---|
| KonfigurasiKadar asas token | Jadual kadarKadar asas | Kuantiti ramalan— | Unit pengebilan— | Caj Input · Token input · Anggaran untuk perbandingan sahaja — / 1K token Output · Token output · Anggaran untuk perbandingan sahaja — / 1K token Input · Bacaan cache · Anggaran untuk perbandingan sahaja — / 1K token Input · Penulisan cache · Anggaran untuk perbandingan sahaja — / 1K token Input · Penulisan cache, 1 jam · Anggaran untuk perbandingan sahaja — / 1K token |
| Konfigurasiimej input | Jadual kadar— | Kuantiti ramalan— | Unit pengebilanbagi setiap imej masukan | Caj Input · imej input · Anggaran untuk perbandingan sahaja $0 bagi setiap imej masukan |
| KonfigurasiUltra | Jadual kadar— | Kuantiti ramalan— | Unit pengebilanbagi setiap imej keluaran | Caj Output · keluaran imej · Anggaran untuk perbandingan sahaja $0.036 bagi setiap imej keluaran |
| KonfigurasiAnggaran kos penjanaan | Jadual kadar— | Kuantiti ramalananggaran untuk satu penjanaan | Unit pengebilan— | Caj Output · Anggaran kos penjanaan · Anggaran untuk perbandingan sahaja $0.036 anggaran sebelum penjanaan Anggaran ini bukan caj tambahan atau kadar tetap bagi penjanaan yang telah selesai. |
Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. Cara rizab dan penyelesaian caj berfungsi →
Butiran tarif rujukan
Jadual rujukan peringkat model tidak mengubah pemilihan kaedah, sebut harga atau caj. Caj aktif menggunakan kadar kaedah Ailoot yang dipilih.
Konfigurasi harga imej
Harga mengikut konfigurasi
Padankan setiap caj dengan syarat yang dipaparkan. Gunakan satu kadar bagi setiap set konfigurasi alternatif.
| Konfigurasi | Syarat pengebilan | Caj |
|---|---|---|
| KonfigurasiImej output | Syarat pengebilanTiada varian harga diisytiharkan. | Caj Output · Imej keluaran $0.036 bagi setiap imej |
| KonfigurasiImej input | Syarat pengebilanTiada varian harga diisytiharkan. | Caj Input · Imej input $0 bagi setiap imej |
Penyenaraian setara menerangkan caj yang sama; ia tidak menambah fi kedua.
Contoh permintaan
Ailoot Ultra · Imej
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");
Terima dan simpan hasil
Ailoot Ultra · Imej
Muat turun setiap imej yang dikembalikan atau simpan kandungan Base64-nya
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Simpan semua hasil yang selesai
Simpan setiap imej yang selesai; dapatkan setiap URL yang dikembalikan atau nyahkod kandungan Base64-nya.
Simpan setiap item data. Nyahkod setiap b64_json atau dapatkan setiap URL bertandatangan yang dikembalikan. Pilih sambungan nama fail berdasarkan MIME/bait sebenar.
Jika respons asal perlu disemak
Jika hasil penjanaan atau penyuntingan imej memerlukan semakan, simpan operation_id/X-Client-Request-ID asal serta maklumat hasil yang dikembalikan. Pulihkan hasil sedia ada milik anda melalui pustaka media menggunakan nilai task_id atau asset_id sebenar. Jangan hantar semula permintaan penjanaan/penyuntingan atau bina URL tinjauan status daripada operation_id.
Medan respons
| Medan | Jenis |
|---|---|
Medancreated | Jenisinteger |
Medandata[].url | Jenisstring |
Medandata[].b64_json | Jenisbase64 string |
Medanusage | Jenisobject |
Ralat dan langkah seterusnya
| Respons | Syarat | Langkah seterusnya |
|---|---|---|
Respons400 · invalid_request_error | SyaratMedan wajib, perwakilan bahan atau nilai parameter tidak sah | Langkah seterusnyaBetulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu. |
Responsserver_error | SyaratRespons yang dikembalikan menyatakan bahawa operasi atau hasil memerlukan semakan | Langkah seterusnyaSimpan ID operasi/tugas asal yang dikembalikan, pengepala permintaan dan respons; teruskan pembacaan yang disokong bagi operasi asal tersebut. Jangan hantar semula permintaan penciptaan. |
Alias
Alias model
Ailoot Ultra bytedance-seed/seedream-5-0-flash
Alias laluan kaedah
Gunakan laluan kaedah yang dipaparkan di atas.
ID pemanggil berkaitan
FAQ · ByteDance Seed: Seedream 5.0 Flash
- Apakah input dan hasil yang tersedia?
POST /v1/images/generations·bytedance-seed/seedream-5-0-flash:text→image- Apakah medan yang digunakan oleh permintaan?
POST /v1/images/generations·bytedance-seed/seedream-5-0-flash:model,prompt,n,response_format,stream