CommunityImagemgithub.com

erlingerwu0925/paper-illustration

Gere ilustrações de qualidade de publicação para artigos acadêmicos usando o Gemini. Cria diagramas de arquitetura, ilustrações de métodos com um loop de refinamento iterativo supervisionado pelo Claude.

O que é paper-illustration?

Esta skill implementa um fluxo de trabalho multi-estágio para gerar ilustrações de alta qualidade para artigos acadêmicos, utilizando o Claude como supervisor e revisor rigoroso em cada etapa. O processo começa com o Claude interpretando a solicitação do usuário e criando um prompt detalhado. Em seguida, o Gemini é usado para otimizar o layout e verificar a conformidade com os padrões visuais de conferências de ponta como CVPR, ICLR e NeurIPS. Um modelo de imagem especializado do Gemini (codinome Nano Banana Pro) gera a imagem final. O Claude então realiza uma revisão visual rigorosa, atribuindo uma pontuação de 1 a 10. Se a pontuação for inferior a 9, feedback específico é gerado e o processo itera a partir da etapa de layout, com um máximo de 5 iterações. A skill também oferece um recurso opcional `--style-ref` para alinhar a densidade de figuras e o comprimento das legendas com um artigo de referência, sem copiar conteúdo visual. Suporta diversas fontes, como diretórios locais TeX, PDFs, IDs do arXiv e URLs http(s). A saída padrão é salva no diretório `figures/ai_generated/`.

Funciona com✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/erlingerwu0925/Skills/tree/HEAD/collections/02-autonomous-research/ARIS/skills/paper-illustration

Installed? Explore more Imagem skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Perguntar na sua IA favorita

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

Documentação

Paper Illustration: Geração de Figuras Multi-Estágio Supervisionada por Claude

Gere ilustrações de qualidade de publicação usando um fluxo de trabalho multi-estágio com o Claude como supervisor/revisor RIGOROSO.

Filosofia de Design Central

┌──────────────────────────────────────────────────────────────────────────┐
│                    FLUXO DE TRABALHO ITERATIVO MULTI-ESTÁGIO            │
├──────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│   Solicitação do Usuário                                                 │
│       │                                                                  │
│       ▼                                                                  │
│   ┌─────────────┐                                                        │
│   │   Claude    │ ◄─── Etapa 1: Analisar solicitação, criar prompt inicial │
│   │  (Planejador)│                                                        │
│   └──────┬──────┘                                                        │
│          │                                                               │
│          ▼                                                               │
│   ┌─────────────┐                                                        │
│   │   Gemini    │ ◄─── Etapa 2: Otimizar descrição do layout             │
│   │ (gemini-3-pro)│      - Refinar posicionamento dos componentes        │
│   │  Layout     │      - Otimizar espaçamento e agrupamento              │
│   └──────┬──────┘                                                        │
│          │                                                               │
│          ▼                                                               │
│   ┌─────────────┐                                                        │
│   │   Gemini    │ ◄─── Etapa 3: Verificação de estilo CVPR/NeurIPS      │
│   │ (gemini-3-pro)│      - Verificar conformidade da paleta de cores       │
│   │  Estilo     │      - Verificar padrões de setas e fontes             │
│   └──────┬──────┘                                                        │
│          │                                                               │
│          ▼                                                               │
│   ┌─────────────┐                                                        │
│   │ Paperbanana │ ◄─── Etapa 4: Renderizar imagem final                 │
│   │ (gemini-3-  │      - Geração de imagem de alta qualidade              │
│   │ pro-image)  │      - Nome interno: Nano Banana Pro                   │
│   └──────┬──────┘                                                        │
│          │                                                               │
│          ▼                                                               │
│   ┌─────────────┐                                                        │
│   │   Claude    │ ◄─── Etapa 5: Revisão visual RIGOROSA + NOTA (1-10)   │
│   │  (Revisor)  │      - Verificar CADA direção de seta                 │
│   │   RIGOROSO! │      - Verificar CADA conteúdo de bloco              │
│   └──────┬──────┘      - Verificar estética e apelo visual               │
│          │                                                               │
│          ▼                                                               │
│   Nota ≥ 9? ──SIM──► Aceitar & Entregar                                 │
│          │                                                               │
│          NÃO                                                             │
│          │                                                               │
│          ▼                                                               │
│   Gerar feedback de melhoria ESPECÍFICO ──► Loop de volta para Etapa 2 │
│                                                                          │
└──────────────────────────────────────────────────────────────────────────┘

Constantes

  • IMAGE_MODEL = gemini-3-pro-image-preview — Paperbanana (Nano Banana Pro) para renderização de imagem
  • REASONING_MODEL = gemini-3-pro-preview — Gemini para otimização de layout e verificação de estilo
  • MAX_ITERATIONS = 5 — Rodadas máximas de refinamento
  • TARGET_SCORE = 9 — Nota mínima aceitável (1-10) — AUMENTADA PARA QUALIDADE
  • OUTPUT_DIR = figures/ai_generated/ — Diretório de saída
  • API_KEY_ENV = GEMINI_API_KEY — Variável de ambiente

Opcional: Referência de estilo (— style-ref: <fonte>, opt-in)

Permite que o usuário direcione as convenções estruturais da figura (comprimento da legenda, distribuição do número de painéis, proporção figura-para-tabela no artigo pai) em direção a um artigo de referência. Padrão DESLIGADO — quando o usuário não passar — style-ref, não faça nada diferente de antes.

Apenas quando — style-ref: <fonte> aparecer em $ARGUMENTS, execute o helper PRIMEIRO, antes de gerar os prompts:

# Resolver $STYLE_HELPER via a cadeia canônica strict-safe (veja
# shared-references/integration-contract.md §2). Política A — portão:
# helper não resolvido significa que --style-ref não pode ser atendido, então abortar.
cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1
if [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills.txt ]; then
    ARIS_REPO=$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null) || true
fi
if [ -z "${ARIS_REPO:-}" ] && [ -f "$HOME/.aris/repo" ]; then
    ARIS_REPO=$(cat "$HOME/.aris/repo" 2>/dev/null) || true
fi
STYLE_HELPER=".aris/tools/extract_paper_style.py"
[ -f "$STYLE_HELPER" ] || STYLE_HELPER="tools/extract_paper_style.py"
[ -f "$STYLE_HELPER" ] || { [ -n "${ARIS_REPO:-}" ] && STYLE_HELPER="$ARIS_REPO/tools/extract_paper_style.py"; }
[ -f "$STYLE_HELPER" ] || {
  echo "ERRO: extract_paper_style.py não resolvido em .aris/tools/, tools/, \$ARIS_REPO/tools/, ou via ~/.aris/repo." >&2
  echo "       Correção: reexecute bash tools/install_aris.sh ou smart_update.sh (atualiza ~/.aris/repo), export ARIS_REPO, ou copie o helper para tools/." >&2
  echo "       --style-ref não pode ser atendido; abortando." >&2
  exit 1
}
STYLE_STATUS=0
CACHE=$(python3 "$STYLE_HELPER" --source "<source>") || STYLE_STATUS=$?
case "$STYLE_STATUS" in
  0) ;;                                       # usar $CACHE/style_profile.md como orientação estrutural
  2) echo "aviso: style-ref ignorado (dep opcional ausente)" >&2 ;;
  3) echo "erro: fonte --style-ref falhou; abortando ilustração" >&2 ; exit 1 ;;
  *) echo "erro: helper falhou inesperadamente; abortando ilustração" >&2 ; exit 1 ;;
esac

Fontes aceitas: diretório/arquivo TeX local, PDF local, ID arXiv, URL http(s). URLs/IDs do Overleaf são rejeitados — clone via /overleaf-sync setup <id> primeiro e passe o caminho do clone local.

Regras estritas (contrato completo na docstring de tools/extract_paper_style.py):

  • Use style_profile.md para alinhar o comprimento da legenda e a densidade de figuras com o artigo de referência. Os padrões visuais CVPR/ICLR/NeurIPS acima ainda têm precedência — --style-ref apenas refina tendências de comprimento e densidade, nunca o conteúdo da imagem.
  • Nunca copie conteúdo de figura, paletas de cores ou elementos de design específicos de qualquer coisa acessível através do cache. O design visual vem do prompt do usuário, não da referência.
  • Nunca passe — style-ref (ou o conteúdo do cache) para os subagentes verificadores visuais Claude / verificadores de raciocínio Gemini quando eles avaliarem a imagem gerada — a imagem deve ser julgada por seus próprios méritos.

Guia de Estilo para Conferências de Alto Nível CVPR/ICLR/NeurIPS

O que "Estilo CVPR" realmente significa:

Padrões Visuais

  • Fundo branco limpo — Sem padrões decorativos ou gradientes (a menos que sutis)
  • Fontes sem serifa — Arial, Helvetica ou Computer Modern; mínimo 14pt
  • Paleta de cores sutis — Não usar arco-íris; usar 3-5 cores coordenadas
  • Adequado para impressão — Deve ser legível em escala de cinza (muitos revisores imprimem artigos)
  • Bordas profissionais — Finas (2-3px), cores sólidas, não chamativas

Padrões de Layout

  • Fluxo horizontal — Da esquerda para a direita é o padrão para pipelines
  • Agrupamento claro — Use caixas de fundo sutis para agrupar módulos relacionados
  • Tamanho consistente — Componentes similares devem ter tamanhos similares
  • Espaço em branco equilibrado — Nem apertado, nem esparso

Padrões de Setas (MAIS CRÍTICO)

  • Traços grossos — Mínimo 4-6px (setas finas desaparecem quando impressas)
  • Pontas de seta claras — Pontas triangulares grandes e preenchidas
  • Cores escuras — Preto ou cinza escuro (#333333); evitar setas coloridas
  • Rotuladas — Cada seta deve indicar quais dados fluem através dela
  • Sem cruzamentos — Reorganize o layout para evitar cruzamentos de setas
  • DIREÇÃO CORRETA — As setas devem apontar para o alvo CORRETO!

Apelo Visual (科研风格 - Estilo Acadêmico Profissional)

Objetivo: nem conservador nem chamativo, encontrar o equilíbrio

✅ Elementos visuais que devem ter:

  • Preenchimentos com gradiente sutil — Gradientes suaves da mesma cor (do claro ao escuro), não coloridos
  • Cantos arredondados — Retângulos arredondados (raio 6-10px), toque moderno, mas sem exagero
  • Hierarquia visual clara — Diferenciar níveis por tamanho e intensidade de cor
  • Codificação de cores consistente — Esquema de cores unificado (3-4 cores principais)
  • Estrutura interna — Módulos grandes mostrando subcomponentes internos (ex.: estrutura de camadas dentro do Encoder)
  • Tipografia profissional — Rótulos claros, hierarquia de tamanhos de fonte adequada

✅ Sugestão de cores (acadêmico profissional):

  • Entradas: Verde suave (#10B981 / #34D399)
  • Encoders: Azul profissional (#2563EB / #3B82F6)
  • Fusão: Roxo elegante (#7C3AED / #8B5CF6)
  • Saídas: Laranja quente (#EA580C / #F97316)
  • Setas: Preto ou cinza escuro (#333333 / #1F2937)
  • Fundo: Branco puro (#FFFFFF), sem padrões

❌ Decorações excessivas a evitar:

  • ❌ Esquemas de cores arco-íris
  • ❌ Sombras pesadas
  • ❌ Efeitos 3D / perspectiva
  • ❌ Gradientes excessivos (multicoloridos exagerados)
  • ❌ Clip art / ícones de desenho animado
  • ❌ Padrões decorativos no fundo
  • ❌ Efeitos brilhantes
  • ❌ Muitos ícones pequenos

✓ Efeito visual ideal:

  • Parecer profissional e claro à primeira vista
  • Ter apelo visual moderado, mas não chamativo
  • Atender aos padrões estéticos de artigos CVPR/NeurIPS
  • Adequado para impressão (legível em modo escala de cinza)
  • Parecer um gráfico acadêmico bem projetado, não um modelo do PowerPoint

O que EVITAR (CRÍTICO)

  • ❌ Esquemas de cores arco-íris (muitas cores)
  • ❌ Setas finas como fios de cabelo (as setas devem ser GROSSAS)
  • ❌ Conexões não rotuladas
  • ❌ Retângulos simples e chatos (adicione algum interesse visual)
  • ❌ Excesso de decoração com sombras/brilhos/ícones (muito chamativo)
  • ❌ Texto pequeno ilegível quando impresso
  • ❌ Direções de setas ERRADAS — Isso é INACEITÁVEL!

Escopo

Tipo de FiguraQualidadeExemplos
Diagramas de arquiteturaExcelenteArquitetura de modelo, pipeline, codificador-decodificador
Ilustrações de métodoExcelenteDiagramas conceituais, fluxogramas de algoritmo
Figuras conceituaisBoaDiagramas de comparação, árvores de taxonomia

Não para: Gráficos estatísticos (use /paper-figure), imagens fotorrealistas

Fluxo de Trabalho: DEVE EXECUTAR TODAS AS ETAPAS

Etapa 0: Verificação Pré-voo

# Verificar chave de API
if [ -z "$GEMINI_API_KEY" ]; then
    echo "ERRO: GEMINI_API_KEY não definida"
    echo "Obtenha sua chave em: https://aistudio.google.com/app/apikey"
    echo "Defina-a: export GEMINI_API_KEY='sua-chave'"
    exit 1
fi

# Criar diretório de saída
mkdir -p figures/ai_generated

Etapa 1: Claude Planeja a Figura (VOCÊ ESTÁ AQUI)

CRÍTICO: Claude deve primeiro analisar a solicitação do usuário e criar um prompt detalhado.

Analisar a entrada: $ARGUMENTS

Tarefa do Claude:

  1. Entender qual figura o usuário deseja
  2. Identificar todos os componentes, conexões e fluxo de dados
  3. Criar um prompt detalhado e estruturado para o Gemini
  4. Incluir requisitos de estilo E requisitos de apelo visual

Modelo de Prompt para Claude gerar:

Crie um diagrama acadêmico PROFISSIONAL e VISUALMENTE ATRATIVO, com qualidade de publicação, seguindo os padrões CVPR/ICLR/NeurIPS.

## Estilo Visual: 科研风格 (Estilo Acadêmico Profissional)
### Objetivo: Equilíbrio — nem conservador nem chamativo

#### FAZER (deve ter):
- **Gradientes sutis** — Gradientes suaves da mesma cor (ex.: #2563EB → #3B82F6), não multicoloridos
- **Cantos arredondados** — Retângulos arredondados (6-10px), toque moderno
- **Hierarquia visual clara** — Diferenciar níveis por tamanho e intensidade de cor
- **Estrutura interna** — Módulos grandes mostrando subcomponentes
- **Codificação de cores consistente** — Esquema unificado de 3-4 cores
- **Acabamento profissional** — Refinado, mas sem exagero

#### NÃO FAZER (não deve ter):
- ❌ Gradientes arco-íris/multicoloridos
- ❌ Sombras pesadas
- ❌ Efeitos 3D / perspectiva
- ❌ Efeitos brilhantes
- ❌ Ícones decorativos excessivos
- ❌ Retângulos simples e chatos

#### Efeito ideal:
Como um diagrama de arquitetura bem projetado de um artigo de conferência de ponta — profissional, claro, com apelo visual moderado

## Tipo de Figura
[Diagrama de Arquitetura / Pipeline / Comparação / etc.]

## Componentes a Incluir (SEJA ESPECÍFICO SOBRE O CONTEÚDO)
1. [Componente 1]:
   - Rótulo: "[texto exato]"
   - Sub-rótulo: "[texto menor abaixo]"
   - Posição: [esquerda/centro/direita, topo/meio/fundo]
   - Estilo: [cor da borda, preenchimento, estrutura interna]
2. [Componente 2]: ...

## Layout
- Direção: [esquerda-para-direita / cima-para-baixo]
- Espaçamento: [apertado / normal / solto]
- Agrupamento: [como os componentes devem ser agrupados]

## Conexões (SEJA EXPLÍCITO SOBRE A DIREÇÃO)
Especificações EXATAS das setas:
1. [Componente A] → [Componente B]: Seta vai DE A PARA B, rotulá-la como "[tipo de dado]"
2. [Componente C] → [Componente D]: Seta vai DE C PARA D, rotulá-la como "[tipo de dado]"
...
VERIFICAR: Cada seta deve apontar para o alvo CORRETO!

## Requisitos de Estilo (Padrão CVPR/ICLR/NeurIPS)

### Estilo Visual
- Paleta de cores: Cores acadêmicas profissionais
  - Entradas: Verde (#10B981)
  - Encoders: Azul (#2563EB)
  - Módulos de fusão: Roxo (#7C3AED)
  - Saídas: Laranja (#EA580C)
- Fonte: Sem serifa (Arial/Helvetica), mínimo 14pt, negrito para rótulos
- Fundo: Branco limpo, sem padrões
- Blocos: Retângulos arredondados (raio 8-12px), preenchimento com gradiente sutil, borda colorida (2-3px)
- Sombras sutis para efeito de profundidade
- Adequado para impressão (deve funcionar em escala de cinza)

### CRÍTICO: Requisitos de Seta e Fluxo de Dados
1. **TODAS as setas devem ser MUITO GROSSAS** - largura de traço mínima de 5-6px
2. **TODAS as setas devem ter PONTAS CLARAS** - pontas triangulares grandes e visíveis
3. **TODAS as setas devem ser PRETAS ou CINZA ESCURO** - não coloridas
4. **Rotular CADA seta** com quais dados fluem através dela
5. **VERIFICAR a direção da seta** - cada seta DEVE apontar para o alvo correto
6. **Sem conexões ambíguas** - cada seta deve ter uma origem e um destino claros

### Requisitos de Clareza Lógica
1. **O fluxo de dados deve ser imediatamente óbvio** - o visualizador deve entender o pipeline

...

[truncado para tradução]

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Habilidades Relacionadas