Saya Image Model Hub · Settings Only
Pick your checkpoints without loading a single one
What it actually is
This node looks strange at first glance because it has a stack of dropdowns and no outputs at all. That's the point. In earlier versions of this workflow the author used a "hub" node that loaded every model it listed at once - main, three detailers, two upscale models, custom VAEs - which is a great way to run out of VRAM before you've even sampled anything. This node is the replacement: it's a settings-only panel that records which checkpoint and VAE each phase and detailer slot should use, without loading any of them. The model loading itself got pushed down to per-phase lazy loaders.
Think of it as the workflow's spec sheet. The choices sit in the graph where you (and anyone reading the JSON later) can see them: main_ckpt for the base generation, detail_ckpt_1/2/3 for detailer passes, sampler_2_ckpt for the second sampler, usdu_1_ckpt/usdu_2_ckpt for the upscale-denoise-upscale slots, and custom_vae_1/2/3 for standalone VAEs. Because it loads nothing, it also has no IS_CHANGED cache problem and no execution cost - it's effectively documentation that participates in the workflow.
What you need to know about the dropdowns
Each widget is an enum built at runtime from ComfyUI's actual model folders - main_ckpt and friends list every file in models/checkpoints, and the custom VAE dropdowns list models/vae. If you're looking at this node's page on comfy.icu and the schema shows a single choice "none", that's not the real behavior: the schema was captured in an environment with no models registered, so the node degraded to its one guaranteed choice. On your machine with checkpoints installed, these are real dropdowns listing your files.
The settings() method deliberately returns an empty tuple and touches nothing. The node exists so the choices are recorded in the workflow's saved state and available as a human-readable (and JSON-readable) reference for the phases that follow. That's also its weakness: nothing enforces that the rest of your graph honors what you pick here. It's a coordination aid, not a wiring constraint - if you select main_ckpt = myBest.safetensors but your phase-1 loader is pointed at something else, this node will not stop you, and the manifest will tell the truth about what you actually ran.
When you'd use it
You'd use it if you're building out the author's auto-phase architecture and want one panel that answers "which model does the refiner phase use again?" without tracing wires. If you're running a normal single-graph workflow, you don't need it - the loaders themselves already show their choices. WIP pack, so expect the slot list to evolve; keep backups of workflows you care about.
Install via ComfyUI Manager (search saya-comfy-couple-plus) or clone https://github.com/alphaziod/saya-comfy-couple-plus into custom_nodes, then restart. Dependencies are just numpy and Pillow.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| main_ckpt | COMBO | 1 options: none | |
| detail_ckpt_1 | COMBO | 1 options: none | |
| sampler_2_ckpt | COMBO | 1 options: none | |
| detail_ckpt_2 | COMBO | 1 options: none | |
| detail_ckpt_3 | COMBO | 1 options: none | |
| usdu_1_ckpt | COMBO | 1 options: none | |
| usdu_2_ckpt | COMBO | 1 options: none | |
| custom_vae_1 | COMBO | 1 options: none | |
| custom_vae_2 | COMBO | 1 options: none | |
| custom_vae_3 | COMBO | 1 options: none |
Outputs (0)
No outputs