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
previewalimenta 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çãosliceData). - Reutilize os mesmos valores de
object/attributeentre idiomas para manter a navegação consistente. - Mantenha o
langNameconciso 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.