Nodes/System One (Jev / Laya)/System One Yes/No
ComfyUI Node

System One Yes/No

Ask a Model One Question and Get a Probability Back

By dante01yoon·Created 22 days ago·Updated 22 days ago· 6
System One Yes/No
  • backend
  • probability
  • verdict
  • report
◄state—►
◄instructions—►
◄threshold0.50►
◄true_criteria►
◄false_criteria►

The display name says Yes/No; the class is called SystemOneNoul, named after the question type the backends actually answer with. Whatever you call it, this is the node for the one judgment that gates everything: does this prompt name a real person? Yes → swap in a stand-in prompt. No → carry on.

That's not a hypothetical use case. The pack ships it as demo 3, and the KB's read on likeness law is that the risk is real and unglamorous: non-sexual likeness of real people isn't reached federally today in the US, but it would be under NO FAKES, and it may already be under your state's right of publicity. A two-node guard in front of your sampler is a cheap answer to a genuinely boring legal question - and unlike the checkpoint-side filters people argue about, this one is a check you own and can tune.

How it works

You wire in a backend, give it state (usually your prompt), instructions (the question), and a threshold. The node sends the backend a noul question and gets back a probability that the statement is true, then splits it: probability is the raw number, verdict is probability >= threshold. Default 0.5, and for once the default is reasonable.

true_criteria and false_criteria are optional and let you spell out what each side means - "true means the prompt names a specific real person or public figure; false means a generic or fictional description". They only work as a pair: set one and not the other and you get Give both true_criteria and false_criteria, or neither.

The node also prints its own bar on the canvas after a run - probability: 0.99 ###################. verdict: yes (threshold 0.50) - which is how you tune thresholds without staring at logs.

The backend choice is the whole ballgame here

Read the README's table for this one twice, because it's the strongest evidence in the whole pack that provider choice isn't cosmetic:

| Prompt | Laya | Jev | | --- | --- | --- | | Taylor Swift on stage, concert photo | 0.47, passes | 0.99, swapped | | Barack Obama eating ice cream on a bench | 0.36, passes | 0.99, swapped | | a businessman giving a speech on stage | 0.39, passes | 0.03, passes |

Laya's scores for real and generic people overlap - 0.33 to 0.47 against 0.39. No threshold separates them. That's not a tuning problem; the local model doesn't have the world knowledge to know who Taylor Swift is, so there's nothing to threshold. Jev separates the same three prompts by a mile.

So: use Jev for identity, celebrity, artist-name, studio-name and language questions - anything needing knowledge of the world rather than of English. Use Laya for things it can actually judge from the text in front of it, like tone or explicitness. Getting this backwards produces a guard that reports "all clear" at 0.4 and lets everything through, which is worse than no guard, because you'll trust it.

Outputs and wiring

probability (FLOAT), verdict (BOOLEAN), report (STRING) - JSON with the question, raw answer, backend and latency.

verdict is the one you wire into a switch or an If/Else to pick between your real prompt and the stand-in. Keep probability visible somewhere while you build; a guard sitting at 0.51 and one at 0.99 need very different responses from you, and the boolean hides that distinction completely.

Two notes: the node is an output node, so it runs even with nothing wired downstream - which is exactly how the demo gates a prompt before sampling ever happens. And it answers about text only. Laya and Jev raise cannot see images; use a Clef backend. if you point an image at them.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/dante01yoon/ComfyUI-SystemOne
pip install -r ComfyUI-SystemOne/requirements.txt
export TYPESAFE_API_KEY=...      # for Jev

Search System One in ComfyUI Manager if you'd rather not use git. The requirements file is a single line (laya>=0.3.24); you only need it for local Laya. The key has to be exported in the shell that launches ComfyUI, not in a separate terminal, or you'll get The Jev backend needs the TYPESAFE_API_KEY environment variable set before starting ComfyUI. on the first run.

Honestly

If you only ever install one node from this pack, install this one plus the Backend and run it on Jev. It's a guard that costs a fraction of a cent per prompt and answers a question you'd otherwise be guessing at. If you're running Laya and expecting a celebrity detector, you're going to have a bad time - the README publishes the numbers that prove it, which is more honesty than most pack authors manage.

CategorySystemOne

Inputs (6)

NameTypeDefaultDescription
backendSYSTEMONE_BACKEND—
stateSTRINGWhat the model looks at: plain text, or a JSON object/array.
instructionsSTRINGThe question to answer about the state.
thresholdFLOAT0.500–1—
true_criteriaoptSTRING—
false_criteriaoptSTRING—

Outputs (3)

NameTypeDescription
probabilityFLOAT—
verdictBOOLEAN—
reportSTRING—