ModelMergeSD3_2B_motorway_edition
The small MMDiT, blended joint-block by joint-block
- MOTORWAY 🚌💨
- MOTORWAY 🚌💨
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.0–joint_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(defaultmodel1) andINPUT_model2_key(defaultmodel2) - the two SD3 2B models.- The block ratios, each 0.0–1.0, step 0.01, default 1.0.
OUTPUT_MODEL_key(defaultMODEL) - 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_Largefor those weights. The layouts aren't interchangeable. - Merge SD3 with SD3 only; U-Net models (SD1/SD2/SDXL) don't have
joint_blocksat 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_editionnodes may be missing from the menu. They're present in the 1.1.0–1.1.6 builds comfy.icu indexed.
Inputs (34)
| Name | Type | Default | Description |
|---|---|---|---|
| MOTORWAY 🚌💨 | MOTORWAY 🚌💨 | — | |
| INPUT_model1_key | STRING | model1 | — |
| INPUT_model2_key | STRING | model2 | — |
| pos_embed. | FLOAT | 1.000–1 | — |
| x_embedder. | FLOAT | 1.000–1 | — |
| context_embedder. | FLOAT | 1.000–1 | — |
| y_embedder. | FLOAT | 1.000–1 | — |
| t_embedder. | FLOAT | 1.000–1 | — |
| joint_blocks.0. | FLOAT | 1.000–1 | — |
| joint_blocks.1. | FLOAT | 1.000–1 | — |
| joint_blocks.2. | FLOAT | 1.000–1 | — |
| joint_blocks.3. | FLOAT | 1.000–1 | — |
| joint_blocks.4. | FLOAT | 1.000–1 | — |
| joint_blocks.5. | FLOAT | 1.000–1 | — |
| joint_blocks.6. | FLOAT | 1.000–1 | — |
| joint_blocks.7. | FLOAT | 1.000–1 | — |
| joint_blocks.8. | FLOAT | 1.000–1 | — |
| joint_blocks.9. | FLOAT | 1.000–1 | — |
| joint_blocks.10. | FLOAT | 1.000–1 | — |
| joint_blocks.11. | FLOAT | 1.000–1 | — |
| joint_blocks.12. | FLOAT | 1.000–1 | — |
| joint_blocks.13. | FLOAT | 1.000–1 | — |
| joint_blocks.14. | FLOAT | 1.000–1 | — |
| joint_blocks.15. | FLOAT | 1.000–1 | — |
| joint_blocks.16. | FLOAT | 1.000–1 | — |
| joint_blocks.17. | FLOAT | 1.000–1 | — |
| joint_blocks.18. | FLOAT | 1.000–1 | — |
| joint_blocks.19. | FLOAT | 1.000–1 | — |
| joint_blocks.20. | FLOAT | 1.000–1 | — |
| joint_blocks.21. | FLOAT | 1.000–1 | — |
| joint_blocks.22. | FLOAT | 1.000–1 | — |
| joint_blocks.23. | FLOAT | 1.000–1 | — |
| final_layer. | FLOAT | 1.000–1 | — |
| OUTPUT_MODEL_key | STRING | MODEL | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MOTORWAY 🚌💨 | MOTORWAY 🚌💨 | — |