Nodes/ComfyUI_agilly1989_motorway/ModelMergeSD3_2B_motorway_edition
ComfyUI Node

ModelMergeSD3_2B_motorway_edition

The small MMDiT, blended joint-block by joint-block

By agilly1989·Created 2 years ago·Updated about a year ago· 7
ModelMergeSD3_2B_motorway_edition
  • MOTORWAY 🚌💨
  • MOTORWAY 🚌💨
INPUT_model1_keymodel1
INPUT_model2_keymodel2
pos_embed.1.00
x_embedder.1.00
context_embedder.1.00
y_embedder.1.00
t_embedder.1.00
joint_blocks.0.1.00
joint_blocks.1.1.00
joint_blocks.2.1.00
joint_blocks.3.1.00
joint_blocks.4.1.00
joint_blocks.5.1.00
joint_blocks.6.1.00
joint_blocks.7.1.00
joint_blocks.8.1.00
joint_blocks.9.1.00
joint_blocks.10.1.00
joint_blocks.11.1.00
joint_blocks.12.1.00
joint_blocks.13.1.00
joint_blocks.14.1.00
joint_blocks.15.1.00
joint_blocks.16.1.00
joint_blocks.17.1.00
joint_blocks.18.1.00
joint_blocks.19.1.00
joint_blocks.20.1.00
joint_blocks.21.1.00
joint_blocks.22.1.00
joint_blocks.23.1.00
final_layer.1.00
OUTPUT_MODEL_keyMODEL

Stable Diffusion 3 swapped the U-Net for an MMDiT - a transformer where text and image tokens run through the same blocks - and its merge node reflects that: there's no input/middle/output split, just embedders plus a run of joint_blocks. ModelMergeSD3_2B is ComfyUI's per-block merge for the 2B variant, and this is its Motorway-ed clone.

The layout

  • pos_embed - positional embedding for image tokens.
  • x_embedder - the image-latent input projection.
  • context_embedder - text-token conditioning projection.
  • y_embedder - the pooled-text/CLIP conditioning path.
  • t_embedder - timestep conditioning.
  • joint_blocks.0joint_blocks.23 - the 24 joint blocks where image and text tokens attend together. Earlier blocks build structure and cross-modal understanding; later blocks carry detail.
  • final_layer - the output projection.

The family gotcha applies: all ratios default to 1.0, so an untouched node returns model2. Set a base blend first, then push regions - y_embedder and context_embedder if you care about prompt adherence, late joint_blocks for finish.

One context note: SD3.0 2B's place in the merge world is modest - it's the model the community largely skipped between SDXL and the SD3.5/Large refits, so you're not going to find a deep recipe book for it. Its merge node exists because ComfyUI supports the architecture; if you're here you're blending SD3 2B checkpoints, which is a niche within a niche. The mechanics are identical to its sibling nodes, so the skills transfer.

The inputs

  • INPUT_model1_key (default model1) and INPUT_model2_key (default model2) - the two SD3 2B models.
  • The block ratios, each 0.0–1.0, step 0.01, default 1.0.
  • OUTPUT_MODEL_key (default MODEL) - where the merged model lands.

The wrapper keeps every ratio as a widget, turns the models into key strings, and keyed-writes the result. Runtime behavior matches stock ModelMergeSD3_2B.

Install

One install for the whole pack. ComfyUI Manager, search "ComfyUI_agilly1989_motorway", or:

cd ComfyUI/custom_nodes
git clone https://github.com/agilly1989/ComfyUI_agilly1989_motorway

Restart ComfyUI. No requirements.txt, no model downloads.

Troubleshooting

  • Result is pure model2? All ratios default to 1.0 - set a base blend first.
  • SD3.5 Large has more joint blocks (38 vs 24) - use ModelMergeSD35_Large for those weights. The layouts aren't interchangeable.
  • Merge SD3 with SD3 only; U-Net models (SD1/SD2/SDXL) don't have joint_blocks at all.
  • 'MotorwayClass' object has no attribute 'hash_' = a model key isn't in the Motorway; check the loaders ran and the key spelling matches (case-sensitive).
  • Pack caveats: BETA, and the newest published version (1.1.7) disabled clone generation, so on a fresh install these _motorway_edition nodes may be missing from the menu. They're present in the 1.1.0–1.1.6 builds comfy.icu indexed.
Categoryagilly1989 Nodes/Motorway-ed/advanced/model_merging/model_specific

Inputs (34)

NameTypeDefaultDescription
MOTORWAY 🚌💨MOTORWAY 🚌💨
INPUT_model1_keySTRINGmodel1
INPUT_model2_keySTRINGmodel2
pos_embed.FLOAT1.000–1
x_embedder.FLOAT1.000–1
context_embedder.FLOAT1.000–1
y_embedder.FLOAT1.000–1
t_embedder.FLOAT1.000–1
joint_blocks.0.FLOAT1.000–1
joint_blocks.1.FLOAT1.000–1
joint_blocks.2.FLOAT1.000–1
joint_blocks.3.FLOAT1.000–1
joint_blocks.4.FLOAT1.000–1
joint_blocks.5.FLOAT1.000–1
joint_blocks.6.FLOAT1.000–1
joint_blocks.7.FLOAT1.000–1
joint_blocks.8.FLOAT1.000–1
joint_blocks.9.FLOAT1.000–1
joint_blocks.10.FLOAT1.000–1
joint_blocks.11.FLOAT1.000–1
joint_blocks.12.FLOAT1.000–1
joint_blocks.13.FLOAT1.000–1
joint_blocks.14.FLOAT1.000–1
joint_blocks.15.FLOAT1.000–1
joint_blocks.16.FLOAT1.000–1
joint_blocks.17.FLOAT1.000–1
joint_blocks.18.FLOAT1.000–1
joint_blocks.19.FLOAT1.000–1
joint_blocks.20.FLOAT1.000–1
joint_blocks.21.FLOAT1.000–1
joint_blocks.22.FLOAT1.000–1
joint_blocks.23.FLOAT1.000–1
final_layer.FLOAT1.000–1
OUTPUT_MODEL_keySTRINGMODEL

Outputs (1)

NameTypeDescription
MOTORWAY 🚌💨MOTORWAY 🚌💨