/realismo
Imagem e vídeo de IA têm sempre o mesmo defeito: pele chapada, sem poro, cor saturada demais e ausência total de grão. O olho humano lê isso como falso antes mesmo de identificar o motivo. Esta skill devolve as três coisas que faltam, usando só ffmpeg, sem modelo de IA e sem enviar nada para fora da máquina.
Passo 1: localizar o script
O script fica em scripts/realismo.py, sempre irmão deste SKILL.md. Use o
caminho absoluto do diretório onde você leu este arquivo. Instalado pelo plugin,
esse diretório é ${CLAUDE_PLUGIN_ROOT}/skills/realismo.
No Windows use python, não python3 (o python3 é o stub da Microsoft Store).
python "${SKILL_DIR}/scripts/realismo.py" --help
Dependência única: ffmpeg no PATH. Se faltar, o script avisa e a instalação é
winget install Gyan.FFmpeg.
Passo 2: gerar o comparativo e pedir aprovação
Nunca rode o lote inteiro sem mostrar o antes e depois primeiro. O ponto certo do filtro depende do material, e refazer um lote grande é caro em tempo.
python "${SKILL_DIR}/scripts/realismo.py" "<pasta>" --so-comparar
Isso escreve realista/_comparativo_<nome>.jpg (ou .mp4) com quatro painéis
lado a lado: ANTES | DEPOIS | ANTES rosto | DEPOIS rosto. Os dois painéis de
rosto são o recorte em 100%, que é onde a diferença realmente aparece. No vídeo
o comparativo usa um trecho de 6s tirado de um terço da duração.
Leia o comparativo com a ferramenta Read e mostre ao usuário antes de processar
o resto. Se o enquadramento do zoom pegar o lugar errado, ajuste com
--rosto x,y,w,h em fração do quadro (padrão 0.25,0.08,0.50,0.35, calibrado
para UGC vertical com rosto no alto e ao centro).
Passo 3: processar
python "${SKILL_DIR}/scripts/realismo.py" "<arquivo-ou-pasta>"
Aceita arquivo solto ou pasta com imagem e vídeo misturados. A saída vai para a
subpasta realista, os originais nunca são tocados. Flags úteis:
| Flag | Efeito |
|---|---|
--nivel suave|medio|forte |
intensidade. Padrão medio |
--comparar |
processa e gera o comparativo |
--so-comparar |
só o comparativo, não processa o lote |
--saida DIR |
outra pasta de destino |
--rosto x,y,w,h |
recorte do zoom no comparativo |
--segundos N / --inicio N |
trecho do vídeo usado no comparativo |
Cada rodada grava realista/_realismo.log com o nível e a cadeia de filtros
exata usada, e os vídeos saem com comment=realismo=<nivel> nos metadados. Dá
para reproduzir ou auditar o tratamento depois.
Escolher o nível
O padrão é medio, definido em 19/09/2026 comparando antes e depois em
material real: um retrato gerado por IA e um vídeo de cabeça falante.
suave: foto de produto, qualquer peça que vá receber texto por cima, e imagem que já saiu de um upscaler. O grão come a legibilidade de texto.medio: rosto, cabeça falante, UGC. É o padrão.forte: só material muito chapado. Passa fácil do ponto: vigie nariz, bigode e sobrancelha, que endurecem primeiro e ganham cara de HDR.
A vinheta está ligada em todos os níveis. Se precisar tirar, remova
vignette=... das cadeias em scripts/realismo.py.
O que cada etapa faz
| Filtro | Papel | Por que a IA precisa |
|---|---|---|
unsharp raio 11 |
contraste local | a imagem sai chapada, sem volume |
cas |
microtextura | devolve poro, fio de cabelo, barba por fazer |
eq saturação < 1 |
correção de cor | IA satura demais pele e céu |
smartblur só no chroma |
cor mais mole que luz | é assim que sensor real se comporta |
noise |
grão de filme | o item que mais engana o olho |
vignette |
queda de luz nas bordas | toda lente real faz isso |
O smartblur de chroma só entra na cadeia de imagem. Em vídeo ele custa caro e
o ganho não aparece em 720p.
Onde entra no fluxo
É o último passo de imagem e vídeo, antes de queimar legenda. Aplicar o filtro depois da legenda coloca grão em cima do texto e fica feio.
Num fluxo típico de vídeo com IA: gerar a imagem → gerar o clipe → gerar a voz → lipsync → realismo → legenda.
Detalhe que vale dizer ao usuário: o ganho cresce com a resolução da fonte. Em 720x1280 o rosto ocupa pouca área e o filtro tem pouca informação para realçar. Se a peça for importante, vale gerar em 1080p na origem.
Para imagem existe um passo opcional que vale mais que o filtro: passar antes por um upscaler que regenera textura. A ordem é upscale e depois o filtro, nunca o contrário: o upscaler reconstrói detalhe que não existe, o filtro só realça o que já está lá.
Formatos
Entrada: .jpg .jpeg .png .webp e .mp4 .mov .mkv .webm .m4v.
Saída: imagem mantém a extensão (webp vira o mesmo nome com o filtro aplicado),
vídeo sai em H.264 CRF 17 com o áudio copiado sem recompressão. Se o codec de
áudio não couber em MP4, o script reencoda em AAC 192k automaticamente.
Segurança
Roda tudo local. Não sobe arquivo para lugar nenhum, não usa API, não altera os originais. A única escrita fora da pasta de saída é o log dentro dela.