No necesitas una tarjeta de 24 GB ni un servicio en línea para escalar bien una imagen. Ultimate SD Upscale alimenta la GPU con una pequeña tesela cada vez, así que una tarjeta con 4 GB de VRAM puede producir imágenes de 4K y 8K en local, gratis y sin censura. La calidad es realmente buena. Aquí construyo el flujo desde cero, explico los ajustes que importan y muestro dónde funciona y dónde falla.
En resumen
- Nodos: Ultimate SD Upscale y rgthree (para el comparador de imágenes).
- Modelos: un checkpoint SD 1.5 (epiCPhotoGasm) más un modelo de escalado de OpenModelDB.
- Ajustes: 4×, 20–30 steps, dpmpp_2m_sde_gpu / karras, denoise 0,25, teselas de 512 × 512, CFG 6–8.
- Velocidad con 4 GB: 512 → 2048 px en 73 segundos; 1600 → 6400 px en unos 11 minutos.
- Más grande: encadena dos nodos para 16×.
¿Nuevo en ComfyUI? Mira fundamentos de nodos de ComfyUI e instalar el ComfyUI Manager.
La vía rápida: carga el flujo
El flujo terminado es gratuito en mi Patreon. También puedes arrastrar a ComfyUI una de sus imágenes de salida: el flujo está guardado en los metadatos de la imagen. Instala los nodos que falten desde el Manager y reinicia.
El flujo recuerda los nombres de los modelos, no los archivos. Si no tienes el mismo modelo de escalado o checkpoint en tus carpetas, el campo muestra «undefined»; elige el tuyo. Sube tu imagen en Load Image y pulsa Queue.
Constrúyelo desde cero
1. Instala los nodos
En Manager → Custom Nodes Manager, instala Ultimate SD Upscale y los nodos ComfyUI de rgthree (tiene el nodo de comparación que uso mucho). Reinicia.
2. El nodo principal y sus entradas
- Añade Ultimate SD Upscale. Tiene muchos parámetros; más sobre ellos abajo.
- Añade Load Checkpoint con un modelo SD 1.5 (yo uso epiCPhotoGasm) y conecta su modelo y su VAE.
- Añade dos nodos CLIP Text Encode para las entradas positive y negative, y déjalos vacíos. Haz clic en el punto gris de cada uno para colapsarlos, ya que no hay nada que ver.
- Añade Load Upscale Model y conéctalo.
- Añade Load Image con la imagen que quieres escalar, un Save Image para la salida y un Image Comparer de rgthree: la salida escalada en image_a y la original en image_b.
3. Consigue modelos de escalado en OpenModelDB
OpenModelDB es un gran sitio para encontrar modelos de escalado. Unos son mejores para rostros, otros para objetos, anime o estilos de dibujos animados. Cada página muestra muestras de antes y después, modelos similares y la licencia, así que compruébala si piensas en un uso comercial. Los archivos son pequeños: megabytes, no gigabytes.
Los que uso:
| Modelo | Para qué es bueno |
|---|---|
| 4x-UltraSharp | Detalle nítido; mi modelo por defecto |
| 4x-FaceUpSharpDAT | Rostros, más nítido |
| 4x-FaceUpDAT | Rostros, más suave y alisado |
| 4x-Nomos2-hq-drct-l | Arquitectura; lo uso para rocas |
Pon los archivos en ComfyUI/models/upscale_models/ y luego Edit → Refresh Node Definitions para que aparezcan en la lista.
Cables más ordenados: en Settings (abajo a la izquierda) → LiteGraph, cambia el modo de dibujo de los enlaces de spline a straight o lineal.
Los ajustes que importan
- upscale_by: 4. El nodo llega hasta 4 veces el original. Puedes encadenar nodos para 16×, 32× y más.
- Steps: 20–30. 40–50 da una calidad ligeramente mejor pero tarda mucho más; hay un punto de rendimientos decrecientes.
- Sampler: dpmpp_2m_sde_gpu, que es mejor para imágenes realistas, con el scheduler karras. Vale la pena experimentar con ellos.
- Denoise: 0,25. Esto es muy importante. Con 1,0 crea una imagen completamente nueva. Con 0,2–0,25 conserva la mayor parte de la imagen y añade algo de detalle; parece que se queda un 90 % y cambia un 10 %. A veces subo a 0,35, que es más o menos el máximo antes de que la imagen empiece a cambiar.
- Ancho y alto de tesela: 512. SD 1.5 se entrenó con imágenes de 512 × 512, así que funciona mejor con teselas de 512. El nodo divide incluso una imagen enorme en muchas teselas y procesa cada una por separado, y por eso funciona en una tarjeta modesta; solo tarda más. Muchos otros métodos de escalado simplemente fallan cuando te quedas sin VRAM.
- CFG: 6–8. Más bajo da más variación; muy bajo da ruido. Muy alto crea artefactos como un exceso de nitidez. 8 está bien.
Con un checkpoint SDXL la tesela sería de 1024 × 1024. Lo probé: calidad ligeramente mayor, pero mucho más lento. SD 1.5 a 512 funciona mucho más rápido con una calidad muy parecida.
Prueba con una foto que conozcas bien
Empieza con una imagen que conozcas muy bien. Usé un selfie de Angkor Wat, en Camboya, con dibujos en el fondo y un logotipo en mi camiseta, y lo reduje a 512 × 512 a propósito para ver lo bien que se recuperaba.
La ventana de comandos muestra el tamaño del lienzo, el número de teselas y el progreso. De 512 → 2048 con 4× son 16 teselas. A 4K u 8K el recuento sube rápidamente: 64, 128, 300, 400 teselas.
En mi portátil de 4 GB tardó 73 segundos. Al arrastrar el deslizador del comparador: el logotipo se mantiene nítido y sin cambios, se conservan las tallas del techo del templo y las gafas se ven exactamente como en la vida real. Eso sí, añadió un grano en mi nariz que no recuerdo haber tenido.
Cambiar a 4x-FaceUpDAT dio un aspecto más favorecedor y suave. Alisó más la piel e hizo un gran trabajo con las gafas y los ojos, quizá mejor que UltraSharp. Pero mi barba se volvió mucho más sedosa de lo que es, y en primer plano extremo las paredes del fondo cogieron trazos como de pelo.
Ir más grande, y cuándo deja de ayudar
Para una imagen de 8K, lo más fácil es volver a cargar la salida de 2K en Load Image y ejecutar de nuevo.
Cogí una foto de 400 × 300 de Donald Trump de la Enciclopedia Británica. La primera pasada dio unos 1600 px de ancho. La segunda pasada, 1600 × 1200 → 6400 × 4800, necesitó 130 teselas a unos 4–5 segundos cada una y tardó 683 segundos. Los ordenadores más rápidos pueden hacer un segundo por tesela o menos. El nodo muestra la tesela actual, así que puedes comprobar cuánto queda e irte a tomar un café.
El resultado salió mucho más suave, y no necesariamente de una buena manera. En un zoom ultra se veía mejor, pero en un plano medio no creo que mejorara mucho; la piel perdió calidad por el denoise y el alisado extra. En una segunda pasada puede tener sentido cambiar de modelo, por ejemplo UltraSharp, para evitar que el rostro se alise demasiado.
Comparar el original y el final
El comparador solo se actualiza cuando se ejecuta el grafo, así que para comparar el pequeño original y el resultado de 6K sin volver a escalar: selecciona los nodos de escalado y pulsa Ctrl+B para desactivarlos, añade dos nodos Load Image (la imagen final y el original), conéctalos al comparador y pon en cola. Se ejecuta en unos segundos.
16×: encadena dos nodos de escalado
- Selecciona el nodo Ultimate SD Upscale, Ctrl+C, y luego Ctrl+Shift+V para pegarlo con todas sus conexiones.
- Conecta la salida de imagen del primer nodo a la entrada de imagen del segundo.
- Conecta la salida del segundo nodo a Save Image y al image_a del comparador (el original se queda en image_b).
- Ambos nodos comparten el checkpoint, los prompts vacíos y el modelo de escalado. Para usar distintos modelos de escalado en cada pasada, copia también el nodo Load Upscale Model.
Puedes escribir en los prompts y sí afecta al resultado, pero a mí no me funcionó bien, así que los dejo vacíos.
En el portátil esto puede tardar 30 minutos. No es una tarea trivial para un ordenador con poca VRAM; muchos escaladores que estudié no podían hacerlo en absoluto, y otros añaden demasiado ruido.
Resultados: dónde brilla y dónde falla
Mi tetera calavera, de la guía de fusión de imágenes con imagen a imagen, pasó de 512 px a 8K con UltraSharp, con un detalle altísimo incluso con zoom ultra. Yo la imprimiría y la pondría en la pared.
Me metí en el escalado con IA por mi propio trabajo. En un frasco de perfume que diseñé en 3D-Coat, los cortes de vóxeles dejan bordes toscos; pasar de 1500 a unos 3000 px los suavizó de maravilla.
En el diseño de un robot, UltraSharp afiló en cambio los bordes dentados de polígonos de 3D-Coat. 4x-FaceUpDAT dio líneas mucho más suaves, las que yo quería. Algunos detalles diminutos del rostro se aplastaron y cambiaron, un coste menor para un gran escalado rápido de un render final.
Dónde falló: una foto de corales submarinos tomada con GoPro, de 2500 px de ancho, llevada a 10–12K. Está claro que los modelos no se habían entrenado mucho con corales. Recortar un trozo de 300 px para darle más margen de inventar detalle tampoco ayudó. Para imágenes submarinas necesitaría un modelo de escalado completamente distinto.
En un render antiguo de unas rocas cuyo archivo de escena perdí, el resultado intermedio de 2000–3000 px era realmente bonito. A 8–10K se suavizó demasiado, con ese aspecto de exceso de reducción de ruido; sigue siendo mucho mejor que la imagen original diminuta, pero no era un aspecto que me gustara.
Si conoces otras técnicas de escalado que funcionen mejor, deja un comentario en el vídeo. Este es solo mi flujo.
Ver la versión en vídeo (22:11)
Todo lo anterior también está en el vídeo, si prefieres seguirlo en pantalla. El vídeo está en inglés.
Preguntas frecuentes
¿Puedo escalar imágenes con solo 4 GB de VRAM?
Sí. Ultimate SD Upscale divide la imagen en teselas de 512 × 512 y las procesa una a una. En un portátil de 4 GB, una imagen de 512 px pasó a 2048 px en 73 segundos; una salida de 6400 × 4800 supuso 130 teselas a unos 4–5 segundos cada una.
¿Qué denoise debo usar para escalar?
0,25 conserva la mayor parte de la imagen y añade algo de detalle. 0,35 es más o menos el máximo antes de que la imagen empiece a cambiar. Con 1,0 obtienes una imagen completamente nueva.
¿Cuál es el mejor modelo de escalado?
Depende de la imagen. 4x-UltraSharp mantiene los detalles nítidos; 4x-FaceUpDAT es más suave y alisado, bueno para rostros y para disimular bordes dentados; Nomos2 va bien con arquitectura y rocas. Ninguno funcionó bien con una foto de coral submarino.
¿Cómo escalo más de 4×?
Pasa la salida otra vez por el nodo, o encadena dos nodos Ultimate SD Upscale para 16×. Cuenta con tiempos de render muy largos y vigila el exceso de alisado a partir de 8K.
