Last chance! 50% off DataCamp Premium
Sale ends in
BytePlus baru saja merilis model generasi gambar terbaru mereka, Seedream 4.5. Sebagai lengan teknologi perusahaan dari ByteDance, perusahaan ini menghadirkan kemampuan AI canggih bagi bisnis di seluruh dunia, dengan bertumpu pada inovasi di balik platform seperti TikTok.
Dalam artikel ini, saya akan mengajarkan cara menggunakan Seedream 4.5 dengan Python dengan mengintegrasikannya melalui API untuk menghasilkan gambar secara terprogram.
Saya merekomendasikan mengambil kursus Generative AI Concepts sebagai pengantar yang sangat baik tentang teknologi di balik model generasi gambar seperti Seedream. Jika Anda juga tertarik pada model generasi gambar lainnya, lihat panduan kami tentang Nano Banana 2 dari Google.
Seedream 4.5 adalah iterasi terbaru dari model generasi gambar AI milik BytePlus.
Rilis terbaru ini meningkatkan konsistensi subjek, mempertajam detail teks kecil, dan memperbaiki penggabungan multi-gambar. Model ini juga memiliki pemahaman instruksi yang lebih kuat, penalaran spasial yang lebih baik, dan inferensi logis yang lebih maju.
Model ini juga dapat menghasilkan gambar 4K berkualitas tinggi, yang merupakan peningkatan yang disambut baik, karena model pesaing sering kesulitan menghasilkan gambar beresolusi tinggi. Dari sisi biaya, model ini juga kompetitif, dengan biaya pembuatan hanya 4 sen per gambar.
Pastikan juga untuk membaca artikel kami tentang model generasi video terbaru ByteDance, Seedance 2.0.
Tanpa berlama-lama, mari mulai dengan API Seedream 4.5.
Untuk menggunakan Seedream 4.5 dengan Python melalui API mereka, pertama kita perlu membuat kunci API.
Buka situs web resmi mereka, klik tombol Get API di pojok kanan bawah, lalu masuk.
Setelah masuk, ada tombol Access API di pojok kanan atas. Klik dan buat kunci API. Membuat kunci API mengharuskan kita memverifikasi nomor telepon dan memberikan informasi penagihan. Namun, ini bukan langganan, jadi kita tidak akan dikenai biaya bulanan. Hanya permintaan API kita yang dikenai biaya.
Buat file bernama .env di folder yang sama tempat kita menulis kode Python dan salin kuncinya ke dalam file tersebut dengan format berikut:
ARK_API_KEY=<paste_key_here>
Sebelum model dapat digunakan, pastikan juga untuk mengaktifkannya di konsol BytePlus ModelArk. Ini perlu dilakukan secara terpisah dari kunci API. Caranya:
Arahkan ke Model activation pada bilah sisi kiri.
Di bagian tengah, pilih Media untuk kategori model yang tepat.
Klik Activate di sisi kanan, pada baris model ByteDance-Seedream-4.5.
Konfirmasi pada jendela yang terbuka.
Untuk berinteraksi dengan API Seedream 4.5, kita memasang beberapa paket Python:
byteplussdkarkruntime: Paket Python resmi yang memungkinkan kita membuat permintaan API ke Seedream 4.5, yang merupakan bagian dari BytePlus Python SDK.
Beberapa paket pembantu untuk memuat kunci API dari file .env, untuk permintaan HTTP async, dan validasi pengaturan.
Kita memasang paket-paket ini menggunakan perintah:
pip install byteplus-python-sdk-v2 python-dotenv httpx requests typing_extensions pydantic
Mari mulai dengan mempelajari cara membuat gambar dari prompt teks. Jika Anda telah membaca tutorial API AI Python kami yang lain, seperti tentang GPT-Image-1 atau Grok Imagine, Anda mungkin sudah familier dengan alur kerja khas berikut:
Impor paket-paketnya.
Muat kunci API dari file .env.
Buat klien menggunakan paket API resmi.
Kirim permintaan API.
Seedream 4.5 bekerja persis dengan cara yang sama. Berikut contoh skrip untuk menghasilkan sebuah gambar.
# 1. Import the necessary packages
from dotenv import load_dotenv
from byteplussdkarkruntime import Ark
import os
# 2. Load the API key
load_dotenv()
# 3. Create the client
client = Ark(
base_url="https://ark.ap-southeast.bytepluses.com/api/v3",
api_key=os.getenv("ARK_API_KEY"),
)
# 4. Send the API request
prompt = """
Photorealistic anthropomorphic animals hanging out in a coffee shop with no humans.
"""
imagesResponse = client.images.generate(
model="seedream-4-5-251128",
prompt=prompt,
watermark=False,
)
image_url = imagesResponse.data[0].url
print(image_url)
Dalam contoh khusus ini, prompt yang kami gunakan adalah:
Photorealistic anthropomorphic animals hanging out in a coffee shop with no humans.
Ini adalah hasil yang dihasilkan model:

Skrip di atas akan menampilkan URL gambar yang dihasilkan di terminal. Itu bukan alur kerja yang paling nyaman. Alternatif yang lebih baik adalah membuat fungsi yang mengunduh gambar yang dihasilkan ke folder lokal kita.
import requests
from urllib.parse import urlparse
import os
def download_image(url):
try:
response = requests.get(url, stream=True)
response.raise_for_status()
parsed_url = urlparse(url)
filename = os.path.basename(parsed_url.path)
if not filename:
filename = "downloaded_image"
with open(filename, "wb") as f:
for chunk in response.iter_content(1024):
f.write(chunk)
print(f"Image saved to: {filename}")
except Exception as e:
print(f"Error downloading image: {e}")
Saya merekomendasikan membuat skrip baru bernama utils.py dan menaruh fungsi ini di sana. Lalu, di skrip yang menghasilkan gambar, tambahkan kode berikut untuk mengunduh gambarnya:
import utils
utils.download_image(image_url)
Contoh sebelumnya menggunakan parameter default Seedream 4.5, kecuali watermark, yang kami setel ke False untuk menyembunyikannya.
Seedream 4.5 menyediakan dua cara untuk menentukan dimensi gambar keluaran menggunakan parameter size.
Cara pertama adalah menentukan resolusi gambar yang dihasilkan dengan mengatur size ke "2K" atau "4K" dan mendeskripsikan rasio aspek, bentuk, atau tujuan dalam prompt menggunakan bahasa natural, lalu biarkan model menentukan lebar dan tinggi. Nilai default adalah "2K".
Berikut contohnya:
prompt = """
Portait Instagram image to be used to promote travel to Tokyo, Japan.
"""
imagesResponse = client.images.generate(
model="seedream-4-5-251128",
prompt=prompt,
size="4K",
watermark=False,
)
Sebagai alternatif, kita dapat menentukan ukuran gambar dalam piksel dengan string seperti "3750x1250", tetapi ada dua aturan yang harus diikuti:
Jika hanya satu aturan yang terpenuhi, ukuran tidak valid. Untuk menghindari perhitungan ini, saya merekomendasikan menggunakan metode resolusi di atas atau salah satu ukuran valid berikut:

Seedream 4.5 menyertakan mode pembuatan batch yang dapat digunakan untuk menghasilkan sekumpulan gambar yang saling terkait secara tematik. Ini berguna, misalnya, untuk menghasilkan storyboard atau visual yang berpusat pada subjek bersama.
Untuk membuat satu batch gambar, kita perlu memberikan parameter sequential_image_generation dan sequential_image_generation_options pada permintaan API. Berikut contoh untuk menghasilkan 4 gambar:
from byteplussdkarkruntime.types.images.images import SequentialImageGenerationOptions
prompt = """
Generate a series of four visually coherent and stylistically consistent images illustrating these stages of a human life: Child, Adolescent, Adult, and Elderly. Make sure it's the same person in the four images.
"""
imagesResponse = client.images.generate(
model="seedream-4-5-251128",
prompt=prompt,
size="2K",
sequential_image_generation="auto",
sequential_image_generation_options=SequentialImageGenerationOptions(max_images=4),
response_format="url",
watermark=False
)
Saat kita menggunakan pembuatan batch, kita mendapatkan format respons yang berbeda yang berisi semua gambar. Kita dapat mengiterasi gambar-gambar tersebut dan mengunduhnya seperti ini:
# Iterate through all image data
for image in imagesResponse.data:
utils.download_image(image.url)
Saya mencoba ini dengan prompt berikut:
Generate a series of four visually coherent and stylistically consistent images illustrating these stages of a human life: Child, Adolescent, Adult, and Elderly. Make sure it's the same person in the four images.
Namun, karena suatu alasan, gambar keempat selalu melanggar konsistensi dan keluar sebagai seorang wanita (saya mencoba beberapa kali).

Untuk menghasilkan jumlah gambar yang berbeda, kita cukup mengubah nilai max_images pada permintaan API. Angka ini bisa berupa bilangan bulat antara 1 dan 15 (inklusif). Misalnya, untuk menghasilkan 6 gambar, kita akan melakukan:
imagesResponse = client.images.generate(
model="seedream-4-5-251128",
prompt=prompt,
size="2K",
sequential_image_generation="auto",
sequential_image_generation_options=SequentialImageGenerationOptions(max_images=6),
response_format="url",
watermark=False
)
Mari uji kemampuan Seedream 4.5 dalam menghasilkan teks. Dalam pengujian, saya memutuskan untuk melihat apakah model dapat menghasilkan gambar dengan sebuah pembuktian matematis tanpa secara eksplisit menentukan teks yang ingin saya render. Ini juga menguji kemampuan model dalam memahami konteks.
Berikut prompt yang saya gunakan:
Generate an image of a math professor standing in front of a blackboard. On the blackboard, there is a written proof that the square root of 2 is irrational.
Berikut hasilnya:

Saya cukup puas dengan hasilnya. Bukan hanya pembuktiannya benar, model juga mampu menangani teks dalam jumlah besar dengan baik.
Pada bagian ini, kita mempelajari cara mengedit gambar. Cara yang lebih sederhana untuk mengedit gambar dengan Seedream 4.5 adalah memberikan URL gambar menggunakan parameter image dan menjelaskan perubahannya dalam prompt.
Berikut contoh skrip lengkapnya:
from dotenv import load_dotenv
from byteplussdkarkruntime import Ark
import os
import utils
load_dotenv()
client = Ark(
base_url="https://ark.ap-southeast.bytepluses.com/api/v3",
api_key=os.getenv('ARK_API_KEY'),
)
image = "https://images.pexels.com/photos/34408249/pexels-photo-34408249.jpeg"
prompt = """
Make in snowy.
"""
imagesResponse = client.images.generate(
model="seedream-4-5-251128",
prompt=prompt,
image=image,
response_format="url",
watermark=False,
size="1664x2496"
)
image_url = imagesResponse.data[0].url
utils.download_image(image_url)
Dalam contoh ini, saya menggunakan foto yang tersedia publik di Pexels oleh Michael Fischer dan menggunakan Seedream 4.5 untuk membuatnya bersalju.
Ini yang saya dapatkan:

Perhatikan bahwa pada contoh di atas, kami secara eksplisit menyatakan ukuran keluaran, "1664x2496", untuk menyesuaikan rasio aspek gambar input. Berbeda dengan kebanyakan model gambar AI, Seedream 4.5 tidak akan secara otomatis menghasilkan gambar dengan dimensi yang sama seperti input. Saat saya menghilangkan parameter size, keluarannya berupa gambar persegi.
Menggunakan URL gambar adalah cara termudah untuk memberikan gambar ke Seedream 4.5. Namun, ini merepotkan jika gambarnya belum dihosting di suatu tempat.
API Seedream juga memungkinkan kita dengan mudah menggunakan gambar lokal. Untuk melakukannya, kita perlu memuatnya sebagai gambar base64. Berikut fungsi untuk melakukannya:
import mimetypes
import base64
def load_image_as_base64(file_path):
mime_type, _ = mimetypes.guess_type(file_path)
if mime_type is None or not mime_type.startswith("image/"):
raise ValueError("File is not a recognized image type")
with open(file_path, "rb") as f:
encoded = base64.b64encode(f.read()).decode("utf-8")
return f"data:{mime_type};base64,{encoded}"
Saya merekomendasikan menambahkannya ke file utils.py yang berisi fungsi untuk mengunduh gambar, sehingga mudah digunakan di skrip utama kita.
Misalkan kita memiliki gambar lokal di folder yang sama bernama motard.jpeg. Berikut cara memuat dan mengedit gambar tersebut:
image = utils.load_image_as_base64("motard.jpeg")
prompt = """
Remove the sunglasses and add a helmet.
"""
imagesResponse = client.images.generate(
model="seedream-4-5-251128",
prompt=prompt,
image=image,
response_format="url",
watermark=False
)

Seedream 4.5 mendukung beberapa input gambar. Ini dapat digunakan untuk menghasilkan gambar baru dengan memadukan gaya dan elemen visual dari gambar-gambar tersebut.
Memberikan beberapa gambar dalam permintaan API semudah mengirimkan daftar yang berisi gambar-gambar tersebut. Berikut contoh menggabungkan gambar seseorang dan sebuah pakaian menjadi gambar orang tersebut mengenakan pakaian itu:
image1 = utils.load_image_as_base64("woman.jpeg")
image2 = utils.load_image_as_base64("outfit.jpeg")
prompt = """
Make the woman from image 1 wear the outfit in image 2.
"""
imagesResponse = client.images.generate(
model="seedream-4-5-251128",
prompt=prompt,
image=[image1, image2],
response_format="url",
watermark=False,
)

Contoh ini menunjukkan bahwa Seedream 4.5 cukup baik dalam mempertahankan wajah; orang pada gambar akhir masih terlihat sangat mirip dengan aslinya. Ini adalah hal yang sering kurang optimal pada model lain.
Fungsionalitas batching yang telah kita pelajari juga berfungsi untuk pengeditan gambar, di mana jumlah total gambar (input + output) tidak boleh melebihi 15. Ini sangat berguna, misalnya, untuk menghasilkan banyak gambar berdasarkan sebuah visual.
Untuk melakukan ini, kita cukup menggabungkan parameter image dengan parameter pembuatan batch yang telah kita pelajari di atas. Berikut contoh permintaannya:
prompt = """
Use the given logo to create a visual design system for an outdoor hiking brand,
including backpack, hat, and shoes.
"""
image = utils.load_image_as_base64("logo.jpeg")
imagesResponse = client.images.generate(
model="seedream-4-5-251128",
prompt=prompt,
size="2K",
image=image,
sequential_image_generation="auto",
sequential_image_generation_options=SequentialImageGenerationOptions(max_images=3),
response_format="url",
watermark=False
)
Beberapa model generasi gambar AI mendukung masking dengan memungkinkan pengguna memberikan citra mask hitam-putih untuk menentukan area gambar yang ingin diedit. Namun, Seedream 4.5 tidak mendukung parameter masking secara native.
Saya tetap mencobanya dengan mengirimkan mask sebagai gambar input dan menentukan apa yang saya inginkan dalam prompt untuk melihat apakah model dapat memahami dan menirukan hasilnya:

Ini berhasil pada contoh ini, tetapi karena bukan fitur bawaan model, hasilnya tidak terlalu andal. Misalnya, saat saya mencoba hal yang sama untuk menambahkan seekor anjing, itu tidak berhasil.
Seperti yang telah kita lihat, Seedream 4.5 menawarkan performa yang baik dan beberapa fitur menarik. Untuk memaksimalkan hasilnya, ingat praktik terbaik berikut.
Untuk hasil pembuatan gambar terbaik dari Seedream 4.5, jawab pertanyaan tentang apa yang Anda inginkan, mengapa Anda menginginkannya, dan bagaimana gaya yang diharapkan, sambil tetap ringkas:
Saat mengedit gambar, nyatakan dengan tepat perubahan apa yang Anda lakukan dan apa yang harus tetap tidak berubah. Gunakan empat kata berikut untuk menentukan tindakan:
Jika adegannya kompleks, menggunakan petunjuk visual (panah, kotak, coretan) untuk menandai area bisa membantu model.
Saat Anda menggunakan gambar referensi untuk mempertahankan identitas, gaya, atau fitur produk, selalu tentukan:
Saat menggunakan beberapa gambar input, tetapkan peran dengan jelas:
Terlepas dari adanya parameter model untuk menentukan berapa banyak gambar yang ingin kita hasilkan, sebaiknya pastikan juga menggunakan prompt untuk menentukan apa yang kita inginkan:
Seedream 4.5 tampil sebagai generator gambar yang matang dan siap produksi yang sekelas dengan model papan atas seperti Nano Banana, menghadirkan fidelitas yang sebanding, kepatuhan pada instruksi, dan koherensi lintas gambar sambil tetap hemat biaya.
Yang menonjol bagi saya adalah betapa mudah didekati API ini saat digunakan: endpoint generate yang sama menangani pembuatan sekali jalan, pengeditan (melalui URL atau base64), pencampuran multi-gambar, dan batch berurutan, dan kita mengaktifkan tiap mode hanya dengan mengubah sejumlah kecil parameter yang penamaannya jelas.
Meski begitu, saya tidak merasa model ini menghadirkan inovasi khusus: ini adalah implementasi yang sangat baik dari kotak peralatan generasi gambar yang kini sudah familier, bukan lompatan konseptual.
Jika Anda ingin terus membangun momentum setelah panduan ini, pertimbangkan untuk memperkuat fondasi yang membuat proyek Seedream 4.5 berjalan mulus di produksi.
Mulailah dengan kursus Introduction to APIs in Python untuk menguasai permintaan terautentikasi dan penanganan error, padukan dengan Image Processing in Python untuk menangani pengubahan ukuran, komposit, dan konversi format dalam pipeline Anda.
Jika Anda membidik jalur yang lebih formal ke ML terapan dan tooling, jalur karier AI Engineer merangkai semuanya dengan alur kerja untuk mengirimkan fitur AI yang andal dan skalabel.
Meskipun Seedream 4.5 bisa bersaing dengan versi asli Nano Banana dari sisi biaya dan kualitas gambar, versi baru, Nano Banana 2, memberi Google keunggulan atas Seedream 4.5
Meski demikian, Seedream 4.5 unggul dalam konsistensi batch berfidelitas tinggi dan keluaran 4K yang fotorealistik. Nano Banana menonjol dalam penalaran spasial yang cepat dan pengeditan lokal yang presisi.
Ya, Seedream 4.5 dapat menghasilkan gambar 4K.
Baik gambar 2K maupun 4K berbiaya $0,04 untuk dibuat melalui BytePlus ArkRuntime API.
Tidak. Kita dapat menggunakan Seedream 4.5 melalui BytePlus ArkRuntime API dan hanya membayar untuk gambar yang kita buat.
Ya, dengan mengatur parameter watermark ke False.
Kursus AI Generatif
Kursus
Program
Kursus
blogs
Hugo Bowne-Anderson
13 mnt

blogs
Javier Canales Luna
14 mnt
blogs
Dario Radečić
15 mnt
blogs
David Woods
13 mnt