Nodes/Bubba Nodes/Bubba Merge Preview Prompt Runner
ComfyUI Node

Bubba Merge Preview Prompt Runner

Compare merges fairly, with the same prompt every time

By bubbafett5611·Created 5 months ago·Updated 2 months ago· 0
Bubba Merge Preview Prompt Runner
  • pipe
  • metadata
  • clip
  • checkpoint_merge
  • pipe
  • metadata
  • positive
  • negative
  • positive_prompt
  • negative_prompt
  • test_name
  • info
test_caseportrait_detail
custom_positive
custom_negative
append_custom_textfalse
cleanuptrue

Comparing two checkpoint merges on their merits is impossible if you change the prompt between them - you'll never know if the difference came from the merge or the words. Bubba Merge Preview Prompt Runner is the fairness device: it produces a repeatable test prompt from a built-in test case, encodes it into conditioning, and hands it to your sampler so every merge you preview gets judged on the same text. The test name travels in the metadata, so the record of "which test case did I run this merge on" doesn't get lost either.

The idea is sound and it's the standard practice in the merge community: when you're blending checkpoints you need a fixed benchmark prompt, because a merge that shines on "portrait of a woman" might fall apart on "cat in a spaceship." This node bakes that benchmarking habit in. Select a test_case, and it assembles a positive/negative prompt pair designed to stress what merging tends to break - portrait_detail is the default, and the pack ships a set of test cases aimed at the common failure points (faces, hands, anatomy, style consistency).

The inputs that matter

  • test_case - the benchmark prompt to use, default portrait_detail. This is the whole point: pick one and keep it fixed across all your merges.
  • custom_positive / custom_negative - your own prompt text, if a built-in case isn't what you're testing.
  • append_custom_text - boolean; when true, appends your custom text to the chosen test case instead of replacing it. That's how you test "the standard portrait case, plus my character's tags."
  • cleanup - boolean, default true; normalizes whitespace and separators in the assembled prompt.

It accepts a clip input (or pulls from the pipe) to do the encoding, plus an optional checkpoint_merge input - when you connect the merge payload, the node can tie the test run to the specific merge recipe.

The outputs

  • positive / negative - encoded conditioning, wired straight into a sampler.
  • positive_prompt / negative_prompt - the actual assembled text, so you can see exactly what was run and reuse it elsewhere.
  • test_name - the name of the test case, which you'll want to record in a filename or note so your merge comparison sheets are labeled with which benchmark made them.
  • pipe / metadata - updated, carrying the test context.
  • info - a summary string.

The workflow it belongs to

The full merge-preview loop is: Bubba Checkpoint Merge (or Triple Merge) → this node encodes the fixed test prompt → Bubba KSampler samples each merge with the same seed and test case → Bubba Image Compare or the Model Compare Sheet shows the results side by side. Same prompt, same seed, same settings, different weights - that's the only comparison that means anything. If you're generating merge previews today with a hand-typed prompt and changing seeds between runs, you're comparing noise; this node removes that variable.

The one thing to remember: the test case is a benchmark, not a showcase. A prompt designed to expose differences will also produce images that look worse than your tuned, cherry-picked prompts - that's the point. Don't judge a merge by how pretty the benchmark output is; judge it by whether it held together on a hard prompt.

Install

Bubba Nodes, one pack:

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

or ComfyUI Manager → search "Bubba Nodes", restart. ComfyUI 0.27.0+ required, no extra dependencies. If the node needs a CLIP and you haven't fed it one (or a pipe with a clip), encoding fails with a clear "no clip" error - wire the clip from your merge's pipe or loader and it's fine.

CategoryBubba Nodes/Merge

Inputs (9)

NameTypeDefaultDescription
test_caseCOMBOportrait_detail6 options: portrait_detail, full_body_anatomy, dynamic_scene, style_stress, lighting_color, custom
custom_positiveSTRING
custom_negativeSTRING
append_custom_textBOOLEANfalse
cleanupBOOLEANtrue
pipeoptBUBBA_PIPE
metadataoptBUBBA_METADATA
clipoptCLIP
checkpoint_mergeoptBUBBA_CHECKPOINT_MERGE

Outputs (8)

NameTypeDescription
pipeBUBBA_PIPE
metadataBUBBA_METADATA
positiveCONDITIONING
negativeCONDITIONING
positive_promptSTRING
negative_promptSTRING
test_nameSTRING
infoSTRING