Reilumina cualquier foto con IC-Light en ComfyUI: prompts, máscaras de luz y transferencia de detalle

Cambia la iluminación de un retrato, una foto de grupo o un paisaje con IC-Light v1 y SD 1.5 en ComfyUI. Construye el flujo, conserva el rostro con Detail Transfer, guía la luz con máscaras y doma los resultados quemados.

Anton Tenitsky13 de octubre de 20267 min de lecturaVersión en vídeo más abajo

Esta guía se tradujo del inglés con IA y puede contener errores. Leer el original.

ComfyUI con un prompt daylight y versiones cálidas y soleadas de un retrato familiar reiluminado en la cola

IC-Light reilumina una foto a partir de un prompt de texto o una máscara de luz. Hace más que mover la luz: también hace un retoque realmente bonito, casi de nivel profesional, y puedes darle cualquier foto mediocre tuya, de tu familia o de un paisaje. Funciona en ComfyUI en casi cualquier portátil gaming, en casa, gratis, sin subir tus fotos a ninguna parte.

IC-Light es de lllyasviel, el autor de ControlNet (IC-Light en GitHub). También existe un IC-Light v2, que da mejores resultados, pero cuando hice esto solo estaba disponible como servicio de pago y no comercial en su propia web, no en ComfyUI. Aquí uso la v1.

En resumen

  • Nodos: ComfyUI-IC-Light (Kijai), KJNodes, Essentials, rgthree. Modelo: iclight_sd15_fc.
  • Grafo: checkpoint → Load And Apply IC-Light → KSampler; prompts y VAE → IC-Light Conditioning → KSampler; tu foto, redimensionada y codificada con VAE, como primer plano.
  • Haz prompts de la luz: «daylight», «foggy morning», «neon light», «spotlight».
  • Conserva el rostro: Detail Transfer desde la imagen original.
  • Las máscaras de luz sustituyen al latente vacío; suavízalas o la imagen se quema.

¿Nuevo en ComfyUI? Empieza por fundamentos de ComfyUI. El flujo y mis máscaras de luz están gratis en mi Patreon.

Instalación

  1. Manager → Custom Nodes Manager, busca IC-Light. Hay dos paquetes, el de Kijai y IC-Light Native de huchenlei. Ambos son útiles; instalo los dos, y uso el de Kijai aquí.
  2. Instala también KJNodes (los nodos de utilidad de Kijai). Reinicia y recarga la página.
  3. Manager → Model Manager, busca IC-Light. Hay tres modelos; solo necesitas uno:
    • FC (foreground conditioned): el que uso.
    • FBC (foreground y background).
    • FCON: según la documentación, algo peor que FC.
  4. Tras la descarga, simplemente actualiza la página (Ctrl+R); no hace falta reiniciar.

Construye el flujo

Empieza desde el flujo por defecto y cambia el checkpoint a epiCPhotoGasm. Renombra los prompts como «Positive» y «Negative», y coloréalos de verde y rojo.

  1. Load And Apply IC-Light: el modelo del checkpoint pasa por él hasta el KSampler. Recoge automáticamente el modelo FC.
  2. IC-Light Conditioning: conecta el prompt positivo, el prompt negativo y el VAE; sus salidas positive y negative van al KSampler.
  3. El primer plano: Load Image con tu foto → Image Resize (Essentials) → VAE Encode → la entrada foreground del condicionamiento.
El nodo Load And Apply IC-Light con el modelo iclight_sd15_fc y el nodo IC-Light Conditioning con las entradas positive, negative, vae, foreground y opt_background y un multiplier de 0,182
Los dos nodos de IC-Light. El modelo pasa por uno; los prompts, el VAE y la foto por el otro.

El nodo de condicionamiento también tiene una entrada opt_background. Probé imágenes de fondo y nunca se veían bien, así que lo dejé; describe el fondo en el prompt. También tiene una salida empty_latent, igual que un nodo Empty Latent Image. Yo mantengo un Empty Latent Image aparte, porque esa entrada es donde van después las máscaras de luz.

Escribe una iluminación en el prompt positivo, como daylight o foggy morning, y pulsa Ctrl+Enter. Cada ejecución es ligeramente distinta; sube el recuento de lotes para ver muchas variaciones. Algunas serán horribles, otras buenas para trabajar. Selecciona.

Compara, y conserva el rostro con Detail Transfer

Añade el Image Comparer de rgthree con el resultado como imagen A y el original redimensionado como imagen B. Arrastra el deslizador y verás que cambia ligeramente el rostro. Eso es la parte de retoque: te «mejora». Después ya no eres exactamente el mismo, lo cual suele ser más malo que bueno.

Un selfie reiluminado de un hombre con gafas y barba dividido por el deslizador del comparador frente al original
El comparador de cerca: iluminación nueva y un rostro ligeramente retocado.

Para recuperar el detalle, añade Detail Transfer: la salida reiluminada en target, la imagen original en source. Funciona como el truco de paso alto y máscara de enfoque de Photoshop, y puede pasarse; baja el blend factor para controlarlo.

Fija la seed mientras ajustas

Con la seed en randomize, cada cambio vuelve a ejecutarlo todo y da una imagen nueva. Cambiar a fixed tampoco congela la imagen actual, porque la siguiente seed ya se ha fijado. Lo que hago yo: pongo la seed en increment, empezando en 1, para que cada imagen tenga un número conocido. Vuelve al número que te gustó (digamos 3), ejecútalo y luego cambia a fixed. Ahora, cuando cambies los ajustes de Detail Transfer, solo se vuelve a ejecutar ese nodo, en unos segundos.

El KSampler con control_after_generate en increment junto a retratos reiluminados en la cola
Increment, elige el número que te guste y luego fíjalo.

Máscaras de luz

En lugar de un latente vacío, dale al KSampler una máscara de luz: una imagen en blanco y negro donde el blanco es luz. Carga la máscara, pásala por VAE Encode y conéctala al latent_image del KSampler. Dibujé un conjunto de máscaras (redonda, rayas, líneas diagonales y otras); están en mi Patreon.

Una máscara de luz de rayas diagonales en blanco y negro cargada en el flujo
Una máscara de rayas: luz a través de persianas.

Las máscaras duras queman la imagen. Una máscara pura en blanco y negro da un contraste altísimo, y una máscara redonda produjo una luz muy fuerte que además alcanzó los ojos. Para suavizarla, añade Remap Image Range entre la máscara y VAE Encode, con una vista previa: sube el mínimo y baja el máximo. Yo bajé a un 20 por ciento. No es en tiempo real como en Photoshop; ejecutas el grafo para ver incluso la vista previa.

Una máscara de luz redonda y suave en un nodo de vista previa
Una máscara redonda, remapeada para que no queme la imagen.

Con máscaras, el prompt importa mucho. «Spotlight» dio una luz dura; «neon light» dio neón. Normalmente pongo en cola seis u ocho a la vez. (Hacer clic en el número de un nodo de vista previa muestra todas las vistas previas de ejecuciones anteriores, una función de un ComfyUI más reciente; actualiza ComfyUI de vez en cuando.)

Multiplier: el 0,182 por defecto de IC-Light Conditioning es bueno. Con 0,155 quedó más oscuro; con 0,25 quemó la imagen casi hasta un aspecto estilizado.

Resultados en blanco y negro

A veces devuelve imágenes en blanco y negro y no sé por qué. Poner «black and white» en el prompt negativo hizo que la saturación se disparara. Probar el modelo Photon también produjo al principio muchas imágenes en blanco y negro. Mi portátil de 4 GB las hacía con mucha más frecuencia que mi PC de 24 GB, que casi siempre da color. Un prompt como «50% saturated» puede ayudar. Al final sobre todo seleccioné en lugar de hacer muchos prompts; mantengo los prompts mínimos.

Una máscara de luz de líneas diagonales en un nodo de vista previa con resultados reiluminados en la cola
Una máscara de líneas diagonales: la luz tiende a caer más en el fondo que en el rostro.

Mayor resolución

SD 1.5 e IC-Light están entrenados con 512 × 512. Aun así puedes darle una imagen de 1024 × 1024, siempre que la máscara tenga el mismo tamaño (usa un nodo de cambio de tamaño). El resultado salió algo quemado y más estilizado, pero de mayor calidad. Puede merecer la pena, porque los escaladores a veces suavizan la piel de forma plástica.

Pinta la luz a mano

También puedes pintar directamente una máscara de luz:

  1. Clic derecho en Load Image → Open in Mask Editor, y pinta dónde debe caer la luz (probé una iluminación al estilo noir de los años 50 sobre un rostro).
  2. Convert Mask to Image, y luego a VAE Encode.
  3. Si el resultado sale borroso, comprueba los tamaños: cuando la máscara no coincide exactamente con la imagen de 512 × 512, lo rompe todo.
  4. Suavízala: Mask Blur (Essentials) antes de convertirla en imagen (usé 66), y luego Remap Image Range a un 30 por ciento con los blancos reducidos.

Grupos y paisajes

IC-Light también funciona con varias personas. En una foto familiar generada, «daylight» dio resultados interesantes. Una máscara de haz de luz sobre el niño, o «beam of light» en el prompt, creó unos haces de luz disparatados; puede que haya que ajustar el multiplier.

Un prompt daylight con tres variaciones cálidas y soleadas de un retrato familiar en la cola
«Daylight» sobre una foto de grupo.

En una foto de paisaje de Australia, «daylight» dio resultados interesantes, «sunset» la volvió demasiado roja y aterradora, y «afternoon» a veces sustituía el mar por un paisaje que no estaba allí, pero otras veces hacía un buen trabajo. Hay que jugar con los prompts.

Una foto de una playa rocosa como entrada con el modelo Photon y un prompt afternoon, y resultados de un atardecer rojo intenso en la cola
Una foto de playa: «sunset» se pasó de rojo.

Escalar el resultado

Una imagen reiluminada de 512 px puede llegar a 8K con mi flujo de escalado gratuito. El resultado no siempre fue asombroso; a menudo me pareció mejor la imagen reiluminada de 512. Pero si necesitas la resolución, sigue dando un resultado decente.

Ver la versión en vídeo (19:19)

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 usar IC-Light v2 en ComfyUI?

No cuando hice esto. IC-Light v2 solo estaba disponible como servicio de pago y no comercial en su propia web. Esta guía usa IC-Light v1, que funciona en local.

¿Qué modelo de IC-Light debo descargar?

El modelo FC (foreground-conditioned) es el único que uso. El modelo FBC también admite un fondo; probé imágenes de fondo y nunca se veían bien, así que describo el fondo en el prompt.

¿Por qué mis imágenes reiluminadas salen quemadas o en blanco y negro?

Las máscaras de luz duras en blanco y negro queman la imagen: suavízalas con Remap Image Range y un desenfoque de máscara. Los resultados en blanco y negro salían a menudo en mi portátil de 4 GB y rara vez en mi PC de 24 GB; un prompt de estilo «50% saturated» puede ayudar.

¿Qué multiplier debo usar en IC-Light Conditioning?

El valor por defecto 0,182 funciona bien. 0,155 resultó más oscuro; 0,25 quemó la imagen casi hasta un aspecto estilizado.

Anton Tenitsky es artista 3D con más de 15 años en gráficos por ordenador, que ha trabajado con Nickelodeon, Gameloft, Marvel Rivals y muchos otros clientes. Más sobre mí

Guías relacionadas