Nodes/FoW - Light/💫 FoW - Text Fusion Light
ComfyUI Node

💫 FoW - Text Fusion Light

The 'Text Fusion Light' that fuses raw text, not just categories

By SirWillance·Created 2 years ago·Updated about a year ago· 5
💫 FoW - Text Fusion Light
  • clip
  • Combined Conditioning
  • Combined Prompt

The category-free junction box

First, the naming: the class is FoWLConditionFunnelLight, but what shows up in your node menu is 💫 FoW - Text Fusion Light. Don't go hunting for "Funnel." The idea is simple - while the Prompt Fusion nodes collapse the nine FoW categories into one conditioning, this one collapses any raw text inputs you feed it into one. It's the generic junction box of the suite, useful when your prompts come from somewhere else entirely (a text file, another node, a wildcard) instead of the FoW category nodes.

It ships in SirWillance's FoW_Suite_LIGHT, the free Light tier of the "Force of Will" suite - a self-taught dev's two-month first project, MIT-licensed, aimed at beginners. Like everything else here, it's deliberately plain: text in, conditioning out, no tokenization or per-input weighting in Light tier.

How it works

The backend only exposes a clip input; the actual text inputs are added by the frontend. On the node you get an "inputcount" dropdown, and it spawns Text 1 through Text 7 STRING inputs accordingly. Each text port is joined into one prompt with ", " and encoded once through your CLIP:

prompt = ", ".join(text_inputs)
tokens = clip.tokenize(prompt)
cond = clip.encode_from_tokens_scheduled(tokens)

One detail worth knowing: before joining, it strips leftover (:1)-style empty weights from text with a regex - a courtesy for pasting prompts that came from elsewhere and carry weight syntax. Empty inputs are skipped, and it always produces a valid (if empty) conditioning rather than erroring.

The inputs that matter

  • clip (CLIP) - your checkpoint's text encoder.
  • Text 1–7 (STRING) - dynamically spawned; the raw text to fuse. The inputcount dropdown on the node controls how many appear.
  • Inputs past that are exactly nothing. That's the point.

Outputs are Combined Conditioning (CONDITIONING) - which feeds a KSampler or a fusion node - and Combined Prompt (STRING), the joined text, handy for logging or for wiring into a text display.

Installing it

One install, whole suite:

cd ComfyUI/custom_nodes
git clone https://github.com/SirWillance/FoW_Suite_LIGHT

Restart ComfyUI, nodes appear under "🧿 FoW - Light". ComfyUI Manager also has it - search "Force of Will Suite Light". No dependencies, no model downloads.

Where people get burned

Two gotchas, both real. First, the weight-stripping regex only removes (:N)-style empty weights - (word:1.3) survives. On SDXL-lineage models that's fine (it works); on LLM-encoded models it's silently discarded anyway, per the KB's prompt-engineering essay, so don't expect (word:1.3) to do anything there. Second, because everything is joined into one string before encoding, this node has none of the per-input control the fusion nodes give you - it's purely a "merge and go" tool. If you want to weight one input later, put a FoW weight node on the output. If you want per-category control, use Prompt Fusion Positive/Negative instead. For raw text from external sources, this is the one.

Category🧿 FoW - Light/🔧 Prompt Refinement/⚛️ Funneling

Inputs (1)

NameTypeDefaultDescription
clipCLIP

Outputs (2)

NameTypeDescription
Combined ConditioningCONDITIONING
Combined PromptSTRING