System One Backend
One Dropdown, Three Models, Zero Rewiring
- backend
System One Backend is the least exciting node in this pack and the one you'll touch every time. It doesn't touch pixels and it doesn't answer anything. It just produces the little backend object that every other System One judgment node eats, and that object is what decides whether your question goes to a model on your own GPU or to somebody's API.
If you've read about LLMs-in-ComfyUI, this is that pattern in its most reduced form: a model that isn't diffusion, bolted into the graph as a tool, deciding something your workflow then acts on. The wrinkle here is that the pack gives you three interchangeable decision models behind one question shape - Laya (convaiinnovations/laya), running locally and free; Jev by TypeSafe, a hosted API; and Clef / Clef-flash on Cloudflare Workers AI, the only one that can look at images. Flip one dropdown and a whole graph changes who's answering.
What it actually does
Each provider implements the same ask call and returns answers in the same shape, which is the entire trick. Laya is loaded once per session and cached per checkpoint/device combination, so switching the dropdown back and forth doesn't reload weights. The README's numbers: about 6 seconds to load once per ComfyUI session, then 0.03–0.3 seconds per answer on Apple Silicon. Jev and Clef are HTTPS POSTs - 0.15–0.23s for Jev, 0.3–0.9s for Clef-flash on an image question.
Two budgets worth knowing before you write clever prompts: Laya reads at most 512 tokens of state, and your option labels share a 192-token budget.
The inputs and output that matter
You set exactly one thing here: provider, whose options are laya, jev, clef-flash, and clef. The rest of the widgets are per-provider leftovers:
laya_checkpoint- two entries, the plainconvaiinnovations/layaand a multilingual variant. The README's node table doesn't mention this widget at all; it's in the code, and the multilingual checkpoint is not covered by any of the README's benchmarks, so treat it as unmeasured.device-auto,mps,cuda,cpu. Leave it onautounless it guesses wrong.jev_model- a text field, defaultjev-1.13.0.
The output is a single backend of type SYSTEMONE_BACKEND. It's a custom type: only this node makes one, and every judgment node requires one, so there's no running System One Choice without a Backend wired upstream.
Which provider, honestly
Laya is the default for a reason - free, local, fast, and fine when your prompt names its own style in plain English. It falls apart on world knowledge. The README's own tests: on eight prompts where the style is implied (Ghibli, Pixar, Makoto Shinkai, Unreal Engine 5), Jev got 8/8 at confidence 0.99+, while Laya's top answer was right on 7 but 4 of those came in under 0.5 confidence. Laya is also wrong on Korean prompts and can't tell "Taylor Swift" from "a businesswoman". Reach for Jev when the judgment needs to know things about the world or the language isn't English, and for Clef when the question is about a generated image - Laya and Jev literally raise cannot see images; use a Clef backend. if you try.
One caveat the README states plainly and you should believe: Laya's checkpoint warns that some temperatures are out of range, so its confidence is uncalibrated. Threshold it gently.
Install
Search System One in ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/dante01yoon/ComfyUI-SystemOne
pip install -r ComfyUI-SystemOne/requirements.txt
That requirements file is one line - laya>=0.3.24 - so if you only ever use the hosted providers, the install is effectively a git clone. Laya pulls its weights from Hugging Face on first use and caches them locally. For the hosted backends, export keys in the shell that starts ComfyUI:
export TYPESAFE_API_KEY=... # Jev
export CLOUDFLARE_ACCOUNT_ID=... # Clef
export CLOUDFLARE_API_TOKEN=... # a token with Workers AI permission
Where people get burned
The error messages here are unusually good, so read them literally.
The Jev backend needs the TYPESAFE_API_KEY environment variable set before starting ComfyUI.That's the whole bug. Exporting the key in a terminal that isn't the one running ComfyUI does nothing; restart the server after setting it.The Laya backend needs the 'laya' package.Thepip installwent to a different Python than the one running ComfyUI. On a portable install that means ComfyUI's embedded python, not your system one.- First Laya run looks hung. It's downloading weights and loading them. That's the ~6 second load, once per session.
- Confidence you can't trust. Laya is honest about this per the README; a 0.47 from Laya and a 0.47 from Jev are not the same claim.
Last thing, and it's not paranoia: this is a young pack. At the time of writing there's essentially no community track record to lean on, the README's benchmarks are the only numbers that exist, and the hosted path means an API key in your environment. That's the normal bar for a custom node, but per the standard advice on any fresh pack - read what it does before you feed it a credential.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| provider | COMBO | 4 options: laya, jev, clef-flash, clef | |
| laya_checkpoint | COMBO | 2 options: convaiinnovations/laya, convaiinnovations/laya (multilingual) | |
| device | COMBO | 4 options: auto, mps, cuda, cpu | |
| jev_model | STRING | jev-1.13.0 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| backend | SYSTEMONE_BACKEND | — |