Extensions/Various ComfyUI Nodes by Type
ComfyUI Extension

Various ComfyUI Nodes by Type

Nodes: JWInteger, JWFloat, JWString, JWImageLoadRGB, JWImageResize, ...

By jamesWalker55·Created 3 years ago·Updated 3 days ago· 218
jamesWalker55/comfyui-various
Nodes66
On cloudLocal install
CategoryjamesWalker55
Stars218
Updated3 days ago

Nodes (66)

Datetime String

Stamp the current date and time into a workflow

jamesWalker55
Float

One decimal number you can route across the whole graph

jamesWalker55
Float Absolute Value

Strip the sign off a float in ComfyUI

jamesWalker55
Float Add

Add two decimal numbers in the graph

jamesWalker55
Float Divide

Divide two floats inside your ComfyUI graph

jamesWalker55
Float Maximum

Floor a float value in ComfyUI

jamesWalker55
Float Minimum

Clamp a float to a ceiling in ComfyUI

jamesWalker55
Float Multiply

Multiply a float by a factor in your workflow

jamesWalker55
Float Subtract

Subtract one float from another in ComfyUI

jamesWalker55
Float to Integer

Turn a decimal into a whole number, your way

jamesWalker55
Float to String

Format a decimal as clean text

jamesWalker55
Get Image Batch Count

How many images are in this batch?

jamesWalker55
Image Contrast

A simple contrast dial for your images

jamesWalker55
Image Crop to Closest SDXL Resolution

Snap any image to a valid SDXL size

jamesWalker55
Image Extract From Batch

Pull one image out of a batch by index

jamesWalker55
Image Flip

Mirror or flip an image in ComfyUI

jamesWalker55
Image Levels

Adjust black and white points in ComfyUI

jamesWalker55
Image Load RGB

Load an image by file path in ComfyUI

jamesWalker55
Image Load RGBA

Load a PNG and get its alpha channel as a mask

jamesWalker55
Image Load RGBA From Clipboard

Paste an image and its alpha as a mask

jamesWalker55
Image Load RGB From Clipboard

Paste an image straight into ComfyUI

jamesWalker55
Image Load RGB If Exists

Load an image, or fall back if it's missing

jamesWalker55
Image Mix

Blend two images together

jamesWalker55
Image Resize

Resize an image to an exact width and height

jamesWalker55
Image Resize by Factor

Scale an image by a multiplier, not a target size

jamesWalker55
Image Resize by Longer Side

Scale to a max dimension, keep the aspect ratio

jamesWalker55
Image Resize by Shorter Side

Scale to a minimum dimension without distorting

jamesWalker55
Image Resize to Closest SDXL Resolution

Snap any image to a valid SDXL size

jamesWalker55
Image Resize to Megapixels

The 'Just Make It 1 Megapixel' Node

jamesWalker55
Image Resize to Square

Force any image into a perfect square

jamesWalker55
Image Saturation

Dial color intensity up or down

jamesWalker55
Image Save To Path

Write an image to an exact file path you choose

jamesWalker55
Extract Image Sequence From Batch

Slice a range of frames out of a batch

jamesWalker55
Image Stack Channels

Glue two images together channel-wise

jamesWalker55
Integer

A plain whole-number input you can wire anywhere

jamesWalker55
Integer Absolute Value

Strip the sign off an integer

jamesWalker55
Integer Add

Add two whole numbers in the graph

jamesWalker55
Integer Divide

Divide two integers (and get a float back)

jamesWalker55
Integer Maximum

Take the larger of two integers in your graph

jamesWalker55
Integer Minimum

Take the smaller of two whole numbers

jamesWalker55
Integer Multiply

Multiply two integers in your ComfyUI graph

jamesWalker55
Integer Subtract

Subtract integers inside a ComfyUI workflow

jamesWalker55
Integer to Float

Turn a whole number into a decimal

jamesWalker55
Integer to String

Format a number as text (with zero-padding)

jamesWalker55
Batch Load Image Sequence

Load numbered frames as an image batch

jamesWalker55
Batch Load Image Sequence With Stop Index

Load numbered frames between two indices

jamesWalker55
Load Images From String

Load a list of images by their file paths

jamesWalker55
Loop Image Sequence

Fit a frame batch to an exact length

jamesWalker55
Mask Like Image Size

Make a solid mask that matches an image

jamesWalker55
Mask Resize

Resize a mask to match your image or latent

jamesWalker55
Apply Mask Sequence to Latent

Attach a per-frame mask to a latent

jamesWalker55
Mask Sequence From Mask

Turn one mask into a per-frame mask track

jamesWalker55
Join Mask Sequence

Stitch two mask tracks into one longer sequence

jamesWalker55
Batch Save Image Sequence

Write an image batch out as numbered frames

jamesWalker55
String

A single-line text box you can reuse across a workflow

jamesWalker55
String Concatenate

Glue two strings together

jamesWalker55
String Get Line

Pull one line out of a multiline string

jamesWalker55
String (Multiline)

A big text box for prompts you can route as a wire

jamesWalker55
String Replace

Find and replace text in a string

jamesWalker55
String Split

Cut a string into two pieces at a delimiter

jamesWalker55
String to Float

Parse a number out of a text field

jamesWalker55
String to Integer (Base 16)

Parse a number out of a text string

jamesWalker55
String Unescape

Get real newlines and tabs into a single-line string

jamesWalker55
RAFT Estimate

Compute optical flow between two frames in ComfyUI

jamesWalker55
RAFT Flow to Image

Turn an optical-flow field into a picture you can see

jamesWalker55
RAFT Load Flow from EXR Channels

Import motion vectors from an EXR

jamesWalker55
Readme

Various ComfyUI Nodes by Type

This repository provides various nodes for use in ComfyUI.

The nodes are grouped into separate files, you can just download the specific file you want to avoid filling your nodes list with nodes you don't need.

Installation

Method 1 (Recommended): Download each file individually

Go though each file and see which nodes you want to use. Download the corresponding file and put it in:

ComfyUI/custom_nodes

If you want to use RAFTLoadFlowFromEXRChannels from comfyui_raft.py, you must install OpenEXR in your ComfyUI Python environment.

# Activate your Python environment first.
pip install OpenEXR

Method 2: Clone the repo

This method populates your node list with most nodes in this repository, which may be annoying to some (e.g. me) so I recommend using Method 1 to keep your nodes list organised.

If you're happy with installing most nodes in this repository, clone the repository to your custom_nodes folder:

cd ComfyUI/custom_nodes
git clone https://github.com/jamesWalker55/comfyui-various

Available Nodes

Each comfyui_*.py file contains a group of nodes of similar purpose. This repo is still in early stages so I can't write documentation for each file yet - have a look at the code for each file to see what they are for.

comfyui_image_ops
  JWImageLoadRGB: Image Load RGB
  JWImageLoadRGBA: Image Load RGBA
  JWLoadImagesFromString: Load Images From String
  JWImageSaveToPath: Image Save To Path
  JWImageExtractFromBatch: Image Extract From Batch
  JWImageBatchCount: Get Image Batch Count
  JWImageResize: Image Resize
  JWImageFlip: Image Flip
  JWMaskResize: Mask Resize
  JWMaskLikeImageSize: Mask Like Image Size
  JWImageResizeToSquare: Image Resize to Square
  JWImageResizeByFactor: Image Resize by Factor
  JWImageResizeByShorterSide: Image Resize by Shorter Side
  JWImageResizeByLongerSide: Image Resize by Longer Side
  JWImageResizeToClosestSDXLResolution: Image Resize to Closest SDXL Resolution
  JWImageLoadRGBFromClipboard: Image Load RGB From Clipboard
  JWImageLoadRGBA From Clipboard: Image Load RGBA From Clipboard

comfyui_primitive_ops
  JWInteger: Integer
  JWIntegerToFloat: Integer to Float
  JWIntegerToString: Integer to String
  JWIntegerAdd: Integer Add
  JWIntegerSub: Integer Subtract
  JWIntegerMul: Integer Multiply
  JWIntegerDiv: Integer Divide
  JWIntegerAbsolute: Integer Absolute Value
  JWIntegerMin: Integer Minimum
  JWIntegerMax: Integer Maximum
  JWFloat: Float
  JWFloatToInteger: Float to Integer
  JWFloatToString: Float to String
  JWFloatAdd: Float Add
  JWFloatSub: Float Subtract
  JWFloatMul: Float Multiply
  JWFloatDiv: Float Divide
  JWFloatAbsolute: Float Absolute Value
  JWFloatMin: Float Minimum
  JWFloatMax: Float Maximum
  JWString: String
  JWStringToInteger: String to Integer
  JWStringToFloat: String to Float
  JWStringMultiline: String (Multiline)
  JWStringConcat: String Concatenate
  JWStringReplace: String Replace
  JWStringSplit: String Split
  JWStringGetLine: String Get Line
  JWStringUnescape: String Unescape

comfyui_raft
  RAFTEstimate: RAFT Estimate
  RAFTFlowToImage: RAFT Flow to Image
  RAFTLoadFlowFromEXRChannels: RAFT Load Flow from EXR Channels

comfyui_image_channel_ops
  JWImageStackChannels: Image Stack Channels

comfyui_color_ops
  JWImageMix: Image Mix
  JWImageContrast: Image Contrast
  JWImageSaturation: Image Saturation
  JWImageLevels: Image Levels

comfyui_datetime
  JWDatetimeString: Datetime String

comfyui_image_sequence
  JWLoadImageSequence: Batch Load Image Sequence
  JWLoadImageSequenceWithStopIndex: Batch Load Image Sequence With Stop Index
  JWImageSequenceExtractFromBatch: Extract Image Sequence From Batch
  JWSaveImageSequence: Batch Save Image Sequence
  JWLoopImageSequence: Loop Image Sequence

comfyui_mask_sequence_ops
  JWMaskSequenceFromMask: Mask Sequence From Mask
  JWMaskSequenceJoin: Join Mask Sequence
  JWMaskSequenceApplyToLatent: Apply Mask Sequence to Latent

Other nodes

Some files contain nodes for my own personal use, and are likely completely useless to anyone else. These nodes are hidden by default but can be enabled by setting the environment variable COMFYUI_JW_ENABLE_EXTRA_NODES to true. These files are hidden by default: