Free | 150 credits

Flujo de Trabajo Z-Image en ComfyUI: Guía Completa de Nodos Personalizados | Tutorial Z Imagen

Domina los nodos personalizados de Z-Image (Z Imagen) para ComfyUI. Referencia completa de ZImageTextEncoder, ZImageTurnBuilder, plantillas, bloques think y flujos de trabajo avanzados multi-turn.

Z-Image TeamReddit··9 min read
Flujo de Trabajo Z-Image en ComfyUI: Guía Completa de Nodos Personalizados | Tutorial Z Imagen

Z-Image Turbo funciona con cualquier configuración de ComfyUI, pero sus nodos personalizados desbloquean todo el poder del formato de plantilla de chat Qwen3-4B. Esta guía cubre todo lo necesario para construir flujos de trabajo avanzados.

Instalación

Archivos Requeridos

Descarga de Comfy-Org/z_image_turbo:

ComfyUI/
├── models/
│   ├── text_encoders/
│   │   └── qwen_3_4b.safetensors
│   ├── diffusion_models/
│   │   └── z_image_turbo_bf16.safetensors
│   └── vae/
│       └── ae.safetensors  (Flux 1 VAE)
└── custom_nodes/
    └── comfyui-z-image/  (Paquete de nodos personalizados)

Configuración Básica

ConfiguraciónValor
Pasos8-10 (recomendado 9)
CFG1.0-2.0 (recomendado 1.0)
SamplerDPM++ 2M Karras
Tipo CLIPLumina 2

Referencia de Nodos

ZImageTextEncoder

El nodo codificador principal. Maneja conversaciones completas del primer turno.

Entradas

EntradaTipoDescripción
clipCLIPDe CLIPLoader (Lumina 2)
user_promptSTRINGTu solicitud de generación (requerido)
template_presetDROPDOWNSelección rápida de estilo (140+ opciones)
system_promptSTRINGInstrucciones personalizadas (auto-llenado por plantilla)
add_think_blockBOOLEANAñadir etiquetas <think> a la plantilla
thinking_contentSTRINGTexto dentro de las etiquetas think
assistant_contentSTRINGTexto después del bloque think
raw_promptSTRINGBypass total, escribe tus propios tokens
strip_key_quotesBOOLEANEliminar comillas JSON de salida LLM

Salidas

SalidaTipoDescripción
conditioningCONDITIONINGConectar a KSampler positive
formatted_promptSTRINGVer exactamente qué se codificó
conversationCONVERSATIONEncadenar a TurnBuilder

Ejemplo de Configuración

template_preset: photorealistic
user_prompt: "A 30-year-old Japanese woman in business attire"
add_think_block: true
thinking_content: "Professional headshot, soft studio lighting, confident expression"
assistant_content: "Here's your professional portrait."

ZImageTurnBuilder

Añade turnos de conversación después del codificador inicial.

Entradas

EntradaTipoDescripción
previousCONVERSATIONDel codificador u otro TurnBuilder
clipCLIP (opcional)Conectar para salida de conditioning directa
user_promptSTRINGSiguiente mensaje del usuario
thinking_contentSTRINGTexto para bloque think
assistant_contentSTRINGRespuesta del asistente
is_finalBOOLEANDejar último mensaje abierto

Dos Opciones de Flujo

Opción A: Codificación Directa (clip conectado)

ZImageTextEncoder → TurnBuilder (clip) → KSampler

TurnBuilder emite conditioning directamente cuando clip está conectado.

Opción B: Encadenar de Vuelta (sin clip)

ZImageTextEncoder → TurnBuilder → ZImageTextEncoder (conversation_override)

Usa la entrada conversation_override en el segundo codificador.

ZImageTextEncoderSimple

Codificador simplificado para uso rápido — ideal para prompts negativos.

Entradas

Igual que ZImageTextEncoder pero sin salida de conversación.

Caso de Uso

Positivo: ZImageTextEncoder → KSampler (positive)
Negativo: ZImageTextEncoderSimple → KSampler (negative)
          user_prompt: "bad anatomy, blurry, watermark"

La Plantilla de Chat

Estructura

Z-Image espera este formato:

<|im_start|>system
[Instrucciones del sistema]<|im_end|>
<|im_start|>user
[Prompt del usuario]<|im_end|>
<|im_start|>assistant
<think>
[Razonamiento/planificación]
</think>

[Respuesta]<|im_end|>

Tokens Especiales

TokenPropósito
<|im_start|>Inicio de un mensaje
<|im_end|>Fin de un mensaje
systemRol: instrucciones
userRol: solicitud humana
assistantRol: respuesta del modelo
<think>Inicio de razonamiento
</think>Fin de razonamiento

Qué Hace Cada Parte

System Prompt

  • Establece estilo y restricciones
  • Persiste a través de la conversación
  • Ejemplo: "Generate photorealistic images with natural lighting"

User Prompt

  • Tu solicitud real
  • El contenido principal
  • Ejemplo: "A cat sleeping on a windowsill"

Bloque Think

  • Razonamiento sobre la imagen
  • Lo escribes tú, no un LLM
  • Ejemplo: "Warm afternoon light, shallow depth of field"

Contenido del Asistente

  • Texto de respuesta antes de la generación
  • Puede preparar al modelo
  • Ejemplo: "Here's a cozy scene with soft lighting"

Sistema de Plantillas

Plantillas Disponibles (140+)

Plantillas de Estilo

PlantillaDescripción
photorealisticIluminación natural, detalles realistas
comic_americanContornos audaces, colores planos, dinámico
anime_ghibliEstilo acuarela Studio Ghibli
anime_shinkaiIluminación dramática Makoto Shinkai
neon_cyberpunkLuces neón, calles mojadas
oil_painting_classicalTécnica de maestro renacentista
pixel_artEstética retro 8/16-bit
character_designFichas de diseño, referencias de modelo
watercolor_softPintura de acuarela suave
noir_cinematicAlto contraste blanco y negro

Plantillas de Prompt Estructurado

PlantillaDescripción
json_structuredParsear prompts formateados en JSON
yaml_structuredParsear prompts jerárquicos YAML
markdown_structuredParsear prompts formateados en Markdown

Formato Extendido de Plantilla

Las plantillas pueden pre-llenar múltiples campos:

# Estructura de archivo de plantilla
system_prompt: "Tus instrucciones de estilo aquí"
add_think_block: true
thinking_content: "Razonamiento pre-llenado"
assistant_content: "Respuesta pre-llenada"

Cuando se selecciona, todos los campos configurados se auto-rellenan.

Plantillas Personalizadas

Crea plantillas personalizadas en:

custom_nodes/comfyui-z-image/nodes/templates/z_image/

Formato de archivo de plantilla (YAML):

name: my_custom_style
system_prompt: |
  Generate images in my custom style.
  Focus on specific aesthetic elements.
add_think_block: true
thinking_content: |
  Default reasoning for this style.

Ejemplos de Flujo de Trabajo

Imagen Única Básica

[CLIPLoader]          [Load VAE]
    ↓                      ↓
[ZImageTextEncoder]   [Load Diffusion Model]
    ↓                      ↓
    └──────→ [KSampler] ←──┘
                 ↓
            [VAEDecode]
                 ↓
            [SaveImage]

Configuración:

  • CLIPLoader: type = Lumina 2
  • ZImageTextEncoder: template_preset = photorealistic
  • KSampler: steps = 9, cfg = 1.0

Con Bloque Think

[ZImageTextEncoder]
├── template_preset: photorealistic
├── user_prompt: "Portrait of an elderly fisherman"
├── add_think_block: ✓
├── thinking_content: "Weathered face, sea salt in beard,
│                      warm golden hour light, authenticity"
└── assistant_content: "A life shaped by the sea."
         ↓
    [KSampler]

Personaje Multi-Turn

[ZImageTextEncoder] ←─────────────────────────────────────┐
├── system_prompt: "Generate consistent character..."     │
├── user_prompt: [Ficha de personaje completa]            │
├── thinking_content: "Key features: blue eyes, scar..."  │
└── assistant_content: "Character established."           │
         ↓                                                │
         ↓ conversation                                   │
         ↓                                                │
[ZImageTurnBuilder]                                       │
├── previous: [conversation de arriba]                    │
├── user_prompt: "Change outfit to red dress"             │
├── thinking_content: "Preserve face, change only outfit" │
├── clip: [de CLIPLoader]                                 │
└── is_final: ✓                                           │
         ↓                                                │
         ↓ conditioning                                   │
         ↓                                                │
    [KSampler]                                            │
         ↓                                                │
    [SaveImage]                                           │

Positivo + Negativo

[CLIPLoader] ─────────────────────────┐
      ↓                               ↓
[ZImageTextEncoder]    [ZImageTextEncoderSimple]
(prompt positivo)      (prompt negativo)
      ↓                               ↓
      └────────→ [KSampler] ←─────────┘
                     ↓
                [VAEDecode]

Ejemplo de prompt negativo:

user_prompt: "bad anatomy, extra limbs, blurry, watermark, text"

Modo Raw

Para control completo, usa raw_prompt para bypass de todo el formateo:

raw_prompt: |
  <|im_start|>system
  You are a surrealist painter specializing in dreamscapes.<|im_end|>
  <|im_start|>user
  A melting clock draped over a tree branch in a desert<|im_end|>
  <|im_start|>assistant
  <think>
  Dali-esque composition, impossible physics, soft warm desert light,
  meticulous detail on the clock face, vast empty background
  </think>

  A dreamscape emerges from the unconscious mind.

Cuando raw_prompt está configurado, todos los demás campos se ignoran. Eres responsable del formateo correcto de tokens.


Depuración

Verificar Salida Formateada

Conecta formatted_prompt a un nodo Preview Text para ver exactamente qué se está codificando.

Logs de Consola

La consola del servidor muestra:

[Z-Image] Formatted prompt: <|im_start|>system...
[Z-Image] Mode: direct
[Z-Image] Character counts: system=45, user=234, think=67
[Z-Image] Token estimate: ~350

Problemas Comunes

ProblemaCausaSolución
Salida en blancoTipo CLIP incorrectoUsa Lumina 2
Pobre calidadCFG muy altoConfigura CFG a 1.0
Generación lentaDemasiados pasosUsa 8-10 pasos
Plantilla no funcionaRuta incorrectaVerifica carpeta de plantillas

Optimización de Rendimiento

Gestión de VRAM

PrecisiónVRAMCalidad
bf16~16GBMejor
fp8~10GBBuena
GGUF Q4~6GBAceptable

Configuración de Velocidad

PrioridadPasosSampler
Velocidad8UniPC
Equilibrado9DPM++ 2M Karras
Calidad12DPM++ SDE Karras

Procesamiento por Lotes

Para generación por lotes:

  • Usa sampler determinístico (DPM++ 2M Karras)
  • Fija seed para reproducibilidad
  • Mantén CFG en 1.0

Consejos de Integración

Con ControlNet

Z-Image soporta flujos de trabajo estándar de ControlNet:

[ZImageTextEncoder] + [ControlNet Apply] → [KSampler]

Con LoRA

El soporte de LoRA está creciendo. Aplica antes de la codificación de texto:

[LoRA Loader] → [ZImageTextEncoder] → [KSampler]

Con IPAdapter

Para transferencia de estilo:

[IPAdapter] + [ZImageTextEncoder] → [KSampler]

Lista de Verificación Inicio Rápido

  • Descargar archivos del modelo de Hugging Face
  • Colocar en las carpetas correctas de ComfyUI
  • Instalar paquete de nodos personalizados
  • Configurar tipo CLIP a Lumina 2
  • Configurar pasos a 9, CFG a 1.0
  • Probar con prompt simple
  • Habilitar bloque think para más control
  • Probar diferentes plantillas

Recursos


Prueba Z-Image online en z-image.vip — sin instalación requerida.


Sigue Leyendo