Guía completa de la ampliación de imágenes con IA: cómo funciona y cuándo la necesitas

Todos los upscalers de imágenes se enfrentan al mismo problema: tienen que producir píxeles que no están en el original. Una foto de 1000 píxeles de ancho ampliada a 4000 tiene dieciséis veces más píxeles, y quince de cada dieciséis hay que crearlos. Cómo los crea una herramienta es toda la diferencia entre una ampliación blanda y borrosa y otra que se ve nítida. Este artículo explica, paso a paso, cómo lo hacen los métodos clásicos, cómo lo hace la superresolución con IA, cómo un upscaler de navegador como el nuestro ejecuta una red neuronal en tu tarjeta gráfica y cómo medir el resultado en lugar de fiarse de lo que diga nadie.

El redimensionado clásico: promediar a los vecinos

Antes de las redes neuronales, toda ampliación era una forma de interpolación: calcular cada píxel nuevo a partir de los píxeles originales que lo rodean.

  • Vecino más próximo copia el píxel original más cercano. Es rápido y conserva los bordes duros, pero todo se convierte en cuadrados visibles. El pixel art se amplía así a propósito.
  • Bilineal mezcla los cuatro píxeles más cercanos. Suave, pero blando.
  • Bicúbico usa dieciséis píxeles de alrededor con una curva que conserva algo más de contraste en los bordes. Es lo que usan por defecto la mayoría de los editores y navegadores para el redimensionado de "alta calidad".
  • Lanczos usa una ventana más amplia y conserva los bordes algo más nítidos aún, a cambio de unas leves ondulaciones junto a los bordes fuertes.

Todos comparten una limitación: solo miran números, no lo que los números representan. Un borde entre una pestaña oscura y una piel clara es, para la interpolación bicúbica, solo un cambio brusco de valores, y lo mejor que puede hacer es dibujar una pendiente suave que cruce el salto. Esa pendiente es el desenfoque que ves en cualquier foto ampliada. Ningún ajuste lo arregla, porque la información necesaria para dibujar un borde nítido en el sitio correcto no está en los píxeles vecinos.

La superresolución: aprender cómo es el detalle

La ampliación con IA, cuyo nombre técnico es superresolución de imagen única, sigue otro camino. En lugar de una fórmula fija, usa una red neuronal que ha aprendido, a partir de muchas imágenes de ejemplo, cómo suele ser el detalle fino dada una entrada de baja resolución.

El entrenamiento es sencillo en concepto. Los investigadores toman una gran colección de fotos de alta resolución, reducen cada una y piden a la red que reproduzca el original a partir de la versión pequeña. Cada vez que se equivoca, sus parámetros internos se ajustan un poco hacia una respuesta mejor. Tras millones de ejemplos, la red ha absorbido patrones: cómo continúan los bordes, cómo son de cerca el pelo, el follaje y el texto, cómo se resuelve normalmente un escalón borroso entre dos colores en un límite nítido.

Algunos hitos de esta línea de investigación:

  • SRCNN (2014) demostró que una red convolucional pequeña podía superar con claridad a la interpolación bicúbica en las pruebas de referencia habituales.
  • ESRGAN (2018) añadió una segunda red durante el entrenamiento, un "discriminador" que intenta distinguir fotos reales de fotos ampliadas. El upscaler gana puntos cuando lo engaña, lo que empuja los resultados hacia una textura realista en lugar de una media suave y segura.
  • Real-ESRGAN (2021) se entrenó con imágenes degradadas de muchas formas realistas a la vez (desenfoque, ruido, compresión JPEG, redimensionados repetidos), así que se defiende mejor con fotos del mundo real que con imágenes limpias reducidas artificialmente. Es la familia de modelos que usan apps de escritorio como Upscayl.

La idea del discriminador explica tanto la fortaleza como la principal peculiaridad de los upscalers modernos. Producen una textura creíble, porque se les entrenó para ello. Pero creíble no es lo mismo que verdadero. Cuando la entrada no tiene información suficiente, la red rellena el hueco con lo que suelen contener las imágenes parecidas: una piel creíble, una tela creíble, unas hojas creíbles.

Qué significan los modelos "2x" y "4x"

Una red de superresolución suele entrenarse para un factor fijo. Un modelo 4x siempre produce cuatro veces el ancho y el alto de la entrada; un modelo 2x, el doble. Para conseguir otro tamaño, las herramientas usan el modelo más cercano y luego redimensionan el resultado. Por eso nuestro upscaler ofrece exactamente 2x y 4x: cada opción corresponde a una pasada de un modelo equivalente (ESRGAN-slim 2x o 4x), y cualquier pequeño ajuste para llegar a un tamaño exacto es un redimensionado normal posterior.

También por eso pasar un resultado 4x otra vez por un modelo 4x rara vez ayuda. La segunda pasada trata la textura inventada en la primera como si fuera real e inventa más encima.

Ejecutar una red neuronal en un navegador

Los upscalers en servidor ejecutan los modelos en tarjetas gráficas dedicadas. Un upscaler de navegador tiene que funcionar en el ordenador que tenga cada visitante, mediante estándares web. El nuestro usa tres piezas:

  • El modelo: ESRGAN-slim, una versión compacta de ESRGAN distribuida con la biblioteca UpscalerJS, lo bastante pequeña para descargarla una vez y guardarla en la caché del navegador.
  • El motor: TensorFlow.js, que ejecuta los cálculos de la red en la tarjeta gráfica mediante WebGL.
  • Los mosaicos: la imagen se corta en trozos de 128 × 128 píxeles que se solapan unos pocos píxeles, cada trozo se amplía por separado y los resultados se vuelven a coser. Así el uso de memoria gráfica es lo bastante bajo para un portátil normal, y el solapamiento evita costuras visibles.

Los mosaicos explican que el tiempo de proceso crezca con el tamaño de la imagen de entrada y no con el factor. En nuestras pruebas, una imagen de 480 píxeles tardó de 3 a 6 segundos a 4x una vez cargado el modelo, mientras que una foto de 1,7 megapíxeles tardó unos 20 segundos a 2x. La primera pasada de cada sesión es más lenta porque el modelo tiene que descargarse y "calentarse".

El navegador impone límites que una app de escritorio no tiene. Los navegadores móviles no dan a las páginas web memoria gráfica suficiente para el modelo, así que en móviles y tabletas nuestra herramienta usa un motor clásico (un redimensionado de alta calidad por pasos más los controles de mejora). En ordenadores, la IA acepta imágenes de hasta unos 10 megapíxeles, y la herramienta está pensada para resultados de hasta 4K, un tamaño que los navegadores manejan sin problemas en ordenadores normales.

Medir la diferencia

Decir "más nítido" es fácil. Nosotros lo medimos. Tomamos un retrato, lo redujimos a 480 × 480 píxeles para simular una foto antigua de baja resolución y lo ampliamos 4x hasta 1920 × 1920 de dos maneras: con el redimensionado de alta calidad del propio navegador y con el modelo de IA. Luego medimos el detalle de los bordes en el mismo recorte de 480 × 480 de la cara en ambos, usando la varianza del laplaciano (una medida habitual de cuánto contraste fino de borde tiene una imagen).

El redimensionado normal obtuvo 3,0. El resultado con IA obtuvo 34,7, unas once veces más detalle en los bordes. Ver las imágenes explica el número: las pestañas volvían a ser pelos separados, los bordes de los dientes estaban limpios y el nacimiento del pelo tenía textura en lugar de un manchón blando. También dejó ver la peculiaridad: la piel salió más lisa que en una foto real de alta resolución, un poco como con un retoque suave.

Una cascada en un bosque verde: versión borrosa y de baja resolución a la izquierda y versión nítida a la derecha

Una nota sobre la medición. Los artículos de investigación suelen dar el PSNR, un número que premia parecerse al original píxel a píxel. Los modelos entrenados con discriminador suelen puntuar algo menos en PSNR que los modelos más suaves, aunque a la gente le parezcan mejores, porque una textura realista ligeramente fuera de sitio resta más puntos que un desenfoque seguro. Por eso nos fijamos en el detalle de los bordes y en las propias imágenes, no en un único número de referencia.

Por qué los resultados varían tanto de una foto a otra

  • El contenido que el modelo conoce bien (caras, pelo, texto, objetos comunes, texturas naturales) sale mejor.
  • Los daños de compresión lo confunden: los bloques del JPEG también son "detalle" y pueden ampliarse como tal. Partir de la copia más limpia importa más que cualquier ajuste.
  • El desenfoque no es falta de resolución, sino falta de información. Una foto desenfocada ampliada es una foto desenfocada más grande.
  • Los sujetos diminutos le dan al modelo demasiado poco con lo que trabajar, así que lo que produce es sobre todo su propia suposición.
  • La transparencia necesita un trato especial, porque el modelo solo ve color. Durante las pruebas vimos que nuestro upscaler volvía negros los fondos transparentes; ahora rellena la zona vacía con los colores de borde más cercanos antes de ampliar y después restaura la transparencia original.

Por qué engaña al ojo

Un último punto sobre por qué esto funciona. Nuestros ojos juzgan la nitidez sobre todo por los bordes: los límites entre claro y oscuro. Una imagen con bordes nítidos y textura simplificada se percibe como nítida; una con textura exacta y bordes blandos se percibe como borrosa. Los modelos de superresolución aprovechan esto. Dedican su esfuerzo a donde miramos, y por eso un resultado con IA puede parecer más nítido de lo que en rigor justifica la información que contiene.

Llevarlo a la práctica

Saber cómo funciona lleva a unos cuantos hábitos prácticos. Dale al modelo el original más limpio y grande que haya. Elige el factor que llegue al tamaño que necesitas, porque cada duplicación extra es más invención, no más verdad. Deja la nitidez a cero al principio, porque el modelo ya reconstruye los bordes. Revisa los resultados al 100 % en las partes que importan. Y guarda las fotos en JPG o WebP; en nuestras pruebas, un resultado a 2x pesó 6,85 MB en PNG y 337 KB en WebP sin diferencia visible.

Para trabajos concretos, las guías van más allá: cómo aumentar la resolución de una imagen para imprimir, cómo ampliar una imagen a 4K para pantallas y las diferencias entre ampliar y mejorar. Si quieres probarlo, el upscaler de imágenes funciona por completo en tu navegador; tu foto no se sube a ningún sitio.

Preguntas frecuentes

¿Por qué un redimensionado normal deja las imágenes borrosas?

La interpolación calcula cada píxel nuevo a partir de sus vecinos, así que un borde nítido se convierte en una pendiente suave entre dos valores. La información para dibujar el borde nítido no está en los píxeles vecinos.

¿La ampliación con IA es detalle real?

Es una estimación aprendida. Los bordes y las formas se reconstruyen de forma convincente, mientras que la textura fina y aleatoria, como los poros o la grava, se inventa para que parezca creíble, no se recupera.

¿Por qué el upscaler del navegador trabaja por mosaicos?

Procesa la imagen en trozos de 128 × 128 píxeles que se solapan un poco, para que un portátil normal tenga memoria gráfica suficiente; el solapamiento evita costuras visibles.

← Todos los artículos

Herramientas de imagen gratis, en tu navegador

Amplía, quita fondos, borra metadatos, recorta, comprime o crea un código QR. Sin subir nada, sin registro y sin marca de agua.