Nodes/Capitan-ConditioningEnhancer/Capitan Advanced Enhancer
ComfyUI Node

Capitan Advanced Enhancer

Surgical literal detail for Z-Image prompts

By capitan01R·Created 8 months ago·Updated 6 months ago· 33
Capitan Advanced Enhancer
  • conditioning
  • CONDITIONING
enhance_strength0.05
detail_boost1.0
preserve_original0.00
attention_strength0.30
high_pass_filterfalse
normalizetrue
add_self_attentionfalse
mlp_hidden_mult8
seed42
low_vramfalse
deviceauto

If the Basic Capitan Enhancer is the glue, this is the scalpel. Capitan Advanced Enhancer is the experimental sibling that shipped in the same pack, and it exists for one job: making Z-Image's Qwen3-4B conditioning adhere to your prompt literally - the exact details, edges, and fine texture - without flattening the image into plastic. The author labels it experimental, and you should read that as honest rather than scary: it adds real safety machinery to keep you from nuking a render, and it's the node you reach for when "I asked for the tiger's teeth and dust particles and got a cat" is the problem.

It sits in the same slot as the Basic node - between CLIP Text Encode (Prompt) and the KSampler, on the positive conditioning line - and it runs the same core pipeline (normalize → MLP refiner → blend → optional attention). On top of that it layers four extra controls that the Basic node doesn't have. The ones that matter:

  • detail_boost (default 1.0, range 0–3) - amplifies high-frequency differences after the MLP refines. This is the sharpness/edge pop knob; it's what makes stripes, teeth curves, and particles read distinctly.
  • preserve_original (default 0.0, range 0–1) - a skip connection that blends the raw original embeddings back in. Raise it toward 0.35–0.50 when high mlp_hidden_mult starts collapsing or over-refining the image; it anchors stability.
  • attention_strength (default 0.3, range 0–1) - tunable control over the self-attention mixing (the Basic node's is fixed at 0.3). Low values, 0–0.1, are the max-literal setting.
  • high_pass_filter (default false) - subtracts a blurry low-pass version of the refined embeddings to emphasize edges. Turn it off if you start seeing halos.

You also get the shared inputs from the Basic node - enhance_strength, normalize, add_self_attention, mlp_hidden_mult, seed, low_vram, device - plus the important built-in safety: the node clamps the output and applies dynamic residual scaling (1 / (1 + mult × 0.05)) that automatically dampens the blend as mlp_hidden_mult climbs, so cranking it to 50–100 doesn't immediately detonate. One detail worth knowing: the shipped defaults in the current code are detail_boost 1.0, preserve_original 0.0, attention_strength 0.3, high_pass_filter false, mlp_hidden_mult 8 - the README's numbers have drifted from the actual source, so trust the sliders in ComfyUI.

The stack the author actually recommends

The intended use is both nodes in series on the same conditioning line: Basic first as gentle glue (low mult, self-attention on), then Advanced for the surgical literal boost (high mult 50–100, self-attention off, strength 0.03–0.10). Basic fixes coherence; Advanced fixes adherence. Each outputs a CONDITIONING, so chaining is just output-to-input.

Installing it

It ships in the same Capitan-ConditioningEnhancer pack as the Basic node, so if you've installed that, it's already there. Otherwise: ComfyUI Manager (search "Capitan-ConditioningEnhancer") or

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

restart ComfyUI, and you're done. No dependencies, no model downloads - just a torch MLP built at runtime.

Where people get burned

The README's warning is direct: at high mlp_hidden_mult (50–100), start with enhance_strength at 0.03–0.10 or you'll trade detail for noise. Same-seed testing is non-negotiable here because the MLP weights are randomly initialized per run - change the seed and you get a different "flavor" of refinement, not just a different result. See halos or edge glow? Flip high_pass_filter to false. See the image drift or collapse? Raise preserve_original. And keep the VRAM math in mind: at mult 100 the per-run MLP is a multi-gigabyte fp32 pair, so low_vram: true is the right call on 8GB cards.

Categoryconditioning/enhance/capitan

Inputs (12)

NameTypeDefaultDescription
conditioningCONDITIONING
enhance_strengthFLOAT0.05-3–2
detail_boostFLOAT1.00–3
preserve_originalFLOAT0.000–1
attention_strengthFLOAT0.300–1
high_pass_filterBOOLEANfalse
normalizeBOOLEANtrue
add_self_attentionBOOLEANfalse
mlp_hidden_multINT81–200
seedINT420–2147483647
low_vramBOOLEANfalse
deviceCOMBOauto2 options: auto, cpu

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONING