ComfyUI Extension: KJNodes for ComfyUI
Various quality of life -nodes for ComfyUI, mostly just visual stuff to improve usability.
Custom Nodes (178)
- Add Label
- AppendInstanceDiffusionTracking
- Append Strings To List
- Apply RifleXRoPE HunuyanVideo
- Apply RifleXRoPE WanVideo
- AudioConcatenate
- Batch CLIPSeg
- Batch Crop From Mask
- Batch Crop From Mask Advanced
- Batch Uncrop
- Batch Uncrop Advanced
- Bbox To Int
- Bbox Visualize
- BOOL Constant
- Camera Pose Visualizer
- CheckpointLoaderKJ
- CheckpointPerturbWeights
- Color Match
- Color To Mask
- Conditioning Multi Combine
- ConditioningSetMaskAndCombine
- ConditioningSetMaskAndCombine3
- ConditioningSetMaskAndCombine4
- ConditioningSetMaskAndCombine5
- CondPassThrough
- Create Audio Mask
- Create Fade Mask
- Create Fade Mask Advanced
- Create Fluid Mask
- Create Gradient From Coords
- Create Gradient Mask
- CreateInstanceDiffusionTracking
- Create Magic Mask
- Create Shape Image On Path
- Create Shape Mask
- Create Shape Mask On Path
- Create Text Mask
- Create Text On Path
- Create Voronoi Mask
- Cross Fade Images
- Cross Fade Images Multi
- Custom ControlNet Weights Flux From List
- Custom Sigmas
- Cut And Drag On Path
- Differential Diffusion Advanced
- Diffusion Model Loader KJ
- (Down)load CLIPSeg
- DrawInstanceDiffusionTracking
- Dummy Latent Out
- Dummy Out
- Empty Latent Image Custom Presets
- Empty Latent Image Presets
- Fast Preview
- FilterZeroMasksAndCorrespondingImages
- Flip Sigmas Adjusted
- Float Constant
- Float To Mask
- Float To Sigmas
- Flux Block Lora Loader
- Flux Block Lora Select
- Generate Noise
- Get Image or Mask Range From Batch
- Get Images From Batch Indexed
- Get Image Size & Count
- Get Latent Range From Batch
- Get Latents From Batch Indexed
- GetMaskSize
- Get Mask Size & Count
- GLIGENTextBoxApplyBatch
- GLIGENTextBoxApplyBatchCoords
- Gradient To Float
- Grow Mask With Blur
- Hunyuan Video Block Lora Select
- HunyuanVideo Encode Keyframes To Cond
- Image Add Multi
- ImageAndMaskPreview
- Image Batch Multi
- ImageBatchRepeatInterleaving
- Image Batch Test Pattern
- Image Concatenate
- Image Concatenate From Batch
- Image Concatenate Multi
- Image Crop By Mask
- Image Crop By Mask And Resize
- Image Crop By Mask Batch
- Image Grab PIL
- Image Grid Composite 2x2
- Image Grid Composite 3x3
- Image Grid To Batch
- Image Noise Augmentation
- Image Normalize -1 to 1
- Image Pad For Outpaint Masked
- Image Pad For Outpaint Target Size
- ImagePad KJ
- ImagePass
- Image Prep For ICLora
- Resize Image
- Image Tensor List
- ImageTransformByNormalizedAmplitude
- Image Uncrop By Mask
- Image Upscale With Model Batched
- Inject Noise To Latent
- Insert Image Batch By Indexes
- Insert Images To Batch Indexed
- Insert Latent To Index
- INT Constant
- Interpolate Coords
- Intrinsic Lora Sampling
- Join String Multi
- Join Strings
- Leapfusion Hunyuan I2V Patcher
- Load & Resize Image
- Load Images From Folder (KJ)
- LoadResAdapterNormalization
- Mask Batch Multi
- Mask Or Image To Weight
- Merge Image Channels
- ModelPass
- Model Save KJ
- NormalizedAmplitudeToFloatList
- NormalizedAmplitudeToMask
- NormalizeLatent
- Offset Mask
- OffsetMaskByNormalizedAmplitude
- Patch Model Patcher Order
- Patch Sage Attention KJ
- Plot Coordinates
- Points Editor
- Preview Animation
- ReferenceOnlySimple3
- Remap Image Range
- Remap Mask Range
- Replace Images In Batch
- Resize Mask
- Reverse Image Batch
- Round Mask
- Save Image KJ
- Save Image With Alpha
- Save String KJ
- Scale Batch Prompt Schedule
- Scheduled CFG Guidance
- Screencap mss
- Separate Masks
- Set Shakker Labs Union ControlNet Type
- Shuffle Image Batch
- Sigmas To Float
- Sleep
- Something To String
- Sound Reactive
- Spline Editor
- Split Bboxes
- Split Image Channels
- Stability API SD3
- Stable Zero123 Batch Schedule
- String Constant
- String Constant Multiline
- String to Float List
- Style Model Apply Advanced
- Superprompt
- SV3D Batch Schedule
- Timer Node KJ
- TorchCompileControlNet
- TorchCompileCosmosModel
- TorchCompileLTXModel
- TorchCompileModelFluxAdvanced
- TorchCompileModelHyVideo
- TorchCompileModelWanVideo
- TorchCompileVAE
- Transition Images In Batch
- Transition Images Multi
- VAELoader KJ
- VRAM Debug
- WanVideo Enhance A Video (native)
- WanVideo Tea Cache (native)
- Webcam Capture CV2
- Weight Schedule Convert
- Weight Schedule Extend
- Widget To String
README
KJNodes for ComfyUI
Various quality of life and masking related -nodes and scripts made by combining functionality of existing nodes for ComfyUI.
I know I'm bad at documentation, especially this project that has grown from random practice nodes to... too many lines in one file. I have however started to add descriptions to the nodes themselves, there's a small ? you can click for info what the node does. This is still work in progress, like everything else.
Installation
- Clone this repo into
custom_nodes
folder. - Install dependencies:
pip install -r requirements.txt
or if you use the portable install, run this in ComfyUI_windows_portable -folder:
python_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\ComfyUI-KJNodes\requirements.txt
Javascript
browserstatus.js
Sets the favicon to green circle when not processing anything, sets it to red when processing and shows progress percentage and the length of your queue. Default off, needs to be enabled from options, overrides Custom-Scripts favicon when enabled.
Nodes:
Set/Get
Javascript nodes to set and get constants to reduce unnecessary lines. Takes in and returns anything, purely visual nodes. On the right click menu of these nodes there's now an options to visualize the paths, as well as option to jump to the corresponding node on the other end.
Known limitations:
- Will not work with any node that dynamically sets it's outpute, such as reroute or other Set/Get node
- Will not work when directly connected to a bypassed node
- Other possible conflicts with javascript based nodes.
ColorToMask
RBG color value to mask, works with batches and AnimateDiff.
ConditioningMultiCombine
Combine any number of conditions, saves space.
ConditioningSetMaskAndCombine
Mask and combine two sets of conditions, saves space.
GrowMaskWithBlur
Grows or shrinks (with negative values) mask, option to invert input, returns mask and inverted mask. Additionally Blurs the mask, this is a slow operation especially with big batches.
RoundMask
WidgetToString
Outputs the value of a widget on any node as a string
Enable node id display from Manager menu, to get the ID of the node you want to read a widget from:
Use the node id of the target node, and add the name of the widget to read from
Recreating or reloading the target node will change its id, and the WidgetToString node will no longer be able to find it until you update the node id value with the new id.