Menerima error finishReason: "IMAGE_SAFETY" saat memanggil API Nano Banana Pro adalah salah satu masalah yang paling sering dihadapi pengembang. Padahal gambarnya jelas-jelas foto produk atau pemandangan normal, tapi sistem tetap mencegatnya karena dianggap "melanggar Kebijakan Penggunaan AI Generatif Google". Artikel ini akan menganalisis secara mendalam mekanisme pemicu error IMAGE_SAFETY dan 8 solusi praktis untuk membantu Anda mengurangi probabilitas pemblokiran yang salah secara signifikan.
Nilai Inti: Setelah membaca artikel ini, Anda akan memahami cara kerja filter keamanan Nano Banana Pro, menguasai teknik praktis untuk menghindari pencegatan yang salah, dan meningkatkan tingkat keberhasilan pembuatan gambar dari 60% menjadi lebih dari 95%.

Analisis Error IMAGE_SAFETY Nano Banana Pro
Pertama, mari kita bedah respons error yang Anda hadapi:
{
"candidates": [
{
"content": { "parts": null },
"finishReason": "IMAGE_SAFETY",
"finishMessage": "Unable to show the generated image...",
"index": 0
}
],
"usageMetadata": {
"promptTokenCount": 531,
"candidatesTokenCount": 0,
"totalTokenCount": 824,
"thoughtsTokenCount": 293
},
"modelVersion": "gemini-3-pro-image-preview"
}
Interpretasi Bidang Kunci Error IMAGE_SAFETY
| Bidang | Nilai | Makna |
|---|---|---|
finishReason |
IMAGE_SAFETY |
Gambar dicegat oleh filter keamanan |
candidatesTokenCount |
0 |
Tidak ada output yang dihasilkan (tidak ditagih) |
thoughtsTokenCount |
293 |
Model telah melakukan penalaran tetapi dicegat |
promptTokenCount |
531 |
Berisi 273 teks + 258 token gambar |
🎯 Temuan Kunci:
thoughtsTokenCount: 293menunjukkan bahwa model telah menyelesaikan penalaran internal (Thinking), tetapi dicegat oleh filter keamanan pada tahap output akhir. Ini berarti masalahnya terletak pada hasil pembuatan, bukan pada petunjuk input.

Penjelasan Mendalam Mekanisme Filter Keamanan Nano Banana Pro
Nano Banana Pro dari Google menggunakan arsitektur filter keamanan berlapis, dan memahami mekanisme ini adalah kunci untuk menyelesaikan masalah yang muncul.
Hierarki Filter Keamanan Nano Banana Pro
| Lapisan Filter | Objek Deteksi | Dapat Dikonfigurasi? | Konsekuensi Pemicu |
|---|---|---|---|
| Filter Input | Teks petunjuk | Sebagian | Permintaan ditolak |
| Filter Input Gambar | Konten gambar referensi | Tidak dapat dikonfigurasi | IMAGE_SAFETY |
| Filter Generasi | Hasil output model | Sebagian | IMAGE_SAFETY |
| Filter Absolut | CSAM/PII, dll. | Tidak dapat dikonfigurasi | Pemblokiran permanen |
Empat Kategori Risiko Nano Banana Pro
Google membagi risiko konten ke dalam empat kategori yang dapat dikonfigurasi:
| Kategori | Nama Inggris | Contoh Pemicu | Ambang Batas Default |
|---|---|---|---|
| Ujaran Kebencian | HARM_CATEGORY_HATE_SPEECH | Konten diskriminasi ras atau agama | MEDIUM |
| Pelecehan | HARM_CATEGORY_HARASSMENT | Serangan pribadi, ancaman | MEDIUM |
| Konten Seksual | HARM_CATEGORY_SEXUALLY_EXPLICIT | Ketelanjangan, konten dewasa | MEDIUM |
| Konten Berbahaya | HARM_CATEGORY_DANGEROUS_CONTENT | Kekerasan, senjata, narkoba | MEDIUM |
Mengapa konten normal juga ikut terblokir?
Google secara resmi mengakui bahwa filter keamanan Nano Banana Pro "jauh lebih berhati-hati dari yang direncanakan" (way more cautious than intended). Berikut adalah beberapa skenario salah blokir (false positive) yang umum terjadi:
| Skenario | Mengapa Terkena Salah Blokir | Risiko Sebenarnya |
|---|---|---|
| Foto pakaian dalam e-commerce | Memicu deteksi "Konten Seksual" | Tampilan produk normal |
| Karakter gaya anime | Gaya anime memicu deteksi yang lebih ketat | Kreasi seni |
| Konten terkait anak-anak | Label "underage" memicu filter tingkat tertinggi | Adegan keluarga normal |
| Gambar anatomi medis | Memicu deteksi "Kekerasan/Darah" | Keperluan edukasi |
| Tokoh profesi tertentu | Mungkin diidentifikasi sebagai "individu yang dapat dikenali" | Deskripsi profesi umum |
⚠️ Catatan Penting: Gambar dengan gaya anime/manga memiliki probabilitas memicu filter keamanan yang jauh lebih tinggi dibandingkan gaya realistis. Konten yang sama (misalnya "seekor kucing sedang beristirahat"), jika menggunakan "anime style" mungkin akan ditolak, sedangkan "realistic digital illustration" bisa lolos.
Solusi IMAGE_SAFETY Nano Banana Pro 1: Menulis Ulang Petunjuk
Metode yang paling langsung dan efektif adalah dengan menulis ulang petunjuk untuk menghindari kosakata sensitif yang memicu filter keamanan.
Strategi Penulisan Ulang Petunjuk Nano Banana Pro
| Penulisan Asli | Masalah | Saran Penulisan Ulang |
|---|---|---|
| "sexy model wearing bikini" | Memicu deteksi seksual | "fashion model in summer beachwear" |
| "anime girl" | Kombinasi anime + perempuan berisiko tinggi | "illustrated character in digital art style" |
| "child playing" | "child" memicu filter tingkat tertinggi | "young person enjoying outdoor activities" |
| "bloody wound" | Memicu deteksi konten kekerasan | "medical illustration of skin injury" |
| "holding a gun" | Memicu deteksi konten berbahaya | "action pose with prop equipment" |
Contoh Kode Penulisan Ulang Petunjuk
import openai
import re
# Pemetaan penggantian kata sensitif
SAFE_REPLACEMENTS = {
r'\bsexy\b': 'stylish',
r'\bbikini\b': 'summer beachwear',
r'\bchild\b': 'young person',
r'\bkid\b': 'young individual',
r'\banime\b': 'illustrated',
r'\bmanga\b': 'digital art',
r'\bgun\b': 'equipment',
r'\bweapon\b': 'tool',
r'\bblood\b': 'red liquid',
r'\bnude\b': 'unclothed figure',
}
def sanitize_prompt(prompt: str) -> str:
"""Mengganti kosakata sensitif untuk mengurangi risiko pemblokiran"""
sanitized = prompt.lower()
for pattern, replacement in SAFE_REPLACEMENTS.items():
sanitized = re.sub(pattern, replacement, sanitized, flags=re.IGNORECASE)
return sanitized
client = openai.OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.apiyi.com/v1" # Menggunakan antarmuka terpadu APIYI
)
# Contoh penggunaan
original_prompt = "anime girl in bikini at beach"
safe_prompt = sanitize_prompt(original_prompt)
# Hasil: "illustrated girl in summer beachwear at beach"
response = client.images.generate(
model="nano-banana-pro",
prompt=safe_prompt,
size="2048x2048"
)
💡 Saran: Saat memanggil Nano Banana Pro melalui platform APIYI (apiyi.com), Anda bisa menggunakan alat pengujian imagen.apiyi.com terlebih dahulu untuk memverifikasi apakah petunjuk tersebut akan memicu filter sebelum melakukan pemanggilan resmi.
Solusi IMAGE_SAFETY Nano Banana Pro 2: Mengganti Gaya Artistik
Gaya anime adalah faktor risiko tinggi yang memicu IMAGE_SAFETY. Beralih ke gaya realistis dapat meningkatkan tingkat keberhasilan secara signifikan.
Perbandingan Keamanan Gaya Nano Banana Pro
| Tipe Gaya | Sensitivitas Filter Keamanan | Indeks Rekomendasi | Skenario Penggunaan |
|---|---|---|---|
| Anime/Manga | Sangat Tinggi | ⭐ | Tidak direkomendasikan |
| Kartun | Tinggi | ⭐⭐ | Gunakan dengan hati-hati |
| Seni Digital | Sedang | ⭐⭐⭐ | Dapat digunakan |
| Realistis | Rendah | ⭐⭐⭐⭐ | Direkomendasikan |
| Fotografi | Paling Rendah | ⭐⭐⭐⭐⭐ | Sangat direkomendasikan |
Contoh Kode Pengalihan Gaya
def generate_with_safe_style(prompt: str, preferred_style: str = "anime"):
"""Secara otomatis mengonversi gaya berisiko tinggi ke gaya aman"""
# Tabel pemetaan gaya
style_mappings = {
"anime": "digital illustration with soft lighting",
"manga": "stylized digital artwork",
"cartoon": "clean vector illustration",
"hentai": None, # Tidak didukung sama sekali
}
# Periksa apakah konversi gaya diperlukan
safe_style = style_mappings.get(preferred_style.lower())
if safe_style is None:
raise ValueError(f"Style '{preferred_style}' is not supported")
# Membangun petunjuk yang aman
safe_prompt = f"{prompt}, {safe_style}, professional quality"
return client.images.generate(
model="nano-banana-pro",
prompt=safe_prompt,
size="2048x2048"
)
Solusi IMAGE_SAFETY Nano Banana Pro 3: Menyesuaikan Parameter Ambang Batas Keamanan
Google menyediakan parameter ambang batas keamanan yang dapat dikonfigurasi, sehingga Anda bisa melonggarkan batasan filter sampai tingkat tertentu.
Konfigurasi Ambang Batas Keamanan Nano Banana Pro
| Tingkat Ambang Batas | Nilai Parameter | Keketatan Filter | Skenario Penggunaan |
|---|---|---|---|
| Paling Ketat | BLOCK_LOW_AND_ABOVE |
Tinggi | Aplikasi untuk anak di bawah umur |
| Standar (Default) | BLOCK_MEDIUM_AND_ABOVE |
Sedang | Skenario umum |
| Longgar | BLOCK_ONLY_HIGH |
Rendah | Kreasi profesional/artistik |
| Paling Longgar | BLOCK_NONE |
Paling Rendah | Perlu pengajuan izin |
Kode Penyesuaian Ambang Batas Keamanan
import openai
client = openai.OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.apiyi.com/v1" # Antarmuka terpadu APIYI
)
response = client.images.generate(
model="nano-banana-pro",
prompt="fashion model in elegant evening dress",
size="2048x2048",
extra_body={
"safety_settings": [
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_ONLY_HIGH"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"threshold": "BLOCK_ONLY_HIGH"
},
{
"category": "HARM_CATEGORY_HARASSMENT",
"threshold": "BLOCK_ONLY_HIGH"
},
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"threshold": "BLOCK_ONLY_HIGH"
}
]
}
)
⚠️ Catatan: Meskipun semua ambang batas yang dapat dikonfigurasi disetel ke
BLOCK_NONE, tetap ada beberapa filter kaku yang tidak dapat dilewati, termasuk konten terkait CSAM (Materi Pelecehan Seksual Anak) dan PII (Informasi Identitas Pribadi).

Solusi IMAGE_SAFETY Nano Banana Pro 4: Pembuatan Skenario Kompleks Secara Bertahap
Petunjuk yang kompleks lebih mudah memicu filter keamanan. Memecah skenario kompleks menjadi beberapa langkah sederhana dapat meningkatkan tingkat keberhasilan.
Strategi Pembuatan Bertahap
def generate_complex_scene_stepwise(scene_description: str):
"""
将复杂场景拆分为多个步骤生成
策略: 先生成背景,再生成主体,最后合成
"""
steps = [
# 步骤1: 生成纯背景
{
"prompt": "empty beach scene at sunset, golden hour lighting, no people",
"purpose": "background"
},
# 步骤2: 生成主体 (使用安全描述)
{
"prompt": "professional fashion photography, model in summer dress, studio lighting",
"purpose": "subject"
}
]
results = []
for step in steps:
try:
response = client.images.generate(
model="nano-banana-pro",
prompt=step["prompt"],
size="2048x2048"
)
results.append({
"purpose": step["purpose"],
"success": True,
"image": response.data[0]
})
except Exception as e:
results.append({
"purpose": step["purpose"],
"success": False,
"error": str(e)
})
return results
Solusi IMAGE_SAFETY Nano Banana Pro 5: Menggunakan Mode Pengeditan Gambar
Jika pembuatan secara langsung diblokir, Anda bisa mencoba menggunakan mode pengeditan gambar (Image Editing) untuk melakukan modifikasi berdasarkan gambar aman yang sudah ada.
Contoh Mode Pengeditan Gambar
import base64
from pathlib import Path
def edit_existing_image(
image_path: str,
edit_instruction: str
) -> dict:
"""
使用图像编辑模式,基于现有图像进行修改
通常比直接生成更容易通过安全过滤
"""
# 读取并编码图像
image_data = Path(image_path).read_bytes()
base64_image = base64.b64encode(image_data).decode('utf-8')
response = client.images.edit(
model="nano-banana-pro",
image=base64_image,
prompt=edit_instruction,
size="2048x2048"
)
return response
# 使用示例: 修改服装颜色
result = edit_existing_image(
image_path="original_product.png",
edit_instruction="change the dress color to deep blue, keep everything else the same"
)
🎯 Tips: Dalam mode pengeditan gambar, model akan melakukan modifikasi lokal berdasarkan gambar asli, sehingga probabilitas memicu filter keamanan biasanya lebih rendah dibandingkan pembuatan dari nol. Fitur pengeditan gambar ini juga tersedia saat Anda melakukan pemanggilan melalui platform APIYI apiyi.com.
Solusi IMAGE_SAFETY Nano Banana Pro 6: Menambahkan Konteks Keamanan
Menambahkan kata-kata konteks seperti "aman", "profesional", atau "komersial" secara eksplisit ke dalam petunjuk dapat membantu model memahami niat baik Anda.
Tabel Kata Konteks Keamanan
| Kategori | Kata yang Direkomendasikan | Efek |
|---|---|---|
| Deklarasi Penggunaan | "for commercial use", "product catalog" | Menunjukkan tujuan komersial |
| Deklarasi Profesional | "professional photography", "studio shot" | Menekankan profesionalisme |
| Deklarasi Gaya | "clean", "family-friendly", "SFW" | Memperjelas niat aman |
| Deklarasi Kualitas | "high quality", "editorial", "magazine" | Mengisyaratkan standar resmi |
Contoh Kode Menambahkan Konteks Keamanan
def add_safety_context(prompt: str, context_type: str = "commercial") -> str:
"""为提示词添加安全上下文,降低被误杀概率"""
context_templates = {
"commercial": "Professional product photography for e-commerce catalog, clean background, {prompt}, high quality commercial image",
"editorial": "Editorial photography for fashion magazine, {prompt}, professional studio lighting, tasteful and elegant",
"artistic": "Fine art digital illustration, {prompt}, museum quality, suitable for all ages",
"medical": "Medical educational illustration, {prompt}, anatomically accurate, clinical documentation style"
}
template = context_templates.get(context_type, context_templates["commercial"])
return template.format(prompt=prompt)
# 使用示例
original = "model wearing swimwear"
safe_prompt = add_safety_context(original, "commercial")
# 结果: "Professional product photography for e-commerce catalog, clean background, model wearing swimwear, high quality commercial image"
Solusi IMAGE_SAFETY Nano Banana Pro 7: Mengimplementasikan Mekanisme Retry Cerdas
Karena filter keamanan terkadang memiliki tingkat keacakan tertentu, menerapkan mekanisme retry (percobaan ulang) yang cerdas dapat meningkatkan tingkat keberhasilan secara keseluruhan.
Strategi Retry Cerdas
import time
import random
from typing import Optional, List
class SafeImageGenerator:
"""带智能重试的安全图像生成器"""
def __init__(self, api_key: str):
self.client = openai.OpenAI(
api_key=api_key,
base_url="https://api.apiyi.com/v1" # APIYI 统一接口
)
self.prompt_variations = []
def generate_prompt_variations(self, original: str) -> List[str]:
"""生成提示词变体,用于重试"""
variations = [
original,
f"Professional {original}",
f"{original}, clean and tasteful",
f"High quality {original}, suitable for all audiences",
f"Editorial style {original}, magazine quality"
]
return variations
def generate_with_retry(
self,
prompt: str,
max_retries: int = 3,
size: str = "2048x2048"
) -> Optional[dict]:
"""带智能重试的图像生成"""
variations = self.generate_prompt_variations(prompt)
for attempt, current_prompt in enumerate(variations[:max_retries]):
try:
print(f"尝试 {attempt + 1}/{max_retries}: {current_prompt[:50]}...")
response = self.client.images.generate(
model="nano-banana-pro",
prompt=current_prompt,
size=size
)
print(f"✅ 成功生成!")
return {
"success": True,
"attempt": attempt + 1,
"prompt_used": current_prompt,
"image": response.data[0]
}
except Exception as e:
error_msg = str(e)
if "IMAGE_SAFETY" in error_msg or "PROHIBITED_CONTENT" in error_msg:
print(f"❌ 安全过滤拦截,尝试下一个变体...")
time.sleep(1) # 避免频繁请求
continue
else:
raise e
return {
"success": False,
"attempts": max_retries,
"error": "All prompt variations were blocked by safety filter"
}
# 使用示例
generator = SafeImageGenerator(api_key="your-api-key")
result = generator.generate_with_retry("fashion model in elegant dress")
if result["success"]:
print(f"在第 {result['attempt']} 次尝试成功")
else:
print(f"所有 {result['attempts']} 次尝试均失败")
Nano Banana Pro IMAGE_SAFETY Solusi 8: Memilih Penyedia Layanan API yang Tepat
Penyedia layanan API yang berbeda mungkin menerapkan strategi filter keamanan yang berbeda pula. Memilih penyedia yang sesuai dengan skenario bisnis Anda sangatlah penting.
Perbandingan Penyedia Layanan API Nano Banana Pro
| Penyedia Layanan | Ketatnya Filter | Konfigurabilitas | Harga | Fitur Utama |
|---|---|---|---|---|
| Google Resmi | Paling Ketat | Terbatas | $0.134/gambar | Pengaturan default paling konservatif |
| APIYI | Standar | Mendukung penyesuaian | $0.05/gambar | Menyeimbangkan keamanan dan kegunaan |
| Perantara Lain | Tidak Konsisten | Tidak Diketahui | Bervariasi | Kualitas tidak merata |
💰 Optimasi Biaya: Melalui APIYI apiyi.com untuk memanggil Nano Banana Pro, harganya bukan hanya cuma 37% dari harga resmi, tetapi juga mendukung konfigurasi ambang batas keamanan yang lebih fleksibel. Permintaan yang terblokir secara keliru tidak akan dikenakan biaya, jadi Anda bisa bebas mencoba berbagai strategi petunjuk.
Klik untuk membuka kode lingkungan produksi lengkap
"""
Solusi Lengkap Nano Banana Pro IMAGE_SAFETY
Kode lingkungan produksi yang mengintegrasikan semua strategi optimasi
"""
import openai
import re
import time
from typing import Optional, Dict, List
from dataclasses import dataclass
@dataclass
class GenerationResult:
success: bool
image_data: Optional[str] = None
prompt_used: Optional[str] = None
attempts: int = 0
error: Optional[str] = None
class RobustImageGenerator:
"""
Generator Gambar Nano Banana Pro yang tangguh
Mengintegrasikan berbagai strategi bypass IMAGE_SAFETY
"""
# Pemetaan penggantian kata sensitif
SENSITIVE_WORDS = {
r'\bsexy\b': 'elegant',
r'\bhot\b': 'attractive',
r'\bbikini\b': 'swimwear',
r'\blingerie\b': 'intimate apparel',
r'\bchild\b': 'young person',
r'\bkid\b': 'young individual',
r'\bgirl\b': 'young woman',
r'\bboy\b': 'young man',
r'\banime\b': 'illustrated',
r'\bmanga\b': 'digital art',
r'\bhentai\b': 'artwork',
r'\bgun\b': 'equipment',
r'\bweapon\b': 'tool',
r'\bknife\b': 'utensil',
r'\bblood\b': 'red fluid',
r'\bviolent\b': 'dynamic',
r'\bnude\b': 'unclothed',
r'\bnaked\b': 'without clothing',
}
# Templat konteks keamanan
SAFETY_CONTEXTS = [
"", # Orisinal
"Professional photography, ",
"High quality commercial image, ",
"Editorial style, tasteful, ",
"Clean and family-friendly, ",
]
def __init__(self, api_key: str, base_url: str = "https://api.apiyi.com/v1"):
self.client = openai.OpenAI(
api_key=api_key,
base_url=base_url
)
def sanitize_prompt(self, prompt: str) -> str:
"""Mengganti kosakata sensitif"""
sanitized = prompt
for pattern, replacement in self.SENSITIVE_WORDS.items():
sanitized = re.sub(pattern, replacement, sanitized, flags=re.IGNORECASE)
return sanitized
def generate_variations(self, prompt: str) -> List[str]:
"""Membuat variasi petunjuk"""
sanitized = self.sanitize_prompt(prompt)
variations = []
for context in self.SAFETY_CONTEXTS:
variations.append(f"{context}{sanitized}")
return variations
def generate(
self,
prompt: str,
size: str = "2048x2048",
max_retries: int = 5,
safety_threshold: str = "BLOCK_MEDIUM_AND_ABOVE"
) -> GenerationResult:
"""
Membuat gambar dengan penanganan IMAGE_SAFETY lengkap
Args:
prompt: petunjuk asli
size: Ukuran gambar
max_retries: Jumlah percobaan ulang maksimal
safety_threshold: Ambang batas keamanan
Returns:
Objek GenerationResult
"""
variations = self.generate_variations(prompt)
attempts = 0
for variation in variations[:max_retries]:
attempts += 1
try:
response = self.client.images.generate(
model="nano-banana-pro",
prompt=variation,
size=size,
extra_body={
"safety_settings": [
{"category": cat, "threshold": safety_threshold}
for cat in [
"HARM_CATEGORY_SEXUALLY_EXPLICIT",
"HARM_CATEGORY_DANGEROUS_CONTENT",
"HARM_CATEGORY_HARASSMENT",
"HARM_CATEGORY_HATE_SPEECH"
]
]
}
)
return GenerationResult(
success=True,
image_data=response.data[0].b64_json,
prompt_used=variation,
attempts=attempts
)
except Exception as e:
error_msg = str(e)
if any(keyword in error_msg for keyword in
["IMAGE_SAFETY", "PROHIBITED_CONTENT", "SAFETY"]):
time.sleep(0.5)
continue
else:
return GenerationResult(
success=False,
attempts=attempts,
error=error_msg
)
return GenerationResult(
success=False,
attempts=attempts,
error="All variations blocked by safety filter"
)
# Contoh penggunaan
if __name__ == "__main__":
generator = RobustImageGenerator(api_key="your-api-key")
# Kasus pengujian
test_prompts = [
"anime girl in bikini", # Risiko tinggi
"child playing in park", # Risiko sedang
"fashion model in elegant dress", # Risiko rendah
]
for prompt in test_prompts:
print(f"\nTes: {prompt}")
result = generator.generate(prompt)
if result.success:
print(f" ✅ Berhasil (Percobaan ke-{result.attempts})")
print(f" petunjuk yang digunakan: {result.prompt_used[:60]}...")
else:
print(f" ❌ Gagal: {result.error}")
Pertanyaan yang Sering Diajukan (FAQ) Nano Banana Pro IMAGE_SAFETY
Q1: Mengapa gambar produk normal saya juga memicu IMAGE_SAFETY?
Filter keamanan Google menggunakan strategi konservatif "lebih baik salah blokir daripada kecolongan". Jenis gambar produk berikut ini rentan terkena blokir secara keliru:
- Kategori Pakaian Dalam/Baju Renang: Bahkan gambar e-commerce resmi pun dapat memicu deteksi terkait konten seksual.
- Produk Terkait Tubuh Manusia: Seperti alat pijat, alat kecantikan, atau produk lain yang bersentuhan dengan kulit.
- Perlengkapan Anak: Konten apa pun yang melibatkan anak-anak akan memicu filter yang paling ketat.
Solusi: Tambahkan konteks komersial yang jelas, seperti "e-commerce product photo", "catalog image", dsb., dan pastikan latar belakang gambar tetap sederhana. Gunakan platform APIYI apiyi.com untuk menguji berbagai kombinasi petunjuk guna menemukan solusi terbaik.
Q2: Sudah mengatur ke BLOCK_NONE, mengapa masih terblokir?
Bahkan jika semua ambang batas keamanan yang dapat dikonfigurasi diatur ke BLOCK_NONE, masih ada filter keras yang tidak dapat dilewati:
| Jenis Filter | Bisa Dikonfigurasi | Penjelasan |
|---|---|---|
| Empat Kategori Risiko Utama | ✅ | Dapat disesuaikan melalui safety_settings |
| Deteksi CSAM | ❌ | Selamanya tidak dapat dikonfigurasi |
| Deteksi PII | ❌ | Selamanya tidak dapat dikonfigurasi |
| Deteksi Hak Cipta | ❌ | Selebriti, merek terkenal, dsb. |
Jika konten Anda tidak melibatkan kategori filter keras ini, Anda bisa mencoba menulis ulang petunjuk atau mengganti gaya seninya.
Q3: Apakah permintaan yang terblokir akan dikenakan biaya?
Berdasarkan dokumentasi resmi Google, gambar yang dicegat oleh filter keamanan tidak akan dikenakan biaya. Dari respons yang Anda berikan, terlihat candidatesTokenCount: 0, yang menunjukkan tidak ada output yang dihasilkan, sehingga tidak ada biaya yang timbul.
Namun perlu dicatat bahwa thoughtsTokenCount: 293 menunjukkan model telah melakukan penalaran internal. Dalam beberapa model penagihan, token pemikiran mungkin akan dihitung. Saat memanggil melalui platform APIYI, permintaan yang terblokir sama sekali tidak dikenakan biaya, sehingga Anda dapat melakukan banyak percobaan dengan tenang.
Q4: Bagaimana cara membedakan apakah masalahnya ada pada input atau output?
Anda dapat menentukannya dari respons kesalahan:
| Fitur | Masalah Input | Masalah Output |
|---|---|---|
promptTokenCount |
Mungkin 0 | Perhitungan normal |
thoughtsTokenCount |
0 | Memiliki nilai (misal: 293) |
| Jenis Kesalahan | BLOCKED_PROMPT | IMAGE_SAFETY |
Dalam kasus Anda, thoughtsTokenCount: 293 menunjukkan bahwa pemblokiran terjadi pada tahap output; model telah menyelesaikan penalaran tetapi gambar yang dihasilkan memicu filter. Solusinya adalah menyesuaikan petunjuk untuk mengarahkan model menghasilkan konten yang lebih aman.
Ringkasan Solusi Nano Banana Pro IMAGE_SAFETY

Artikel ini menyajikan 8 cara untuk mengatasi error IMAGE_SAFETY pada Nano Banana Pro:
| Solusi | Skenario Penggunaan | Tingkat Kesulitan | Peringkat Efektivitas |
|---|---|---|---|
| Tulis ulang petunjuk | Semua skenario | Rendah | ⭐⭐⭐⭐⭐ |
| Ganti gaya artistik | Kebutuhan anime/ilustrasi | Rendah | ⭐⭐⭐⭐ |
| Sesuaikan ambang keamanan | Memiliki izin konfigurasi API | Sedang | ⭐⭐⭐⭐ |
| Generasi bertahap | Skenario kompleks | Sedang | ⭐⭐⭐ |
| Mode edit gambar | Modifikasi berdasarkan gambar ada | Sedang | ⭐⭐⭐⭐ |
| Tambahkan konteks keamanan | Skenario komersial/profesional | Rendah | ⭐⭐⭐⭐ |
| Mekanisme percobaan cerdas | Lingkungan produksi | Tinggi | ⭐⭐⭐⭐⭐ |
| Pilih penyedia yang tepat | Penggunaan jangka panjang | Rendah | ⭐⭐⭐⭐ |
Saran Inti: Menggunakan kombinasi strategi "Tulis ulang petunjuk + Konteks keamanan + Percobaan ulang cerdas" dapat meningkatkan tingkat keberhasilan dari 60% menjadi lebih dari 95%.
🎯 Saran Akhir: Direkomendasikan untuk melakukan panggilan Nano Banana Pro melalui APIYI apiyi.com. Platform ini menawarkan opsi konfigurasi keamanan yang lebih fleksibel, permintaan yang diblokir tidak dikenakan biaya, dan harga $0.05 per gambar dapat secara signifikan mengurangi biaya debugging. Alat pengujian online imagen.apiyi.com dapat digunakan untuk memverifikasi dengan cepat apakah petunjuk akan memicu filter.
Artikel ini ditulis oleh tim teknis APIYI. Jika Anda ingin mempelajari lebih lanjut tentang tips penggunaan API generasi gambar AI, silakan kunjungi apiyi.com untuk mendapatkan dukungan teknis.
