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

Prism (Tensor Prism)

Merging in the frequency domain instead of weight space

By Arctenox·Created 12 months ago·Updated 7 months ago· 2
Prism (Tensor Prism)
  • model_A
  • model_B
  • merged_model
merge_method
strength0.50
low_freq_bias0.70
high_freq_bias0.30
spectral_precisionfast
layer_selectivefalse

The pack is named after this node, so it should surprise nobody that Prism is the flagship: a spectral merge that doesn't average weights directly but transforms them into the frequency domain, blends there, and transforms back. The pitch is that frequency-domain merging preserves detail better than plain interpolation - low frequencies carry structure, high frequencies carry texture, and you can treat them as separate dials instead of one mushy average.

It's also the node to be most skeptical about, and I mean that as a compliment. FFT-based merging on weights is a real and somewhat exotic technique, and it's exactly the kind of thing a first-time, "vibe-coded" pack would reach for first. The good news: the knob layout is clear enough that you can A/B it against Main Merge in an evening and let your own renders decide.

How it works

model_A and model_B in, pick merge_method from five:

  • spectral_blend - the basic frequency-domain blend, gated by strength (0.5).
  • frequency_bands - splits low and high frequencies into separate controls (low_freq_bias 0.7, high_freq_bias 0.3), so you can keep one model's structure while taking the other's detail.
  • magnitude_weighted - weights the blend by each parameter's magnitude, so stronger weights dominate.
  • adaptive_mix - adjusts the blend per-region based on measured similarity.
  • harmonic_merge - a sign-based harmonic blend, the most experimental of the five.

spectral_precision (fast/balanced/precise) trades speed against transform accuracy, and layer_selective (off) restricts the spectral path to select layers. Single output: merged_model.

The settings that matter

Start with spectral_blend at strength 0.5 - it's the honest benchmark. Move to frequency_bands when you have a specific goal: lean low_freq_bias toward the model whose composition you trust, high_freq_bias toward the one whose texture you like. The README's own tip is that different frequency biases "can dramatically change results," which is the polite way of saying you'll want to sweep them.

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. Ignore the typo'd clone URL in the README.

The honest caveat

Spectral merging is computationally heavier than linear, and "preserves detail better" is a claim this pack hasn't yet earned a track record on. The README's troubleshooting is honest about the general case - if results are poor, try different methods or adjust spectral parameters - which is the correct advice for a technique that's still finding its audience. My take: run Prism's spectral_blend and frequency_bands against Main Merge's slerp on the same two models. If Prism wins, great, you've found the pack's magic. If not, that's data too.

CategoryTensor_Prism/Core

Inputs (8)

NameTypeDefaultDescription
model_AMODEL
model_BMODEL
merge_methodCOMBO5 options: spectral_blend, frequency_bands, magnitude_weighted, adaptive_mix, harmonic_merge
strengthFLOAT0.500–1
low_freq_biasoptFLOAT0.700–1
high_freq_biasoptFLOAT0.300–1
spectral_precisionoptCOMBOfast3 options: fast, balanced, precise
layer_selectiveoptBOOLEANfalse

Outputs (1)

NameTypeDescription
merged_modelMODEL