Données de prompts

La bibliothèque de prompts d'IMGPrompt est compilée à partir de sources en ligne, de promptoMANIA, de sd-webui-prompt-all-in-one et de awesome-gpt-image-2-prompts (CC BY 4.0). Après déduplication, normalisation et localisation en 18 langues, elle compte 5000+ entrées réparties dans 16 catégories principales et des centaines de sous-catégories.

Structure des données

Toutes les données de prompts résident sous src/app/data :

src
└── app
    └── data
        ├── prompt              # Prompts en 18 langues
        │   ├── prompt-zh.json  # Chinois simplifié (référence ; les autres en dérivent)
        │   ├── prompt-en.json  # Anglais
        │   ├── prompt-ja.json  # Japonais
        │   └── ......          # 15 autres langues
        └── prompt-custom.json  # Prompts définis par l'utilisateur (chargés pour toutes les langues)

Chaque prompt est un objet JSON :

{
  "displayName": "portrait",
  "langName": "Portrait",
  "object": "Personnage",
  "attribute": "Basique",
  "description": "(Facultatif) description ou crédit d'auteur",
  "preview": "(Facultatif) URL de l'image d'aperçu"
}

Référence des champs

Champ Obligatoire Description
displayName ✅ Oui Prompt anglais unique — le texte réellement inséré dans la zone de prompt
langName ✅ Oui Libellé localisé affiché dans l'interface
object ✅ Oui Catégorie principale (ex. Personnage, Environnement, Photographie, Style artistique)
attribute ✅ Oui Sous-catégorie (ex. Basique, Peau, Effets de lumière, Ville)
description ❌ Non Texte supplémentaire affiché dans la fenêtre d'aperçu (crédits d'auteur, notes d'usage, etc.) — visible au survol (ordinateur) / appui long (tactile)
preview ❌ Non URL de l'image d'aperçu — affichée dans la fenêtre au survol (ordinateur) ou après un appui long ~0,5 s (tactile) ; cliquez / touchez la miniature pour ouvrir la lightbox

💡 Le champ preview alimente l'aperçu au survol / appui long et le zoom au clic. L'ordinateur utilise le survol, les écrans tactiles l'appui long ; un appui bref se contente donc toujours d'ajouter / retirer le tag.

Conseils d'hygiène des données

  • Gardez displayName unique — les doublons sont ignorés et dégradent la qualité des suggestions.
  • Convention de virgule : ", " (virgule + espace) est le séparateur de tags de l'application ; les entrées agrégées doivent coller les mots-clés avec une "," sans espace (ex. snow,ice). Les virgules espacées ou pleine chasse sont rejetées à la compilation (validation sliceData).
  • Réutilisez les mêmes valeurs object / attribute d'une langue à l'autre pour garder une navigation cohérente.
  • Gardez langName concis pour éviter que les puces ne soient tronquées.
  • Pour preview, un WebP ≤ 150 KB au format carré (1:1) s'affiche au mieux dans la fenêtre de survol / appui long.

Ajouter des prompts personnalisés

Utilisez le convertisseur de données IMGPrompt pour convertir vos données au format standard, puis enregistrez-les dans src/app/data/prompt-custom.json. Ce fichier est chargé au démarrage et s'applique à toutes les langues.

Exemple :

[
  {
    "displayName": "cyberpunk cityscape",
    "langName": "Ville cyberpunk",
    "object": "Environnement",
    "attribute": "Ville"
  },
  {
    "displayName": "cinematic lighting",
    "langName": "Éclairage cinématique",
    "object": "Effets d'ombre et de lumière",
    "attribute": "Effets de lumière",
    "description": "Lumière directionnelle douce + rétroéclairage pour la profondeur",
    "preview": "https://example.com/preview/cinematic.webp"
  }
]

Les entrées personnalisées suivent exactement les mêmes règles d'affichage que les entrées intégrées : ajoutez un preview pour activer l'aperçu au survol / appui long et le zoom au clic.