- Isso vai ser uma pequena introdução ao upscaling/melhoria de imagens com IA. Vou tentar atualizar este post conforme eu for aprendendo mais, pra ele continuar útil e melhorar de qualidade (além de reescrever partes dele pra ter mais clareza, gramática e formatação). Discussões sobre técnicas de upscaling, experiências, softwares, avaliações desses softwares, etc. são bem-vindas.
- Tenho certeza que vocês todos sabem o que é upscaling, mas nem todo mundo sabe direito o que é upscaling com IA e como usar. A IA de que estou falando é uma Rede Neural Artificial de Deep Learning, que basicamente é uma IA treinada com um conjunto de dados enorme (no caso, toneladas de imagens) pra 'aprender'. O resultado é uma IA que consegue fazer o upscale de uma imagem com mais precisão, trazendo detalhes que o upscaling tradicional não consegue.
- Fazer upscale de imagens não é um processo mágico. Por exemplo, se tem um texto totalmente ilegível num livro da imagem, o upscaling não vai consertar isso. É simplesmente uma forma de aumentar a resolução das imagens de um jeito esteticamente agradável, com mais nitidez, clareza e realismo do que o upscaling tradicional. Isso não quer dizer que não vale a pena usar upscaling com IA em vez do upscaling/reamostragem tradicional, porque vale sim. Os resultados podem não ser sempre bons, mas com certeza também nem sempre são ruins, e só vão continuar melhorando com o tempo. Às vezes uma imagem fica tão bem escalada que é praticamente perfeita. Além disso, o upscaling com IA também pode ser usado só pra limpar uma imagem de ruído e artefatos de compressão, então mesmo que você não precise/queira aumentar a resolução, ainda dá pra ter outros benefícios.
- Vou colocar uma lista curta de algumas opções de upscaling com o preço, a plataforma em que estão disponíveis e os limites de upscale. Não vou avaliar a qualidade dos upscales de cada uma porque, primeiro, isso é meio subjetivo, e segundo, eu não testei tudo que está aqui. Vai saber, posso fazer isso em algum momento e postar as imagens pra comparar, mas também posso não fazer, depende do que eu decidir.
- Algumas das opções são baseadas na web, o que é prático porque dá pra fazer upscale com basicamente qualquer dispositivo que tenha um navegador decente e conexão com a internet. Os contras são que ou têm capacidade limitada, ou custam uma assinatura, e que exigem conexão com a internet. Pode não ser a melhor opção pra quem tem internet lenta, instável ou com franquia. Além disso, você nunca sabe o que eles realmente fazem com suas imagens, então se tiver fotos sensíveis que você quer escalar, talvez seja uma boa optar por uma opção que não seja web.
- Algumas estão disponíveis pra baixar como software, o que costuma ter a vantagem de não precisar de internet e ter menos/nenhuma restrição de upscaling. Os contras são que o software precisa existir pra plataforma que você quer usar, e você também precisa de um dispositivo capaz de rodar, já que, ao contrário de uma opção web onde outros servidores cuidam da carga de processamento, agora é o seu dispositivo que tem que fazer todo o trabalho.
*O código-fonte está disponível em GitHub
**Via WINE
- Essas não são as únicas opções, tem muitas outras pra escolher, então se nenhuma delas te agradar, pesquise algo como "AI Image Upscaling Software". Você também pode dar uma olhada nesse link que traz uma lista de mais opções com alguns prós e contras de cada uma. Eu pessoalmente uso o Gigapixel AI porque ele roda no meu próprio PC e não tem nenhum limite grande que eu saiba, além de não conseguir escalar uma imagem acima de 32,000 x 32,000, o que não é problema pra mim. Se por algum motivo você precisar/quiser escalar uma imagem acima de um gigapixel, sempre dá pra cortar a imagem em pedaços menores, escalar esses pedaços e depois mesclar e juntar tudo.
- Depois de escolher o que vai usar pra escalar, tem algumas coisas que você pode fazer pra garantir o melhor resultado final. Primeiro, você está usando a melhor versão da imagem que vai escalar? Porque, como você sabe, existem basicamente várias cópias de quase toda foto online, e nem todas têm a mesma qualidade. Então se você pegou a imagem da internet e ela não é uma foto única nem um print seu de um frame específico de um vídeo, vale tentar uma busca reversa de imagem. Existem algumas opções, como Google, Bing, TinEye, etc., que dá pra usar pra fazer busca reversa de imagem (vale a pena fazer a busca reversa em mais de uma delas porque nem sempre mostram os mesmos resultados). Você também pode usar uma extensão de navegador pra ajudar na busca reversa, tipo Search by Image. Lembre que só porque uma imagem é mais antiga, tem resolução maior ou arquivo maior, isso não significa que aquela versão tem melhor qualidade. Uma forma de aumentar as chances de achar a imagem original é descobrir quem/o que aparece na imagem, quando/onde ela deve ter sido tirada/postada, etc., e usar essas infos pra rastrear uma versão de melhor qualidade, se não a própria fonte. Por exemplo, talvez a imagem seja de um ensaio específico ou de algum tipo de evento. Saber disso pode ajudar.
- Depois que você garantir que tem a melhor cópia da imagem que quer escalar (ou pelo menos a melhor que conseguir achar), vale cuidar dos dados e do arquivamento. O que quero dizer é que, pra garantir que a foto que você vai usar está ok e vai continuar disponível pra todo mundo, recomendo fazer algumas coisas. Primeiro, use o VirusTotal pra escanear não só a URL da página onde a imagem está, mas também o link direto da imagem e o arquivo da imagem em si depois de baixado. Isso não é realmente necessário, mas é o que eu faço. Também recomendo arquivar a URL da página onde a imagem foi encontrada, assim como o link direto, usando tanto o Wayback Machine quanto o Archive.Today. Depois, mude o nome da imagem baixada pra um que faça sentido e seja compreensível (a menos que ela já tenha um nome assim). Em seguida, eu costumo usar o FileOptimizer pra diminuir o tamanho do arquivo o máximo possível (usando só otimização sem perdas pra não perder nenhum dado (qualidade)) pra ocupar menos espaço, subir mais rápido e baixar mais rápido.
- Beleza, hora de escalar! Bom, talvez. É que, às vezes, a imagem precisa de pelo menos um ajuste leve antes de ser escalada. Se a imagem tem muito ruído (seja ruído cromático , ruído de luz, etc.) o upscaler pode (mas também pode não, varia em cada situação) ter dificuldade pra distinguir ruído de detalhe, o que pode resultar em upscales estranhos. Então uma coisa que você pode fazer é tentar remover o ruído da imagem antes de escalar. Às vezes remover o ruído piora o upscale, então cabe a você comparar. Outras vezes, a imagem já pode ter sido escalada de forma tradicional. Nesse caso, tente ver a imagem em vários níveis de zoom abaixo de 100% até achar o 'ponto ideal' em que você não nota mais os artefatos de um upscale tradicional, como serrilhado ou aspecto de blocos. Um bom ponto de partida é 50% de zoom. Depois de achar esse 'ponto ideal', reduza a imagem até esse mesmo nível (às vezes é melhor reduzir só com um redimensionamento simples, outras vezes você obtém melhores resultados reduzindo com reamostragem, como lanczos ou bicúbica, etc.). É a mesma coisa de remover o ruído antes do upscale: nem sempre dá resultado melhor, então compare. Outras coisas que podem permitir um upscale melhor são desfocar um pouco a imagem, ou talvez aumentar a nitidez, ou às vezes até escalar/reamostrar a imagem pode ajudar.
- Depois de carregar a imagem no upscaler, escolher as configurações perfeitas e estar prestes a escalar, pode aparecer uma opção de qual formato e qualidade você quer exportar o upscale. Recomendo exportar num formato sem perdas, como PNG, pra qualquer edição depois ter um efeito melhor. Beleza, você já escalou a imagem e conseguiu um resultado decente, e agora? Você pode postar o resultado como está, sem mais ajustes, tudo bem, mas só uns ajustes extras podem dar um resultado mais bonito. Às vezes aparece algum ruído no upscale, mesmo que a imagem original não parecesse ter muito. Nesse caso, o melhor é remover o ruído o melhor que puder pra ficar um pouquinho melhor. A imagem (inteira ou só algumas partes) também pode ficar meio, como eu digo, lisa? Plastificada? Algo nesse sentido. Nesse caso, um jeito fácil de melhorar é adicionar um pouco de granulado na imagem. Eu pessoalmente prefiro um granulado fino a um grosso, mas você é livre pra escolher o que quiser. O granulado adiciona uma espécie de 'detalhe falso' e deixa a imagem com um pouco mais de textura, na minha opinião. Também pode ser bom reduzir a imagem, já que o upscale pode ter uns detalhes estranhos, e reduzir diminui a visibilidade deles mantendo as melhorias visuais. Se você quiser combinar remoção de ruído, redução e granulado, a ordem é: Remover ruído → Reduzir → Granulado.
- A imagem também pode precisar (ou pelo menos se beneficiar de) uns retoques manuais com Photoshop ou GIMP. Só que eu atualmente não tenho experiência com isso, mas isso pode mudar no futuro e me permitir preencher uma pequena seção sobre retocar manualmente o upscale. Então, deixando isso de lado, seu upscale já deve estar pronto. Antes de postar, talvez você queira considerar reduzir a imagem ou comprimir com perdas, já que os upscales às vezes geram arquivos particularmente grandes (potencialmente centenas de megabytes por uma única imagem). O que eu prefiro fazer é subir a imagem original (sem nenhuma alteração e no formato original, mas otimizada sem perdas), uma versão WEBP sem perdas do upscale (já que costuma comprimir melhor que PNG), uma versão JPG com perdas e um PNG sem perdas (pela compatibilidade). Assim, o pessoal recebe a imagem original e pode escolher qual versão do upscale quer: um JPG com perdas com o menor tamanho de arquivo, um WEBP sem perdas com tamanho menor que o PNG, ou um PNG sem perdas com mais suporte e compatibilidade que o WEBP.
- Tenho certeza que vocês todos sabem o que é upscaling, mas nem todo mundo sabe direito o que é upscaling com IA e como usar. A IA de que estou falando é uma Rede Neural Artificial de Deep Learning, que basicamente é uma IA treinada com um conjunto de dados enorme (no caso, toneladas de imagens) pra 'aprender'. O resultado é uma IA que consegue fazer o upscale de uma imagem com mais precisão, trazendo detalhes que o upscaling tradicional não consegue.
- Fazer upscale de imagens não é um processo mágico. Por exemplo, se tem um texto totalmente ilegível num livro da imagem, o upscaling não vai consertar isso. É simplesmente uma forma de aumentar a resolução das imagens de um jeito esteticamente agradável, com mais nitidez, clareza e realismo do que o upscaling tradicional. Isso não quer dizer que não vale a pena usar upscaling com IA em vez do upscaling/reamostragem tradicional, porque vale sim. Os resultados podem não ser sempre bons, mas com certeza também nem sempre são ruins, e só vão continuar melhorando com o tempo. Às vezes uma imagem fica tão bem escalada que é praticamente perfeita. Além disso, o upscaling com IA também pode ser usado só pra limpar uma imagem de ruído e artefatos de compressão, então mesmo que você não precise/queira aumentar a resolução, ainda dá pra ter outros benefícios.
- Vou colocar uma lista curta de algumas opções de upscaling com o preço, a plataforma em que estão disponíveis e os limites de upscale. Não vou avaliar a qualidade dos upscales de cada uma porque, primeiro, isso é meio subjetivo, e segundo, eu não testei tudo que está aqui. Vai saber, posso fazer isso em algum momento e postar as imagens pra comparar, mas também posso não fazer, depende do que eu decidir.
- Algumas das opções são baseadas na web, o que é prático porque dá pra fazer upscale com basicamente qualquer dispositivo que tenha um navegador decente e conexão com a internet. Os contras são que ou têm capacidade limitada, ou custam uma assinatura, e que exigem conexão com a internet. Pode não ser a melhor opção pra quem tem internet lenta, instável ou com franquia. Além disso, você nunca sabe o que eles realmente fazem com suas imagens, então se tiver fotos sensíveis que você quer escalar, talvez seja uma boa optar por uma opção que não seja web.
- Algumas estão disponíveis pra baixar como software, o que costuma ter a vantagem de não precisar de internet e ter menos/nenhuma restrição de upscaling. Os contras são que o software precisa existir pra plataforma que você quer usar, e você também precisa de um dispositivo capaz de rodar, já que, ao contrário de uma opção web onde outros servidores cuidam da carga de processamento, agora é o seu dispositivo que tem que fazer todo o trabalho.
| Gigapixel AI | Lets Enhance | Waifu2x | Vertexshare Image Upscaler | |
| Preço | $99.99 | Primeiras 5 imagens grátis, assinatura começa em $12 por mês pra escalar 100 imagens por mês | Grátis | Grátis |
| Limite de upscale | 32,000 x 32,000 | 64 megapixels pras 5 imagens grátis; 256 megapixels com assinatura normal; 500 megapixels com assinatura business (que começa em $72 por mês) | Não dá pra enviar imagens maiores que 1,500 x 1,500 ou 5 MB. Opções de upscale de 1.6x ou 2x | Não dá pra enviar imagens que não sejam JPG ou PNG, nem nada maior que 1,200 x 1,200 ou 5 MB. Só tem opções de upscale de 2x e 4x |
| Web | N | S | S | S |
| Windows | S | N | S* | N |
| Mac | S | N | S* | N |
| Linux | S** | N | S* | N |
| App mobile | N | N | S* | N |
*O código-fonte está disponível em GitHub
**Via WINE
- Essas não são as únicas opções, tem muitas outras pra escolher, então se nenhuma delas te agradar, pesquise algo como "AI Image Upscaling Software". Você também pode dar uma olhada nesse link que traz uma lista de mais opções com alguns prós e contras de cada uma. Eu pessoalmente uso o Gigapixel AI porque ele roda no meu próprio PC e não tem nenhum limite grande que eu saiba, além de não conseguir escalar uma imagem acima de 32,000 x 32,000, o que não é problema pra mim. Se por algum motivo você precisar/quiser escalar uma imagem acima de um gigapixel, sempre dá pra cortar a imagem em pedaços menores, escalar esses pedaços e depois mesclar e juntar tudo.
- Depois de escolher o que vai usar pra escalar, tem algumas coisas que você pode fazer pra garantir o melhor resultado final. Primeiro, você está usando a melhor versão da imagem que vai escalar? Porque, como você sabe, existem basicamente várias cópias de quase toda foto online, e nem todas têm a mesma qualidade. Então se você pegou a imagem da internet e ela não é uma foto única nem um print seu de um frame específico de um vídeo, vale tentar uma busca reversa de imagem. Existem algumas opções, como Google, Bing, TinEye, etc., que dá pra usar pra fazer busca reversa de imagem (vale a pena fazer a busca reversa em mais de uma delas porque nem sempre mostram os mesmos resultados). Você também pode usar uma extensão de navegador pra ajudar na busca reversa, tipo Search by Image. Lembre que só porque uma imagem é mais antiga, tem resolução maior ou arquivo maior, isso não significa que aquela versão tem melhor qualidade. Uma forma de aumentar as chances de achar a imagem original é descobrir quem/o que aparece na imagem, quando/onde ela deve ter sido tirada/postada, etc., e usar essas infos pra rastrear uma versão de melhor qualidade, se não a própria fonte. Por exemplo, talvez a imagem seja de um ensaio específico ou de algum tipo de evento. Saber disso pode ajudar.
- Depois que você garantir que tem a melhor cópia da imagem que quer escalar (ou pelo menos a melhor que conseguir achar), vale cuidar dos dados e do arquivamento. O que quero dizer é que, pra garantir que a foto que você vai usar está ok e vai continuar disponível pra todo mundo, recomendo fazer algumas coisas. Primeiro, use o VirusTotal pra escanear não só a URL da página onde a imagem está, mas também o link direto da imagem e o arquivo da imagem em si depois de baixado. Isso não é realmente necessário, mas é o que eu faço. Também recomendo arquivar a URL da página onde a imagem foi encontrada, assim como o link direto, usando tanto o Wayback Machine quanto o Archive.Today. Depois, mude o nome da imagem baixada pra um que faça sentido e seja compreensível (a menos que ela já tenha um nome assim). Em seguida, eu costumo usar o FileOptimizer pra diminuir o tamanho do arquivo o máximo possível (usando só otimização sem perdas pra não perder nenhum dado (qualidade)) pra ocupar menos espaço, subir mais rápido e baixar mais rápido.
- Beleza, hora de escalar! Bom, talvez. É que, às vezes, a imagem precisa de pelo menos um ajuste leve antes de ser escalada. Se a imagem tem muito ruído (seja ruído cromático , ruído de luz, etc.) o upscaler pode (mas também pode não, varia em cada situação) ter dificuldade pra distinguir ruído de detalhe, o que pode resultar em upscales estranhos. Então uma coisa que você pode fazer é tentar remover o ruído da imagem antes de escalar. Às vezes remover o ruído piora o upscale, então cabe a você comparar. Outras vezes, a imagem já pode ter sido escalada de forma tradicional. Nesse caso, tente ver a imagem em vários níveis de zoom abaixo de 100% até achar o 'ponto ideal' em que você não nota mais os artefatos de um upscale tradicional, como serrilhado ou aspecto de blocos. Um bom ponto de partida é 50% de zoom. Depois de achar esse 'ponto ideal', reduza a imagem até esse mesmo nível (às vezes é melhor reduzir só com um redimensionamento simples, outras vezes você obtém melhores resultados reduzindo com reamostragem, como lanczos ou bicúbica, etc.). É a mesma coisa de remover o ruído antes do upscale: nem sempre dá resultado melhor, então compare. Outras coisas que podem permitir um upscale melhor são desfocar um pouco a imagem, ou talvez aumentar a nitidez, ou às vezes até escalar/reamostrar a imagem pode ajudar.
- Depois de carregar a imagem no upscaler, escolher as configurações perfeitas e estar prestes a escalar, pode aparecer uma opção de qual formato e qualidade você quer exportar o upscale. Recomendo exportar num formato sem perdas, como PNG, pra qualquer edição depois ter um efeito melhor. Beleza, você já escalou a imagem e conseguiu um resultado decente, e agora? Você pode postar o resultado como está, sem mais ajustes, tudo bem, mas só uns ajustes extras podem dar um resultado mais bonito. Às vezes aparece algum ruído no upscale, mesmo que a imagem original não parecesse ter muito. Nesse caso, o melhor é remover o ruído o melhor que puder pra ficar um pouquinho melhor. A imagem (inteira ou só algumas partes) também pode ficar meio, como eu digo, lisa? Plastificada? Algo nesse sentido. Nesse caso, um jeito fácil de melhorar é adicionar um pouco de granulado na imagem. Eu pessoalmente prefiro um granulado fino a um grosso, mas você é livre pra escolher o que quiser. O granulado adiciona uma espécie de 'detalhe falso' e deixa a imagem com um pouco mais de textura, na minha opinião. Também pode ser bom reduzir a imagem, já que o upscale pode ter uns detalhes estranhos, e reduzir diminui a visibilidade deles mantendo as melhorias visuais. Se você quiser combinar remoção de ruído, redução e granulado, a ordem é: Remover ruído → Reduzir → Granulado.
- A imagem também pode precisar (ou pelo menos se beneficiar de) uns retoques manuais com Photoshop ou GIMP. Só que eu atualmente não tenho experiência com isso, mas isso pode mudar no futuro e me permitir preencher uma pequena seção sobre retocar manualmente o upscale. Então, deixando isso de lado, seu upscale já deve estar pronto. Antes de postar, talvez você queira considerar reduzir a imagem ou comprimir com perdas, já que os upscales às vezes geram arquivos particularmente grandes (potencialmente centenas de megabytes por uma única imagem). O que eu prefiro fazer é subir a imagem original (sem nenhuma alteração e no formato original, mas otimizada sem perdas), uma versão WEBP sem perdas do upscale (já que costuma comprimir melhor que PNG), uma versão JPG com perdas e um PNG sem perdas (pela compatibilidade). Assim, o pessoal recebe a imagem original e pode escolher qual versão do upscale quer: um JPG com perdas com o menor tamanho de arquivo, um WEBP sem perdas com tamanho menor que o PNG, ou um PNG sem perdas com mais suporte e compatibilidade que o WEBP.
