Nodes/Capitan-ConditioningEnhancer/Capitan Enhancer (Basic)
ComfyUI Node

Capitan Enhancer (Basic)

Z-Image prompts that won't follow instructions? This node glues them together

By capitan01R·Created 8 months ago·Updated 6 months ago· 33
Capitan Enhancer (Basic)
  • conditioning
  • CONDITIONING
enhance_strength0.00
normalizetrue
add_self_attentionfalse
mlp_hidden_mult2
seed42
low_vramfalse
deviceauto

Z-Image Turbo is the community's pick for a reason - it's half the size of Flux, runs on a 12GB card, and needs only 8 steps at CFG 1. Its one real weakness is complicated prompts: the more you pack into a single instruction, the more the model fumbles the details. The Capitan Enhancer (Basic) (ConditioningEnhancer) is a lightweight post-processor that sits between your text encoder and the sampler and pushes the Qwen3-4B conditioning to follow your prompt harder. No training, no model downloads, no extra dependencies. If Z-Image is your daily driver and "almost got it but lost the third thing I asked for" is a familiar feeling, this is worth fifteen minutes.

It works on the raw 2560-dim CONDITIONING that Qwen3-4B produces (the same encoder Z-Image, Klein 4B, and Anima use). Pop it between CLIP Text Encode (Prompt) and the KSampler, and it runs a three-step refinement before sampling: per-token normalization (mean subtraction plus unit-variance scaling), a 2-layer MLP (Linear → GELU → Linear) as a nonlinear refiner, and an optional 8-head self-attention pass so distant prompt parts influence each other. The MLP's second layer is initialized as an identity matrix, so at strength 0 it does almost nothing - the node is a gentle skip connection until you push it. It's not a trained model; the MLP weights are randomly initialized each run (seeded for reproducibility), which is the whole trick: a cheap, untrained refiner that nudges the embedding rather than a learned transformation.

Three inputs actually matter, and they're the only ones a beginner needs to touch:

  • enhance_strength (default 0) - the blend. Positive adds refinement, negative subtracts it for a sharper, anti-smooth look. The author's own starting range is -0.15 to 0.15; anything past 0.5 is artifact territory.
  • mlp_hidden_mult (default 2, up to 200) - how wide the MLP's hidden layer gets (2560 × mult). 2–10 is the sane zone; 40+ is "hyper-literal detail" mode.
  • add_self_attention (default false) - on for cohesion and mood, off for literal control. When on, the attention blends in at a fixed 0.3 weight.

normalize (default true) you'll basically never turn off - it's the stability knob. seed (default 42) controls the random MLP init, so same seed plus same everything else gives you the same refinement, not a lottery. The low_vram toggle runs the math in fp16, and device lets you pin it to CPU if you want to keep the GPU for sampling. The single CONDITIONING output wires straight into the KSampler's positive (or negative) input.

Installing it

It ships in the Capitan-ConditioningEnhancer pack, so you get the Advanced node too. Either grab it through ComfyUI Manager (search "Capitan-ConditioningEnhancer") or:

cd ComfyUI/custom_nodes
git clone https://github.com/capitan01R/Capitan-ConditioningEnhancer.git

Then restart ComfyUI or reload custom nodes. That's it - the README lists no dependencies and there are no model files to fetch. The only real requirement is that your checkpoint encodes with Qwen3 (Z-Image Turbo, Klein); the node technically runs on any conditioning, but it's built around that 2560-dim path.

Where people get burned

The failure mode is the same one the author warns about in the README: high strength + high mult + self-attention together → rainbow artifacts and noise. Start at strength 0.05–0.10 with mult 2–4, test on a fixed seed, and treat anything above 0.4 strength as a gamble. Also remember the MLP is built fresh per run - at mult 100 that's a ~5GB fp32 tensor pair sitting in VRAM while it computes, so low_vram: true is your friend on 8GB cards. If your image gets too smoothed and mushy, try a small negative strength; that's the intended crispening move, and it's usually safer than cranking positives.

Categoryconditioning/enhance/capitan

Inputs (8)

NameTypeDefaultDescription
conditioningCONDITIONING
enhance_strengthFLOAT0.00-3–2
normalizeBOOLEANtrue
add_self_attentionBOOLEANfalse
mlp_hidden_multINT21–200
seedINT420–2147483647
low_vramBOOLEANfalse
deviceCOMBOauto2 options: auto, cpu

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONING