Nodes/Bubba Nodes/Bubba Triple Checkpoint Merge
ComfyUI Node

Bubba Triple Checkpoint Merge

A + (B - C) × Strength in ComfyUI

By bubbafett5611·Created 5 months ago·Updated 2 months ago· 0
Bubba Triple Checkpoint Merge
  • pipe
  • metadata
  • pipe
  • checkpoint_merge
  • metadata
  • model
  • clip
  • vae
  • merge_recipe
  • info
checkpoint_a
checkpoint_b
checkpoint_c
strength1.00

Bubba Triple Checkpoint Merge does the checkpoint-merging formula that shows up constantly in merge discussions: A + (B − C) × strength. You pick three checkpoints and a strength, and it computes a new model by taking A, adding the difference between B and C scaled by strength, and hands you the merged result as a working model - plus a merge payload you can save to disk. This is the "recipe" style of merging, where the third checkpoint C is used as a direction anchor: instead of blending toward B outright, you blend toward the difference B represents relative to C.

If that sounds abstract, the concrete motivation is character and style transfer. Say C is a base anime model, B is the same model plus a particular art style, and A is your character model. Then B − C isolates "just the style," and adding it to A applies that style to your character while leaving everything else about A intact. Merge a LoRA-style delta into a base checkpoint without the base's own biases dragging along. The strength knob (default 1.0, range −2 to 2) controls how much of that delta you apply; negative strengths flip the delta, which is occasionally exactly what you want to subtract a trait.

How it works

You select checkpoint_a, checkpoint_b, and checkpoint_c from your checkpoints folder and set strength. Internally the node loads each checkpoint's state dict and applies the diff-add on the tensors that are mergeable (weight tensors; non-tensor metadata is carried through sensibly). What you get back, from the source: a live merged model, clip, and vae you can sample with immediately - no save needed if you're just testing - plus merge_recipe (a JSON string describing exactly what was merged, which is your provenance for the result), pipe and metadata for Bubba workflow integration, and an info summary.

The key architectural detail: it also emits a typed BUBBA_CHECKPOINT_MERGE payload on the checkpoint_merge output. That's the handoff object for Bubba Save Checkpoint, the sibling node that writes the merge to a .safetensors file on disk. So the workflow is: merge here, test live, and only when you're happy, save it.

The inputs that matter

checkpoint_a, checkpoint_b, checkpoint_c, strength. That's the entire recipe. If you don't have a third checkpoint in mind for anchoring, you're probably better off with a plain two-way weighted merge - this node's power is specifically the delta trick.

How to install it

Standard Bubba_Nodes install: ComfyUI Manager → "Bubba Nodes" → install → restart, or

cd ComfyUI/custom_nodes
git clone https://github.com/bubbafett5611/bubba_nodes.git

restart, pip install -r requirements.txt if needed. Requires ComfyUI v0.27.0+. No model downloads - it merges checkpoints you already have.

Gotchas

A few honest warnings. First: merging is where people who "don't read licenses" get burned - the merged result inherits the licenses of all three sources, and the KB's licensing coverage is blunt that redistribution requires checking every input. Second, strength at 1.0 with the delta trick is aggressive; most people land in the 0.5–0.8 range when blending styles, and values past ~1.2 can start melting the result. Third, remember this is a pipeline node: if you want the merged checkpoint to survive a restart, you must run it through Bubba Save Checkpoint - the in-memory model evaporates when ComfyUI exits. And as with the whole young pack, there's no community write-up trail yet; the README's checkpoint-merge section and the merge_recipe JSON output are currently the best documentation of what the merge actually did.

CategoryBubba Nodes/Merge

Inputs (6)

NameTypeDefaultDescription
checkpoint_aCOMBO0 options:
checkpoint_bCOMBO0 options:
checkpoint_cCOMBO0 options:
strengthFLOAT1.00-2–2
pipeoptBUBBA_PIPE
metadataoptBUBBA_METADATA

Outputs (8)

NameTypeDescription
pipeBUBBA_PIPE
checkpoint_mergeBUBBA_CHECKPOINT_MERGE
metadataBUBBA_METADATA
modelMODEL
clipCLIP
vaeVAE
merge_recipeSTRING
infoSTRING