Nodes/ComfyUI/ModelMergeMochiPreview
ComfyUI Node Runs on cloud

ModelMergeMochiPreview

Block-merging Genmo's 48-block video DiT, preview edition

By Comfy-Org·Created 4 years ago·Updated about an hour ago· 129,865
ModelMergeMochiPreview
  • model1
  • model2
  • MODEL
pos_frequencies.1.00
t_embedder.1.00
t5_y_embedder.1.00
t5_yproj.1.00
blocks.0.1.00
blocks.1.1.00
blocks.2.1.00
blocks.3.1.00
blocks.4.1.00
blocks.5.1.00
blocks.6.1.00
blocks.7.1.00
blocks.8.1.00
blocks.9.1.00
blocks.10.1.00
blocks.11.1.00
blocks.12.1.00
blocks.13.1.00
blocks.14.1.00
blocks.15.1.00
blocks.16.1.00
blocks.17.1.00
blocks.18.1.00
blocks.19.1.00
blocks.20.1.00
blocks.21.1.00
blocks.22.1.00
blocks.23.1.00
blocks.24.1.00
blocks.25.1.00
blocks.26.1.00
blocks.27.1.00
blocks.28.1.00
blocks.29.1.00
blocks.30.1.00
blocks.31.1.00
blocks.32.1.00
blocks.33.1.00
blocks.34.1.00
blocks.35.1.00
blocks.36.1.00
blocks.37.1.00
blocks.38.1.00
blocks.39.1.00
blocks.40.1.00
blocks.41.1.00
blocks.42.1.00
blocks.43.1.00
blocks.44.1.00
blocks.45.1.00
blocks.46.1.00
blocks.47.1.00
final_layer.1.00

ModelMergeMochiPreview is the block-merge node for Mochi 1, Genmo's open video diffusion model - and the "Preview" in the name is doing real work. This node was built for the preview release of Mochi 1, the early open-weights version that Genmo put out in late 2024 to seed the ecosystem, before the architecture's later revisions. If you're running that specific checkpoint, this is the merge node that matches it.

Video-model merging is a smaller world than image-model merging, but it's real: Mochi is a 10B-parameter DiT with a text-to-video focus, built on a T5 text encoder, and its 48 transformer blocks are the whole model. The honest use case is blending two fine-tunes of the same Mochi preview - for motion style, temporal behavior, scene bias - rather than expecting this to do anything for image models or for newer Mochi revisions.

How it works

Family standard, ModelMergeBlocks subclass, per-tensor interpolation result = ratio · model1 + (1 − ratio) · model2, ratio by longest key prefix. The Mochi preview key map:

  • pos_frequencies. - the positional-frequency embeddings (Mochi uses a learned positional scheme, hence "frequencies").
  • t_embedder. - timestep embedding.
  • t5_y_embedder., t5_yproj. - the T5 text-encoder conditioning: embedding plus the projection into the DiT. Mochi lives and dies by T5, so these two matter more than the equivalent inputs in image models.
  • blocks.0 through blocks.47 - 48 transformer blocks. The model.
  • final_layer. - output projection.

All defaults at 1.0 (all model1).

The inputs that matter

Two MODEL inputs, the t5_y* conditioning pair, and the 48 block sliders. For a video model, the blocks that matter most for a merge tend to be the mid-to-late ones - that's where temporal and motion detail concentrates. The t5_y_embedder./t5_yproj. sliders are the ones to reach for when a blend "ignores the prompt" - that's the T5 conditioning path talking.

One MODEL out, into a video sampler or Save Checkpoint.

Where people get burned

The word "Preview" is the warning label. Mochi 1 preview is not the same checkpoint as later Mochi revisions, and merging across versions fails or behaves unpredictably - the node's block map matches the preview architecture specifically. This is also a heavy, niche video model with a small community, so there's no rich body of merge recipes to copy from. And the family-wide caveat applies louder here: video models are far less forgiving of incoherent merges than image models, because temporal consistency compounds across frames. A blend that looks fine on one frame can fall apart as motion.

If you're not running the Mochi preview checkpoint, this node simply isn't yours - and that's the correct reaction, not a missing feature.

How you get it

Core ComfyUI, model/merging/model specific, added November 2024 alongside Mochi support. No installation.

Categorymodel/merging/model specific

Inputs (55)

NameTypeDefaultDescription
model1MODEL
model2MODEL
pos_frequencies.FLOAT1.000–1
t_embedder.FLOAT1.000–1
t5_y_embedder.FLOAT1.000–1
t5_yproj.FLOAT1.000–1
blocks.0.FLOAT1.000–1
blocks.1.FLOAT1.000–1
blocks.2.FLOAT1.000–1
blocks.3.FLOAT1.000–1
blocks.4.FLOAT1.000–1
blocks.5.FLOAT1.000–1
blocks.6.FLOAT1.000–1
blocks.7.FLOAT1.000–1
blocks.8.FLOAT1.000–1
blocks.9.FLOAT1.000–1
blocks.10.FLOAT1.000–1
blocks.11.FLOAT1.000–1
blocks.12.FLOAT1.000–1
blocks.13.FLOAT1.000–1
blocks.14.FLOAT1.000–1
blocks.15.FLOAT1.000–1
blocks.16.FLOAT1.000–1
blocks.17.FLOAT1.000–1
blocks.18.FLOAT1.000–1
blocks.19.FLOAT1.000–1
blocks.20.FLOAT1.000–1
blocks.21.FLOAT1.000–1
blocks.22.FLOAT1.000–1
blocks.23.FLOAT1.000–1
blocks.24.FLOAT1.000–1
blocks.25.FLOAT1.000–1
blocks.26.FLOAT1.000–1
blocks.27.FLOAT1.000–1
blocks.28.FLOAT1.000–1
blocks.29.FLOAT1.000–1
blocks.30.FLOAT1.000–1
blocks.31.FLOAT1.000–1
blocks.32.FLOAT1.000–1
blocks.33.FLOAT1.000–1
blocks.34.FLOAT1.000–1
blocks.35.FLOAT1.000–1
blocks.36.FLOAT1.000–1
blocks.37.FLOAT1.000–1
blocks.38.FLOAT1.000–1
blocks.39.FLOAT1.000–1
blocks.40.FLOAT1.000–1
blocks.41.FLOAT1.000–1
blocks.42.FLOAT1.000–1
blocks.43.FLOAT1.000–1
blocks.44.FLOAT1.000–1
blocks.45.FLOAT1.000–1
blocks.46.FLOAT1.000–1
blocks.47.FLOAT1.000–1
final_layer.FLOAT1.000–1

Outputs (1)

NameTypeDescription
MODELMODEL