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.mdpara 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-refapenas 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 Figura | Qualidade | Exemplos |
|---|---|---|
| Diagramas de arquitetura | Excelente | Arquitetura de modelo, pipeline, codificador-decodificador |
| Ilustrações de método | Excelente | Diagramas conceituais, fluxogramas de algoritmo |
| Figuras conceituais | Boa | Diagramas 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:
- Entender qual figura o usuário deseja
- Identificar todos os componentes, conexões e fluxo de dados
- Criar um prompt detalhado e estruturado para o Gemini
- 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]