SD3-COMFYUI Components Params
Weigh the five parts of an SD3 merge — two CLIPs, T5, UNet, and VAE
- recipe
SD3-COMFYUI Components Params (class SD3-COMFYUI Defaults Hyper) is the per-component weight node for SD3-family models in ComfyUI's layout. It gives you five floats - vae, diffuser, clip_g, clip_l, t5xxl - and emits a single MECHA_RECIPE that applies each weight only to its own component of the model.
SD3 is an MMDiT: a diffusion transformer with a triple text encoder (OpenCLIP ViT-G, CLIP ViT-L, and T5-XXL) feeding a single joint network. That's a genuinely different anatomy from SD1/SDXL, and it means "the text encoder" is actually three separate components that can be merged independently. This node is the components-params treatment applied to that anatomy - the same pattern as the SD1 family, built for the sd3-comfyui config. It's the honest-to-goodness answer to "I only want to swap the T5 part," which isn't a question you could even ask with a single alpha.
How it works
The sd3-comfyui config splits the model into vae, diffuser (the MMDiT itself), and the three text encoders. As with every components params node, each float becomes a per-component scalar recipe and they're OR'd into one param recipe; at merge time the engine looks up the weight per key, so each component gets its own strength. Feed it into the weight/alpha input of a Weighted Sum or Add Difference and the merge respects the split.
The inputs that matter:
- diffuser - the MMDiT (the actual denoising network). Usually the component you care about most.
- clip_l - the small CLIP ViT-L encoder.
- clip_g - the OpenCLIP ViT-G encoder.
- t5xxl - the T5-XXL encoder, which carries most of the semantic understanding in the triple setup.
- vae - the VAE; set to 0 ("no override") to keep a trusted VAE out of the blend.
- recipe (output, param space) - combined param for
sd3-comfyui.
The realistic use: SD3-style merges are rarer than SD1/SDXL ones - the ecosystem never really formed around the family (its license drama and the CivitAI pull did a number on adoption) - but the people who do merge it tend to be fussy about exactly which encoder is doing what. This node is how you express that.
Install
It ships in the Mecha Merge Node Pack (ljleb/comfy-mecha):
- ComfyUI Manager → Install Custom Nodes → search "mecha" → Mecha Merge Node Pack, or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/ljleb/comfy-mecha.git
pip install -r comfy-mecha/requirements.txt
Restart ComfyUI; it's under mecha. Only dependency is sd-mecha==1.1.7; no model downloads.
Common issues
- Config names must match the recipe. This node speaks
sd3-comfyui. If your recipe loaded as a different SD3 variant, the components won't line up and validation will say so - check what configMecha Model Recipereported. - 0 = no override. A zeroed component still gets the method's default treatment; use
Omit Componentif you want a hard exclusion (e.g. leaving a bad VAE completely out). - T5 is big and slow. Merging a model that includes
t5xxlmeans processing one of the larger encoders in the game. It's streaming (key by key, low memory), but it's not fast - budget accordingly on big merges.
SD3's architecture won the field even though the model itself lost the war - every modern DiT followed its rectified-flow direction. If you're one of the enthusiasts still merging SD3.5-family models, this node gives you the per-encoder control that the architecture always deserved.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| vae | FLOAT | 0.00-18446744073709550000–18446744073709550000 | — |
| diffuser | FLOAT | 0.00-18446744073709550000–18446744073709550000 | — |
| clip_g | FLOAT | 0.00-18446744073709550000–18446744073709550000 | — |
| clip_l | FLOAT | 0.00-18446744073709550000–18446744073709550000 | — |
| t5xxl | FLOAT | 0.00-18446744073709550000–18446744073709550000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| recipe | MECHA_RECIPE | — |