ink-wash-restyle — Ilustração de Diário de Viagem em Estilo Nanquim (versão v16 fixa)
Transforme qualquer foto em uma ilustração de diário de viagem com traços de tinta nanquim, feita à mão:
- Preto e branco como base: 5 camadas de nanquim + grandes áreas de espaço vazio (prioridade do nanquim)
- Pinceladas coloridas contidas (cerca de 20%): apenas no centro visual, com cores tradicionais chinesas, sem roubar a cena do nanquim
- Etiqueta de diário de viagem: texto "descrição da cena · local" sobreposto na imagem + um selo fixo em cinábrio, como em um caderno de viagem
Preserva: categoria do sujeito, relações espaciais, identidade da pessoa (gênero / idade / aparência chave). Substitui: textura realista → pinceladas de nanquim, luz e sombra fotográficos → fluidez do nanquim e espaço vazio, cores realistas → cores tradicionais chinesas localizadas.
Quando acionar
Quando o usuário enviar ou referenciar uma foto e expressar intenções como "nanquim / shuimo / sumi-e / estilo chinês / diário de viagem / caderno de viagem / ink wash / shuimo / sumi-e". Esta skill faz apenas nanquim, nenhum outro estilo.
Contrato de entrada
- Obrigatório: 1 foto (caminho local, URL ou imagem enviada)
- Opcional: local (ex.: "ruas de Chengdu") — usado na etiqueta de diário; se ausente, escreve apenas a descrição da cena, ou "Anotações de Viagem"
Regras principais de estilo (6 Leis de Ferro)
🎨 1. Lei de Ferro: Prioridade do nanquim
Preto e branco são os protagonistas, a cor é um detalhe. Cores em excesso / muito vibrantes estragam a sensação de nanquim (lição do demo-016). Portanto:
- Cobertura de cor ≤ 20%: apenas no centro visual, controlando cerca de 20% da imagem
- Preto e branco + cor direta: tom preto e branco + um ponto de cor direta (sem misturar várias cores, sem gradientes, sem grandes áreas de lavagem)
- Contenção: melhor menos cor do que excesso; a cor deve ser sutil, como na pintura tradicional de literatos "poupar a cor como ouro"
- Prioridade do nanquim: as 5 camadas de nanquim, o espaço vazio e as pinceladas devem ter presença mais forte que a cor
🎨 2. Lei de Ferro: 5 camadas de nanquim + espaço vazio
- As 5 camadas de nanquim devem ser distintas: queimado / denso / pesado / claro / límpido, proibido cinza uniforme
- Espaço vazio ≥ 50%: a área total de espaços vazios na imagem deve ser ≥ 50%
- 🚨 Lei de Ferro do tamanho do sujeito (mais importante): a pessoa / sujeito deve manter o tamanho proporcional normal (próximo da proporção na foto original), proibido reduzir o sujeito para criar espaço vazio. Espaço vazio é "vazio no fundo e nas bordas", não "sujeito pequeno". A pessoa deve ser grande, completa e ocupar com confiança a posição principal
- Poupar nanquim como ouro: toda a imagem deve ter 1 área concentrada de nanquim denso (no sujeito), com área pequena
- Contraste densidade/vazio: sujeito substancial, fundo etéreo — o vazio realça o cheio — o vazio está no fundo, não no sujeito
🚨 3. Lei de Ferro: Identidade da pessoa bloqueada (lição de deriva de gênero)
- Proibido absolutamente termos genéricos:
a person/a figure/someone/a lone traveler/a small figure - Deve escrever explicitamente: gênero + faixa etária + cor e estilo de cabelo + roupas + acessórios + pose e orientação
- Seguir direção xieyi (写意): linhas fluidas das roupas, rosto em espaço vazio ou alguns traços sugestivos
- Proibido verbos como drip/melt/flow (transformariam a pessoa em líquido escorrendo)
✍️ 4. Lei de Ferro: Três elementos do Xieyi (写意)
- Intenção antes do traço: objetos desenhados apenas 7/10, formas desaparecem antes de completar
- Uso caligráfico do pincel: pressão, pausa, arrastão seco, pincel seco (feibai)
- Acaso da tinta: tinta úmida se infiltrando, quebra da tinta, lavagem da tinta
- Reduzir o complexo ao simples: remove-se objetos de fundo (prateleiras, veículos, placas, cestos, pessoas extras), o sujeito em si deve ser completo, substancial e manter o tamanho normal — só remove o ambiente, não o sujeito
🎨 5. Lei de Ferro: Proporção automática de pinceladas coloridas (20%)
- Quem é o centro visual: o sujeito de maior tamanho / mais brilhante / mais à frente / mais único na composição
- Qual cor usar: matiz natural do sujeito → cor tradicional chinesa (cinábrio / carmim / azul índigo / verde mineral / amarelo gengibre / ocre)
- Proporção 20%: apenas pintar no centro visual, cerca de 20% da imagem
- Restante 100% nanquim preto e branco
📝 6. Lei de Ferro: Etiqueta de diário de viagem (forma final v16)
Toda imagem finalizada deve ter a etiqueta de diário sobreposta. Forma = estilo tradicional de inscrição em pintura chinesa: caracteres em nanquim + selo em cinábrio diretamente sobre a imagem, sem nenhum "cartão / fundo / moldura" (a estética do nanquim é perdida com cartões).
- Conteúdo da etiqueta: descrição da cena + local (ex.: "Barraca de melão no verão · Ruas de Chengdu"; se local ausente, apenas descrição da cena)
- Método de sobreposição: proibido fazer o modelo de image-to-image gerar o texto diretamente (causa caracteres ilegíveis); deve usar
scripts/tag.py(versão v6 com material) após a geração - Estilo template (aparência uniforme, não muda com a imagem):
- Posição: canto superior direito, vertical (versão v17) — posição clássica de inscrição em pintura chinesa
- Texto da inscrição: fonte Songti (Songti, traços horizontais finos e verticais grossos), cor nanquim escura (#1E1E1E) opaca, cada caractere em uma coluna de cima para baixo
- Halo bege: cada caractere com contorno de 4px bege (#F5F0E6) semi-transparente (alpha 175), para garantir legibilidade mesmo em fundo escuro
- Selo em cinábrio = material de selo real gerado por IA: selo vermelho cinábrio em estilo zhuanke (篆刻), texto branco vertical, marcas de cinzel, textura de carimbo, bordas irregulares. Gerado uma vez por modelo de image-to-image AI +
scripts/seal-bake.pypara extrair fundo transparente, material fixo armazenado emassets/seal-la.png, mesma imagem colada em cada foto (PIL não consegue simular textura real de selo, deve ser material gerado por IA). Todas as imagens usam o mesmo material de selo, não alterar. O selo é colado abaixo do final da coluna de texto (centralizado horizontalmente) - Forma geral: caracteres em nanquim + selo vermelho integrados na imagem, sem quebrar a estética da tinta
- Ordem das etiquetas: modelo image-to-image gera a imagem → aplicar etiqueta (tag.py v7) → montar imagem comparativa (usando a imagem final com etiqueta, embaixo)
Fluxo de trabalho
Passo 1 — Analisar entrada
Confirmar que a imagem está acessível; perguntar / registrar o local (se o usuário não disser, não escrever).
Passo 2 — Compreensão da imagem (incluindo esquema de cores + decisão da etiqueta)
Ler a imagem, extrair (obrigatório):
- Identidade da pessoa: gênero + faixa etária + cor e estilo de cabelo + roupas + acessórios + pose e orientação (escrever no prompt, proibido termos genéricos)
- Sujeito: objeto / cena principal
- 🎨 Determinação do centro visual
{focus}: o que mais chama a atenção? - 🎨 Esquema de cores
{color_scheme}: matiz natural do centro visual → cor tradicional chinesa - 📝 Texto da etiqueta
{tag_text}: descrição da cena (3–8 caracteres) + local (opcional), ex.: "Sorriso sob a videira · Mercado velho" - Composição / Iluminação / Atmosfera
Passo 3 — Construir prompt
Ler o template styles/ink-wash.md, preencher as variáveis.
Passo 4 — Chamar a capacidade de image-to-image da plataforma hospedeira
mode : image-to-image (plataforma hospedeira, segue a imagem original)
input_image : imagem original
prompt : prompt completo (incluindo LOCKED APPEARANCE + COLOR ACCENT 20% + 5 camadas de nanquim + espaço vazio ≥50% + lei de ferro do tamanho do sujeito + XIEYI)
fidelity : medium
aspect : seguir a imagem original
⚠️ Deve passar explicitamente output_dir para <workspace>/outputs/photo-restyle/<YYYYMMDD-HHMM>/, proibido depender do diretório padrão.
Passo 5 — Entrega (primeiro aplicar etiqueta, depois montar)
scripts/tag.pysobrepõe a etiqueta de diário na imagem de nanquim →<nome da imagem original>-inkwash-tagged.pngscripts/compare.pymonta imagem comparativa vertical: imagem original em cima / imagem final com etiqueta embaixo (largura padrão 1600, garantindo etiqueta legível) →compare-<nome da imagem original>-inkwash.png- Saída principal = imagem comparativa vertical (imagem com etiqueta embaixo); imagem tagged e imagem nanquim pura são apenas anexos
- Marcar o nome do estilo "Nanquim Diário de Viagem"
Restrições rígidas (não contornáveis)
- ❌ Proibido saída exclusivamente preto e branco — cor deve aparecer (cerca de 20%)
- ❌ Proibido cor > 20% (cor dominante = saída incorreta)
- ❌ Proibido cor no fundo / bordas (apenas no centro visual)
- ❌ Proibido cores modernas de alta saturação / roxo / fluorescentes / gradiente arco-íris (apenas cores tradicionais chinesas, aplicadas diretamente)
- ❌ Proibido fazer o modelo image-to-image gerar texto da etiqueta (causa caracteres ilegíveis) — deve usar
scripts/tag.pypara sobreposição - ❌ Se houver pessoa, proibido termos genéricos — deve especificar gênero / idade / aparência chave
- ❌ Proibido reduzir o sujeito para criar espaço vazio — o sujeito mantém o tamanho normal
- ✅ Nas saídas, marcar o nome do estilo "Nanquim Diário de Viagem"
- ✅ Saída principal deve ser imagem comparativa vertical (imagem original em cima / imagem com etiqueta embaixo); imagem tagged e imagem nanquim pura são apenas anexos
- ✅ Saída deve ir para diretório visível (ex.:
<workspace>/outputs/photo-restyle/), não em diretório oculto da plataforma
Tratamento de erros
| Situação | Ação |
|---|---|
| Sem imagem | Pedir ao usuário para enviar uma foto |
| Saída preto e branco / cor muito fraca | Verificar bloco COLOR ACCENT, enfatizar "color REQUIRED on {focus}, cerca de 20%" |
| Cor excessiva / proporção muito alta | Enfatizar "color only on {focus}, about 20% of the frame, keep it restrained", ou reduzir a descrição de {color_scheme} |
| Cor muito vibrante / moderna | Usar apenas nomes de cores tradicionais chinesas, enfatizar aplicação direta semi-transparente |
| Gênero / idade da pessoa deriva | Completar LOCKED APPEARANCE e reexecutar |
| Sujeito reduzido / espaço vazio domina o sujeito | Enfatizar SUBJECT SCALE: figure big, emptiness in background only |
| Etiqueta ilegível / ausente | Reaplicar com scripts/tag.py, proibido reexecutar image-to-image |
| Montagem comparativa falha / etiqueta ilegível na comparação | Verificar scripts/compare.py (largura padrão 1600), ou entregar duas imagens separadas |
Local de saída
<workspace>/outputs/photo-restyle/<YYYYMMDD-HHMM>/
├── <nome da imagem original>-inkwash.png # Anexo: imagem nanquim (sem etiqueta)
├── <nome da imagem original>-inkwash-tagged.png # Anexo: imagem final com etiqueta de diário
└── compare-<nome da imagem original>-inkwash.png # Saída principal: imagem comparativa vertical (original em cima / final com etiqueta embaixo)
Estrutura de diretórios da Skill
<diretório de skills da plataforma>/ink-wash-restyle/ (exemplo WorkBuddy: ~/.workbuddy/skills/ink-wash-restyle/)
├── SKILL.md # Este arquivo (regras de entrada)
├── styles/ink-wash.md # Template de prompt de nanquim (inclui LOCKED APPEARANCE / COLOR ACCENT / SUBJECT SCALE / XIEYI / palavras negativas)
├── scripts/
│ ├── tag.py # Sobreposição de etiqueta (v6: caracteres Songti + halo + colar material de selo)
│ ├── compare.py # Montagem de imagem comparativa vertical (largura padrão 1600)
│ ├── seal-bake.py # Ferramenta de extração de selo (material gerado por IA → fundo transparente)
│ └── prototype_seal.py # Ferramenta de depuração de comparação de estilos de selo (legado)
├── assets/
│ └── seal-la.png # Material de selo fixo em cinábrio (fundo transparente, gerado por IA)
└── examples/README.md # Explicação de exemplos
Histórico de versões
- v1–v5: Rota de nanquim puro preto e branco
- v6 (revertida): Carmim fixo no rosto
- v7: Imagem comparativa vertical como padrão
- v8: Fundo preto e branco + pinceladas coloridas (centro visual, proporção automática 15–35%)
- v9: Cor comprimida para ≤15% + lei de ferro da etiqueta de diário
- v9.1: Saída principal deve ser imagem comparativa vertical
- v10: Etiqueta com "cartão de fundo bege" (depois rejeitado)
- v11: Cor 20%; selo fixo; etiqueta como "etiqueta de papel de arroz" (depois rejeitado)
- v12: Etiqueta sem cartão (puramente inscrição) + espaço vazio 55%
- v13: Nova lei de ferro do tamanho do sujeito (espaço vazio ≠ reduzir sujeito), espaço vazio volta para 50%
- v14: Selo vertical + Songti (solução de fonte, depois rejeitado)
- v15: compare com largura padrão 1600 (etiqueta legível mesmo após redimensionamento)
- v16 (versão fixa atual): Selo alterado para material real de zhuanke gerado por IA (
assets/seal-la.png), tag.py v6 modo de colar material; todas as regras convergem para o estado descrito neste arquivo - v17: Usuário pediu "mantenha o resto igual, mude a etiqueta e a inscrição para canto superior direito vertical" → tag.py v7: posição de canto inferior esquerdo para canto superior direito, texto da inscrição vertical (cima → baixo), selo colado abaixo da coluna de texto (centralizado horizontalmente)
- v17 Correção de pinceladas (atualização de styles/ink-wash.md): Restaurar pinceladas xieyi no estilo "Cidade de telhados vermelhos / Banquete de caranguejos no outono" — ① Adicionar bloco CLEANLINESS v19 (limpo, nítido, não sujo) ② Cenarização dos três elementos XIEYI: fundo (montanhas distantes / céu / grandes áreas de cor) com lavagem de nanquim úmida (wet-on-wet ink wash, nanquim infiltrando no papel de arroz), primeiro plano (folhas de plantas / telhas / detalhes) com pincel seco (feibai). Validação: demo-058 Lanzarote, demo-059 Vila Branca Torre Ocre ambos estáveis no estilo cidade de telhados vermelhos