Data Prompt

Pustaka prompt IMGPrompt dihimpun dari koleksi daring, promptoMANIA, sd-webui-prompt-all-in-one, dan awesome-gpt-image-2-prompts (CC BY 4.0). Setelah deduplikasi, standardisasi, dan pelokalan ke 18 bahasa, terkumpul 5000+ entri prompt generasi gambar/video yang tersebar di 16 kategori utama dan ratusan subkategori.

Penjelasan Struktur Data

Semua data prompt tersimpan di direktori proyek src/app/data dengan struktur berikut:

src
└── app
    └── data
        ├── prompt              # Prompt dalam 18 versi bahasa
        │   ├── prompt-zh.json  # Mandarin Sederhana (sumber acuan; bahasa lain diturunkan darinya)
        │   ├── prompt-en.json  # Inggris
        │   ├── prompt-ja.json  # Jepang
        │   └── ......          # 15 bahasa lainnya
        └── prompt-custom.json  # Prompt kustom pengguna (dimuat untuk semua bahasa)

Setiap prompt berupa satu objek JSON:

{
  "displayName": "portrait",
  "langName": "Potret",
  "object": "Tokoh",
  "attribute": "Dasar",
  "description": "(Opsional) keterangan atau kredit pembuat",
  "preview": "(Opsional) URL gambar pratinjau"
}

Penjelasan Field

Field Wajib? Keterangan
displayName ✅ Ya Prompt bahasa Inggris (unik) — teks yang benar-benar disisipkan ke kotak prompt
langName ✅ Ya Terjemahan bahasa lokal/target, ditampilkan pada tag di UI
object ✅ Ya Kategori utama (mis. Tokoh / Lingkungan / Fotografi / Gaya seni)
attribute ✅ Ya Subkategori (mis. Dasar / Usia / Efek pencahayaan / Latar Belakang)
description ❌ Tidak Keterangan tambahan di popover pratinjau (kredit pembuat, tips pemakaian, dll.) — tampil saat hover di desktop / tekan lama di layar sentuh
preview ❌ Tidak URL gambar pratinjau — tampil di popover saat hover (desktop) atau tekan lama ±0,5 detik (sentuh); klik / ketuk thumbnail untuk membuka lightbox

💡 Field preview adalah sumber data fitur "pratinjau hover / tekan lama + klik untuk memperbesar". Desktop memakai hover, perangkat sentuh memakai tekan lama; ketukan singkat tetap hanya menambah / menghapus tag.

Tips Pemeliharaan Data

  • displayName harus unik — duplikat akan diabaikan dan menurunkan kualitas rekomendasi.
  • Kontrak koma: ", " (koma + spasi) adalah pemisah tag aplikasi; di dalam entri agregat gunakan "," tanpa spasi (mis. snow,ice). Koma berspasi atau koma lebar penuh akan ditolak saat build (validasi sliceData).
  • Gunakan ulang nilai object / attribute yang sama di semua bahasa agar navigasi kategori tetap konsisten.
  • Buat langName seringkas mungkin agar tampilan tag tidak terpotong.
  • Untuk preview, format WebP ≤ 150 KB dengan rasio persegi (1:1) tampil paling baik di popover hover / tekan lama.

Menambahkan Prompt Kustom

Untuk memperluas isi prompt, gunakan Konverter Data IMGPrompt untuk mengubah data kustom Anda ke format standar. Simpan hasil konversinya ke src/app/data/prompt-custom.json; file ini dimuat otomatis saat aplikasi dijalankan dan berlaku untuk semua bahasa.

Contoh:

[
  {
    "displayName": "cyberpunk cityscape",
    "langName": "Kota siberpunk",
    "object": "Lingkungan",
    "attribute": "Kota"
  },
  {
    "displayName": "cinematic lighting",
    "langName": "Pencahayaan sinematik",
    "object": "Efek cahaya dan bayangan",
    "attribute": "Efek pencahayaan",
    "description": "Cahaya terarah lembut + rim light untuk kesan dimensi",
    "preview": "https://example.com/preview/cinematic.webp"
  }
]

Entri kustom mengikuti aturan tampilan yang persis sama dengan entri bawaan: yang memiliki preview mendapat kemampuan pratinjau hover / tekan lama + klik untuk memperbesar.