Program
Google baru saja merilis iterasi kedua dari model generasi gambar, Nano Banana 2. Ketika Nano Banana pertama kali diluncurkan, model ini langsung menggemparkan dunia dan dengan cepat menjadi model AI generasi gambar yang terbaik dan tercepat.
Dalam artikel ini, kita akan menyelami model baru mereka, menelusuri fitur-fiturnya, dan mempelajari cara menggunakannya melalui API dengan Python.
Jika Anda tertarik pada generasi gambar secara umum, saya menyarankan untuk melihat panduan kami tentang model berikut:
Apa Itu Nano Banana 2?
Nano Banana 2, juga dikenal sebagai Gemini 3.1 Flash Image, adalah model AI generasi dan pengeditan gambar tercanggih terbaru dari Google DeepMind. Model ini menggabungkan pengetahuan dunia yang luas, kualitas, dan penalaran dari Nano Banana Pro dengan kecepatan kilat Gemini Flash, sehingga memungkinkan pembuatan berkualitas tinggi dan iterasi cepat dalam satu alur kerja.
Kemampuan utama
Berikut gambaran fitur utama Nano Banana 2:
- Akurasi yang ditingkatkan: Mengaitkan generasi dengan pengetahuan dunia nyata Gemini dan sinyal gambar web waktu nyata untuk merender subjek spesifik dengan lebih akurat. Ideal untuk infografik, diagram, dan visualisasi data.
- Tipografi yang lebih baik: Menghasilkan teks yang mudah dibaca dan akurat di dalam gambar serta mendukung pelokalan dan penerjemahan langsung di dalam gambar.
- Kendali kreatif: Konsistensi subjek yang lebih baik untuk narasi dan storyboard. Model mempertahankan kemiripan hingga lima karakter dan kesetiaan hingga 14 objek dalam satu alur kerja.
- Keandalan: Ketaatan instruksi yang presisi untuk menangkap prompt yang kompleks dan bernuansa dengan lebih baik.
- Resolusi tinggi: Spesifikasi siap produksi dengan rasio aspek dan resolusi fleksibel dari 512 piksel hingga 4K.
- Kualitas visual: Peningkatan fidelitas visual dengan tekstur yang lebih kaya, pencahayaan yang hidup, dan detail yang lebih tajam pada kecepatan Flash.
Jika Anda baru mengenal Nano Banana, sebaiknya baca terlebih dahulu artikel kami sebelumnya tentang iterasi pertama Nano Banana Pro.
Cara Mengakses Nano Banana 2
Dalam artikel ini, kita membahas cara menggunakan Nano Banana 2 melalui API mereka dengan Python. Namun, model baru tersedia di seluruh ekosistem Gemini:
- Aplikasi Gemini: Nano Banana 2 kini menjadi model gambar default di mode Fast, Thinking, dan Pro. Pelanggan Google AI Pro dan Ultra masih dapat melakukan regenerasi dengan Nano Banana Pro melalui menu tiga titik untuk tugas khusus yang memerlukan akurasi faktual maksimum.
- Penelusuran: Tersedia di AI Mode dan Lens di aplikasi Google serta browser seluler/desktop, dengan ketersediaan yang diperluas (termasuk 141 negara/wilayah baru dan delapan bahasa tambahan).
- AI Studio + Gemini API: Tersedia dalam pratinjau (lihat harga). Juga tersedia di Google Antigravity.
- Google Cloud: Dalam pratinjau melalui Gemini API di Vertex AI.
- Flow: Sekarang menjadi model generasi gambar default untuk semua pengguna Flow.
- Google Ads: Menggerakkan saran kreatif saat pembuatan kampanye.
Harga API
Dalam artikel ini, kita akan menggunakan Nano Banana 2 dengan API, yang berarti kita tidak memerlukan langganan dan sebagai gantinya membayar per gambar yang dihasilkan.
Saya merasa tabel harga resmi agak sulit dipahami. Biasanya, model gambar AI hanya menetapkan harga tetap per gambar.
Agar lebih sederhana, saya membuat perhitungan untuk memperkirakan harga yang diharapkan bergantung pada ukuran gambar. Perhatikan bahwa ini bukan harga pasti karena bisa sedikit bervariasi.
|
Ukuran gambar |
Biaya per gambar |
|
512px |
$0.045 |
|
1024px (1K) |
$0.067 |
|
2048px (2K) |
$0.101 |
|
4096px (4K) |
$0.151 |
Nano Banana 2 dapat melakukan penelusuran web untuk menghasilkan hasil yang lebih akurat. Ini fitur yang sangat menarik, tetapi juga harus diperhitungkan dalam harga karena penelusuran menimbulkan biaya tambahan.
5.000 kueri Google Penelusuran pertama per bulan gratis saat menggunakan grounding dengan Google Search. Setelah itu, biayanya $14 per 1.000 kueri Google Search.
Menghasilkan Gambar Nano Banana 2 Pertama Kita
Tanpa berlama-lama, mari mulai dengan Nano Banana 2.
Membuat kunci API
Untuk menggunakan API, pertama kita perlu membuat kunci API. Caranya, masuk terlebih dahulu ke Google AI Studio. Lalu klik tombol Create API Key di pojok kanan atas.
Kunci API harus ditautkan ke sebuah proyek Google Cloud. Google AI Studio mempermudah ini dengan memungkinkan kita membuat proyek langsung dalam proses pembuatan kunci API.

Untuk menggunakan kunci API, proyek Google Cloud yang ditautkan harus mengaktifkan penagihan. Jika Anda baru saja membuat proyek baru, Anda perlu mengaktifkannya dengan mengeklik tombol Set up billing di sebelah kunci API.

Terakhir, salin kunci API dan tempel ke dalam berkas bernama .env dengan format berikut:
GEMINI_API_KEY=<paste_key_here>
Berkas .env ini harus dibuat di folder yang sama tempat kita akan menulis skrip Python.
Penyiapan lingkungan
Berikutnya, kita perlu memasang dependensi Python yang diperlukan untuk berinteraksi dengan Gemini API. Jalankan perintah berikut:
pip install google-genai python-dotenv pillow
Ini memasang paket-paket berikut:
-
google-genai: Paket resmi Google untuk generative AI. Digunakan untuk membuat klien dengan mudah guna berinteraksi dengan Gemini API. -
python-dotenv: Paket utilitas untuk memuat kunci API dari berkas .env. -
pillow: Pustaka gambar untuk memudahkan memuat gambar sebagai masukan ke Nano Banana 2.
Menghasilkan sebuah gambar
Berikut kode Python lengkap untuk menghasilkan sebuah gambar:
from google import genai
from dotenv import load_dotenv
from google.genai import types
import time
# Load API key
load_dotenv()
client = genai.Client()
prompt = """
Lego version of the empire state building being built.
"""
# Make API request
response = client.models.generate_content(
model="gemini-3.1-flash-image-preview",
contents=[prompt],
config=types.GenerateContentConfig(
response_modalities=["Image"],
image_config=types.ImageConfig(
aspect_ratio="16:9",
image_size="4K",
),
)
)
# Save the image and display output text if any
for part in response.parts:
if part.text is not None:
print(part.text)
elif part.inline_data is not None:
image = part.as_image()
image.save(f"image_{int(time.time())}.png")
Berikut hasilnya:

Rasio aspek dan resolusi yang didukung
Dalam permintaan di atas, kita menetapkan rasio aspek menggunakan parameter aspect_ratio dan resolusi menggunakan parameter image_size.
Nano Banana 2 mendukung beragam rasio aspek dan resolusi dari 512 piksel hingga 4K. Berikut daftar lengkap nilai yang didukung:
-
aspect_ratio: "1:1","1:4","1:8","2:3","3:2","3:4","4:1","4:3","4:5","5:4","8:1","9:16","16:9","21:9" -
image_size(resolusi): "512px", "1K", "2K", "4K"
Langsung Praktik dengan Nano Banana 2
Setelah semuanya tersiapkan dan kita berhasil membuat gambar pertama, saatnya menguji fitur-fitur yang dijanjikan.
Pengeditan gambar dengan konsistensi subjek
Kita dapat memberikan gambar ke model dengan memuatnya menggunakan PIL (dipasang dari paket pillow) dan menyertakannya dalam daftar contents.
Salah satu fitur utama Nano Banana 2 adalah kemampuannya mempertahankan subjek saat menghasilkan gambar. Saat mencoba model lain seperti iterasi sebelumnya dari Nano Banana atau GPT-Image, saya sıng menemukan sulit untuk menghasilkan gambar berdasarkan subjek nyata, karena model cenderung mengubah tampilan mereka.
Dari dokumentasi mereka, disebutkan bahwa model mampu mendukung hingga lima karakter dan 10 objek untuk total 14 referensi. Mereka tidak secara eksplisit mendefinisikan karakter dan objek, tetapi secara intuitif, ini berarti model dilatih untuk dapat menghasilkan adegan yang menempatkan hingga 4 subjek utama dan hingga 10 objek sekunder yang berinteraksi dengan subjek tersebut.
Model tidak menyediakan parameter eksplisit untuk mengirimkan gambar karakter dan objek. Sebaliknya, ini dilakukan dalam prompt. Saya meninjau kode sumber beberapa demo mereka untuk memahami bagaimana mereka menyusun prompt untuk merujuk hal-hal tersebut.
Templat yang saya temukan sebagai berikut:
<subject_name> (<Character #number>) = Image <#index>
Sebagai contoh, dengan dua karakter bernama "Alice" dan "Bob," akan menjadi:
Subjects: Alice (Character 1) = Image 0, Bob (Character 2) = Image 1
Di bawah ini adalah contoh kode lengkap yang menunjukkan cara memotret dua hewan peliharaan, anjing dan kucing, bersama dalam satu foto.
from google import genai
from dotenv import load_dotenv
from google.genai import types
import time
from PIL import Image
# Load API key
load_dotenv()
client = genai.Client()
prompt = """
Goldie and Wiskers are posing together.
Subjects: Goldie (Character 1) = Image 0, Wiskers (Character 2) = Image 1
Maintain strict subject consistency for characters.
Adjust the subject composition/pose as appropriate for the scene.
"""
dog = Image.open("dog.png")
cat = Image.open("cat.png")
# Make API request
response = client.models.generate_content(
model="gemini-3.1-flash-image-preview",
contents=[prompt, dog, cat],
config=types.GenerateContentConfig(
response_modalities=["Image"],
image_config=types.ImageConfig(
aspect_ratio="9:16",
),
)
)
# Save the image and display output text if any
for part in response.parts:
if part.text is not None:
print(part.text)
elif part.inline_data is not None:
image = part.as_image()
image.save(f"image_{int(time.time())}.png")

Mengikutsertakan objek
Seperti disebutkan di atas, templat ini bukan bagian dari dokumentasi resmi. Kemungkinan model mampu memahami setiap bagian dari prompt dan gambar. Namun, saat mengembangkan aplikasi nyata di mana kita menginginkan hasil yang konsisten, praktik terbaiknya adalah bersikap sejelas dan sekonsisten mungkin dalam prompt, jadi saya menyarankan menggunakan templat ini.
Contoh mereka memperluas templat ke referensi objek dengan cukup mengganti "Character" menjadi "Object" untuk memberi tahu model bahwa gambar merujuk pada objek dan bukan subjek utama.
Untuk mendemonstrasikan ini, mari membuat anjing memakai kacamata tertentu dan kucing memakai topi dengan memberikan dua referensi objek. Ini prompt yang saya gunakan:
Goldie and Wiskers are posing together. Goldie is wearing the Glasses, and Wiskers is wearing the Hat.
Subjects: Goldie (Pet 1) = Image 0, Wiskers (Pet 2) = Image 1, Glasses (Object 1) = Image 3, Hat (Object 2) = Image 4.
Maintain strict subject consistency for characters and objects.
Adjust the subject composition/pose as appropriate for the scene.
Berikut hasilnya:

Mendaratkan generasi gambar dengan penelusuran
Nano Banana 2 memungkinkan mengaitkan generasi gambar pada penelusuran sehingga hasilnya lebih akurat. Ini sangat berguna saat menghasilkan gambar yang perlu konsisten dengan kenyataan, seperti gambar lokasi atau spesies hewan tertentu.
Saya tinggal di Taiwan, dan baru-baru ini ada kegiatan hiking yang penyelenggaranya menggunakan gambar yang dihasilkan dengan Nano Banana untuk menggambarkan lokasi pendakian. Namun, gambarnya tidak akurat sama sekali, dan orang-orang kecewa karena tampilannya sangat berbeda dari aslinya.
Hal ini membuat saya penasaran untuk mencoba apakah Nano Banana 2 dapat menanganinya.
Kita dapat mengaktifkan penelusuran web dan penelusuran gambar dengan parameter tools dalam permintaan generasi.
Berikut contoh lengkapnya:
from google import genai
from dotenv import load_dotenv
from google.genai import types
import time
# Load API key
load_dotenv()
client = genai.Client()
prompt = """
Create an image of the Yinhe Cave (銀河洞) in Taiwan at golden hour.
- Use Image Search to search for an image of the specified place.
- Keep the location and the view as close to the real reference as possible.
"""
# Make API request
response = client.models.generate_content(
model="gemini-3.1-flash-image-preview",
contents=[prompt],
config=types.GenerateContentConfig(
response_modalities=["Image"],
image_config=types.ImageConfig(
aspect_ratio="9:16",
),
tools=[
types.Tool(google_search=types.GoogleSearch(
search_types=types.SearchTypes(
web_search=types.WebSearch(), # Enables web search
image_search=types.ImageSearch() # Enables image search
)
))
]
)
)
# Save the image and display output text if any
for part in response.parts:
if part.text is not None:
print(part.text)
elif part.inline_data is not None:
image = part.as_image()
image.save(f"image_{int(time.time())}.png")
Di bawah ini kami tampilkan hasilnya. Pertama, gambar asli yang diambil dari Google Photos, lalu gambar yang dihasilkan oleh Nano Banana 2 menggunakan penelusuran, dan terakhir gambar yang dihasilkan tanpa penelusuran. Terlihat bahwa penelusuran membuat hasilnya sangat akurat.

Tim Gemini membuat demo bernama Window View yang menggunakan gagasan ini untuk membangun aplikasi kecil yang menampilkan tempat-tempat tertentu melalui jendela. Ini merupakan contoh bagus kemampuan model memahami dunia nyata.
Menggabungkan konsistensi subjek dengan pemahaman dunia
Dengan memberikan kemampuan kepada model untuk menghasilkan lokasi dunia nyata secara presisi tinggi, kita dapat menempatkan subjek tertentu di lokasi nyata.
Mari kita coba menempatkan Goldie dan Wiskers di sebuah lokasi di Taiwan. Saya memilih lokasi ini karena ingin melihat apakah model dapat menangani lokasi yang tidak terkenal di seluruh dunia.
Berikut promptnya:
Goldie and Wiskers are traveling across the Sanxiantai Arch Bridge in Taiwan.
Subjects: Goldie (Pet 1) = Image 0, Wiskers (Pet 2) = Image 1
Use image search to find visual references of the location.
Maintain strict subject consistency for characters and objects.
Adjust the subject composition/pose as appropriate for the scene.
Perhatikan bahwa prompt secara eksplisit meminta model melakukan penelusuran gambar. Saya mendapati bahwa saat menggunakan tools, selalu lebih baik secara eksplisit meminta model menggunakan tool tersebut dalam prompt.
Berikut gambar kedua karakter kita yang sedang bepergian bersama:

Untuk mendorongnya lebih jauh, saya bahkan mencoba menentukan lokasi dengan memberikan lintang dan bujur, dan itu berhasil!
Goldie and Wiskers are at the location with a latitude of 17.0621186 and a longitude of -96.7255102.
Subjects: Goldie (Pet 1) = Image 0, Wiskers (Pet 2) = Image 1
Use image search to find visual references of the location.
Maintain strict subject consistency for characters and objects.
Adjust the subject composition/pose as appropriate for the scene.

Meskipun lokasinya tidak persis pada garis lintang dan bujur tersebut, elemen-elemen dalam gambar sesuai dengan yang kita lihat di lokasi itu, yang menurut saya sangat mengesankan.
Pelokalan teks
Nano Banana 2 meningkatkan model gambar berbasis Flash sebelumnya dengan menawarkan perenderan teks yang lebih konsisten dan andal.
Teks kini dapat tampil setajam dan seakurat grafis di sekitarnya. Nano Banana 2 juga memungkinkan pelokalan di dalam gambar, sehingga memungkinkan membuat atau menerjemahkan teks ke berbagai bahasa langsung di dalam gambar yang dihasilkan.
Saya menguji pelokalan dengan membuat poster untuk merek headset realitas virtual fiktif bernama "Beyond Reality." Lalu saya cukup menggunakan prompt seperti:
Change the language of the poster to Japanese.
Berikut hasil setelah mengubah bahasa teks poster ke bahasa Prancis lalu ke bahasa Jepang:

Menarik bahwa model cukup cerdas untuk tidak menerjemahkan nama merek, meskipun hal ini tidak disebutkan dalam prompt.
Mode percakapan
Fitur terakhir yang kita jelajahi adalah mode percakapan. Contoh sebelumnya tidak interaktif. Kita mengirim permintaan ke API dan mendapatkan hasil. Jika ingin melakukan iterasi pada hasil itu, kita perlu membuat permintaan baru dengan gambar tersebut dan perubahan yang diinginkan.
Cara yang lebih baik adalah menggunakan mode chat. Dalam mode chat, kita membuat chat menggunakan fungsi client.chats.create(), lalu mengirim pesan bolak-balik menggunakan fungsi client.send_message(). Kita dapat menggunakannya untuk menerapkan alur kerja pengeditan melalui chat:
- Pengguna mengirim prompt
- Nano Banana 2 menghasilkan gambar berdasarkan prompt dan gambar sebelumnya (jika ada)
- Gambar ditampilkan kepada pengguna
- Pengguna mengirim prompt edit, kembali ke langkah 2.
Berikut skrip lengkap yang mengimplementasikan alur ini:
from google import genai
from google.genai import types
from dotenv import load_dotenv
from PIL import Image
import time
load_dotenv()
client = genai.Client()
# Initialize the chat session
chat = client.chats.create(
model="gemini-3.1-flash-image-preview",
config=types.GenerateContentConfig(
response_modalities=['TEXT', 'IMAGE'],
tools=[{"google_search": {}}]
)
)
# We keep track of the latest image object to send back as context
latest_image = None
while True:
user_input = input("\nPrompt: ")
if user_input.lower() in ['quit', 'exit', 'q']:
break
# Construct the message content
# If we have a previous image, we include it so the model knows what to edit
content = [user_input]
if latest_image:
content.append(latest_image)
try:
response = chat.send_message(content)
for part in response.parts:
# Handle Text Response
if part.text:
print(f"\nAI: {part.text}")
elif part.inline_data is not None:
image = part.as_image()
filename = f"image_{int(time.time())}.png"
image.save(filename)
print("Saved image", filename)
latest_image = Image.open(filename)
latest_image.show()
except Exception as e:
print(f"An error occurred: {e}")
print("Session ended.")
Saat menjalankan skrip ini, kita dapat mengedit gambar secara iteratif langsung di terminal seperti ini:

Berikut hasil dari interaksi ini:

Nano Banana vs. Nano Banana 2
Tabel di bawah menyoroti perbedaan utama antara model Nano Banana. Seperti disebutkan sebelumnya, versi baru menghadirkan peningkatan signifikan dalam akurasi, konsistensi, dan resolusi dengan waktu proses yang hanya sedikit lebih lambat dari iterasi pertama.

Tabel ini sebenarnya dihasilkan oleh Nano Banana 2 dengan memberinya data.
Kapan menggunakan Nano Banana Pro
Meskipun Nano Banana 2 kini menjadi standar baru, Nano Banana Pro tetap tersedia untuk tugas "Thinking" dan tugas khusus. Anda mungkin tetap memilih Pro untuk:
- Realisme ekstrem: Pro masih unggul tipis dalam fisika pencahayaan dan tekstur kulit.
- Penalaran kompleks: Pro lebih baik dalam "memikirkan" instruksi spasial (misalnya, "orang di belakang pilar kedua di sebelah kiri").
Kesimpulan
Nano Banana 2 terasa seperti penerus sejati karena secara drastis mengurangi “drift” antar iterasi, memungkinkan Anda mengunci tampilan dan membawanya secara andal melintasi adegan, format, dan bahasa.
Antara persistensi subjek yang lebih kuat, ketaatan instruksi yang lebih ketat, realisme berbasis penelusuran, dan pengeditan percakapan yang menyetel alih-alih menggambar ulang, menjaga identitas, tata letak, dan gaya tetap utuh sembari Anda mengeksplorasi variasi menjadi jauh lebih mudah.
Perenderan teks tingkat produksi membantu elemen merek tetap konsisten, dan rasio aspek yang fleksibel membuat penskalaan kampanye di berbagai banner, poster, dan cerita seluler menjadi mulus. Untuk tim yang membangun storyboard, foto produk, atau materi kreatif multi-lokasi, model ini menghadirkan repeatability tanpa mengorbankan kecepatan atau fidelitas.
Nano Banana 2 benar-benar menjembatani kesenjangan antara Nano Banana dan Nano Banana Pro: kecepatannya secara efektif mendekati kecepatan Flash Nano Banana yang hampir seketika, sementara kemampuannya, fidelitas visual, ketaatan instruksi yang presisi, konsistensi subjek, dan realisme berbasis penelusuran secara rutin mendekati Nano Banana Pro.
Jika Anda ingin mempelajari lebih lanjut tentang konsep di balik alat seperti Nano Banana 2, saya sarankan mengikuti kursus Generative AI Concepts kami.
Nano Banana 2 FAQs
Apa nama model Nano Banana 2 saat menggunakan API?
Nama teknis Nano Banana 2 adalah gemini-3.1-flash-image-preview.
Apakah Nano Banana 2 menawarkan tingkat gratis untuk generasi gambar?
Jika Anda memiliki langganan Gemini, Nano Banana 2 menjadi standar baru, jadi Anda dapat mengaksesnya di sana. Saat menggunakan API, tidak ada tingkat gratis, tetapi setiap gambar sangat murah untuk dihasilkan.
Apakah Nano Banana 2 lebih baik daripada Nano Banana Pro?
Nano Banana 2 berada di antara Nano Banana dan Nano Banana Pro. Model ini jauh lebih cepat daripada Nano Banana Pro dan mencapai hasil yang serupa.
Apakah search grounding diaktifkan secara default di Nano Banana 2?
Tidak, untuk menggunakan search grounding, kita perlu secara eksplisit menyediakan tools tersebut ke model. 5.000 permintaan penelusuran pertama gratis. Permintaan berikutnya dikenai biaya $0.014 di atas biaya pembuatan gambar.

