ModelMergeCosmos14B_motorway_edition
NVIDIA's video model, blended block by block
- MOTORWAY 🚌💨
- MOTORWAY 🚌💨
Cosmos is NVIDIA's video-model family, and the 14B variant is the big one. ModelMergeCosmos14B is ComfyUI's per-block merge node for that specific architecture - 36 transformer blocks plus a distinctive embedder set - and this is its Motorway-ed clone. The model-specific merge nodes exist because each transformer layout has its own block names, and Cosmos's are different enough that a generic merge can't address them by name.
The block layout
pos_embedderandextra_pos_embedder- positional embeddings for the spatial and temporal structure. Video models lean on these hard; if your two checkpoints differ in training resolutions or frame counts, these are the first regions to treat carefully.x_embedder- the latent input projection.t_embedder- timestep conditioning.affline_norm- (spelled that way in the node, it's a legacy "affine" norm) the normalization for the conditioning path.blocks.block0–blocks.block35- the 36 main transformer blocks. Lower blocks handle coarse structure and motion; the higher ones carry fine temporal detail.final_layer- the output projection back to latent space.
Every ratio defaults to 1.0, and the family gotcha applies without exception: untouched, the merge returns model2. Set a base blend across all the floats first, then push regions - embedders for conditioning behavior, late blocks for detail.
Worth knowing before you sink time in: Cosmos models (including the Predict2 generation) were primarily pitched at world-model research and robotics, not at the image/video-checkpoint merge culture. If you're merging Cosmos checkpoints, you're on the frontier, which means thinner community recipe lore - lean on your own sampling, and keep expectations modest on first tries.
The inputs
INPUT_model1_key(defaultmodel1) andINPUT_model2_key(defaultmodel2) - the two Cosmos 14B 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 ModelMergeCosmos14B.
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.
- Use the 14B node for 14B checkpoints and the 7B node for 7B - the block counts differ (36 vs 28), so cross-using them won't blend anything meaningful.
- Merge Cosmos with Cosmos only. LTX, Mochi, and Flux each have their own block layouts; the numbers won't map.
'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 (46)
| Name | Type | Default | Description |
|---|---|---|---|
| MOTORWAY 🚌💨 | MOTORWAY 🚌💨 | — | |
| INPUT_model1_key | STRING | model1 | — |
| INPUT_model2_key | STRING | model2 | — |
| pos_embedder. | FLOAT | 1.000–1 | — |
| extra_pos_embedder. | FLOAT | 1.000–1 | — |
| x_embedder. | FLOAT | 1.000–1 | — |
| t_embedder. | FLOAT | 1.000–1 | — |
| affline_norm. | FLOAT | 1.000–1 | — |
| blocks.block0. | FLOAT | 1.000–1 | — |
| blocks.block1. | FLOAT | 1.000–1 | — |
| blocks.block2. | FLOAT | 1.000–1 | — |
| blocks.block3. | FLOAT | 1.000–1 | — |
| blocks.block4. | FLOAT | 1.000–1 | — |
| blocks.block5. | FLOAT | 1.000–1 | — |
| blocks.block6. | FLOAT | 1.000–1 | — |
| blocks.block7. | FLOAT | 1.000–1 | — |
| blocks.block8. | FLOAT | 1.000–1 | — |
| blocks.block9. | FLOAT | 1.000–1 | — |
| blocks.block10. | FLOAT | 1.000–1 | — |
| blocks.block11. | FLOAT | 1.000–1 | — |
| blocks.block12. | FLOAT | 1.000–1 | — |
| blocks.block13. | FLOAT | 1.000–1 | — |
| blocks.block14. | FLOAT | 1.000–1 | — |
| blocks.block15. | FLOAT | 1.000–1 | — |
| blocks.block16. | FLOAT | 1.000–1 | — |
| blocks.block17. | FLOAT | 1.000–1 | — |
| blocks.block18. | FLOAT | 1.000–1 | — |
| blocks.block19. | FLOAT | 1.000–1 | — |
| blocks.block20. | FLOAT | 1.000–1 | — |
| blocks.block21. | FLOAT | 1.000–1 | — |
| blocks.block22. | FLOAT | 1.000–1 | — |
| blocks.block23. | FLOAT | 1.000–1 | — |
| blocks.block24. | FLOAT | 1.000–1 | — |
| blocks.block25. | FLOAT | 1.000–1 | — |
| blocks.block26. | FLOAT | 1.000–1 | — |
| blocks.block27. | FLOAT | 1.000–1 | — |
| blocks.block28. | FLOAT | 1.000–1 | — |
| blocks.block29. | FLOAT | 1.000–1 | — |
| blocks.block30. | FLOAT | 1.000–1 | — |
| blocks.block31. | FLOAT | 1.000–1 | — |
| blocks.block32. | FLOAT | 1.000–1 | — |
| blocks.block33. | FLOAT | 1.000–1 | — |
| blocks.block34. | FLOAT | 1.000–1 | — |
| blocks.block35. | FLOAT | 1.000–1 | — |
| final_layer. | FLOAT | 1.000–1 | — |
| OUTPUT_MODEL_key | STRING | MODEL | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MOTORWAY 🚌💨 | MOTORWAY 🚌💨 | — |