Nodes/ComfyCollectorNodes/Neutral Prompt Entry (CCN)
ComfyUI Node

Neutral Prompt Entry (CCN)

How to chain Neutral Prompt entries

By valkymaera·Created 4 months ago·Updated 10 days ago· 1
Neutral Prompt Entry (CCN)
  • conditioning
  • entries
  • entries
strategy
side
weight1.00
k_ratio0.050

Most ways of combining two prompts in ComfyUI are blunt instruments. You average them, or you add them and hope. The Neutral Prompt family from the ComfyCollectorNodes pack is a smarter alternative, and this node - the Entry - is the part where you say which aux prompt and how. It does no math itself; it packages a CONDITIONING together with a strategy and hands the bundle to a Neutral Prompt Guider, which does the heavy lifting during sampling.

It's a conceptual port of Ijleb's sd-webui-neutral-prompt from Automatic1111 (MIT licensed), which the author used a lot back in the A1111 days and ported over. If you ever ran AND_TOPK / AND_SALIENT / AND_PERP in A1111, this is the same trio.

What the three strategies actually do

The trick is that each strategy changes how the aux conditioning merges into the main prompt, rather than just piling vectors together:

  • perpendicular - the Perp-Neg approach. It projects the aux's contribution onto the axis orthogonal to the main prompt, so it only adds information the main prompt doesn't already cover. Less conflict, less prompt bleeding.
  • salient - per-element competition. The aux only wins where it activates more strongly than the main prompt. Elements it cares about more get priority, weighted by weight.
  • top_k - keeps only the strongest fraction of the aux contribution (k_ratio, default 0.05 = top 5% by absolute value) and adds it on top of the main prompt.

There's real history behind this: on guidance-distilled models (Flux Dev/Schnell, and the general 2026 crop) the negative prompt field does nothing at CFG 1, and the community's go-to workaround is exactly this perpendicular trick - the KB's Flux notes cite people using Perp-Neg guider nodes to get usable "negative" conditioning back. On SDXL-lineage models it's more of a prompt-bleeding reducer. Either way, it's model-agnostic tinkering, and the author's own caveat applies: some models respond much better than others at various weights.

The inputs that matter

  • conditioning - your aux prompt, straight from a CLIP Text Encode.
  • strategy - perpendicular / salient / top_k.
  • side - positive merges into the positive prompt; negative merges into the negative (e.g. orthogonal negatives that don't fight the positive).
  • weight - strength of the aux, −10 to 10. This is the knob you'll actually tune.
  • k_ratio - only used by top_k.

The single output is entries (type NP_ENTRIES). Chain multiples: connect one Entry's entries output into the next Entry's optional entries input to accumulate a list, then feed the whole thing into the Guider's np_entries socket. Each entry keeps its own strategy, side, weight, and k_ratio.

Install

It ships with the ComfyCollectorNodes pack, so one install covers all 20-ish of these nodes:

cd ComfyUI/custom_nodes
git clone https://github.com/valkymaera/ComfyCollectorNodes

then restart ComfyUI. Or search "ComfyCollectorNodes" in ComfyUI Manager and install it there - same result. There are no model downloads and no extra Python dependencies; the pack leans on what ComfyUI already bundles.

Where people get burned

The classic one: you wire up an Entry but forget to connect the chain into the Guider's np_entries input - or you wire an Entry after the Guider in your head and connect the wrong output. Nothing errors; the Guider just silently falls back to plain curve-scheduled CFG and your aux prompt does nothing. Also remember weight is signed: crank it to 10 and the aux can swamp the whole image, and it's not hard to overshoot with top_k if you raise k_ratio past the point where "strongest fraction" stops meaning anything. Treat it as an experiment surface - that's literally what the pack is for.

CategoryCCN

Inputs (6)

NameTypeDefaultDescription
conditioningCONDITIONING
strategyCOMBOperpendicular — Perp-Neg: removes the component that conflicts with the main prompt. salient — per-element competition: aux wins only where it activates more strongly. top_k — keeps only the strongest fraction of the aux contribution.
sideCOMBOpositive — strategy merges with the positive prompt. negative — strategy merges with the negative prompt (e.g. orthogonal negatives that don't interfere).
weightFLOAT1.00-10–10Strength of this auxiliary conditioning.
k_ratiooptFLOAT0.0500.001–1Top-K only: fraction of elements to keep (0.05 = top 5%).
entriesoptNP_ENTRIESChain from another NeutralPromptEntry to accumulate multiple strategies.

Outputs (1)

NameTypeDescription
entriesNP_ENTRIES