ByteDance Seed: Seedream 5.0 Flash
Seedream 5.0 Flash membuat dan menyunting gambar dari teks serta referensi visual, dengan perubahan berpanduan ruang, teks gambar multibahasa, dan penguraian lapisan. ByteDance Seed menempatkan Flash untuk generasi lebih cepat sambil memisahkannya dari edisi Pro yang berfokus kualitas.
Tentang model
Deskripsi ini mencakup kemampuan model. Masukan, keluaran, dan opsi yang tersedia di Ailoot tercantum di bawah untuk metode yang dipilih.
Edisi kreasi gambar yang lebih cepat
Seedream 5.0 Flash adalah model generasi dan penyuntingan gambar ByteDance Seed untuk alur yang mengutamakan kecepatan generasi. Panduan Pro/Flash pembuat menjelaskan kreasi teks ke gambar maupun gambar ke gambar dengan satu atau beberapa referensi. Panduan membedakan generasi Flash yang lebih cepat dari prioritas kualitas gambar Pro yang lebih tinggi, tanpa menetapkan waktu respons tetap untuk setiap brief.
Fitur bersama yang khas adalah penyuntingan interaktif, penguraian lapisan, dan generasi multibahasa bawaan. Generasi biasa mengembalikan satu gambar selesai. Alur Flash produsen tidak mendukung generasi berurutan gambar terkait, pencarian web, atau keluaran gambar streaming. Optimasi promptnya menggunakan mode standar; kendali optimasi cepat terpisah dimiliki Pro, bukan Flash.
Membuat dari brief dan referensi
Nyatakan gambar yang dimaksud, subjek utama, komposisi, dan pengolahan visual, lalu tentukan kendali setiap referensi. Untuk visual produk, pisahkan referensi yang menetapkan objek dari referensi penyedia palet atau material permukaan. “Pertahankan siluet objek dan sudut pandang dari gambar pertama; gunakan gambar kedua hanya untuk palet latar lembut” memberi referensi peran berbeda.
Pembuat menyarankan prompt ringkas, tidak lebih dari 300 karakter Tionghoa atau 600 kata Inggris. Itu merupakan panduan persiapan, bukan batas keras masukan teks yang dinyatakan. Daftarkan persyaratan penentu terlebih dahulu, termasuk kata-kata tepat yang harus muncul, rasio aspek yang diinginkan, dan detail yang harus tetap. Periksa gambar selesai terhadap daftar itu, alih-alih hanya mengandalkan tampilan keseluruhan.
Penyuntingan berpanduan ruang
Flash dapat menggunakan titik, kotak pembatas, panah, dan tanda bebas untuk menentukan tempat suntingan. Berikan gambar sumber bersama lokasi serta perubahannya. Untuk konsep interior, tandai kursi, minta penggantian kain, dan tentukan lantai, dinding, sudut kamera, serta objek sekitar yang dipertahankan. Jika tanda hanya panduan, minta penghapusannya dari gambar selesai secara eksplisit.
Panduan penyuntingan koordinat pembuat menggunakan tag <point> dan <bbox> dengan koordinat dinormalisasi ke 0–999 relatif terhadap gambar masukan yang ditentukan. Titik memuat x dan y; kotak memuat koordinat kiri atas serta kanan bawah. Tentukan nomor gambar dan objek sasaran, terutama ketika kotak mencakup beberapa subjek. Untuk suntingan lintas gambar, bedakan objek yang diambil dari satu referensi dan bagian tujuan dalam referensi lain.
Gunakan dimensi gambar yang ditampilkan itu sendiri ketika memperoleh lokasi proporsional; zoom kanvas, pergeseran tampilan, atau koordinat peramban bukan koordinat gambar ternormalisasi. Jelaskan bagian yang dilindungi serta bagian yang disunting. Bandingkan perspektif, pencahayaan, dan detail sekeliling hasil dengan sumber asli.
Pisahkan komposisi menjadi lapisan yang dapat diedit
Penguraian lapisan adalah mode berbeda yang menerima tepat satu gambar dan mengembalikan gambar dasar ditambah hingga 16 lapisan mandiri. Setiap lapisan berupa PNG dengan alpha. Prompt dapat menyebut elemen yang dipisahkan, seperti judul, subjek utama, dan dekorasi; tanpa prompt penguraian, model mengenali elemen utama secara otomatis.
Hasil mencakup nama lapisan, deskripsi, urutan tumpukan, dan kotak penempatan. Gunakan gambar dasar dengan indeks tumpukan nol, lalu tempatkan lapisan lain menurut urutan tumpukan menaik. Kotak absolut menjelaskan penempatan dalam gambar dasar keluaran; kotak ternormalisasi menjelaskan penempatan proporsional pada kanvas berbeda. Simpan metadata penempatan yang dikembalikan bersama berkas gambar agar komposisi asli dapat direkonstruksi sebelum disusun ulang.
Untuk revisi poster, pisahkan karya utama dari judul dan dekorasi, lalu periksa tepi serta bagian latar yang dipulihkan. Lapisan transparan dapat disunting sebagai satu masukan bersaluran alpha dengan keluaran PNG transparan. Opsi latar transparan terbatas pada alur penyuntingan gambar bermasukan tunggal itu; generasi teks ke gambar biasa merupakan operasi terpisah.
Komposisi multibahasa
Selain Mandarin dan Inggris, pembuat mendokumentasikan dukungan bawaan prompt dan teks gambar untuk Rusia, Arab, Filipino, Thai, Turki, Korea, Melayu, Spanyol, Portugis, Indonesia, Prancis, Jerman, Vietnam, dan Jepang. Berikan kata-kata tepat yang disetujui serta arah baca, dan tentukan bagian yang memuat setiap blok teks. Tinjau aksen, karakter bersambung, pemenggalan baris, dan label kecil dalam gambar akhir.
Berkas referensi dan spesifikasi keluaran
Generasi gambar menerima hingga 10 referensi dalam JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC, atau HEIF. Masing-masing dapat berukuran hingga 30 MB, dengan kedua sisi di atas 14 piksel, total 196–36.000.000 piksel, serta rasio aspek 1:16 hingga 16:1. Penguraian lapisan justru memerlukan satu JPEG atau PNG berjumlah 262.144–36.000.000 piksel, hingga 30 MB, dalam rentang rasio yang sama.
Generasi menawarkan tingkat keluaran 1K, 1.5K, dan 2K, dengan 2K sebagai bawaan, atau dimensi eksplisit dengan total 921.600–4.624.220 piksel serta rasio 1:16 hingga 16:1. Kedua batasan berlaku pada dimensi khusus. Keluaran lapisan menggunakan 1K, 1.5K, 2K, atau auto, dengan auto sebagai bawaan; gambar dasar dan setiap lapisan mempertahankan rasio aspek sumber masing-masing.
Gambar selesai berupa JPEG atau PNG. Format gambar dasar dapat dipilih terpisah, sementara lapisan terurai tetap PNG dengan alpha. Pengiriman dapat menggunakan data gambar terenkode atau tautan unduhan yang disimpan selama 24 jam. Simpan setiap gambar yang dikembalikan beserta metadatanya untuk alur desain yang dimaksud. Periksa teks, detail suntingan, dan keselarasan lapisan pada ukuran penggunaan karya.
Ailoot Ultra · Gambar POST /v1/images/generations bytedance-seed/seedream-5-0-flash
bytedance-seed/seedream-5-0-flash
bytedance-seed/seedream-5-0-flashMulai
Buat satu gambar jadi dari arahan teks.
- Buat gambar statis produk
- Jelajahi konsep visual
- Ilustrasikan sebuah adegan
- Masukan yang diterima
- Teks
- Hasil
- Gambar
Tersedia di Ailoot · masukan & metode
Ailoot Ultra · Gambar POST /v1/images/generations
- Masukan
text- Keluaran
image- Format keluaran
- Berkas gambar
- Jumlah keluaran
- 1 keluaran
| Kolom | Jenis | Persyaratan | Nilai & batasan | Bawaan |
|---|---|---|---|---|
Kolommodel | Jenisstring | PersyaratanWajib | Nilai & batasan bytedance-seed/seedream-5-0-flash | Bawaan— |
Kolomprompt | Jenisstring | PersyaratanWajib | Nilai & batasan Panjang minimum: 1 Kondisi: Prompt UTF8 yang tidak kosong. Tidak dibuat batas karakter yang berlaku untuk seluruh model dari pembuat. | Bawaan— |
Kolomn | Jenisinteger | PersyaratanOpsional | Nilai & batasan 1 | Bawaan1 |
Kolomresponse_format | Jenisstring | PersyaratanOpsional | Nilai & batasan url, b64_json | Bawaan— |
Kolomstream | Jenisboolean | PersyaratanOpsional | Nilai & batasan false | Bawaanfalse |
Kombinasi bahan masukan
Teks ke gambar · Wajib: prompt
Parameter metode dan siklus hidup
| 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 perutean penyedia internal persis yang dipatok |
Siklus hidup: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · task_id aktual yang dikembalikan atau catatan pustaka media
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Buat satu gambar dari prompt.
Simpan setiap item data; url/b64_json adalah pengodean hasil.
Paket
Cara menghitung biaya akhir
Tarif yang ditampilkan memperkirakan biaya sebelum pembuatan. Biaya akhir dihitung dari biaya yang tercatat untuk proses pembuatan awal. Durasi keluaran yang terukur dan kuantitas perkiraan bukanlah kuantitas akhir yang ditagihkan.
Referensi tarif tidak menambah opsi permintaan. Parameter yang didukung tercantum pada metode yang dipilih.
- Mode Fast
- Tidak ditentukan Saat mode fast dipilih
- Mode Flex
- Tidak ditentukan Saat mode flex dipilih
- Upaya penalaran maksimum
- Tidak ditentukan Saat upaya penalaran maksimum menggunakan penyesuaian default
Perkiraan tarif untuk perbandingan
Harga menurut konfigurasi
Cocokkan setiap biaya dengan kondisi yang ditampilkan. Gunakan satu tarif untuk setiap kelompok konfigurasi alternatif.
| Konfigurasi | Jadwal tarif | Jumlah perkiraan | Satuan penagihan | Biaya |
|---|---|---|---|---|
| KonfigurasiTarif dasar token | Jadwal tarifTarif dasar | Jumlah perkiraan— | Satuan penagihan— | Biaya Masukan · Token masukan · Perkiraan hanya untuk perbandingan — / 1K token Keluaran · Token keluaran · Perkiraan hanya untuk perbandingan — / 1K token Masukan · Pembacaan cache · Perkiraan hanya untuk perbandingan — / 1K token Masukan · Penulisan cache · Perkiraan hanya untuk perbandingan — / 1K token Masukan · Penulisan cache, 1 jam · Perkiraan hanya untuk perbandingan — / 1K token |
| Konfigurasigambar masukan | Jadwal tarif— | Jumlah perkiraan— | Satuan penagihanper gambar masukan | Biaya Masukan · gambar masukan · Perkiraan hanya untuk perbandingan $0 per gambar masukan |
| KonfigurasiUltra | Jadwal tarif— | Jumlah perkiraan— | Satuan penagihanper gambar keluaran | Biaya Keluaran · keluaran gambar · Perkiraan hanya untuk perbandingan $0.036 per gambar keluaran |
| KonfigurasiPerkiraan biaya pembuatan | Jadwal tarif— | Jumlah perkiraanestimasi satu kali pembuatan | Satuan penagihan— | Biaya Keluaran · Perkiraan biaya pembuatan · Perkiraan hanya untuk perbandingan $0.036 estimasi sebelum pembuatan Perkiraan ini bukan biaya tambahan maupun tarif tetap untuk proses pembuatan yang telah selesai. |
Ailoot mencadangkan perkiraan dana sebelum permintaan. Setelah hasil diterima, tagihan akhir diselesaikan berdasarkan penggunaan yang terukur. Penyelesaian tagihan streaming menggunakan catatan penggunaan akhir. Cara kerja cadangan dan penyelesaian tagihan →
Detail tarif referensi
Jadwal referensi tingkat model tidak mengubah pemilihan metode, estimasi harga, atau biaya. Biaya aktif menggunakan tarif metode Ailoot yang dipilih.
Konfigurasi harga gambar
Harga menurut konfigurasi
Cocokkan setiap biaya dengan kondisi yang ditampilkan. Gunakan satu tarif untuk setiap kelompok konfigurasi alternatif.
| Konfigurasi | Kondisi penagihan | Biaya |
|---|---|---|
| KonfigurasiGambar keluaran | Kondisi penagihanTidak ada varian harga yang dideklarasikan. | Biaya Keluaran · Gambar keluaran $0.036 per gambar |
| KonfigurasiGambar masukan | Kondisi penagihanTidak ada varian harga yang dideklarasikan. | Biaya Masukan · Gambar masukan $0 per gambar |
Daftar yang setara menjelaskan tagihan yang sama; tidak menambahkan biaya kedua.
Contoh permintaan
Ailoot Ultra · Gambar
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 · Gambar
Unduh setiap gambar yang dikembalikan atau simpan konten 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 gambar yang selesai; ambil setiap URL yang dikembalikan atau dekode konten Base64-nya.
Simpan setiap item data. Dekodekan setiap b64_json atau ambil data dari setiap URL bertanda tangan yang dikembalikan. Pilih ekstensi nama file berdasarkan MIME/bytes aktual.
Jika respons asli perlu diperiksa
Jika hasil pembuatan atau penyuntingan gambar perlu diperiksa, simpan operation_id/X-Client-Request-ID asli dan informasi hasil yang dikembalikan. Pulihkan hasil milik Anda yang sudah ada melalui pustaka media menggunakan nilai task_id atau asset_id aktual. Jangan mengirim ulang permintaan pembuatan/penyuntingan atau membuat URL polling dari operation_id.
Kolom respons
| Kolom | Jenis |
|---|---|
Kolomcreated | Jenisinteger |
Kolomdata[].url | Jenisstring |
Kolomdata[].b64_json | Jenisbase64 string |
Kolomusage | Jenisobject |
Kesalahan dan langkah berikutnya
| Respons | Kondisi | Langkah berikutnya |
|---|---|---|
Respons400 · invalid_request_error | KondisiBidang wajib, representasi materi, atau nilai parameter tidak valid | Langkah berikutnyaPerbaiki bidang yang ditunjukkan sebelum permintaan pembuatan baru. |
Responsserver_error | KondisiRespons yang dikembalikan menyatakan bahwa operasi atau hasil perlu diperiksa | Langkah berikutnyaSimpan ID operasi/tugas asli yang dikembalikan, header permintaan, dan respons; lanjutkan pembacaan yang didukung untuk operasi asli tersebut. Jangan kirim ulang permintaan pembuatan. |
Alias
Alias model
Ailoot Ultra bytedance-seed/seedream-5-0-flash
Alias jalur metode
Gunakan jalur metode yang ditampilkan di atas.
ID pemanggil terkait
FAQ · ByteDance Seed: Seedream 5.0 Flash
- Input dan hasil apa yang tersedia?
POST /v1/images/generations·bytedance-seed/seedream-5-0-flash:text→image- Kolom apa yang digunakan permintaan?
POST /v1/images/generations·bytedance-seed/seedream-5-0-flash:model,prompt,n,response_format,stream