Generation Settings (JPS)
Every img2img, inpaint, and ControlNet-preprocessor parameter in one node
- generation_settings
This is the biggest node in the whole pack, and it exists to solve one specific annoyance: a workflow that can run in several modes - img2img, inpainting, or ControlNet with a Canny, depth, or pose preprocessor - needs a lot of parameters, and scattering all of them across the graph as separate widgets makes the whole thing unreadable. Generation Settings is a warehouse for every one of those parameters, packed into a single node so the rest of the graph only has to carry one wire.
Rather than a mode-switcher, think of this as a settings library covering every mode a JPS-style workflow supports simultaneously - the actual mode switching happens elsewhere in the graph (via a separate menu node, or your own routing), and this node just makes sure every value that any branch might need is defined in one place. It groups into a few clear sections. Source/support image cropping: source_crop_pos/source_crop_offset and support_crop_pos/support_crop_offset control how your input images get cropped to fit, plus crop_intpol for the resize algorithm. Img2img and inpainting strength: img2img_strength (0–100, default 50 - how much the sampler is allowed to deviate from your source image), inpaint_strength (2–100, default 100), and inpaint_grow_mask (0–200, default 20 - how many pixels to dilate the inpaint mask outward, which helps blend the edit seam). Unsampling: unsampler_strength, unsampler_cfg, unsampler_sampler, and unsampler_scheduler - parameters for running the diffusion process in reverse to convert an image back into a matching noisy latent, a technique some img2img and style-transfer workflows use for higher-fidelity results than a plain noise-add. And then three full ControlNet preprocessor blocks - Canny (cannyedge_from, _strength, _start, _end, plus edge-detection _low/_high thresholds), Zoe depth (zoe_from, _strength, _start, _end), Midas depth (midas_from, _strength, _start, _end, plus Midas-specific _a and _bg tuning values), and OpenPose (openpose_from, _strength, _start, _end, and separate body/face/hand enable toggles) - each with its own _from selector choosing whether the preprocessor reads the source image, the support image, or a directly-supplied support image.
All of that collapses into a single generation_settings output - a BASIC_PIPE, JPS's convention for bundling many values into one wire. You place a matching "Generation Settings Pipe" node elsewhere in your graph to unpack it back into individual values wherever a specific branch actually needs them, which is exactly the same wire-bundling pattern the pack uses for its other big settings menus.
Why bother with one giant node instead of just building the graph you need. If you're only ever running one mode, you genuinely don't need this - plain individual nodes are simpler. This node earns its keep specifically in a workflow meant to support several modes without rebuilding the graph each time: flip which branch is active elsewhere (with one of JPS's switch nodes), and every mode's settings are already sitting here, ready, rather than half-wired because you deleted the Canny nodes last time you were doing inpainting instead.
Installing it. ComfyUI Manager, search "JPS Custom Nodes for ComfyUI," or:
cd ComfyUI/custom_nodes
git clone https://github.com/JPS-GER/ComfyUI_JPS-Nodes.git
Restart, find it under JPS Nodes/Settings. No models bundled - though the ControlNet preprocessor sections here assume you've separately installed ComfyUI's ControlNet Auxiliary Preprocessors pack, since this node only holds the settings for Canny/Zoe/Midas/OpenPose, not the preprocessing logic itself.
Troubleshooting. The scale of this node is the main hazard: with this many parameters in one place, it's easy to tune a value in a section you're not actually using and wonder why nothing changed - check that the mode you're editing settings for is the one actually active in your branch-selection logic. If ControlNet preprocessing looks wrong, the _from selectors are worth checking first (Source Image vs. Support Image vs. Support Direct is an easy thing to leave on the wrong option after copying a workflow from someone else). And if this node isn't producing the outputs you expect at all, confirm you've got a matching "Generation Settings Pipe" node downstream actually unpacking the generation_settings pipe - this node alone doesn't expose individual values, only the bundled wire.
Inputs (35)
| Name | Type | Default | Description |
|---|---|---|---|
| source_crop_pos | COMBO | 5 options: center, top, bottom, left, right | |
| source_crop_offset | INT | 0-2048–2048 | — |
| support_crop_pos | COMBO | 5 options: center, top, bottom, left, right | |
| support_crop_offset | INT | 0-2048–2048 | — |
| crop_intpol | COMBO | 6 options: lanczos, nearest, bilinear, bicubic, area, nearest-exact | |
| img2img_strength | INT | 500–100 | — |
| inpaint_strength | INT | 1002–100 | — |
| inpaint_grow_mask | INT | 200–200 | — |
| unsampler_strength | INT | 300–100 | — |
| unsampler_cfg | FLOAT | 1.01–10 | — |
| unsampler_sampler | COMBO | 22 options: euler, euler_ancestral, heun, heunpp2, dpm_2, dpm_2_ancestral, +16 | |
| unsampler_scheduler | COMBO | 6 options: normal, karras, exponential, sgm_uniform, simple, ddim_uniform | |
| cannyedge_from | COMBO | 3 options: Source Image, Support Image, Support Direct | |
| cannyedge_strength | FLOAT | 1.00–10 | — |
| cannyedge_start | FLOAT | 0.000–1 | — |
| cannyedge_end | FLOAT | 1.000–1 | — |
| cannyedge_low | INT | 1000–255 | — |
| cannyedge_high | INT | 2000–255 | — |
| zoe_from | COMBO | 3 options: Source Image, Support Image, Support Direct | |
| zoe_strength | FLOAT | 1.00–10 | — |
| zoe_start | FLOAT | 0.000–1 | — |
| zoe_end | FLOAT | 1.000–1 | — |
| midas_from | COMBO | 3 options: Source Image, Support Image, Support Direct | |
| midas_strength | FLOAT | 1.00–10 | — |
| midas_start | FLOAT | 0.000–1 | — |
| midas_end | FLOAT | 1.000–1 | — |
| midas_a | FLOAT | 6.280–15.71 | — |
| midas_bg | FLOAT | 0.100–1 | — |
| openpose_from | COMBO | 3 options: Source Image, Support Image, Support Direct | |
| openpose_strength | FLOAT | 1.00–10 | — |
| openpose_start | FLOAT | 0.000–1 | — |
| openpose_end | FLOAT | 1.000–1 | — |
| openpose_body | COMBO | 2 options: enable, disable | |
| openpose_face | COMBO | 2 options: enable, disable | |
| openpose_hand | COMBO | 2 options: enable, disable |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| generation_settings | BASIC_PIPE | — |