ComfyUI Extension: KJNodes for ComfyUI
KJNodes for ComfyUI is ready to run
It's one of 95 extensions already installed on ComfyICU — nothing to clone, nothing to reconcile. Bring a workflow and you're billed for GPU seconds, not idle time.
Various quality of life -nodes for ComfyUI, mostly just visual stuff to improve usability.
Looking for a different extension?
Custom Nodes (244)
- Image Normalize -1 to 1
- String Constant Multiline
- ImagePass
- Get Mask Size & Count
- Remap Image Range
- Split Bboxes
- Interpolate Coords
- Float To Sigmas
- Mask Batch Multi
- Create Shape Mask On Path
- CondPassThrough
- Blockify Mask
- Create Shape Mask
- Create Voronoi Mask
- Remap Mask Range
- Separate Masks
- Color Match
- Image Tensor List
- Join Strings
- Empty Latent Image Presets
- Get Image Size & Count
- Image Batch Filter
- Image Uncrop By Mask
- Image Grid Composite 2x2
- Image Pad For Outpaint Target Size
- Shuffle Image Batch
- Scale Batch Prompt Schedule
- Append Strings To List
- CheckpointPerturbWeights
- Model Save KJ
- Lazy Switch KJ
- Cut And Drag On Path
- Mask Or Image To Weight
- TorchCompileModelHyVideo
- TorchCompileModelQwenImage
- TorchCompileModelWanVideo
- Float To Mask
- Points Editor
- Stable Zero123 Batch Schedule
- Scheduled CFG Guidance
- DiT Block Lora Loader
- Hunyuan Video Block Lora Select
- Custom ControlNet Weights Flux From List
- Timer Node KJ
- CFG Zero Star/Init
- WanVideoNAG
- Visualize CUDAMemory History
- Grow Mask With Blur
- LoraExtractKJ
- Patch Model Patcher Order
- TorchCompileLTXModel
- LTXV Enhance A Video KJ
- Image Crop By Mask And Resize
- Reverse Image Batch
- Batch Uncrop
- Bbox To Int
- Bbox Visualize
- Generate Noise
- Sleep
- Create Gradient From Coords
- Gradient To Float
- SV3D Batch Schedule
- Differential Diffusion Advanced
- Screencap mss
- VAELoader KJ
- Apply RifleXRoPE HunuyanVideo
- WanVideo Enhance A Video (native)
- Skip Layer Guidance WanVideo
- NABLA Attention KJ
- Round Mask
- Cross Fade Images
- Float Constant
- Get Image or Mask Range From Batch
- Get Latent Range From Batch
- Merge Image Channels
- Pad Image Batch Interleaved
- Batch Crop From Mask
- Insert Image Batch By Indexes
- Save String KJ
- Create Fade Mask
- Create Audio Mask
- Image Grab PIL
- Image Grid Composite 3x3
- Image Grid To Batch
- Preview Animation
- Wan21 Block Lora Select
- TorchCompileControlNet
- TorchCompileModelFluxAdvanced
- LoraReduceRank
- BOOL Constant
- String Constant
- Conditioning Multi Combine
- ConditioningSetMaskAndCombine3
- WanImageToVideoSVIPro
- Draw Mask On Image
- (Down)load CLIPSeg
- Color To Mask
- Create Magic Mask
- Offset Mask
- Resize Mask
- Consolidate Masks
- ColorMatchV2
- Cross Fade Images Multi
- Get Images From Batch Indexed
- Get Latent Size & Count
- Fast Preview
- Image Batch Join With Transition
- ImageBatchRepeatInterleaving
- ImageConcanate
- Image Crop By Mask Batch
- Image Noise Augmentation
- ImagePad KJ
- Resize Image v2
- Insert Images To Batch Indexed
- Load Videos From Folder
- Save Image With Alpha
- Split Image Channels
- Transition Images Multi
- Transition Images In Batch
- Image Transform KJ
- HDR Preview KJ
- Get Preview Override Frames
- Preview Image Or Mask
- Image Sharpen KJ
- Batch Crop From Mask Advanced
- Flip Sigmas Adjusted
- String to Float List
- Get Latents From Batch Indexed
- Camera Pose Visualizer
- Something To String
- Style Model Apply Advanced
- NormalizedAmplitudeToMask
- OffsetMaskByNormalizedAmplitude
- AudioConcatenate
- Create Text On Path
- Weight Schedule Convert
- Sigmas To Float
- Plot Coordinates
- Screencap Stream
- Webcam Capture CV2
- Flux Block Lora Select
- LTX2 Block Lora Select
- TorchCompileModelWanVideoV2
- Patch Sage Attention KJ
- Patch Flash Attention KJ
- VAE Decode Loop KJ
- Apply RifleXRoPE WanVideo
- PiD Color Bias Correction
- Latent Inpaint TTM
- Start Recording CUDAMemory History
- End Recording CUDAMemory History
- PreviewLatentNoiseMask
- Model Memory Usage Factor Override
- PlaySoundKJ
- AppendInstanceDiffusionTracking
- GetTrackRange
- AddNoiseToTrackPath
- Context Windows Visualizer (KJ)
- TorchCompileCosmosModel
- LTXVAddGuideMulti
- LTXVAudioVideoMask
- LTXV Chunk FeedForward
- LTX2 Sampling Preview Override
- LTXVImgToVideoInplaceKJ
- LTX2 Mem Eff Sage Attention Patch
- LTX2 LoRA Loader Advanced
- WanVideo Mem Eff Sage Attention Patch
- ImageBatchTestPattern
- Image Concatenate From Batch
- INT Constant
- ConditioningSetMaskAndCombine
- ConditioningSetMaskAndCombine4
- ConditioningSetMaskAndCombine5
- Create Fade Mask Advanced
- Create Fluid Mask
- Add Label
- Image Concatenate Multi
- Fast Preview Batch
- ImageAndMaskPreview
- Image Add Multi
- Image Crop By Mask
- Image Pad For Outpaint Masked
- Image Upscale With Model Batched
- Insert Latent To Index
- Load & Resize Image
- Replace Images In Batch
- Save Image KJ
- Encode Video Components
- Ideogram 4 Prompt Builder KJ
- ModelPass
- FilterZeroMasksAndCorrespondingImages
- Inject Noise To Latent
- Custom Sigmas
- Set Shakker Labs Union ControlNet Type
- Dummy Out
- SimpleCalculatorKJ
- Empty Latent Image Custom Presets
- NormalizedAmplitudeToFloatList
- ImageTransformByNormalizedAmplitude
- Spline Editor
- Weight Schedule Extend
- Superprompt
- GLIGENTextBoxApplyBatchCoords
- Diffusion Model Loader KJ
- Leapfusion Hunyuan I2V Patcher
- VAEMergeKJ
- Model Patch Torch Settings
- GGUFLoaderKJ
- TorchCompileModelAdvanced
- Model Memory Use Report Patch
- Wan Chunk FeedForward
- CreateInstanceDiffusionTracking
- DrawInstanceDiffusionTracking
- LTX2 NAG
- LTX2 Audio Latent Normalizing Sampling
- LTX2 Attention Tuner Patch
- Batch CLIPSeg
- Create Gradient Mask
- Sound Reactive
- Create Text Mask
- Random Image From Batch
- Image Batch Multi
- Image Batch Extend With Overlap
- Image Prep For ICLora
- Resize Image (deprecated)
- Load Images From Folder (KJ)
- Decode and Save Video
- Model Preview Override
- Batch Uncrop Advanced
- Widget To String
- Join String Multi
- VRAM Debug
- Diffusion Model Selector
- VisualizeSigmasKJ
- Create Shape Image On Path
- CheckpointLoaderKJ
- TorchCompileModelFluxAdvancedV2
- TorchCompileVAE
- WanVideo Tea Cache (native)
- HunyuanVideo Encode Keyframes To Cond
- Krea2 Prompt Weight
- Ideogram4 Optimizations KJ
- SamplerSelfRefineVideo
- LTXVAddGuidesFromBatch
README
KJNodes for ComfyUI
At this point pretty random collection of utility, model optimization and QoL nodes, while keeping dependencies at minimum.
Documentation is mostly in the node descriptions and tooltips.
Installation
- Clone this repo into
custom_nodesfolder. - Install dependencies:
pip install -r requirements.txtor 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
JS extensions:
Node insert (default hotkey D, configurable) and shake to disconnect (default disabled, found in settings to enable):
https://github.com/user-attachments/assets/e81f02e6-9cb0-4cb3-bcdd-67e7bd5bf6fb
Node swap (default hotkey S, configurable):
https://github.com/user-attachments/assets/735d973e-1b8b-4936-a1fb-29736b9c063a
Set/Get
UPDATE March 19th 2026
Complete (backwards compatible as far as I'm aware currently) rewrite of Set/Get nodes.
Changelog March 19th 2026
New Features
-
Nodes 2.0 support - Works with nodes 2.0 as well as legacy.
-
Subgraph support — Set/Get now works across subgraph boundaries. A Set in a parent graph is visible to all child subgraphs, and Get nodes search upward through ancestors. Cross-graph connections are resolved during prompt execution.
-
Convert link to Set/Get — Right-click any link midpoint to convert it into a Set/Get pair.
-
Convert to links — Right-click a Set or Get node to convert the pair back to direct links.
-
Convert outputs to Set/Get — Batch operation to convert all outputs of selected nodes into Set/Get pairs at once.
-
Canvas right-click menu — "Convert outputs on all selected nodes to Set/Get" and "Convert selected Set/Get to links".
-
Keyboard shortcuts — Ctrl+Shift+S (add Set to selected / at cursor), Ctrl+Shift+G (add Get at cursor), Ctrl+Shift+L (force-show all connections toggle).
-
"Convert ALL Set/Get to links" setting — One-click button in settings to replace every Set/Get pair with direct links, including across subgraph boundaries.
-
Show links setting — Combo setting (never / selected / always) to control when virtual links between Set/Get pairs are drawn. "Selected" mode shows links only for currently selected Set/Get nodes. Ctrl+Shift+L temporarily forces all links visible.
-
Add Set/Get from connection menu — When dragging from a slot, "Add SetNode" and "Add GetNode" entries appear next to "Add Reroute" in the connection menu.
-
Shift+middle-click creates Set/Get — Shift+middle-click on an output slot creates a connected SetNode; on an input slot creates a connected GetNode. Optional setting to override normal middle-click to also create Set/Get instead of Reroute.
-
Add paired GetNode — Right-click a SetNode to add a paired GetNode pre-configured with the same name.
-
Double-click Get to jump to Set — Double-click a GetNode to center and select its paired SetNode.
-
Default widget value setting — Controls the initial Constant value when a Set node is first connected: empty (default), slot name, slot name (lowercase), or slot name (UPPERCASE).
-
Type inference from output — If a SetNode's input is unconnected but its output is connected to a typed input, the Set adopts that type and recolors accordingly.
-
Getters submenu navigates into subgraphs — SetNode's getter list now includes cross-subgraph GetNodes and can navigate into subgraphs to focus them.
Fixes
-
Paste rename coordination — When pasting Set+Get pairs, GetNodes now correctly follow their SetNode's rename (e.g.,
MODEL->MODEL_0). -
Type/color reset on disconnect — Disconnecting input or output now correctly resets type and color, but only when neither side is still connected.
-
Suffix stripping only on paste —
validateNameno longer strips intentional_Nsuffixes from user-typed names. Only strips during paste to avoidFOO_0_1_2accumulation. -
Connection drawing moved to canvas level — Visualization links remain visible even when nodes are off-screen or collapsed.
Settings
- Settings are now organized under KJNodes > Set & Get and KJNodes > General categories in the settings panel.
KJNodes for ComfyUI is ready to run
It's one of 95 extensions already installed on ComfyICU — nothing to clone, nothing to reconcile. Bring a workflow and you're billed for GPU seconds, not idle time.