Nodes/Frog Node Pack/🐸 Prompt Merge
ComfyUI Node

🐸 Prompt Merge

Merge a base prompt with tagger, raffle, scene and Florence2 sources β€” gated by one wire

By RabbitThatIsPinkΒ·Created 3 months agoΒ·Updated 24 days agoΒ· 1
🐸 Prompt Merge
  • toggle_pack
  • merged_prompt
  • debug
β—„string_inputβ€”β–Ί
β—„Taggerβ€”β–Ί
β—„Raffleβ€”β–Ί
β—„Florence2β€”β–Ί
β—„Sceneβ€”β–Ί

In a well-built anime workflow you usually have more than one thing that wants to contribute text to the final prompt: a base character/quality prompt from your library, a tagger or Florence2 caption describing the current input image, a raffle node injecting random variety, and maybe a scene description. 🐸 Prompt Merge is the node that collects all of those and joins them into one comma-separated string - with a twist that makes it worth using instead of a generic text-concat node: each optional source is gated by a toggle from 🐸 Toggle Pack.

Here's the mental model. The string_input is your base prompt, always included. The four optional inputs - Tagger, Raffle, Florence2, Scene - are each only merged when two conditions hold: their toggle in the wired Toggle Pack is on, and the input actually has text in it. Empty or disconnected inputs are silently ignored, so you can leave sockets dangling without breaking anything.

The gating behavior is the key thing to internalize, and it's easy to get backwards. If no Toggle Pack is wired at all, every optional input defaults to off - the merge output is just your base prompt. The README says it plainly: "Tagger, Raffle, Florence2 and Scenes are not included" unless the toggle says otherwise. So if you wire up three sources and nothing but the base comes out, check the toggle wire first - that's the failure mode people hit nine times out of ten.

The mechanism is unglamorous: the node strips whitespace and stray commas, then joins whatever survived with ", " as the separator. The debug output logs each input's status - OFF, wired, or empty - which is a small blessing when you're trying to figure out why your Florence2 caption vanished.

Outputs: merged_prompt (the joined string, ready to feed a CLIP Text Encode or the tag sorter) and debug. The toggle-pack input takes the ANIMA_TOGGLES wire from 🐸 Toggle Pack.

Where this fits in the pack: it's the middle stage of a prompt-assembly chain - sources in, merged prompt out, and then usually sorting/deduping downstream. The pack has since consolidated the whole chain into 🐸 Prompt Processor, which does merge + wildcard-resolve + sort + dedupe in one node. Prompt Merge is not deprecated the way the older Merge/Sorter/Dedupe trio is, but the README's current architecture leans on Prompt Processor, and the Processor's library/raffle/scene/tagger inputs mirror exactly what this node merges. If you're building new, Processor is the fewer-nodes path; keep Prompt Merge if you want the merge as a separate, inspectable step.

Installing it

Part of Frog Node Pack:

  • ComfyUI Manager: search Frog Node Pack, install, restart.
  • Manual: cd ComfyUI/custom_nodes && git clone https://github.com/RabbitThatIsPink/FrogNodePack, restart, hard-refresh (Ctrl+Shift+R).

No extra pip dependencies - requirements.txt is empty and Pillow ships with ComfyUI. Find 🐸 Prompt Merge under 🐸 Node Pack.

Common issues

The overwhelming majority of "it's not merging" reports are the toggle: no 🐸 Toggle Pack wired means everything optional is excluded, and a toggle flipped off drops that source even when it's connected. Second most common: your source node outputs something the merge sees as empty (whitespace or a stray comma), and the silent-ignore behavior eats it - the debug output will show empty for that slot. Finally, remember this gates text inclusion, not compute - the source nodes still run whether or not their text is merged.

Category🐸 Node Pack

Inputs (6)

NameTypeDefaultDescription
string_inputSTRINGBase prompt string.
TaggeroptSTRINGβ€”
RaffleoptSTRINGβ€”
Florence2optSTRINGβ€”
SceneoptSTRINGβ€”
toggle_packoptANIMA_TOGGLESToggle pack from Anima Toggle Pack node. If unwired, all merge inputs are excluded.

Outputs (2)

NameTypeDescription
merged_promptSTRINGβ€”
debugSTRINGβ€”