Nodes/JPS Custom Nodes for ComfyUI/ImageToImage Settings (JPS)
ComfyUI Node

ImageToImage Settings (JPS)

The img2img/inpaint/unsampler block, split out on its own

By JPS-GER·Created 3 years ago·Updated 2 years ago· 100
ImageToImage Settings (JPS)
    • img2img_settings
    img2img_strength50
    inpaint_strength100
    inpaint_grow_mask20
    unsampler_strength30
    unsampler_cfg1.0
    unsampler_sampler
    unsampler_scheduler

    If you've looked at Generation Settings (JPS) - the pack's warehouse node covering every mode a JPS-style workflow supports - this node will look familiar. It's the img2img, inpainting, and unsampling third of that node, lifted out and given its own dedicated Settings/Pipe pair, without the crop sections or the Canny/ZoeDepth/MiDaS/OpenPose ControlNet blocks riding along. Reach for this one when your workflow only ever needs the img2img direction and doesn't want to carry settings for three ControlNet preprocessors it never uses.

    Worth knowing: this node's sampler and scheduler lists are noticeably longer than the equivalent fields buried inside Generation Settings - 34 sampler options here versus 21 there, 9 schedulers versus 6, including newer entries like res_multistep and gradient_estimation that Generation Settings' copy doesn't have. That's a reasonably strong sign this is the more actively maintained version of the same concept, tracking ComfyUI's current core sampler list more closely.

    The inputs that matter

    • img2img_strength (0–100, default 50) - how much the sampler is allowed to deviate from your source image, expressed as a percentage. Denoising strength is the standard lever for this: low values barely touch the source, high values approach a fresh generation that just started from your image's rough shape. 50 is a sensible middle default.
    • inpaint_strength (2–100, default 100) and inpaint_grow_mask (0–200, default 20) - the inpaint-specific pair. Strength near 100 lets the sampler fully redraw whatever's inside the mask; inpaint_grow_mask dilates the mask outward by that many pixels, which helps blend the edit seam rather than leaving a hard, visible boundary where the mask ends.
    • unsampler_strength (0–100, default 30), unsampler_cfg (1–10, default 1), unsampler_sampler, and unsampler_scheduler - the unsampling block. Unsampling runs the diffusion process in reverse, converting an existing image back into a matching noisy latent, which some img2img and style-transfer workflows use for higher-fidelity results than a plain noise-add gives you. unsampler_sampler/unsampler_scheduler pick which algorithm does that reverse pass - generally worth matching whatever sampler/scheduler you're using for the forward generation, though it's not a hard requirement.

    Output: img2img_settings, a BASIC_PIPE - JPS's reused bundle label (a plain tuple, not Impact Pack's object of the same type name), meant to feed ImageToImage Pipe (JPS).

    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 - pure settings logic; the actual sampling, inpainting, and unsampling happen in other nodes elsewhere in your graph.

    Where people get tripped up

    If your img2img output barely changes from the source, or changes too much, img2img_strength is the first thing to check - it's easy to leave it at the 50 default and not realize that's a genuinely middle-of-the-road value, not automatically "correct" for your job. For inpainting specifically, a hard visible seam around the edit is almost always solved by raising inpaint_grow_mask, not by touching inpaint_strength. And if you're using the unsampling block and results look off, double check unsampler_sampler/unsampler_scheduler are set sensibly - an unsampling pass run with a mismatched or unusual sampler choice can produce a noisy latent that doesn't actually correspond well to your source image, defeating the point of using unsampling over a plain noise-add in the first place. As always with this pack's Settings nodes: nothing here does anything until ImageToImage Pipe (JPS) unpacks it and the individual values reach real sampler/inpaint nodes downstream.

    CategoryJPS Nodes/Settings

    Inputs (7)

    NameTypeDefaultDescription
    img2img_strengthINT500–100
    inpaint_strengthINT1002–100
    inpaint_grow_maskINT200–200
    unsampler_strengthINT300–100
    unsampler_cfgFLOAT1.01–10
    unsampler_samplerCOMBO34 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +28
    unsampler_schedulerCOMBO9 options: normal, karras, exponential, sgm_uniform, simple, ddim_uniform, +3

    Outputs (1)

    NameTypeDescription
    img2img_settingsBASIC_PIPE