Nodes/ComfyUI-DonutNodes/Model Merge ZIT Blocks (DEPRECATED)
ComfyUI Node

Model Merge ZIT Blocks (DEPRECATED)

The old per-layer Z-Image merge node (folded into ModelMergeZIT)

By DonutsDelivery·Created about a year ago·Updated about 12 hours ago· 25
Model Merge ZIT Blocks (DEPRECATED)
  • model1
  • model2
  • MODEL
layer_01.00
layer_11.00
layer_21.00
layer_31.00
layer_41.00
layer_51.00
layer_61.00
layer_71.00
layer_81.00
layer_91.00
layer_101.00
layer_111.00
layer_121.00
layer_131.00
layer_141.00
layer_151.00
layer_161.00
layer_171.00
layer_181.00
layer_191.00
layer_201.00
layer_211.00
layer_221.00
layer_231.00
layer_241.00
layer_251.00
layer_261.00
layer_271.00
layer_281.00
layer_291.00
x_embedder1.00
t_embedder1.00
cap_embedder1.00
context_refiner1.00
noise_refiner1.00
final_layer1.00
norm_final1.00
other1.00

ModelMergeZITBlocks is a deprecated node, and the deprecation story here is a good one: it was the per-layer Z-Image Turbo merge node, and instead of just killing it, the pack folded it into ModelMergeZIT. That node has a granularity selector - set it to blocks and you get every slider this node had, byte-for-byte behavior, under the same hood. This page exists for people who meet the old name in a downloaded workflow.

What it did

Same fundamentals as ModelMergeZIT: merge two Z-Image Turbo / Lumina2 models by giving every part of the 30-layer transformer its own ratio from model1 to model2 (0.0 = model1, 1.0 = model2). The difference was granularity - this node exposed all 30 layer_0layer_29 sliders individually, plus the embedders (x_embedder, t_embedder, cap_embedder), the refiners (context_refiner, noise_refiner), final_layer, norm_final, and other. No grouping, no training wheels. That's a lot of sliders, and it's exactly why the successor added the grouped mode - four group sliders for the 95% case, and the per-layer view for the rest.

If you still have this node in a saved workflow: it loads, it runs, the ratios mean the same thing. But for anything new, reach for ModelMergeZIT with granularity set to blocks - same sliders, same semantics, one less node to keep around, and you get the grouped mode as a bonus when you want it.

The practical guidance carries over unchanged: your base usually goes in model1, your style model in model2, and the layer ranges map to real jobs - layers 0–5 encode the prompt, 6–14 build composition, 15–23 carry detail, 24–29 refine aesthetics. Pull composition layers toward 0 to keep model1's structure, leave the late layers at 1 for model2's finish. And save your good results with the pack's DonutModelSave, because a hand-tuned per-layer merge is exactly the thing you don't want to lose to a reload.

Install

Part of ComfyUI-DonutNodes: ComfyUI Manager → search "DonutNodes" → install → restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/DonutsDelivery/ComfyUI-DonutNodes.git donutnodes
cd donutnodes
python -m pip install -r requirements.txt

Dependencies are the pack's usual opencv-python-headless, scipy, matplotlib, psutil, tqdm, requests - no downloads beyond that, since the merge works on checkpoints you already have.

Categoryadvanced/model_merging

Inputs (40)

NameTypeDefaultDescription
model1MODEL
model2MODEL
layer_0FLOAT1.000–1Layer 0: Translation/encoding
layer_1FLOAT1.000–1Layer 1: Translation/encoding
layer_2FLOAT1.000–1Layer 2: Translation/encoding
layer_3FLOAT1.000–1Layer 3: Translation/encoding
layer_4FLOAT1.000–1Layer 4: Translation/encoding
layer_5FLOAT1.000–1Layer 5: Translation/encoding
layer_6FLOAT1.000–1Layer 6: Composition/layout
layer_7FLOAT1.000–1Layer 7: Composition/layout
layer_8FLOAT1.000–1Layer 8: Composition/layout
layer_9FLOAT1.000–1Layer 9: Composition/layout
layer_10FLOAT1.000–1Layer 10: Composition/layout
layer_11FLOAT1.000–1Layer 11: Composition/layout
layer_12FLOAT1.000–1Layer 12: Composition/layout
layer_13FLOAT1.000–1Layer 13: Composition/layout
layer_14FLOAT1.000–1Layer 14: Composition/layout
layer_15FLOAT1.000–1Layer 15: Details/attributes
layer_16FLOAT1.000–1Layer 16: Details/attributes
layer_17FLOAT1.000–1Layer 17: Details/attributes
layer_18FLOAT1.000–1Layer 18: Details/attributes
layer_19FLOAT1.000–1Layer 19: Details/attributes
layer_20FLOAT1.000–1Layer 20: Details/attributes
layer_21FLOAT1.000–1Layer 21: Details/attributes
layer_22FLOAT1.000–1Layer 22: Details/attributes
layer_23FLOAT1.000–1Layer 23: Details/attributes
layer_24FLOAT1.000–1Layer 24: Refinement/aesthetics
layer_25FLOAT1.000–1Layer 25: Refinement/aesthetics
layer_26FLOAT1.000–1Layer 26: Refinement/aesthetics
layer_27FLOAT1.000–1Layer 27: Refinement/aesthetics
layer_28FLOAT1.000–1Layer 28: Refinement/aesthetics
layer_29FLOAT1.000–1Layer 29: Refinement/aesthetics
x_embedderFLOAT1.000–1Patch embedding (converts image patches to tokens)
t_embedderFLOAT1.000–1Timestep embedding
cap_embedderFLOAT1.000–1Caption/text embedding
context_refinerFLOAT1.000–1Context refinement
noise_refinerFLOAT1.000–1Noise refinement
final_layerFLOAT1.000–1Final output layer
norm_finalFLOAT1.000–1Final normalization
otherFLOAT1.000–1Remaining (pad tokens, etc.)

Outputs (1)

NameTypeDescription
MODELMODEL