Antes do advento das ferramentas generativas de IA, editar um lote de imagens seria um negócio sujo. Isso significaria pular entre três guias do navegador, fazer login em ferramentas nas quais você esqueceu que tinha uma conta e, ocasionalmente, ser solicitado a fornecer informações do seu cartão de crédito para baixar arquivos nos quais você está trabalhando há algum tempo. Foi uma tarefa tediosa, que na verdade é uma tarefa bastante simples.
Agora as coisas são um pouco diferentes. Desde o advento do Claude da Anthropic, a criação de um utilitário personalizado adaptado a um fluxo de trabalho específico foi reduzida a alguns prompts, desde que você saiba o que está fazendo e tenha paciência para o processo. Curioso como sou, decidi ver se conseguiria criar uma ferramenta Python que pegasse qualquer imagem e a processasse de acordo com as especificações que eu precisava, por mais desleixado que fosse o fotógrafo naquele dia. Veja como montei o equipamento e o que foi necessário para alcançá-lo.
Cerca de três especificações e uma decepção muito específica
Isso pode não surpreender ninguém, mas meu fluxo de trabalho envolve o processamento de uma quantidade significativa de imagens para trabalho. Isso pode incluir capturas de tela, imagens de produtos, escopos de referência, benchmarks… essa é a ideia. Qualquer coisa elegível para publicação deve atender a um conjunto de critérios para ser usado em qualquer lugar da internet, que inclui altura mínima de 1080p e proporção preferencial de 16:9. Nenhum desses requisitos é particularmente difícil de atender, mas um pacote consistente de arquivos em ambos os formatos diferentes, usando ferramentas que não são criadas com essa combinação específica em mente, são exatamente o tipo de problema que me faz migrar do horrível aplicativo Fotos da Microsoft para o Canva, e do Canva para qualquer utilitário de aprimoramento de imagem que não queira ganhar US $ 2 rapidamente hoje.
Então, é claro que sonho com um utilitário de arrastar e soltar que aceite arquivos WEBP, JPG, JPEG e PNG, os pegue e aplique o dimensionamento automático para 1080p sempre que a altura não atingir o limite e use o corte automático inteligente para 16:9. Talvez o aspecto mais subestimado da era da codificação vibratória seja que, às vezes, tal descrição é o primeiro passo para uma solução. A próxima e última etapa é encontrar um modelo que possa fornecer isso.
Finalmente encontrei um LLM local que realmente quero usar para codificação
O Qwen3-Coder-Next é um ótimo modelo e fica ainda melhor com Claude Code como arnês.
Levei minhas “calças” para Claude.
E conseguiu exatamente o que eu procurava… eventualmente
A solicitação que entreguei foi quase mais estruturada do que a descrição que mencionei. Incluía três requisitos principais, uma nota sobre os formatos de arquivo suportados e uma preferência por uma interface de arrastar e soltar em vez de um seletor de arquivos. Claude primeiro descreveu uma abordagem que envolvia o uso de Tkinter para a GUI, Pillow para processamento de imagem e a biblioteca TkinterDnD2 para manipular manualmente o recurso de arrastar e soltar em meu sistema Windows 11. O fluxo lógico foi verificado e pedi ao Opus 4.8 para continuar.
O primeiro utilitário Python chegou muito mais cedo do que eu esperava e, depois de resolver alguns (ou uma dúzia) de problemas de configuração, funcionou exatamente como esperado. O dimensionamento foi feito usando reamostragem Lanczos, um método de interpolação de alta qualidade para redimensionar mídia visual. A reamostragem de Lanczos é mais que suficiente para a maioria dos usos.
No entanto, eu ainda queria saber se poderia ser melhorado e perguntei a Claude se havia um melhorador melhor disponível, talvez algo mais próximo do que as ferramentas modernas de IA usam nos bastidores. Claude voltou com uma sugestão para usar o Real-ESRGAN, e foi por isso que não parei por aí.
O primeiro avançado foi bom, mas o segundo foi realmente impressionante
Lanchos fez o trabalho, mas R-ESRGAN me fez parar e olhar duas vezes
Em vez de Lanchos, Claude sugeriu usar o Real-ESRGAN, um modelo de código aberto que reconstrói detalhes da imagem usando uma rede neural profunda treinada em pares de imagens degradadas. Desta forma, difere ligeiramente do modelo de interpolação usual. Esse é um detalhe que despertou meu interesse.
Embora o próprio Lanczos seja um algoritmo poderoso que fornece resultados claros e nítidos para a maioria das tarefas de dimensionamento, solicitar que ele recupere uma imagem de baixa resolução depende essencialmente de suposições fundamentadas sobre quais detalhes estão faltando. O R-ESRGAN, por outro lado, reconhece texturas, bordas e estruturas e reconstrói a imagem a partir daí.
Para testar ambas as técnicas, comprimi deliberadamente a imagem de teste para 500×272 pixels. A saída Lanczos foi ampliada conforme esperado, mas apresentava ruído de compressão, produzindo uma imagem grande, mas mantendo todas as limitações do original. O resultado do Real-ESRGAN fez um trabalho mais impressionante ao reconstruir a textura da folhagem, melhorar as linhas do painel do carro e restaurar os detalhes da estrada. A única área com a qual claramente teve problemas foram os detalhes mais sutis, como o logotipo no controlador, o texto na unidade de resfriamento universal e a placa do carro, que voltou como ruído reconstruído em vez de texto legível, uma limitação conhecida da maioria dos escaladores quando o detalhe da fonte está muito degradado para ser recuperado com precisão. É claro que, na prática, não é razoável esperar um aumento revolucionário a partir de uma imagem fonte de tão baixa resolução. Aparentemente, isso não foi feito para uso editorial, mas como um teste de resistência para os superiores. Porém, as fotos chegaram a pelo menos uma publicação!
Um humor que permite eliminar os problemas do dia a dia é muito subestimado
Como alguém que possui várias pastas cheias de utilitários codificados por vibração, cada um resolvendo um problema específico em meu fluxo de trabalho, posso definitivamente ver o apelo e os benefícios dessa abordagem. Qualquer pessoa com um problema claramente definido pode agora encontrar uma solução viável. Charles Kettering disse certa vez que um problema bem definido é um problema parcialmente resolvido, e não consigo pensar em uma filosofia que se aplique com mais precisão à codificação vibracional. O outro lado, como aprendi depois de uma dúzia de erros de configuração e uma biblioteca teimosa, é claro, a paciência. Dito isto, a barreira para criar algo útil nunca foi tão baixa e, para mim, vale a pena ficar entusiasmado com isso.









