π BV Upscale Config
One node decides how your whole dataset gets upscaled
- CAPTION_CONFIG_PIPE
Every workflow has the settings node - the one place where all the policy for a stage of the pipeline lives, so you're not hunting through ten nodes to change one number. BV Upscale Config is that for the BV Nodes batch upscaling logic. It packages four upscaling decisions into a single BV_UPSCALE_CONFIG_PIPE that you hand to the Conditional ImagePipe Splitter, keeping every threshold in one place instead of hardcoded across the graph.
The context here matters: the community's number one upscaling mistake is not knowing which of three different jobs they're doing - adding pixels, adding detail, or restoring damage. This node doesn't pick your upscaler; it decides the policy around it: which images count as low-res, how aggressively to bucket by resolution, and what the ceiling is. The actual upscale work stays in whatever nodes you put on the TO_UPSCALE branch.
The four knobs
- upscale_lowres (default true) - whether the lowres branch should be upscaled at all. Turn it off when the set is already clean and you just want the split without the processing.
- lowres_limit (default 768, stepped 256β2048) - the threshold below which an image counts as low-res. Same cutoff the splitter uses.
- resolution_steps (default 256) - the granularity for resolution bucketing. This is the step that the Caption Saver uses for its subfolders, so 256 means a 768Γ1024 and a 1024Γ1024 are different tiers.
- max_resolution (default 1024) - the cap. Anything above this on the high side is... policy for what counts as "enough". Set it to the native resolution your target model is trained at and let the rest of the pipeline follow.
One output:
- CAPTION_CONFIG_PIPE - yes, that's its name, even though it's an upscale config. It's the type that plugs into the Splitter's
opt_caption_config_pipeinput.
Why centralize
The alternative is setting lowres_limit and upscale_lowres directly on the splitter, which works fine for a one-off. The config pipe wins when you reuse the same policy across several workflows, or when you want to swap the whole dataset policy by changing one node. It's a small thing that pays off exactly once - when you change 768 to 896 and the whole pipeline follows.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/BlackVortexAI/ComfyUI-BVortexNodes.git
or via ComfyUI Manager ("BV Nodes"). Restart; no deps, no models.
The trap
Don't set a threshold here and on the splitter at the same time - that's how you get the "why does my splitter ignore my setting" moment. Pick the config node or the splitter's own fields, not both. The config pipe is meant to be the single source of truth; let it be.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| upscale_lowres | BOOLEAN | true | β |
| lowres_limit | INT | 768256β2048 | β |
| resolution_steps | INT | 256256β2048 | β |
| max_resolution | INT | 1024256β2048 | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CAPTION_CONFIG_PIPE | BV_UPSCALE_CONFIG_PIPE | β |