1. Introducción
El upscaling (reescalar por super-resolución) es una técnica que permite aumentar el tamaño de una imagen inventando los detalles que faltan mediante inteligencia artificial (reconstruyendo texturas, bordes y detalles de forma mucho más natural), en lugar de limitarse a estirar los píxeles existentes como haríamos con un redimensionado tradicional (con resultados borrosos).
La herramienta que vamos a utilizar se llama upscayl-bin, una utilidad de línea de comandos (CLI) del proyecto Upscayl. Internamente utiliza modelos como Real-ESRGAN sobre el framework ncnn y aceleración por Vulkan, lo que le permite aprovechar la GPU (Nvidia, AMD o Intel) de forma muy eficiente y totalmente en local, sin enviar nada a la nube.
El flujo de trabajo es muy sencillo: una imagen de entrada (o una carpeta con varias), un modelo de reescalado y una imagen de salida con mayor resolución:
A lo largo de la guía nos centraremos en la utilidad de línea de comandos upscayl-bin, muy útil para crear scripts o workflows personalizados. Al final de la guía mencionaremos que también existe una aplicación gráfica (GUI) oficial de Upscayl por si prefieres una interfaz visual.
2. Instalación
El ejecutable upscayl-bin se distribuye como parte del proyecto Upscayl y se puede encontrar en el repositorio de GitHub upscayl-ncnn. En él, en la sección de releases sólo tenemos que descargar y descomprimir el fichero apropiado para nuestro sistema operativo.
En el caso de Windows se trata de un simple archivo .exe, mientras que en Mac y Linux se trata de un sólo fichero binario.
Consejo: Para no tener que escribir la ruta completa cada vez, puedes añadir la carpeta
bina tu variable de entornoPATH, o crear un alias / script que apunte al ejecutable. A partir de aquí, asumiremos que el comandoupscayl-binestá disponible.
3. Descarga de modelos
Sin embargo, el fichero upscayl-bin anterior es el binario (ejecutable) para hacer el escalado. También necesitamos un modelo que será el que sabe redimensionar la imagen, y del que dependerá la calidad del reescalado.
Los modelos de reescalado son redes neuronales entrenadas para diferentes tipos de imágenes. Tienes los modelos en el repositorio custom-models y colocarlos junto a tu binario en una carpeta models/. Cada modelo se compone de dos ficheros: un .param (arquitectura) y un .bin (pesos). Para usar un modelo solo hay que indicar su nombre (sin extensión) con el parámetro -n, como veremos más adelante.
Estos son los modelos que puedes encontrar y en que situaciones son ideales:
| Modelo | Especializado para... |
|---|---|
4x_NMKD-Siax_200k |
Fotos y contenido general |
4x_NMKD-Superscale-SP_178000_G |
Fotos del mundo real |
4xHFA2k |
Anime o ilustraciones |
4xLSDIR* |
Fotografías |
4xNomos8kSC |
Uso general |
realesr-animevideov3 |
Video anime |
RealESRGAN_General_* |
Fotos y contenido general |
uniscale_restore |
Restauración de fotos dañadas |
unknown-2.0.1 |
Modelo experimental |
Modelos personalizados
Además de los incluidos, puedes utilizar modelos propios o de terceros siempre que estén en formato .param / .bin (ncnn de Real-ESRGAN). Solo tienes que:
- Buscar modelos compatibles con NCNN, como HuggingFace
- Descargar los ficheros
.paramy.bin. - Colocarlos en la carpeta
models/(o donde prefieras). - Indicar la carpeta con
-my el nombre con-n mi-modelo.
También existen comunidades (como OpenModelDB) donde encontrarás cientos de modelos Real-ESRGAN/ncnn listos para usar, especializados en todo tipo de estilos.
4. Uso básico
La sintaxis mínima de upscayl-bin es la siguiente:
upscayl-bin -i imagen_entrada.png -o imagen_salida.png [opciones]
Aquí ya estamos utilizando parámetros básicos:
-ies la imagen original que queremos escalar.- También podemos indicar una carpeta con
-i, y lo hará con todas las imágenes de su interior. -oes la imagen final (o la carpeta)- Si no indicamos ningún modelo, buscará uno en
models/llamadorealesrgan-x4plus
Por ejemplo, para reescalar una foto con el modelo por defecto, sería así:
upscayl-bin -i foto.png -o foto_4x.png
Como vimos antes, si queremos usar un modelo concreto, indicamos la carpeta de modelos y el nombre:
upscayl-bin -i foto.png -o foto_4x.png -m models/ -n 4x_NMKD-Siax_200k
Para hacerte una idea del resultado, arrastra el divisor de la siguiente demostración para comparar la imagen reescalada (izquierda) con la original de baja resolución (derecha):
En la parte inferior puedes elegir los diferentes modelos, para comparar las diferencias.
5. Parámetros y opciones
A continuación tienes una referencia completa de las opciones más útiles de upscayl-bin:
| Parámetro | Descripción | Ejemplo |
|---|---|---|
-i |
Imagen o carpeta de entrada (jpg/png/webp). | -i foto.png |
-o |
Imagen o carpeta de salida. | -o salida.png |
-n |
Nombre del modelo a usar (sin extensión). | -n realesrgan-x4plus-anime |
-m |
Carpeta donde se encuentran los modelos. | -m models/ |
-s |
Escala de salida personalizada (2, 3 o 4). | -s 4 |
-z |
Escala según el modelo (2, 3 o 4, por defecto 4). | -z 4 |
-f |
Formato de salida: jpg, png o webp. |
-f png |
-c |
Nivel de compresión (0-100, mayor = más pequeño). | -c 20 |
-t |
Tamaño de tile (>=32, 0=auto). Útil en GPUs antiguas. |
-t 0 |
-g |
ID de la GPU a utilizar (auto, 0, 1...). |
-g 0 |
-j |
Hilos de carga:proceso:guardado. | -j 1:2:2 |
-r |
Redimensiona la salida a WxH:filtro. |
-r 1920x1080:catmullrom |
-w |
Redimensiona la salida a un ancho concreto. | -w 1920 |
-x |
Activa el modo TTA (mejor calidad, más lento). | -x |
-v |
Muestra información detallada del proceso. | -v |
Algunos ejemplos prácticos:
# Reescalar una ilustración 4x con el modelo anime y compresión ligera
upscayl-bin -i arte.png -o arte_4x.png -n realesrgan-x4plus-anime -f png -v
# Reescalar una foto, forzar escala 2x y dejarla en JPG con compresión 15
upscayl-bin -i foto.jpg -o foto_2x.jpg -s 2 -f jpg -c 15
# Usar una GPU concreta y un tile pequeño para ahorrar VRAM
upscayl-bin -i foto.png -o foto_4x.png -g 0 -t 64
# Modo TTA (Test Time Augmentation): más calidad, varias veces más lento
upscayl-bin -i foto.png -o foto_4x.png -x
TTA (
-x): Realiza variaciones de la imagen y las combina para mejorar la calidad en zonas difíciles, pero multiplica el tiempo de procesado. Úsalo solo cuando la calidad sea prioritaria frente a la velocidad.
Observa que el parámetro -r sirve para redimensionar la imagen con post-procesamiento para obtener una resolución específica. Con esta opción se pueden hacer redimensionados tradicionales con diferentes algoritmos:
| Algoritmo | Ideal para... |
|---|---|
default |
Automático. Upscayl decide según el caso. |
box |
Reducir imágenes (downscale) |
triangle |
Upscale suave. Rápido, para previsualizaciones |
cubicbspline |
Reducir sin aliasing, fotos con mucho ruido |
catmullrom |
Upscale preservando detalles finos |
mitchell |
Uso general, buen equilibrio |
pointsample |
Pixel art, conserva dientes de sierra |
6. Reescalado con sd.cpp (sd-cli)
Si ya utilizas Stable Diffusion CPP, su utilidad sd-cli también incorpora un modo de reescalado basado en ESRGAN, muy cómodo para mejorar imágenes que acabas de generar sin salir de la misma herramienta.
El modo se activa con -M upscale y se le indica el modelo ESRGAN con --upscale-model:
sd-cli -M upscale \
-i imagen.png \
-o imagen_4x.png \
--upscale-model modelos/RealESRGAN_x4plus.pth \
--upscale-repeats 1 \
--upscale-tile-size 128
Principales parámetros relacionados:
| Parámetro | Descripción |
|---|---|
--mode upscale |
Activa el modo de reescalado (en lugar de generar imagen). |
-i / -o |
Imagen de entrada y de salida. |
--upscale-model |
Ruta al modelo ESRGAN (formato .pth, de Real-ESRGAN). |
--upscale-repeats |
Veces que se aplica el reescalado (2 = x16 con un modelo x4). |
--upscale-tile-size |
Tamaño de tile para el procesado (por defecto, 128). |
Los modelos ESRGAN para sd.cpp son los mismos de Real-ESRGAN en formato .pth, disponibles en las releases oficiales de Real-ESRGAN. Además, sd.cpp puede usar el reescalador como parte de la generación (hires fix): si cargas un modelo con --esrgan-path junto a un modelo de difusión, la imagen se reescala automáticamente al final del proceso.
Recuerda:
upscayl-binestá especializado y optimizado únicamente para reescalado, con muchos más modelos y opciones (TTA, multi-GPU, formatos...).sd-clies útil si ya generas imágenes con él y te basta con un reescalado general y prefieres no usar más herramientas.
7. Alternativas
Existen otras herramientas de reescalado por IA que puedes valorar según tus necesidades:
| Herramienta | Tipo | Notas |
|---|---|---|
| chaiNNer | GUI por nodos | Muy potente y extensible, soporta decenas de modelos y formatos. |
| Real-ESRGAN | CLI / librería | Implementación de referencia en Python. Requiere entorno Python + PyTorch. |
| waifu2x | CLI / web | Especializado en anime e ilustraciones. |
| ComfyUI | GUI por nodos | Nodos de upscale (4xUltraSharp, etc.) integrados en flujos de generación. |
| CupScale | GUI | Interfaz sencilla basada en las mismas redes ncnn. |
Como mencionamos al principio, upscayl-bin es la versión de línea de comandos del proyecto Upscayl. Si en algún momento prefieres una experiencia visual, el mismo proyecto ofrece Upscayl, una aplicación gráfica (GUI) de código abierto, multiplataforma y muy sencilla de usar: seleccionas la imagen, eliges el modelo en un desplegable, pulsas un botón y obtienes el resultado.
La GUI utiliza exactamente el mismo motor (upscayl-bin) por debajo, por lo que la calidad del resultado es idéntica. Es una excelente opción para usuarios menos familiarizados con la terminal, mientras que la CLI brilla cuando necesitas automatizar procesos, procesar grandes lotes de imágenes mediante scripts o integrarlo en flujos de trabajo.

