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.
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.)
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:
- Añade un segundo CLIP Text Encode y conecta el clip del checkpoint.
- 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.
- 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.
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.
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.
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.
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.
