Evita el sangrado de color en ComfyUI: pesos de prompt, Conditioning Concat y Conditioning Average

Pide un jarrón blanco con flores rojas y el rojo se cuela en el jarrón y en el fondo. Por qué ocurre, y cómo mantener separada cada parte del prompt con pesos, Conditioning (Concat) y ConditioningAverage.

Anton Tenitsky13 de octubre de 20265 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.

Dos prompts, gold crown y white skull isolated, unidos por un nodo Conditioning (Concat), con calaveras blancas con coronas doradas limpias en la cola

Pídele a Stable Diffusion «a white vase with red flowers» y a menudo obtendrás otra cosa: flores blancas, un fondo rosa, una mesa roja. Los colores se sangran unos en otros, porque cada palabra del prompt comparte el mismo condicionamiento. ComfyUI tiene varias formas de mantenerlos separados. Aquí voy de los pesos de prompt sencillos a dos nodos de condicionamiento que dan resultados mucho más predecibles.

En resumen

  • Pesos: (red:1.5) hace una palabra más fuerte. Mantente entre 0,5 y 1,5, más o menos.
  • Elección aleatoria: {red|blue|yellow|pink} elige una opción por imagen, pero los colores siguen sangrando.
  • Conditioning (Concat): un prompt por objeto, unidos uno a continuación de otro. Los colores se quedan donde les corresponde.
  • ConditioningAverage: mezcla dos prompts; el deslizador de fuerza fija el equilibrio.

Si eres nuevo en ComfyUI, empieza por fundamentos de nodos de ComfyUI y texto a imagen.

Preparación

Empieza desde Workflow → Browse Templates → Image generation. Como checkpoint uso epiCPhotoGasm, un modelo SD 1.5 con imágenes más realistas. Mi prompt de prueba es «white vase with red flowers». Pulsa Ctrl+Enter para ejecutar, y Q para mostrar resultados anteriores en el panel de cola. El recuento de lotes junto al botón Queue fija cuántas imágenes produce cada ejecución.

Dar peso a una palabra

Pon la palabra entre paréntesis con dos puntos y un valor: white vase with (red:1.5) flowers. Eso hace el rojo más rojo. También puedes seleccionar la palabra y pulsar Ctrl+Arriba o Ctrl+Abajo para cambiar el valor en pasos pequeños. La documentación comunitaria de ComfyUI explica la sintaxis completa, incluido el anidado y las opciones {a|b} de más abajo. Mantén los valores entre 0,5 y 1,5, más o menos.

Un prompt que dice white vase with (red:2.2) flowers, con resultados en los que el rojo se extiende a una mesa roja
Con 2,2 el rojo se pasa: se extiende a la mesa y añade artefactos.

Probé valores más altos. Con 2,2 se puso muchísimo más rojo e introdujo artefactos.

Opciones aleatorias, y dónde se nota el sangrado

Las llaves con opciones separadas por | eligen una al azar para cada imagen: white vase with {red|blue|yellow|pink} flowers. Ejecuta un lote de cuatro y obtienes colores distintos. No hay un bucle real por la lista; es aleatorio. (Para recorrer prompts en orden, mira mi nodo Prompt Cycler.)

Un nodo CLIP Text Encode con el prompt white vase with {red|blue|yellow|pink} flowers
Llaves: se elige un color al azar por imagen.

Aquí es donde el problema se hace obvio. El modelo calcula los colores juntos y los mezcla por toda la imagen: flores azules y blancas, un fondo que se vuelve azul o rosa. No hay control sobre dónde va cada color.

Conditioning (Concat): un prompt por objeto

Para imponer ese control, divide el prompt:

  1. Añade un segundo CLIP Text Encode y conecta el clip del checkpoint.
  2. Añade Conditioning (Concat). Conecta los dos prompts a sus entradas conditioning_to y conditioning_from, y su salida a la entrada positive del KSampler.
  3. Pon white vase en un prompt y red flowers en el otro.

Concat es la abreviatura de concatenación: poner piezas una junto a otra sin fundirlas. «Snow» y «ball» se convierten en «snowball»; los números 3, 5, 7, 8 se convierten en la cadena «3,5,7,8», no en su suma. Los prompts se mantienen separados, así que el rojo no se cuela en un fondo rosa o una mesa roja.

Un jarrón de cristal transparente con tulipanes rojos frente a una pared blanca lisa, generado con prompts concatenados
Prompts concatenados: flores rojas y un fondo limpio. Aquí el jarrón se volvió transparente.

En un lote de cuatro obtuve sobre todo flores rojas en un jarrón sobre un fondo limpio. A veces fallaba y salía un campo de flores o un jarrón transparente. Añadir transparency al prompt negativo detuvo la mayoría de los jarrones transparentes, aunque no siempre.

Con todo en un solo prompt, el peso se reparte entre todos los tokens, así que obtienes flores rojas y blancas mezcladas. A veces funciona, pero es impredecible.

Añadir un tercer prompt

Copia un nodo de prompt con Ctrl+C, Ctrl+Shift+V (pegando con sus conexiones) y encadena un segundo nodo Concat: la salida del primer Concat más un tercer prompt, black background, a la entrada positive del KSampler.

Tres prompts, white vase, red flowers y black background, encadenados mediante nodos Conditioning Concat, con flores rojas en jarrones sobre negro en la cola
Tres prompts, tres conceptos: los colores casi siempre se quedan donde les corresponde.

Tras corregir una errata, obtuve jarrones blancos con flores rojas sobre un fondo negro. Todavía falla de vez en cuando (un jarrón salió negro), pero en conjunto los prompts se vuelven mucho más predecibles, y tú seleccionas lo que encaja. Sin esto, los colores se mezclan por todas partes.

ConditioningAverage: un deslizador entre dos prompts

ConditioningAverage toma las mismas dos entradas y las mezcla. Su conditioning_to_strength fija el equilibrio:

  • Con 1,0: sobre todo flores rojas, el lado más fuerte.
  • Con 0,5: una imagen equilibrada de un jarrón blanco con flores rojas.
  • Con unos 0,21: flores blancas en un jarrón blanco.
ConditioningAverage con fuerza 0,53 mezclando gold crown y white skull, con resultados que van de una calavera dorada con corona a una mujer con un tocado dorado
Average a 0,53: una calavera dorada con corona, un maniquí y una mujer que nadie pidió.

Con «white skull» y «gold crown», y man, woman, female, male en el prompt negativo, aun así me salieron algunas personas. Con un valor bajo recogió sobre todo la calavera blanca y nada de la corona. Más alto, todo se volvió dorado, calavera incluida, o mostró solo la corona. En algún punto intermedio obtuve una calavera dorada con una corona dorada, y un fallo: una mujer con algo parecido a una calavera encima. Me encanta cambiar estos valores; los resultados aleatorios pueden ser fascinantes. Un poco más de trabajo con el prompt («white skull isolated», más face en el negativo) mostró menos rostros.

Para resultados limpios, usa Concat

Para este tipo de prompt, Concat funciona mucho mejor. Con gold crown y white skull isolated unidos por Conditioning (Concat), el dorado dejó de fundirse con la calavera.

Prompts concatenados gold crown y white skull isolated, con calaveras blancas limpias con coronas doradas
Concat: una calavera blanca y una corona dorada, sin que el dorado sangre sobre el hueso.

Elegí la imagen que me gustaba y la escalé cuatro veces con el flujo de escalado gratuito con IA con SD 1.5.

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

Todo lo anterior también está en el vídeo, si prefieres seguirlo en pantalla. El vídeo está en inglés.

Preguntas frecuentes

¿Qué es el sangrado de color en Stable Diffusion?

Cuando un prompt menciona varios colores o materiales, el modelo los mezcla: un «white vase with red flowers» puede salir con flores blancas, un fondo rosa o una mesa roja. Las palabras comparten un mismo condicionamiento, así que su influencia se extiende por toda la imagen.

¿Cómo cambio el peso de una palabra en un prompt de ComfyUI?

Enciérrala entre paréntesis con un valor, como (red:1.5), o selecciona la palabra y pulsa Ctrl+Arriba / Ctrl+Abajo. Los valores entre 0,5 y 1,5, más o menos, son seguros; con 2,2 la imagen se puso muchísimo más roja y con artefactos.

¿Cuál es la diferencia entre Conditioning Concat y Conditioning Average?

Concat mantiene los prompts como piezas separadas una junto a otra, así que no se mezclan. Average los mezcla, y su deslizador de fuerza decide qué prompt domina.

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