Dados de prompts

A biblioteca de prompts do IMGPrompt é compilada de fontes online, do promptoMANIA, do sd-webui-prompt-all-in-one e do awesome-gpt-image-2-prompts (CC BY 4.0). Após desduplicação, padronização e localização em 18 idiomas, temos 5000+ entradas em 16 categorias principais e centenas de subcategorias.

Estrutura de dados

Todos os dados de prompts ficam em src/app/data:

src
└── app
    └── data
        ├── prompt              # Prompts em 18 idiomas
        │   ├── prompt-zh.json  # Chinês simplificado (fonte da verdade; os demais derivam dele)
        │   ├── prompt-en.json  # Inglês
        │   ├── prompt-ja.json  # Japonês
        │   └── ......          # Outros 15 idiomas
        └── prompt-custom.json  # Prompts definidos pelo usuário (carregados em todos os idiomas)

Cada prompt é um objeto JSON:

{
  "displayName": "portrait",
  "langName": "Retrato",
  "object": "Figura",
  "attribute": "Básico",
  "description": "(Opcional) descrição ou crédito de autoria",
  "preview": "(Opcional) URL da imagem de prévia"
}

Referência de campos

Campo Obrigatório Descrição
displayName ✅ Sim Prompt em inglês único — o texto realmente inserido na caixa de prompt
langName ✅ Sim Rótulo localizado exibido na interface
object ✅ Sim Categoria principal (ex.: Figura, Ambiente, Fotografia, Estilo artístico)
attribute ✅ Sim Subcategoria (ex.: Básico, Expressão, Identidade, Idade)
description ❌ Não Texto extra exibido no balão de prévia (créditos de autoria, dicas de uso etc.) — aparece ao passar o mouse (desktop) / tocar e segurar (toque)
preview ❌ Não URL da imagem de prévia — exibida no balão ao passar o mouse (desktop) ou tocar e segurar ~0,5 s (toque); clique / toque na miniatura para abrir o lightbox

💡 O campo preview alimenta a experiência de prévia ao passar o mouse / toque longo + zoom com um clique. O desktop usa hover; dispositivos de toque usam toque longo, então um toque rápido continua apenas adicionando / removendo a tag.

Dicas de higiene dos dados

  • Mantenha o displayName único — duplicatas são ignoradas e pioram a qualidade das sugestões.
  • Convenção de vírgulas: ", " (vírgula + espaço) é o separador de tags do app; entradas agregadas devem unir as palavras com "," sem espaço (ex.: snow,ice). Vírgulas com espaço ou de largura total são rejeitadas no build (validação sliceData).
  • Reutilize os mesmos valores de object / attribute entre idiomas para manter a navegação consistente.
  • Mantenha o langName conciso para evitar truncamento dos chips.
  • Para o preview, WebP ≤ 150 KB com proporção 1:1 (quadrada) renderiza melhor dentro do balão de prévia.

Adicionando prompts personalizados

Use o Conversor de Dados do IMGPrompt para converter seus dados ao formato padrão e salve em src/app/data/prompt-custom.json. Esse arquivo é carregado na inicialização e vale para todos os idiomas.

Exemplo:

[
  {
    "displayName": "cyberpunk cityscape",
    "langName": "Paisagem urbana cyberpunk",
    "object": "Ambiente",
    "attribute": "Cidade"
  },
  {
    "displayName": "cinematic lighting",
    "langName": "Iluminação cinematográfica",
    "object": "Efeitos de luz e sombra",
    "attribute": "Efeitos de iluminação",
    "description": "Luz direcional suave + luz de contorno para dar profundidade",
    "preview": "https://example.com/preview/cinematic.webp"
  }
]

Entradas personalizadas seguem exatamente as mesmas regras de exibição das nativas: inclua um preview para habilitar a prévia ao passar o mouse / toque longo + zoom com um clique.