Upscaling com IA grátis num servidor GPU: Upscayl, Real-ESRGAN e Video2X testados
O upscaling com IA transforma uma imagem pequena ou desfocada numa imagem maior e mais nítida: o modelo não se limita a esticar os píxeis, redesenha os pormenores finos, como o cabelo, o pelo ou os contornos de um desenho. Ferramentas pagas como o Topaz fazem-no bem, e os upscalers online fazem-no com limites de envio, filas de espera ou marcas de água. As ferramentas gratuitas e de código aberto são igualmente fáceis de encontrar: o Upscayl (uma aplicação de ambiente de trabalho construída sobre o Real-ESRGAN) e o Video2X para vídeo, que também faz interpolação de fotogramas com RIFE e filtros Anime4K.
Todas correm sobre Vulkan, o que quer dizer que precisam de uma GPU. Por isso perguntámos: num servidor na nuvem com uma GPU Intel partilhada, o que traz realmente a GPU, face ao CPU do mesmo servidor? Usámos os binários oficiais, as mesmas imagens e o mesmo vídeo, e medimos o tempo, o CPU e a memória.
Resultados em resumo
- Imagens: a GPU é mais rápida e deixa o CPU livre. Ampliar 4 vezes uma fotografia de 512 píxeis demorou 24,9 s na GPU contra 34,0 s em 4 vCPU (1,4 vezes mais rápida) e 55 s em 2 vCPU (2,2 vezes mais rápida). O ensaio na GPU usou 0,1 vCPU; o ensaio no CPU manteve 3,8 vCPU ocupados.
- As imagens grandes pedem memória no CPU. Ampliar uma fotografia 1080p para 8K demorou 189 s na GPU e 234 s no CPU, e o ensaio no CPU chegou a um pico de 11,8 GB de RAM (1,2 GB com a GPU).
- O Video2X não tem modo CPU. Forçado a correr no CPU através de Vulkan por software, foi 4 a 6 vezes mais lento: o Anime4K para 1080p correu a 12,2 fotogramas por segundo na GPU contra 1,9, e a duplicação de fotogramas com RIFE a 7,3 contra 1,1.
- O Real-ESRGAN em vídeo é lento, mesmo na GPU. O modelo rápido para vídeo processou 0,65 fotogramas por segundo: cerca de 8 minutos para um clip de 10 segundos. Serve para um clip curto ou um lote durante a noite, não para um filme.
- Sejamos honestos quanto ao hardware. Uma GPU integrada é muito mais lenta do que uma placa RTX de computador de secretária. O que interessa é um servidor de 14,99 € que faz o trabalho sem manter o CPU ocupado.
Configuração do teste
| Elemento | Valor |
|---|---|
| Servidor | Debian 13, Linux 7.3, Intel UHD 770 (GPU partilhada), 4 vCPU, 12 GB de RAM |
| Imagens, GPU | upscayl-bin 20251207 (o motor que a aplicação Upscayl chama, versão oficial) com os modelos Real-ESRGAN, Vulkan (Mesa 25.0.7), tamanho de bloco por omissão |
| Imagens, CPU | o código PyTorch oficial do Real-ESRGAN (inference_realesrgan.py, PyTorch 2.15 CPU, fp32, 4 threads; 2 threads fixadas em 2 vCPU para o resultado “2 vCPU”) |
| Vídeo | Video2X 6.4.0 (AppImage oficial), saída H.264 (libx264, CRF 18). CPU: o mesmo Video2X sobre o Vulkan por software do Mesa (llvmpipe), mais o script de vídeo PyTorch oficial para o Real-ESRGAN |
| Imagens | três fotografias de 512 × 512, uma fotografia de 1920 × 1080, uma imagem de desenho animado de 854 × 480 |
| Vídeo | 10 s de Big Buck Bunny em 854 × 480, 30 fotogramas por segundo (300 fotogramas) |
| Medições | tempo total incluindo o carregamento do modelo e a escrita do ficheiro, tempo de CPU e pico de memória com /usr/bin/time |
Os valores de CPU estão em vCPU (1,0 = um núcleo completo). A GPU é partilhada com outros servidores: verificámos que estava sem outra carga durante os ensaios usados aqui (ver “Limites”).
Material de teste: fotografias da Wikimedia Commons (Albert Einstein por Orren Jack Turner, domínio público; Buzz Aldrin pela NASA, domínio público; um gato por Alvesgaspar, CC BY-SA 3.0) e Big Buck Bunny (© Blender Foundation, CC BY 3.0).
1. Imagens: Real-ESRGAN com o motor do Upscayl
| Imagem | Modelo | GPU | CPU, 4 vCPU | CPU, 2 vCPU |
|---|---|---|---|---|
| Fotografia 512 × 512 → 2048 × 2048 | RealESRGAN x4plus | 24,9 s, 0,1 vCPU, 1,0 GB | 34,0 s, 3,8 vCPU, 4,1 GB | 55,0 s |
| Fotografia 1920 × 1080 → 7680 × 4320 | RealESRGAN x4plus | 189 s, 0,03 vCPU, 1,2 GB | 234 s, 4,0 vCPU, 11,8 GB | — |
| Desenho animado 854 × 480 → 3416 × 1920 | x4plus-anime | 12,9 s, 0,1 vCPU, 0,4 GB | 17,9 s, 3,6 vCPU, 6,0 GB | — |
| Imagem de vídeo 854 × 480 → 3416 × 1920 | animevideov3 (rápido) | 2,2 s, 0,6 vCPU | 4,0 s, 2,4 vCPU, 0,9 GB | — |
O tempo da fotografia é a mediana de três fotografias diferentes; todas demoraram entre 24,8 e 25 segundos na GPU.
O que isto significa:
- Face aos 4 vCPU, a GPU é 1,2 a 1,8 vezes mais rápida. É um ganho real, não um milagre: o modelo de fotografia do Real-ESRGAN é pesado, e quatro núcleos de CPU modernos não são lentos.
- Face a 2 vCPU, o tamanho do nosso plano Start, a GPU é 2,2 vezes mais rápida. A GPU não encolhe com o plano; o CPU sim.
- A GPU deixa o servidor livre. Durante um ensaio na GPU, o CPU do servidor fica em cerca de 0,1 vCPU: pode correr ao mesmo tempo uma aplicação web, uma galeria ou um segundo trabalho. No CPU, o upscaling ocupa tudo.
- Memória. Sem divisão em blocos, o código PyTorch precisou de 11,8 GB de RAM para a fotografia 1080p. Num servidor de 8 GB teria de dividir a imagem em blocos também no CPU, o que o torna ainda mais lento.
2. Vídeo: Video2X com Real-ESRGAN, Anime4K e RIFE
O Video2X lê um vídeo, passa cada fotograma por um filtro na GPU e codifica o resultado com o FFmpeg. Oferece três tipos de trabalho: Real-ESRGAN (upscaling com IA, lento, melhor qualidade), Anime4K (shaders GLSL rápidos para desenhos animados, através do libplacebo) e RIFE (interpolação de fotogramas com IA: de 30 para 60 fotogramas por segundo).
| Trabalho Video2X (origem 854 × 480) | GPU | CPU (Vulkan por software) | Clip de 10 segundos na GPU |
|---|---|---|---|
| Real-ESRGAN animevideov3 ×4 → 3416 × 1920 | 0,65 fps, 0,1 vCPU | 0,15 fps, 3,8 vCPU | cerca de 7 min 40 s |
| Real-ESRGAN animevideov3 ×2 → 1708 × 960 | 0,65 fps | — | cerca de 7 min 40 s |
| Anime4K → 1920 × 1080 | 12,2 fps, 0,7 vCPU | 1,9 fps, 3,1 vCPU | 25 s |
| Anime4K → 3840 × 2160 | 7,4 fps, 1,5 vCPU | — | 40 s |
| RIFE v4.6, 30 → 60 fps | 7,3 fps (14,6 fotogramas produzidos por segundo), 0,2 vCPU | 1,1 fps, 3,1 vCPU | 41 s |
| Real-ESRGAN x4plus (modelo de fotografia) ×4 | 0,02 fps (48 s por fotograma) | — | cerca de 4 horas |
Para comparar o Real-ESRGAN com uma ferramenta realmente otimizada para o CPU, corremos também o script de vídeo PyTorch oficial nos 4 vCPU: 0,60 fotogramas por segundo, quase a velocidade da GPU, mas com o servidor inteiro ocupado (3,8 vCPU). Para o Anime4K e o RIFE não existe uma ferramenta assim para o CPU: sem GPU, o Video2X recorre ao Vulkan por software e fica 6 vezes mais lento.
Conselhos práticos a partir destes números:
- Para desenhos animados e anime, comece pelo Anime4K: quase em tempo real em 1080p, e o resultado é limpo.
- Use o modelo animevideov3 do Real-ESRGAN para vídeo, nunca o modelo de fotografia (x4plus): com 48 segundos por fotograma, um clip de 10 segundos passa a ser um trabalho de quatro horas.
- O RIFE é barato: 41 segundos para passar um clip de 10 segundos em 480p de 30 para 60 fotogramas por segundo.
- Os vídeos longos são trabalho para a noite. A 0,65 fotogramas por segundo, um episódio de 20 minutos a 30 fotogramas por segundo demora cerca de 15 horas com o Real-ESRGAN. O servidor faz o trabalho enquanto dorme; é para isso que serve.
3. Limites
- GPU partilhada. A GPU é partilhada com outros servidores. Quando outro servidor a usa, os seus trabalhos recebem uma parte justa, mas correm mais devagar: durante a nossa sessão, a mesma fotografia 1080p demorou 189 s com a GPU sem outra carga, e 226 a 268 s enquanto outro servidor a ocupava. Os números acima foram medidos com a GPU sem outra carga.
- Mantenha o tamanho de bloco por omissão. Com
-t 512, cada trabalho na GPU demorou mais do que o controlador permite e foi interrompido: as imagens de saída ficaram pretas. O valor por omissão (automático) ou-t 256funcionam e são igualmente rápidos. - Sem milagres. Uma placa RTX de computador de secretária corre o Real-ESRGAN muitas vezes mais depressa. Se amplia milhares de imagens 4K por dia, alugue uma GPU dedicada. Se amplia uma biblioteca de fotografias, digitalizações antigas ou clips curtos, isto chega.
- A IA inventa pormenores. O Real-ESRGAN dá um aspeto nítido às imagens, mas os novos pormenores são uma suposição. Para documentos, rostos que tem de identificar ou provas, guarde o original.
- A aplicação Upscayl em si é um programa de ambiente de trabalho. Num servidor, use o seu motor
upscayl-binna linha de comandos (ver abaixo), como o Upscayl faz por trás dos seus botões.
4. Que plano escolher?
- iGPU Start (2 vCPU, 8 GB de RAM, Perf 1, 14,99 € s/ IVA por mês): upscaling de fotografias com o motor do Upscayl, lotes de imagens, Anime4K e RIFE em vídeos curtos. Aqui a GPU é 2,2 vezes mais rápida do que os 2 vCPU do plano, e deixa-os livres.
- iGPU Power (4 vCPU, 14 GB de RAM, Perf 2 = o dobro da parte de GPU do Start, 29,99 €): trabalhos Video2X que duram horas, imagens grandes (1080p para 8K), ou upscaling ao lado de outros serviços. A parte de GPU maior conta quando outros servidores usam a GPU ao mesmo tempo.
- iGPU Pro (6 vCPU, 14 GB, Perf 3, 44,99 €): vários trabalhos de vídeo longos seguidos, ou upscaling juntamente com outro trabalho de GPU (transcodificação, inferência de IA) no mesmo servidor.
5. Configurar num servidor Linux GPU
Quer o servidor pronto a usar? Peça-o por e-mail ao encomendar (contact@linuxgpu.eu): podemos entregar-lhe o servidor com o upscayl-bin, os modelos Real-ESRGAN e o Video2X já instalados e testados na GPU.
Os nossos servidores vêm com o controlador Vulkan da Intel instalado; vulkaninfo --summary deve mostrar a
Intel UHD Graphics 770. Depois, para imagens:
# O motor do Upscayl e os modelos Real-ESRGAN (versões oficiais)
wget https://github.com/upscayl/upscayl-ncnn/releases/download/20251207-174704/upscayl-bin-20251207-174704-linux.zip
wget https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesrgan-ncnn-vulkan-20220424-ubuntu.zip
unzip upscayl-bin-*-linux.zip && unzip -d realesrgan realesrgan-ncnn-vulkan-*-ubuntu.zip
U=./upscayl-bin-20251207-174704-linux/upscayl-bin
# uma fotografia, 4 vezes maior, na GPU (-g 0)
$U -i photo.jpg -o photo-x4.png -m realesrgan/models -n realesrgan-x4plus -g 0
# uma pasta inteira, modelo para desenhos animados, saída em JPEG
$U -i scans/ -o scans-x4/ -m realesrgan/models -n realesrgan-x4plus-anime -g 0 -f jpg
Para vídeo, o Video2X 6.4 é distribuído como AppImage. Os servidores normalmente não têm FUSE, por isso extraia-o uma vez:
wget https://github.com/k4yt3x/video2x/releases/download/6.4.0/Video2X-x86_64.AppImage
chmod +x Video2X-x86_64.AppImage && ./Video2X-x86_64.AppImage --appimage-extract
cd squashfs-root/usr/share/video2x # o Video2X procura os modelos a partir daqui
V=../../../AppRun
$V -l # o dispositivo 0 deve ser a Intel UHD 770
# Real-ESRGAN, 2 vezes maior
$V -i ~/clip.mp4 -o ~/clip-x2.mp4 -p realesrgan --realesrgan-model realesr-animevideov3 -s 2 -c libx264 -e crf=18
# Anime4K para 1080p
$V -i ~/clip.mp4 -o ~/clip-1080p.mp4 -p libplacebo --libplacebo-shader anime4k-v4-a -w 1920 -h 1080
# RIFE: de 30 para 60 fotogramas por segundo
$V -i ~/clip.mp4 -o ~/clip-60fps.mp4 -p rife --rife-model rife-v4.6 -m 2
Corra os trabalhos longos dentro do tmux ou com nohup, para que continuem depois de terminar a sessão.
Para o motor de vídeo da mesma GPU (descodificação e codificação com VA-API), leia Transcodificação de vídeo acelerada: não precisa de uma GPU de 500 €/mês e o nosso guia rápido Intel Quick Sync (VAAPI) num VPS Linux: comandos ffmpeg que funcionam. Para outros modelos de IA na mesma GPU, veja Inferência de IA económica: OpenVINO em GPU integrada, sem GPU de 500 €/mês.
Experimentar
Ver os planos: o iGPU Start custa 14,99 € e o iGPU Power 29,99 € s/ IVA por mês.