Communitygithub.com

水墨游记 — Restyle ao Estilo Tinta Nanquim

Transforma qualquer foto em uma ilustração de diário de viagem com traços de tinta nanquim, combinando preto e branco com toques sutis de cores tradicionais chinesas e etiquetas de viagem.

O que é 水墨游记 — Restyle ao Estilo Tinta Nanquim?

Esta skill de agente AI (para plataformas como Claude Code, Cursor e WorkBuddy) permite transformar fotos comuns em ilustrações únicas no estilo *ink-wash* (shuimo), típico de diários de viagem pintados à mão. Ela segue regras rigorosas (6 Leis de Ferro) para garantir a estética tradicional chinesa: fundo em preto e branco com as 5 camadas de nanquim e áreas extensas de espaço vazio (≥ 50%), mantendo o tamanho do sujeito normal e sem encolhê-lo. Apenas cerca de 20% da imagem recebe cores tradicionais (como cinábrio, índigo, verde mineral) no centro visual, respeitando o princípio de 'poupar a cor como ouro'. Para retratos, é obrigatório descrever explicitamente gênero, faixa etária, cabelo e vestuário (proibindo termos genéricos como 'a person'). Cada imagem final recebe uma etiqueta de diário de viagem — texto descritivo + local — sobreposta por script (tag.py) no canto superior direito, em fonte vertical Songti e com um selo fixo em cinábrio gerado por IA (assets/seal-la.png). O resultado principal é uma imagem comparativa (original em cima, versão com etiqueta embaixo). A skill reside em ~/.workbuddy/skills/ink-wash-restyle e exige scripts auxiliares, templates de prompt e ativos de selo.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add zhaimengrica-bit/ai-design-skills-ink-wash-restyle

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

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:

  1. Cobertura de cor ≤ 20%: apenas no centro visual, controlando cerca de 20% da imagem
  2. 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)
  3. Contenção: melhor menos cor do que excesso; a cor deve ser sutil, como na pintura tradicional de literatos "poupar a cor como ouro"
  4. 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

  1. As 5 camadas de nanquim devem ser distintas: queimado / denso / pesado / claro / límpido, proibido cinza uniforme
  2. Espaço vazio ≥ 50%: a área total de espaços vazios na imagem deve ser ≥ 50%
  3. 🚨 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
  4. Poupar nanquim como ouro: toda a imagem deve ter 1 área concentrada de nanquim denso (no sujeito), com área pequena
  5. 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 (写意)

  1. Intenção antes do traço: objetos desenhados apenas 7/10, formas desaparecem antes de completar
  2. Uso caligráfico do pincel: pressão, pausa, arrastão seco, pincel seco (feibai)
  3. Acaso da tinta: tinta úmida se infiltrando, quebra da tinta, lavagem da tinta
  4. 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%)

  1. Quem é o centro visual: o sujeito de maior tamanho / mais brilhante / mais à frente / mais único na composição
  2. Qual cor usar: matiz natural do sujeito → cor tradicional chinesa (cinábrio / carmim / azul índigo / verde mineral / amarelo gengibre / ocre)
  3. Proporção 20%: apenas pintar no centro visual, cerca de 20% da imagem
  4. 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).

  1. 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)
  2. 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
  3. 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.py para extrair fundo transparente, material fixo armazenado em assets/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
  4. 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)

  1. scripts/tag.py sobrepõe a etiqueta de diário na imagem de nanquim → <nome da imagem original>-inkwash-tagged.png
  2. scripts/compare.py monta 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
  3. Saída principal = imagem comparativa vertical (imagem com etiqueta embaixo); imagem tagged e imagem nanquim pura são apenas anexos
  4. Marcar o nome do estilo "Nanquim Diário de Viagem"

Restrições rígidas (não contornáveis)

  1. ❌ Proibido saída exclusivamente preto e branco — cor deve aparecer (cerca de 20%)
  2. ❌ Proibido cor > 20% (cor dominante = saída incorreta)
  3. ❌ Proibido cor no fundo / bordas (apenas no centro visual)
  4. ❌ Proibido cores modernas de alta saturação / roxo / fluorescentes / gradiente arco-íris (apenas cores tradicionais chinesas, aplicadas diretamente)
  5. ❌ Proibido fazer o modelo image-to-image gerar texto da etiqueta (causa caracteres ilegíveis) — deve usar scripts/tag.py para sobreposição
  6. ❌ Se houver pessoa, proibido termos genéricos — deve especificar gênero / idade / aparência chave
  7. ❌ Proibido reduzir o sujeito para criar espaço vazio — o sujeito mantém o tamanho normal
  8. ✅ Nas saídas, marcar o nome do estilo "Nanquim Diário de Viagem"
  9. ✅ 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
  10. ✅ 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çãoAção
Sem imagemPedir ao usuário para enviar uma foto
Saída preto e branco / cor muito fracaVerificar bloco COLOR ACCENT, enfatizar "color REQUIRED on {focus}, cerca de 20%"
Cor excessiva / proporção muito altaEnfatizar "color only on {focus}, about 20% of the frame, keep it restrained", ou reduzir a descrição de {color_scheme}
Cor muito vibrante / modernaUsar apenas nomes de cores tradicionais chinesas, enfatizar aplicação direta semi-transparente
Gênero / idade da pessoa derivaCompletar LOCKED APPEARANCE e reexecutar
Sujeito reduzido / espaço vazio domina o sujeitoEnfatizar SUBJECT SCALE: figure big, emptiness in background only
Etiqueta ilegível / ausenteReaplicar com scripts/tag.py, proibido reexecutar image-to-image
Montagem comparativa falha / etiqueta ilegível na comparaçãoVerificar 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

Habilidades Relacionadas