Jika Anda membuat gambar dengan model Gambar GPT (gpt-image-2, gpt-image-2.5) dalam volume berapa pun, Anda pada akhirnya akan menemui error yang menjengkelkan: HTTP 400, dan pesan yang menyatakan bahwa permintaan Anda ditolak oleh sistem keamanan. Tidak ada gambar, tidak ada output parsial, dan prompt yang terlihat sangat wajar bagi Anda.
Panduan ini menjelaskan apa sebenarnya error tersebut, apa yang memicunya dalam praktik, dan cara menyesuaikan prompt serta gambar referensi agar error tersebut lebih jarang terjadi. Panduan ini didasarkan pada 30 hari data produksi dari API gambar TokenLab (19 Agustus – 18 September 2026), ditambah dokumentasi pembuatan gambar resmi OpenAI. Angka yang kami kutip adalah statistik platform agregat; tidak ada konten pelanggan yang direproduksi.
Apa sebenarnya error tersebut
Model Gambar GPT memfilter setiap prompt, setiap gambar input, dan setiap gambar yang dihasilkan terhadap kebijakan konten penyedia. Saat filter aktif, permintaan gagal dengan 400 yang diskriminator stabilnya adalah kode error:
{
"error": {
"type": "image_generation_user_error",
"code": "moderation_blocked",
"moderation_details": {
"moderation_stage": "input",
"categories": ["sexual"]
}
}
}
Sesuai dokumentasi resmi, moderation_details bersifat opsional dan sengaja dibuat kasar: moderation_stage memberi tahu Anda apakah pemblokiran berasal dari input Anda (input) atau dari gambar yang dihasilkan (output), dan categories membawa label publik yang luas seperti harassment, self-harm, sexual, atau violence. Ini tidak pernah mengekspos skor pengklasifikasi internal.
Di TokenLab, peristiwa yang sama muncul dalam dua bentuk:
- Panggilan sinkron (
/v1/images/generations,/v1/images/edits) langsung mengembalikan HTTP 400. - Tugas asinkron beralih ke
faileddengan pesan "Permintaan ditolak oleh sistem keamanan."
Bagaimanapun, dua fakta operasional penting. Pertama, pemblokiran moderasi bersifat deterministik untuk konten yang sama: mencoba ulang permintaan yang tidak diubah pada dasarnya tidak akan pernah berhasil. Kedua, di TokenLab, tugas yang diblokir moderasi dianggap sebagai tugas yang gagal dan kuota yang telah dipotong secara otomatis dikembalikan sepenuhnya — Anda tidak pernah membayar untuk pembuatan yang diblokir.
Tiga puluh hari data produksi
Antara 19 Agustus dan 18 September 2026, sekitar 4,3% tugas Gambar GPT di TokenLab — kira-kira satu dari 23 — ditolak oleh sistem keamanan upstream. Distribusinya tidak acak; permintaan yang diblokir mengelompok dengan ketat di sekitar beberapa pola:
| Sinyal | Tugas diblokir | Semua tugas lain | Pembacaan |
|---|---|---|---|
| Prompt menyebutkan anak di bawah umur (anak, bocah, bayi, "7 tahun", ...) | 79% | 33% | Prediktor tunggal terkuat |
| Kata-kata rendering fotorealistik ("fotorealistik", "manusia nyata", "live-action") | 77% | 57% | Penguat, terutama dengan anak di bawah umur |
| Deskriptor yang berdekatan dengan seksual (telanjang, seksi, pakaian dalam, kata-kata yang berfokus pada tubuh) | 43% | 17% | Prediktor kuat |
| Kata-kata aksi/kekerasan umum (pertempuran, pedang, ledakan) | ~50% | ~50% | Tidak ada nilai prediktif dengan sendirinya |
Tiga temuan lagi dari periode yang sama:
- Gambar referensi meningkatkan risiko. Tugas dengan gambar input/referensi diblokir sebesar 8,4%, dibandingkan 3,7% untuk pembuatan berbasis teks saja — lebih dari dua kali lipat. Gambar dimoderasi seketat teks.
- Prompt panjang lebih sering gagal. Prompt yang diblokir rata-rata sekitar 3.600 karakter, dan lebih dari setengahnya melebihi 2.000 karakter. Setiap klausa tambahan adalah area permukaan yang lebih luas untuk pengklasifikasi.
- Percobaan ulang tidak pernah berhasil. Setiap tugas yang diblokir dalam periode tersebut berakhir dalam status gagal terminal; tidak ada yang berhasil dengan mengirimkan ulang input yang sama. Dan setiap tugas tersebut dikembalikan dananya secara otomatis.
Alur kerja yang paling banyak diblokir yang kami amati: lembar desain karakter fotorealistik anak di bawah umur — prompt gaya "referensi casting" yang mendeskripsikan karakter anak dengan rendering ultra-realistis, proporsi tubuh yang tepat, dan catatan pakaian. Prompt yang menggabungkan kosakata terkait anak di bawah umur dengan rendering fotorealistik diblokir sebesar ~9,5%, 2,2× dari tingkat dasar.
Lima pola yang memicu pemblokiran
Membaca seluruh populasi yang diblokir, hampir setiap penolakan termasuk dalam salah satu kategori ini:
- Penggambaran fotorealistik anak di bawah umur. Karakter anak atau bayi yang dirender sebagai "manusia nyata yang difoto di studio", "ultra-fotorealistik", "bukan CGI, bukan ilustrasi". Kombinasi anak di bawah umur dan fotorealisme adalah batasan yang paling dijaga ketat dalam moderasi gambar, dan ini aktif bahkan ketika tujuannya adalah lembar karakter yang tidak bersalah.
- Kata-kata yang berfokus pada pakaian atau tubuh di sekitar anak di bawah umur. Frasa seperti "close-up dari tulang selangka ke atas" (dimaksudkan sebagai potongan potret biasa) atau pengukuran proporsi tubuh dari kepala hingga kaki yang mendetail dari karakter anak. Secara individu tidak bersalah, secara agregat ini terbaca sebagai deskripsi tubuh anak di bawah umur.
- Deskriptor seksual karakter dewasa. Kosakata yang berfokus pada pose, kulit, dan pakaian dalam ("pakaian dalam", "telanjang", "pose menggoda") bahkan dalam komposisi yang seharusnya aman (SFW).
- Anatomi gore grafis. Prompt horor dan fantasi gelap yang mendeskripsikan daging busuk, organ terbuka, luka terbuka, atau parasit dalam detail anatomi.
- Gambar referensi orang nyata. Foto nyata anak di bawah umur, gambar dengan paparan kulit tinggi, atau wajah mirip selebriti yang digunakan sebagai input edit.
Dua penguat membuat semua hal di atas lebih mungkin memicu pemblokiran: prompt yang sangat panjang (lebih banyak teks berarti lebih banyak peluang untuk kombinasi yang buruk) dan daftar kata negatif. Baris seperti "tanpa ketelanjangan, tanpa konten seksual, tanpa gore" tidak meyakinkan pengklasifikasi — ini mengulangi konsep yang ingin Anda hindari dan menambahkannya ke input. Deskripsikan apa yang Anda inginkan, bukan apa yang tidak Anda inginkan.
Panduan penyesuaian prompt
Ini adalah langkah penulisan ulang yang dipetakan ke data. (Contoh bersifat ilustratif, bukan dari lalu lintas pelanggan.)
1. Jauhkan anak di bawah umur dari fotorealisme
Jika cerita, komik, atau game Anda membutuhkan karakter anak, render mereka dalam media yang jelas bergaya:
Sebelum: "Foto casting ultra-fotorealistik dari gadis berusia 7 tahun, manusia nyata
anak yang difoto di studio, proporsi tubuh mendetail, close-up wajah
tanpa pakaian dari tulang selangka ke atas ..."
Sesudah: "Ilustrasi cat air buku cerita dari seorang gadis muda dengan gaun
dinasti Ming, potret bahu ke atas, wajah bulat, sanggul rambut kembar diikat dengan pita
kain, ekspresi lembut, latar belakang putih polos"
Ubah medianya (cat air, animasi 2D, kartun 3D, gaya buku gambar), hapus pembingkaian "manusia nyata / difoto", dan lewati pengukuran tubuh sepenuhnya. Jika Anda harus mendeskripsikan pakaian, deskripsikan apa yang dikenakan karakter ("mengenakan jaket kain berkerah bulat") daripada apa yang tidak mereka kenakan.
2. Hapus daftar kata negatif
Ganti "tanpa ketelanjangan, tanpa darah, tanpa teks, tanpa tanda air" dengan frasa positif: "berpakaian lengkap", "komposisi bersih", "latar belakang polos". Hanya simpan kata negatif yang tidak menyebutkan kategori terlarang (misalnya "tanpa tanda air" tidak masalah; "tanpa ketelanjangan" tidak membantu).
3. Pangkas prompt
Jika Anda membuat lembar karakter multi-panel, jangan ulangi blok gaya yang sama di setiap deskripsi panel. Satu kalimat gaya bersama ditambah detail per-panel membuat Anda tetap berada di bawah ambang batas area permukaan di mana kombinasi pemicu yang tidak disengaja menjadi mungkin.
4. Redam gore dengan suasana, bukan anatomi
Sebelum: "tubuhnya membusuk, tengkorak terbuka, daging, pustula dan parasit ..."
Sesudah: "satu sisi tenang dan keibuan, sisi lainnya larut ke dalam bayangan
dan kabut pasang surut, pembusukan disarankan melalui siluet dan pencahayaan daripada
detail anatomi"
Fantasi gelap bertahan dari moderasi ketika horor dibawa oleh suasana hati, pencahayaan, dan siluet daripada deskripsi tingkat jaringan.
5. Netralkan kedekatan konten dewasa
Untuk karakter dewasa, tukar kata-kata yang berfokus pada tubuh dan pakaian dalam dengan bahasa mode dan suasana hati: "gaun malam" alih-alih "pakaian dalam", "contrapposto percaya diri" alih-alih "pose menggoda".
Kebersihan gambar referensi
Karena input gambar juga dimoderasi — dan dalam data kami, input gambar meningkatkan tingkat pemblokiran lebih dari dua kali lipat — perlakukan gambar referensi sebagai bagian dari prompt:
- Pilih referensi bergaya untuk anak di bawah umur. Ilustrasi atau render 3D karakter anak jauh lebih aman sebagai input daripada foto nyata anak, dan biasanya berfungsi sama baiknya untuk konsistensi karakter.
- Potong ke bagian yang penting. Jika Anda memerlukan wajah untuk konsistensi identitas, unggah potongan wajah, bukan foto seluruh tubuh di pantai. Lebih sedikit kulit dan lebih sedikit konteks berarti lebih sedikit permukaan pengklasifikasi.
- Hapus teks dan tanda air yang menimpa. Keterangan, teks meme, dan string tanda air pada gambar referensi dibaca sebagai teks input dan dapat membawa kata pemicu yang Anda lupa ada di sana.
- Hindari kemiripan selebriti nyata, baik sebagai gambar referensi maupun sebagai teks prompt "dengan gaya <aktor>".
Parameter moderasi
Model Gambar GPT menerima parameter moderation dengan dua nilai, sesuai dokumentasi resmi:
auto(default): pemfilteran standar yang membatasi kategori tertentu dari konten yang berpotensi tidak sesuai usia.low: pemfilteran yang tidak terlalu ketat.
TokenLab meneruskan parameter ini pada /v1/images/generations dan /v1/images/edits:
curl https://api.tokenlab.sh/v1/images/generations \
-H "Authorization: Bearer $TOKENLAB_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "Ilustrasi cat air buku cerita dari seorang gadis muda dengan gaun dinasti Ming, potret bahu ke atas",
"size": "1024x1024",
"moderation": "low"
}'
Gunakan low ketika konten Anda jelas jinak tetapi terus ditandai — karya ilustrasi bergaya adalah kasus klasiknya. Dua peringatan: low bukan berarti off (kategori ilegal seperti CSAM selalu diblokir), dan ini adalah tombol penyesuaian, bukan jaminan — perbaiki prompt terlebih dahulu, baru gunakan parameter tersebut.
Menangani pemblokiran dalam kode
Panduan resmi sudah jelas: kegagalan image_generation_user_error dapat diperbaiki oleh pengguna dan tidak boleh dicoba ulang tanpa mengubah permintaan. Data kami setuju — tidak ada tugas yang diblokir dalam periode 30 hari yang berhasil dengan mencoba ulang permintaan yang tidak diubah. Penanganan yang tepat:
- Bedakan berdasarkan
error.code, bukan teks pesan. Hanyamoderation_blocked(danimage_generation_user_errorsecara umum) yang berarti "perbaiki input". Batas kecepatan dan 5xx masih dapat dicoba ulang. - Baca tahapannya.
moderation_stage: "input"berarti tulis ulang prompt atau tukar gambar referensi;"output"berarti gambar yang dihasilkan itu sendiri ditandai — melakukan re-roll dengan prompt yang sedikit disesuaikan dan dikurangi risikonya biasanya akan menyelesaikannya. - Buat pesan pengguna akhir tetap umum ("Permintaan ini tidak dapat diselesaikan karena persyaratan keamanan konten") dan catat
moderation_detailsserta ID permintaan untuk debugging dan dukungan Anda sendiri. - Jangan melakukan loop. Hentikan sirkuit setelah satu pemblokiran moderasi per input unik; mengirimkan ulang konten yang identik membuang latensi dan waktu debugging meskipun TokenLab mengembalikan dananya.
Daftar periksa
| Situasi Anda | Pemicu yang mungkin | Perbaikan |
|---|---|---|
| Lembar desain karakter anak | Anak di bawah umur × fotorealisme | Media bergaya, tanpa pengukuran tubuh, kata-kata pakaian positif |
| Potret dewasa fotorealistik diblokir | Deskriptor seksual | Kata-kata mode/suasana hati; pertimbangkan moderation="low" |
| Makhluk fantasi gelap / horor | Anatomi gore | Suasana dan siluet alih-alih detail jaringan |
| Edit dengan foto referensi diblokir | Gambar input orang nyata / banyak kulit | Potong lebih ketat, gunakan referensi bergaya, hapus teks overlay |
| Prompt multi-panel panjang diblokir | Area permukaan prompt + daftar negatif | Hapus boilerplate, hapus daftar kata negatif |
| Karya bergaya jinak masih ditandai | Konservatisme pengklasifikasi | moderation="low" |
FAQ
Apakah saya membayar untuk pembuatan yang diblokir? Tidak. Di TokenLab, tugas yang diblokir moderasi gagal dan kuota yang telah dipotong dikembalikan secara otomatis dan penuh.
Apakah mencoba ulang prompt yang sama membantu? Tidak. Dalam 30 hari data, tidak ada satu pun tugas yang diblokir yang berhasil pada percobaan ulang yang tidak diubah. Ubah inputnya terlebih dahulu.
Apakah moderation="low" menonaktifkan pemfilteran keamanan? Tidak. Ini mengurangi keketatan; kategori konten ilegal tetap diblokir terlepas dari hal tersebut.
Apakah gambar referensi benar-benar dimoderasi? Ya — baik prompt maupun setiap gambar input difilter, dan tugas dengan gambar referensi diblokir lebih dari dua kali lipat tingkat teks saja dalam data kami.
Bisakah saya melihat aturan mana yang tepat yang aktif? Hanya pada tingkat moderation_details.categories yang kasar, dan hanya ketika upstream menyertakannya. Penyedia sengaja tidak mengekspos internal pengklasifikasi.
Batasan
Statistik di atas adalah agregat 30 hari dari lalu lintas produksi TokenLab dan mendeskripsikan kecenderungan, bukan jaminan; pengklasifikasi moderasi berubah seiring waktu, dan prompt yang sama dapat diperlakukan berbeda setelah pembaruan upstream. Contoh penulisan ulang adalah templat ilustratif, bukan data pelanggan. Selalu validasi terhadap perilaku saat ini dengan tes kecil sebelum menjalankan batch.
Untuk mencoba model ini, telusuri katalog model gambar, tinjau panduan pembuatan gambar asinkron untuk penanganan siklus hidup tugas, dan periksa docs.tokenlab.sh untuk format permintaan saat ini.



