JPS Custom Nodes for ComfyUI
Nodes: Various nodes to handle SDXL Resolutions, SDXL Basic Settings, IP Adapter Settings, Revision Settings, SDXL Prompt Styler, Crop Image to Square, Crop Image to…
Nodes (76)
Positive and negative SDXL conditioning from one node
Route between up to five CONDITIONING sources with one number
Pick one of up to five loaded ControlNets with a single number
Unpack your crop settings back into individual wires
A shared crop menu for source and support images
Square up a reference image for CLIP Vision
Crop to an exact width and height, not just a square
Unpack your Canny ControlNet settings
One menu for your edge-ControlNet knobs
Unpack your depth-ControlNet settings
One menu for depth-ControlNet knobs
Unpack your pose-ControlNet settings
Bundle your pose-ControlNet knobs into one wire
Unpack your ZoeDepth ControlNet settings
Dial in a metric-depth ControlNet pass
The other ordering of the same enable/disable bridge
Drive an enable/disable widget from the same number that controls your other switches
Every img2img, inpaint, and ControlNet-preprocessor parameter in one node
Unpack the warehouse node into everything downstream needs
The two-knob version of the txt2img/img2img switch
A timestamp string that actually refreshes on every run
Read an image's width and height as plain numbers
Unpack the base crop/pad/resize settings
The base crop/pad/resize/sharpen menu the rest of the pack builds on
A junction box for every image, mask, and inpaint model in your graph
A 5-to-1 switch for picking which image feeds your graph
Unpack the img2img/inpaint/unsampler bundle
The img2img/inpaint/unsampler block, split out on its own
Unpack the mask-prep bundle
Getting the mask right before InstantID touches a face
Unpack your identity and pose weights
Unpack your pose-reference framing settings
Frame your pose reference before InstantID ever sees it
A settings pipe for the identity/pose weights InstantID needs
Unpack your face-photo framing settings
Frame the actual face photo InstantID reads
A 5-to-1 switch for plain numbers
Full tuning menu for one IP-Adapter pass
Unpack a single-adapter tuning bundle
The older weight-type vocabulary for one adapter pass
Unpack the older weight-type variant
The fix for IP-Adapter's oversized-head problem
Unpack the tiled IP-Adapter bundle
Pick between five loaded IP-Adapters with one number
Compare two integers and get the bigger one, the smaller one, and which was which
Pick one of up to five LATENT sources with a single number
A LoRA node with a real on/off switch
Pick one of five masks with an integer, no rewiring
Pick one of up to five loaded models with a single number
A×b, handed back as both a float and an int
The node for fractional scale factors JPS's own Resolution Multiply can't do
The one-node fix for ComfyUI having no multiply node
Crop, resize, and sharpen a reference image in one node
Per-side crop, padding, stretch, and flip
Prepping one tile at a time for tiled IP-Adapter
Scale a width and height by a whole-number factor
Stability's forgotten unCLIP image-prompting menu
Unpacking the Revision bundle where you actually need it
One dropdown pair instead of picking sampler and scheduler on every KSampler
A Save Image node that isn't a dead end
Every SDXL generation parameter, one node
Where the settings dropdown becomes real numbers
One wire for your whole base+refiner rig
Stop guessing what goes in text_g versus text_l
Stop writing two prompts for one image
Artists, movies, and style presets bolted onto your prompt
Snap any image size onto SDXL's trained ratios
A dropdown of the resolutions SDXL was actually trained on
One menu node for resolution, sampler, and CFG
The leaner settings unpacker, no refiner fields
Subtraction, and yes that's really the node's name
Glue up to five strings together with a chosen delimiter
One node, two boxes, positive and negative
A labeled text box for tidier prompt wiring
A seed node that defaults to random and locks on demand
Flip between five VAEs without rewiring
JPS Custom Nodes for ComfyUI
These nodes were originally made for use in JPS ComfyUI Workflows.
The nodes can be used in any ComfyUI workflow.
Installation
If you have a previous version of the "JPS Custom Nodes for ComfyUI", please delete this before installing these nodes.
- cd custom_nodes
- git clone https://github.com/JPS-GER/ComfyUI_JPS-Nodes.git
- Restart ComfyUI
You can also install the nodes using the following methods:
- install using ComfyUI Manager
List of Custom Nodes
IO
- Lora Loader - Lora Loader with On/Off Switch - output is 1 or 2, so it works with most "x to 1"-switches (while some other alternatives use boolean 0 or 1 and need corresponding switches or additional math nodes)
Settings
- SDXL Resolutions - small node that offers recommended SDXL resolutions and outputs height and width values
- SDXL Basic Settings - menu node for basic SDXL settings, required for most SDXL workflows (connect to "SDXL Basic Settings Pipe" to access the values), includes FreeU options now
- Generation TXT IMG Settings - menu node to switch between TXT2IMG and IMG2IMG
- Generation Settings - menu node to switch between, TXT2IMG, IMG2IMG, Control Net Canny, Control Net Depth, Inpainting (conntect to "Generation Settings Pipe" to access the values)
- IP Adapter Settings - menu node to turn on/off five IP adapter input images and settings (conntect to "IP Adapter Settings Pipe" to access the values)
- Revision Settings - menu node to turn on/off two revision input images and settings (conntect to "Revision Settings Pipe" to access the values)
- Sampler Scheduler Settings - menu node for sampler + scheduler settings, can also be used as pipe
Switches
- Integer Switch - "5 to 1"-switch for integer values
- Image Switch - "5 to 1"-switch for images
- Latent Switch - "5 to 1"-switch for latent images
- Conditioning Switch - "5 to 1"-switch for conditioning
- Model Switch - "5 to 1"-switch for models
- VAE Switch - "5 to 1"-switch for VAE
- ControlNet Switch - "5 to 1"-switch for ControlNet
- Disable Enable Switch - input for nodes that use "disable/enable" types of input (for example KSampler) - useful to switch those values in combinaton with other switches
- Enable Disable Switch - input for nodes that use "enable/disable" types of input (for example KSampler) - useful to switch those values in combinaton with other switches
Pipes
- SDXL Basic Settings Pipe - used to access data from "SDXL Basic Settings" menu node - place outside of the menu structure of your workflow
- Generation Settings Pipe - used to access data from "Generation Settings" menu node - place outside of the menu structure of your workflow
- IP Adapter Settings Pipe - used to access data from "IP Adapter Settings" menu node - place outside of the menu structure of your workflow
- Revision Settings Pipe - used to access data from "Revision Settings" menu node - place outside of the menu structure of your workflow
- SDXL Fundamentals MultiPipe - used to build a pipe for basic SDXL settings, has input/outputs for all supported types, so you can access/change values more easily than classic "from/to/edit"-pipes
- Images Masks MultiPipe - used to build a pipe for various images and masks used in my workflow, has input/outputs for all images, so you can access/change images and masks more easily than classic "from/to/edit"-pipes
Math
- SDXL Recommended Resolution Calc - gives you the closest recommended SDXL resolution for the width and height values, useful for IMG2IMG and ControlNet input images, to bring them in line with SDXL workflows
- Resolution Multiply - multily height and width by some factor - useful to get 2x or 4x values for upscaling or SDXL target width and SDXL target height
- Largest Int - input two integer values, output will be the larger value
- Multiply Int Int - multiply two integer inputs, output is available as integer and float, so you can save an extra node converting to the required type
- Multiply Int Float - multiply integer and float inputs, output is available as integer and float, so you can save an extra node converting to the required type
- Multiply Float Float - multiply two flout inputs, output is available as integer and float, so you can save an extra node converting to the required type
- Substract Int Int - subscract one integer input from another integer input, output is available as integer and float, so you can save an extra node converting to the required type
Text
- Text Concatenate - combine multiple input strings to one output string
- Get Date Time String - get current date/time (has extra code to make sure it will not use cached data)
- SDXL Prompt Handling - control how text_g and text_l input will be handled (many options)
- SDXL Prompt Handling Plus - control how text_g and text_l input will be handled (many options), option to add an "universal negative" prompt
Image
- Get Image Size - get width and height value from an input image, useful in combination with "Resolution Multiply" and "SDXL Recommended Resolution Calc" nodes
- Crop Image Square - crop images to a square aspect ratio - choose between center, top, bottom, left and right part of the image and fine tune with offset option, optional: resize image to target size (useful for Clip Vision input images, like IP-Adapter or Revision)
Style
- SDXL Prompt Styler - add artists, movies and general styles to your text prompt, option to add an "universal negative" prompt - uses json files, so you can extend the available options
Credits
SDXL Prompt Styler is an extended version of SDXL Prompt Styler by twri - https://github.com/twri/sdxl_prompt_styler