Nodes/Tensor Prism/Layered Blend (Tensor Prism)
ComfyUI Node

Layered Blend (Tensor Prism)

Merge the text encoder, UNet and VAE with separate dials

By Arctenox·Created 12 months ago·Updated 7 months ago· 2
Layered Blend (Tensor Prism)
  • model_A
  • model_B
  • vae_A
  • vae_B
  • merged_model
  • merged_vae
text_encoder_strength0.50
text_encoder_method
unet_strength0.50
unet_method
time_embed_strength0.50
input_blocks_strength0.50
middle_block_strength0.50
output_blocks_strength0.50
out_strength0.50
vae_strength0.50
vae_method

A checkpoint is three different networks wearing one trench coat: the text encoder, the UNet, and the VAE. A normal merge blends all of them with the same ratio, which is a real limitation - you might want model A's UNet but model B's VAE colors, or model A's composition with model B's text understanding. Layered Blend (Tensor Prism) is the node that treats those layers as separate decisions, with independent strength sliders and even independent interpolation methods.

It's the "spreadsheet merge": instead of one number, you get a row of dials, each controlling one component. If you've ever wanted a merge that keeps prompt comprehension from one parent while taking image detail from the other, this is the cleanest way in this pack to do it.

How it works

Wire in model_A and model_B. Then the node splits the merge into components, each with its own *_strength (0–1, all defaulting to 0.5):

  • text_encoder_strength - how much of B's text encoder to take. This is your prompt-comprehension dial.
  • unet_strength - the main diffusion network. This is the bulk of what you see in output.
  • time_embed_strength - the timestep conditioning path.
  • input_blocks_strength, middle_block_strength, output_blocks_strength - the three UNet regions, so you can keep composition from one model and detail from the other even within the UNet.
  • out_strength - the final output layer.

Each component also has a *_method choice of linear, slerp, or cosine - so the text encoder can blend with a gentle cosine while the UNet uses SLERP. For the optional VAE: vae_A / vae_B inputs with vae_strength and vae_method, letting you take one model's decoder for its color handling.

Outputs are merged_model (MODEL) and merged_vae (VAE). Wire both into your checkpoint-equivalent slot: the model into the KSampler, the VAE into the VAE decode.

The settings that matter

The mental model: text_encoder_strength controls words, input_blocks_strength controls composition, output_blocks_strength controls texture, vae_strength controls color. A classic first experiment is keeping one parent's text encoder at 1.0 (it understands your prompts) while splitting the UNet 50/50. And if your merged output has washed-out or greyed colors - the classic mismatched-VAE symptom the KB calls out - that's your cue to check vae_strength rather than the UNet dials.

Installing it

Part of ComfyUI-Tensor-Prism-Node-Pack. ComfyUI Manager → search "Tensor Prism" → Install, restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/AstrionX/ComfyUI-Tensor-Prism-Node-Pack

No model downloads; deps are torch, numpy, psutil. Skip the typo'd clone URL in the README.

The honest caveat

More dials means more ways to make a mess, and this pack is a young, first-author, openly "vibe-coded" effort - there's no large body of community results proving which dials matter most in practice. The author's own README even hedges on whether block-level merging still behaves on current ComfyUI. That said, Layered Blend is one of the pack's more approachable ideas: change one strength at a time, keep notes, and you'll quickly learn which region controls what in your particular models.

CategoryTensor_Prism/Core

Inputs (15)

NameTypeDefaultDescription
model_AMODEL
model_BMODEL
text_encoder_strengthFLOAT0.500–1
text_encoder_methodCOMBO3 options: linear, slerp, cosine
unet_strengthFLOAT0.500–1
unet_methodCOMBO3 options: linear, slerp, cosine
time_embed_strengthFLOAT0.500–1
input_blocks_strengthFLOAT0.500–1
middle_block_strengthFLOAT0.500–1
output_blocks_strengthFLOAT0.500–1
out_strengthFLOAT0.500–1
vae_AoptVAE
vae_BoptVAE
vae_strengthoptFLOAT0.500–1
vae_methodoptCOMBO3 options: linear, slerp, cosine

Outputs (2)

NameTypeDescription
merged_modelMODEL
merged_vaeVAE