Program
Imagen 3 adalah model generasi teks-ke-gambar yang dapat merender adegan detail dalam berbagai gaya secara akurat dan bahkan menyisipkan teks di dalam gambar, sehingga cocok untuk aplikasi seperti pembuatan konten iklan dan media.
Kita dapat menggunakan Imagen 3 melalui antarmuka Vertex AI Studio atau mengintegrasikannya langsung ke aplikasi melalui API.
Dalam tutorial ini, saya akan menjelaskan cara membuat gambar dengan Imagen 3 menggunakan Google Generative API dengan Python. Saya akan memandu Anda melalui contoh praktis yang menunjukkan cara menyiapkan lingkungan, menulis kode yang diperlukan, dan mengintegrasikan teknologi ini ke dalam proyek Anda. Baik Anda ingin meningkatkan aplikasi dengan visual dinamis maupun sekadar memenuhi rasa ingin tahu, panduan ini akan memberikan jalur yang mudah untuk memahami dan menggunakan Imagen 3 secara terprogram.
Menyiapkan Google Generative AI API
Untuk memulai dengan Imagen 3 di Python, kita perlu melakukan beberapa langkah penting. Pertama, kita akan membuat proyek Google Cloud. Setelah proyek siap, kita perlu membuat kunci API. Kunci ini akan memungkinkan kode Python kita berinteraksi dengan layanan Imagen 3.
Membuat proyek Google Cloud
Membuat proyek Google Cloud adalah langkah pertama untuk menggunakan API AI Google. Mari kita ikuti prosesnya bersama:
- Akses konsol Google Cloud: Kita mulai dengan menavigasi ke Google Cloud Console. Anda harus masuk dengan akun Google Anda.
- Pilih atau buat proyek baru: Di konsol, cari menu dropdown proyek di bilah navigasi atas. Mengkliknya akan menampilkan opsi untuk memilih proyek yang sudah ada atau membuat yang baru. Kita memilih "New Project" untuk melanjutkan.
- Masukkan detail proyek: Sebuah formulir sederhana akan muncul menanyakan informasi dasar. Kita dapat memilih nama apa pun untuk proyek, tetapi sebaiknya pilih yang deskriptif. Ini dapat diubah nanti jika diperlukan. Kita akan menggunakan
Imagen-tutorial. Bagian organisasi dapat dibiarkan kosong.

Membuat kunci API
Sekarang proyek Google Cloud sudah dibuat, kita dapat membuat kunci API dengan menavigasi ke halaman API key di Google AI Studio.
Untuk membuat kunci, klik tombol "Create API key":

Pada popup, ketik nama proyek yang kita buat di atas, pilih, lalu klik "Create API key in existing project":

Salin kuncinya dan buat file bernama .env yang berada di folder yang sama tempat kita akan menulis skrip Python. Isi file .env harus sebagai berikut:
GEMINI_API_KEY=<paste_your_key_here>
Akun penagihan
Jika kita mencoba menggunakan kunci API sekarang, kita akan mendapatkan galat yang mengatakan "Imagen API is only accessible to billed users at this time." Ini terjadi karena API tidak gratis, dan kita perlu mengaitkan akun penagihan dengan proyek sebelum bisa menggunakannya.
Pada saat penulisan, harga pembuatan gambar dengan Imagen 3 adalah $0,03. Periksa halaman harga mereka untuk informasi lebih lanjut.
Untuk menambahkan akun penagihan, klik tombol "Set up Billing" di sebelah kunci API di Google AI Studio.

Ini akan mengarahkan kita ke situs web Google Cloud, di mana kita dapat memilih akun penagihan yang sudah ada dengan mengklik "Link a billing account" atau membuat yang baru dengan mengklik "Manage billing accounts."

Mari kita asumsikan kita belum memilikinya, jadi kita membuatnya melalui "Manage billing accounts." Di kiri atas halaman, ada tombol "Create account". Untuk membuat akun, kita perlu mengisi informasi pribadi dan kartu kredit untuk memproses pembayaran.
Membuat Gambar dengan Imagen 3 Menggunakan Python
Penyiapan lingkungan dengan Anaconda
Dalam tutorial ini, kita menggunakan Anaconda, sebuah platform populer yang memudahkan manajemen paket dan penyiapan proyek, sehingga lebih mudah menjalankan skrip Python.
Kita dapat memasang Anaconda dari situs resmi mereka.
Untuk menyiapkan lingkungan Anaconda, buka terminal dan:
- Buat lingkungan:
conda create -n imagen python=3.9. Perintah ini membuat lingkungan bernamaimagenyang menggunakan Python versi 3.9. - Aktifkan lingkungan:
conda activate imagen. - Pasang paket Google generative AI:
pip install -q -U google-genai. - Pasang paket pemrosesan gambar untuk memproses gambar yang dihasilkan:
pip install pillow. - Pasang paket untuk memuat kunci API:
pip install python-dotenv
Kita juga bisa memasang paket langsung tanpa menggunakan Anaconda, tetapi ada risiko beberapa paket yang sudah terpasang saat ini bisa berbenturan dengan paket baru atau instalasi Python kita menggunakan versi Python yang berbeda. Menggunakan Anaconda menghindari potensi masalah ini.
Membuat gambar pertama kita
Sekarang kita siap mulai menggunakan Imagen 3. Buat skrip Python baru, misalnya, gen_image.py, di folder yang sama dengan file .env.
Pertama, kita impor paket yang diperlukan:
# Google generative AI:
from google import genai
from google.genai import types
# Packages to process the generated image:
from PIL import Image
from io import BytesIO
# Packages to load the .env file:
import os
from dotenv import load_dotenv
Selanjutnya, kita memuat kunci API dari file .env:
load_dotenv()
api_key = os.getenv("GEMINI_API_KEY")
Lalu, kita inisialisasi klien Google generative AI. Objek inilah yang memungkinkan kita berkomunikasi dengan Google API:
client = genai.Client(api_key=api_key)
Untuk membuat gambar, kita menggunakan fungsi client.models.generate_images():
prompt="""
A dog surfing at the beach
"""
response = client.models.generate_images(
model="imagen-3.0-generate-002",
prompt=prompt,
config=types.GenerateImagesConfig(
number_of_images=1,
)
)
Terakhir, kita tampilkan gambar yang dihasilkan menggunakan objek Image:
for generated_image in response.generated_images:
image = Image.open(BytesIO(generated_image.image.image_bytes))
image.show()
Berikut hasilnya:

Pembuatan teks
Salah satu fitur menarik Imagen 3, jika dibandingkan dengan model teks-ke-gambar lainnya, adalah kemampuannya untuk menghasilkan teks. Mari kita coba dengan memintanya membuat kata “Tea” menggunakan daun teh segar:
prompt="""
Word "tea" made from fresh tea leaves, white background
"""
response = client.models.generate_images(
model="imagen-3.0-generate-002",
prompt=prompt,
)
Berikut hasilnya:

Opsi Pembuatan Gambar dengan Imagen 3
Opsi pembuatan gambar disediakan menggunakan opsi types.GenerateImagesConfig. Pada contoh di atas, kita hanya menentukan jumlah gambar yang akan dibuat:
config=types.GenerateImagesConfig(
number_of_images=1,
)
Di bagian ini, kita mengeksplorasi opsi lain yang disediakan API Imagen 3. Lihat dokumentasi resmi untuk informasi lebih lanjut.
Membuat banyak gambar
Kita dapat menggunakan parameter number_of_images untuk membuat banyak gambar dengan satu prompt. Secara bawaan, empat gambar akan dibuat.
Mari coba membuat dua gambar untuk buku komik.
prompt="""
Single comic book panel of two people overlooking a destroyed city.
A speech bubble points from one of them and says: I guess this is the end.
"""
response = client.models.generate_images(
model="imagen-3.0-generate-002",
prompt=prompt,
config=types.GenerateImagesConfig(
number_of_images=2,
)
)
Berikut hasilnya:

Ini adalah contoh lain pembuatan teks dalam gambar. Meskipun gambar di kiri memiliki beberapa teks tambahan yang tidak diinginkan, berkat kemampuan untuk menghasilkan beberapa gambar, kita dapat meningkatkan peluang mendapatkan keluaran yang diinginkan. Gambar di kanan hampir sepenuhnya sesuai dengan prompt kita.
Mengontrol rasio aspek
Secara bawaan, gambar yang dihasilkan berbentuk persegi dengan rasio aspek 1:1. Model ini mendukung rasio aspek berikut: 1:1, 3:4, 4:3, 9:16, dan 16:9.
Mari buat gambar 9:16 untuk digunakan sebagai latar belakang ponsel:
prompt="""
A drone shot of a river flowing between mountains with a stormy sky.
"""
response = client.models.generate_images(
model="imagen-3.0-generate-002",
prompt=prompt,
config=types.GenerateImagesConfig(
aspect_ratio="9:16",
)
)
Berikut hasilnya:

Filter tingkat keamanan
Dokumentasi menyebutkan bahwa kita dapat menggunakan safety_filter_level untuk menentukan tingkat pemfilteran gambar. Setiap gambar yang dihasilkan mendapatkan skor probabilitas yang mengukur kemungkinan bahwa gambar tersebut tidak aman (misalnya, konten tidak pantas).
Menetapkan filter tingkat keamanan itu penting karena membantu memastikan konten yang dihasilkan pantas dan selaras dengan preferensi pengguna, sehingga menjaga lingkungan yang aman dan saling menghormati untuk berbagai aplikasi.
Dokumentasi menyatakan bahwa ada tiga tingkat yang didukung:
BLOCK_LOW_AND_ABOVE: Blokir gambar bahkan dengan skor probabilitas rendah.BLOCK_MEDIUM_AND_ABOVE: Hanya blokir gambar dengan skor probabilitas sedang dan tinggi.BLOCK_ONLY_HIGH: Hanya blokir gambar dengan skor probabilitas tinggi
Namun, setelah percobaan, API sekarang hanya mendukung opsi BLOCK_LOW_AND_ABOVE. Memberikan opsi lain akan menghasilkan galat.
Pembuatan orang
Kita dapat mengontrol apakah model diizinkan membuat gambar orang menggunakan opsi person_generation. Opsi yang tersedia ada dua:
DONT_ALLOW: Gambar yang memuat orang akan diblokir.ALLOW_ADULT: Ini akan memungkinkan kita membuat gambar yang memuat orang (hanya orang dewasa).
Opsi bawaan adalah mengizinkan orang. Misalnya, jika kita atur opsinya agar tidak mengizinkan orang lalu mencoba membuat gambar seseorang yang sedang memasak, kita tidak akan mendapatkan gambar apa pun.
prompt="""
A person cooking.
"""
response = client.models.generate_images(
model="imagen-3.0-generate-002",
prompt=prompt,
config=types.GenerateImagesConfig(
person_generation="DONT_ALLOW",
)
)
print(response.generated_images)
Berikut keluarannya:
None
Membuat Prompt yang Baik untuk Imagen 3
Dokumentasi resmi menyediakan panduan prompt yang komprehensif untuk Imagen 3, jadi saya tidak akan mengulanginya di sini. Berikut gagasan kunci tentang cara membuat prompt yang baik:
- Dasar-dasar penulisan prompt:
- Subjek: Fokus pada objek, orang, atau adegan utama yang ingin Anda gambarkan.
- Konteks dan latar belakang: Jelaskan pengaturan atau lingkungan tempat subjek ditempatkan.
- Gaya: Tentukan gaya artistik atau fotografi yang Anda inginkan (misalnya, sketsa, lukisan, foto).
- Gunakan bahasa deskriptif: Manfaatkan kata sifat dan konteks yang detail untuk memperjelas keluaran yang diinginkan.
- Rujuk gaya spesifik: Gunakan seniman atau aliran seni terkenal untuk mengarahkan estetika.
- Teks dalam gambar: Batasi teks hingga 25 karakter atau kurang dan gunakan frasa yang jelas untuk memberikan informasi tambahan.
- Parameterisasi prompt: Jika kita perlu membuat banyak gambar dalam gaya yang sama, ada baiknya membuat templat prompt yang dapat digunakan ulang dan hanya memberikan bagian yang berubah sebagai masukan.
- Fotografi: Tentukan pengaturan kamera, jenis lensa, dan pencahayaan untuk memengaruhi hasil.
- Seni: Gunakan deskriptor seperti "a painting of..." atau teknik spesifik seperti "watercolor painting of...".
- Modifier Kualitas Gambar: Gunakan kata kunci seperti "high-quality" atau "4K" untuk meningkatkan kualitas keluaran.
- Gambar Fotorealistik: Sertakan detail teknis seperti jenis lensa dan panjang fokus untuk meningkatkan realisme.
Penyuntingan dan Kustomisasi Gambar
Imagen 3 juga memiliki kemampuan untuk menyunting gambar dan melakukan kustomisasi gambar. Sayangnya, fitur-fitur ini masih terkunci dan hanya dapat diakses oleh pengguna tertentu.
Sebagai contoh, fitur kustomisasi memungkinkan kita menyesuaikan gambar referensi dari sebuah prompt. Pada contoh, sebuah foto wanita diberikan, dan prompt memodifikasi gambar tersebut menjadi gambar orang yang sama sedang memegang jeruk.
Informasi lebih lanjut tentang ini dan formulir permintaan akses dapat ditemukan di situs web mereka.
Kesimpulan
Dalam tutorial ini, kita mempelajari cara menggunakan Imagen 3 untuk membuat gambar menggunakan Python dan Google Generative API. Secara keseluruhan, saya puas dengan keluaran yang saya dapatkan saat bereksperimen dengan API. Saya merasa hasilnya berkualitas tinggi dan mengandung lebih sedikit artefak AI, sehingga lebih sulit dibedakan dari gambar nyata.
Kemampuan bekerja dengan teks dalam gambar bermanfaat untuk branding dan pemasaran. Secara keseluruhan, saya merasa model ini berkinerja baik. Saya hanya berharap semua fiturnya terbuka karena menurut saya penyuntingan gambar bahkan lebih berguna daripada pembuatan gambar.


