Nodes/ComfyUI XS DARE TIES/🧬 XS · DARE TIES Stack Visualizer
ComfyUI Node

🧬 XS · DARE TIES Stack Visualizer

See your merge before you commit to the hour-long one

By x-stride·Created 4 months ago·Updated 4 months ago· 0
🧬 XS · DARE TIES Stack Visualizer
  • model_stack
  • preview
  • caption
normalize_like_mergefalse
column_scalestacked_share
checkpoint_color_modehue_per_child
brightness_from_unettrue
width960
height320

A DARE TIES merge is minutes of crunch and one opinionated result at the end. The Stack Visualizer exists so those minutes aren't wasted: it renders a preview image of exactly how your stack combines across the 21 UNet blocks - no merging required. The README's framing is right: run this before a long merge so you know what you're signing up for. It's seconds of work to catch a stacked-bar chart that says "this child is silently doing nothing."

How to read it

The image is a grid of 21 columns, one per UNet block (9 input, 3 middle, 9 output). Each column stacks your checkpoints bottom-to-top in stack order, and each segment's height is model_weight × block_weights[k] - where block_weights comes from that child's attached profile, and a missing profile counts as flat 1.0 everywhere, exactly as the merge treats it. So a tall segment means that child carries a lot of influence at that block; a column where one child dominates the whole right side tells you your "subtle style blend" is really "this one checkpoint, recolored."

The caption output is the same information as text, in case you'd rather eyeball numbers than pixels.

The inputs that matter

  • model_stack - hang it off the same wire feeding the Merge Models node; that's the whole point.
  • normalize_like_merge - the important one. When on, model weights are normalized to sum to 1.0 before the profile multiplies in, which mirrors the Apply node with normalize_model_weights enabled (its default). Keep this matched to your Apply node or the preview will lie about proportions.
  • column_scale - stacked_share scales each column to full height so you see mix proportions; absolute uses one global scale so you see actual magnitudes (and which children are barely contributing).
  • checkpoint_color_mode and brightness_from_unet - cosmetic; one child per hue, with brightness showing where that child's effective weight peaks.

width and height size the image (defaults 960×320, plenty). Output is a standard IMAGE plus a STRING caption.

What it does not simulate

This is a preview of weighted influence, not a dry run of the merge math. It deliberately ignores DARE dropout, TIES trimming, delta_strength, and any CLIP merge - none of those are representable as a static stacked bar, and the node says so. Two consequences: it's effectively instant, and it's the "is the stack structured how I think" tool, not the "what will the image look like" tool. The actual image is still the merge's job.

Install

ComfyUI Manager → search "ComfyUI XS DARE TIES", or:

cd ComfyUI/custom_nodes
git clone https://github.com/x-stride/ComfyUI_XS_DARE_TIES

Restart ComfyUI. No requirements.txt, no downloads - it uses only ComfyUI's bundled numpy, torch, and Pillow to draw the chart. Look under Advanced → model_merging → dare_ties.

The one trap

Match normalize_like_merge to the Apply node's normalize_model_weights. With the default mismatch (visualizer off, Apply on), a stack of 1.0/1.0/1.0 shows three equal segments in the preview when the merge is actually treating them as equal thirds - which is the same thing visually but with different magnitudes, and once you add uneven weights the discrepancy genuinely misleads. Flip it on, read the chart, then commit to the merge.

Categoryadvanced/model_merging/dare_ties

Inputs (7)

NameTypeDefaultDescription
model_stackDARE_TIES_MODEL_STACKOutput from DARE TIES Model Stack (chainable).
normalize_like_mergeBOOLEANfalseIf True, normalize model_weight across entries like Merge with normalize_model_weights.
column_scaleCOMBOstacked_sharestacked_share: each column sums to full bar height (mix proportions). absolute: heights use one global scale from the largest column total (magnitudes).
checkpoint_color_modeCOMBOhue_per_childhue_per_child: S=0.68, legend V≈0.62. muted: S=0.58, wider block brightness swing + legend V≈0.70 — softer than vivid but higher contrast than legacy muted (S=0.42).
brightness_from_unetBOOLEANtrueWithin each checkpoint hue, brighten blocks where that child's effective weight is high relative to its own row max.
widthINT960320–8192Minimum image width; expanded if needed so long checkpoint names in the legend fit.
heightINT320200–1200Output image height.

Outputs (2)

NameTypeDescription
previewIMAGE
captionSTRING