ComfyUI 1hewNodes
This is a custom node collection for ComfyUI that provides some utility nodes.
Nodes (126)
'Is there actually anything here?' — the empty-checker for any type
Turn 'is it empty' into a number you can do math with
An if/else for the graph, with lazy evaluation that skips dead branches
One integer to route between ten workflow branches
How long is this audio, in seconds? One output, that's the whole node
Find the vanishing point and draw the composition's guide lines
Five background-removal backends behind one node, RMBG by default
Fix the fuzzy edges your background-removal mask left behind
YOLO detection with masks you can feed straight into inpainting
Compare two floats and hand the decision downstream as a boolean
Count the images in a folder, then drive a batch loop off the number
Burn text labels onto images — with real Chinese font support
Sweep the speckles and fringe out of your alpha channel
Rebuild an RGBA image from RGB plus a separate mask
Get your alpha back without wrecking the RGB
Chunk a long batch into overlapping windows without losing the tail
Grab exactly the frames you want out of a batch
Riffle-shuffle your image batch, on purpose
Slice any image batch like it's a Python list
Split a batch in two — first N frames, or last N frames
The tiny bridge that feeds a batch to list-only nodes
Pull a representative film strip out of any batch
Turn a segmentation mask into a drawn bounding box
Photoshop-style blend modes, driven by alpha
Every CSS blend mode, inside your ComfyUI graph
A cheap automatic cutout matte when you don't have a matting model
Square crop around the subject, without eyeballing it
Crop around your subject's mask — and remember where it came from
The one node that pads to divisible and tells you where the original was
Build the reference | edit layout that edit models actually want
Cut one image into a grid of tiles and get them back as a batch
Put the frequency layers back together, with dials
Frequency separation, the retoucher's trick, as a node
Steal one image's texture and give it to another
Merge image lists from two branches without losing order
The list version of the riffle shuffle, for mismatched sizes
Flatten a list of images back into one batch
One clean strip out of your main shot plus extras
Stick a subject on a new background without the gray halo
Crop to the mask, keep the alpha, and get the mask back too
Drop a local crop back onto the full canvas, gaps and all
Paste the inpainted crop back where it belongs
Loop a clip forever with a bounce, not a hard cut
Turn a batch into a contact sheet you can actually inspect
Put your reference image on Flux Kontext's native grid
Resize for Nano Banana Pro without calling any API
The Gemini 3.1 Flash size table, including the panoramas
A resize node that speaks GPT Image 2.0's dimension language — no API, no key
Size your images for Jimeng's exact buckets — locally, in two clicks
Snap your input to QwenImage's exact resolution buckets
Square images for models that demand exact sizes
The one resizer that doesn't care which model you're feeding
Rotate the subject and its mask together, or your cutout drifts
A solid color image that also matches your reference's dimensions
Put a colored outline around anything in your mask — the comic-label effect
The other half of the tiling duo — feather-blend your tiles back into one image
Slice big images into overlapping tiles so you can upscale or diffuse them on limited VRAM
Make a mask from an image's brightness, with a safe fallback
Turn an image into a URL you can paste anywhere
Count the real images in a batch — ignoring empty frames and pure-black junk
Grab one number out of an image's dimensions — longest, shortest, width, or height
Need an image's width and height as integers? Here's the two-wire answer
The mask version of 'what's the shortest side' — for when masks carry the dimensions
Compare two integers and get a real boolean out of it
Split one integer budget into two parts — by percentage or by exact cut point
Count how many videos you actually plugged in
A Wan-flavored integer node — the 4n+1 frame-count nudge
A float-list builder that speaks ranges, strides, and even full-width commas
5' and get an int list — ranges and strides in one box
Generate N unique random seeds from one seed — deterministic, then rerunnable
Turn one text box into a real list that batch loops can eat
Load a folder of images as a batch — and get their filenames out
Load Photoshop PSD layers straight into your graph — one layer, all layers, or the flattened doc
Pull prompts out of .txt files — with an encoding guesser that actually tries
Load a video as a VIDEO object, not a frame explosion
Pull a video apart frame by frame, audio and all
Scrub the speckles off a matte before it ruins your composite
Collapse a whole mask batch into one mask — union or intersection
Slice a mask batch with start, step, and a frame budget
Split your mask batch the same way you split the images
Un-batch your masks — one batch in, a list of individual masks out
Crop a mask to another mask's bounding box — the clean cutout helper
Fill the donut holes in your masks — auto-cutout masks are full of them
When your masks come back as a list, this is the glue
Union, subtract, XOR — boolean math for your masks
Paste a mask back where it came from, no coordinates needed
One mask, N frames — for when a video needs the same region every time
Cut a messy mask into its individual objects — this is the one you'll keep
Outlines and sticker borders, straight from a mask
Turn a mask into its bounding boxes — but as masks, and 8-aligned
Turn an invisible mask into a color image you can actually see
Feed SAM3 the boxes it wants, straight from a mask you already have
Make one image's light match another's — and keep it stable across frames
Give VRAM a breather between queued runs
Multi Image Batch unifies sizes for you
A batch is not a list — and this node knows the difference
Stack image layers in the graph, no Photoshop tab needed
Stitch a before/after comparison or a collage, cleanly
Several masks of different sizes, one tidy batch
Join prompt blocks without the separator fiddling
Route one of ten inputs to one of ten outputs with a single number
Turn a 0-1 slider into the range you actually need
Save files where you can actually find them — and get the path back
Save anything as a .txt — prompts, coordinates, debug logs
Save a VIDEO object without losing its container or metadata
You made 60 frames. Now turn them into an actual video.
Paste coordinates as text, get real BBOXES out
Text coordinates straight into actual masks
Clean the junk out of your prompt text
Assemble multi-part prompts without the 'seams' showing
The name says Gemini, but it never calls an API — no key needed
Snap any image to the nearest GPT Image 2.0 ratio, locally
Which resolution tier is your image, really? 0.5k, 1k, 2k, or 4k
A boolean for 'is this prompt about X?' — without writing a regex
Pull one key out of messy LLM JSON without fighting the parser
The Qwen image-edit conditioning encoder, minus the workflow surgery
Turn a list of strings into one string without a headache
Which line does this match? Ask, and get a number
A lookup table that lives inside your workflow
Wrap every line of text in a prefix and suffix, in one node
The node that lies about its type, and why that's useful
Point at a video URL and get a real VIDEO object back
Scene-cut detection that hands you the keyframes
Unpack a VIDEO object into frames, audio, fps, and a frame count
Hand your generated video a public URL — no server, no API key
Name your output files after the workflow that made them
ComfyUI-1hewNodes
This is a custom node collection for ComfyUI that provides a series of practical image processing, mask operations, and utility nodes.
📦 Installation
Clone the repository into ComfyUI's custom_nodes directory:
git clone https://github.com/1hew/ComfyUI-1hewNodes
📜 Changelog
v3.23.1
- fix(io): Make
Load VideoandLoad Video to Imageresolve absolute paths and paths relative to the ComfyUI input directory, including directory scans and cache invalidation - fix(io): Preserve alpha-capable MOV/video streams when loading and saving, including ProRes 4444 output for processed transparent MOV files
- fix(io): Keep source video streams when
Save Videoreceives asource_path, avoiding unnecessary re-encoding that can drop transparency
v3.23.0
- feat(int): Add
Int Video Countto count connected videos from dynamicvideo_Xinputs - docs: Add bilingual documentation for
Int Video Countand synchronize the node list - feat(conversion): Add
Video to URLto upload ComfyUI VIDEO objects to a public URL with content-based caching - feat(conversion): Make
Image to URL's image input optional, returning an empty string when unconnected
v3.22.0
- feat(conversion): Add
Video to Imagefor extracting image, audio, FPS, and frame-count outputs from ComfyUI VIDEO objects
v3.21.2
- feat(image_resize): Update
Image Resize GPT Image 2.0with 1:3–3:1 aspect-ratio presets and revised 1k/2k/4k resolutions aligned with GPT Image 2 size limits
v3.21.1
- feat(image_crop):
Image Edge Crop/Padnow supports RGBA (transparent) input — pad defaults to transparency, crop preserves alpha; supportstransparentkeyword and 4-component color strings (e.g.255,0,0,128)
v3.21.0
- feat(logic): Add
Text Comparefor string equality, containment, prefix/suffix, and regex boolean matching - feat(text): Expand
String Ratio Gpt20ImageandString Ratio Gemini31FlashImagesupported ratio sets to match the latest selector presets - refactor(image_resize): Align
Image Resize Gemini30ProImageandImage Resize Gemini31FlashImagepreset families with the updated ratio ordering
v3.20.0
- feat(image): Add a simplified
Image BW Mattethat fixes the pipeline toauto + softand keeps onlygamma, inward edge shrink, and blur controls - feat(mask): Add
Mask Strokefor outer stroke mask with percentage width and union output
v3.19.1
- feat(conversion): Add
Image to Maskfor optional image luminance-to-mask conversion with a 64x64 black fallback - refactor(conversion): Move
Mask to Imagefrom mask operations into the conversion group
v3.18.1
- fix(image_resize): Correct
Image Resize Gemini31FlashImage[1k] 4:1preset to2064x512
v3.18.0
- feat(logic): Add
Int Number CompareandFloat Number Comparefor boolean results from two numeric inputs and a selected comparison operator
v3.17.1
- feat(image_blend): Add
edge/eedge-average color andextend/exedge-extension filling toImage Mask Blend.background_color
v3.17.0
- feat(image_crop): Add
Image Pad By BBox Maskfor restoring a local image into a full mask canvas by bbox and filling uncovered areas with a configurable color strategy
v3.16.0
- feat(image_resize): Add
Image Resize GPT Image 2.0, a GPT Image 2.0 size adapter with Gemini-style auto preset matching, dynamic aspect-preserving tiers, and 1k/2k/4k fixed presets
v3.15.1
- refactor(io): Add
psdscanning, list-formfilename/file_pathoutputs, andfilename_suffixcontrol toGet File Count; alignLoad Image.filenameandLoad PS.layer_nameto string-list outputs - refactor(logic): Add automatic typed output for simple numeric and boolean values in
text_match_value
v3.15.0
- feat(io): Add
Load PSfor loading a single PSD/PSB as one indexed layer, all layer batches, or the merged document image, with drag-and-drop upload and node preview - refactor(batch): Reshape batch sampling nodes by adding
stepandnum_frame=0support toImage Batch Range/Mask Batch Range, and replacingImage Batch ExtractwithImage Batch IndexandImage Batch Uniform - refactor(text): Enhance
List Custom IntandList Custom Floatwith more flexible multiline value/range/stride parsing
v3.14.0
- feat: Add utility nodes for batch image lists, image counting, list interleaving, and mask bounding boxes
- fix: Improve
Image Mask Cropchannel output and alpha handling
v3.13.0
- feat(text): Add
String Ratio Gpt20Imagewith the GPT 2.0 image ratio set (3:2,1:1,2:3,5:4,4:5,16:9,9:16,21:9,3:4,4:3)
v3.12.0
- feat(text): Rename
String Image Ratio Gemini31FlashImagetoString Ratio Gemini31FlashImage, renameString Image ResolutiontoString Resolution, and align related file/node/doc names
v3.11.0
- feat(image): Add
Image Batch Interleavefor contiguous segment splitting followed by column-first interleaved batch reordering
v3.10.0
- feat(image): Add
Image Alpha Join
v3.9.0
- feat(image): Add
Image Alpha Splitfor extracting alpha masks while flattening transparent images onto configurable solid backgrounds
v3.8.0
- feat(conversion): Add
Image to URLwithauto,kefan, anddataURL output modes
v3.7.2
- build(repo): rewrite legacy
fonts/*.otfhistory into Git LFS to reduce clone size; no node behavior change
v3.7.1
- feat(image_resize): Add
Image Resize Squarewith square presets for 256/512/1024/2048/4096, plusautoandauto (0.5k | 1k)matching
v3.6.0
- feat(mask): Add
Mask to Imagewith configurable black/white area colors,fill_hole, and optional RGBA output
v3.5.2
- refactor(io): Adjust
Save Txtnaming settings and filename generation logic
v3.5.1
- refactor(io): Optimize video load/save compatibility and keep
Save Imagepreview available whensave_outputis disabled
v3.5.0
- feat(io): Add
Load TxtandSave Txtnodes
v3.4.0
- feat(nodes): Add
Image Resize Gemini30ProImage,Image Resize Gemini31FlashImage,Detect Remove BG,Detect Remove BG Refine, andtext_match_rownum; reorganize resize-related capabilities into the dedicatedimage_resizegroup, and sync related docs plus README node list updates.
v3.3.0
- feat(conversion): Add
Mask to SAM3 BoxandText to Anynodes
v3.2.6
- refactor(condition): Optimize
Text Encode QwenImageEditnode
v3.2.3
- refactor(io): Optimize IO group
v3.2.1
- feat(io): Add video loading progress bar
v3.2.0
- refactor(io): Refactor IO group
v3.1.0
- feat(io): Add
Save Video by Imagenode for turning IMAGE batches into video files - refactor(color): Enhance
Match Brightness Contrastsequence consistency options
v3.0.8
- refactor(image_crop): Optimize
Image Crop With BBox Masknode - refactor(color): Optimize
Match Brightness Contrastnode
v3.0.7
- feat(color): Add
Match Brightness Contrastnode
v3.0.6
- feat(mask): Add
Mask Repeatnode, supporting batch mask repetition and inversion - feat(io): Add
Get File Count,Load Image From Folder, andLoad Video From Foldernodes to optimize file loading logic and stability
v3.0.5
- feat(image_tile): Merged
Image Tile SplitandImage Tile Split Presetnodes into a unifiedImage Tile Splitnode
v3.0.2
- feat(text): Add
String Filternode - feat(text): Add
String Join Multinode - feat(conversion): Add
Text List to Stringnode
v3.0.1
- feat(image): Add
Image PingPongnode for bidirectional batch frame generation with pre-reverse, link-frame removal, and frame truncation - feat(audio): Add
Audio Durationnode to get audio length (seconds)
v3.0.0
- build: bump version to 3.0.0
v2.0.5
- feat(multi): Added
Multi String Join,Multi Image Batch,Multi Mask Batch,Multi Image Stitch - feat(image): Added
Image Three Stitchnode - feat(condition): Added
Text Encode QwenImageEdit Keep Sizenode
v2.0.3
- feat(image_blend): Added
output_mask_invertparameter toImage Mask Blendfor output-only mask inversion
v2.0.0
- breaking: Major update. Existing workflows built with previous nodes require reconfiguration after upgrading to function correctly. Please review nodes and parameters carefully.
v1.2.46
- feat(detection): Added
DetectGuideLinenode
v1.2.45
- feat(detection): Added
DetectYolonode for YOLO model object detection
v1.2.44
- feat(util): Added
Workflow Namenode
v1.2.43
- feat(logic): Added
Video Cut Groupnode
v1.2.42
- feat(logic): Added
Image Batch Extractnode for extracting specific images from batches with multiple modes including custom indices, step intervals, and uniform distribution
v1.2.40
- feat(text): Added
IntWannode for generating 4n+1 arithmetic progression sequences with configurable step control and range validation - refactor(logic): Enhanced
Image Batch SplitandMask Batch Splitnodes with improved boundary condition handling and comprehensive error recovery
- feat(logic): Added
Image Batch Groupnode for intelligent image batch splitting with overlap support and flexible padding strategies
</details>
<details> <summary><b>v1.2.38</b></summary>- refactor(image): Enhanced
ImageResizeUniversalnode with comprehensive mask processing logic
</details>
<details> <summary><b>v1.2.37</b></summary>- feat(image): Enhanced
Image Solidnode with advanced color parameter - feat(image): Added the
ImageGridSplitnode for splitting images into grid layouts with flexible output options
</details>
<details> <summary><b>v1.2.36</b></summary>- feat(conversion): Enhanced
URL to Videonode
</details>
<details> <summary><b>v1.2.35</b></summary>- feat(image): Added
Image Resize Qwen Imagenode for Qwen vision model optimized image resizing with 7 preset resolutions and automatic aspect ratio selection
</details>
<details> <summary><b>v1.2.32</b></summary>- feat(image): Added
Image Solid Flux Kontextnode for generating solid color images with Flux Kontext dimension presets - feat(image): Added
Image Solid Qwen Imagenode for generating solid color images with QwenImage dimension presets
</details>
<details> <summary><b>v1.2.31</b></summary>- fix: Fixed various bugs and improved stability
</details>
<details> <summary><b>v1.2.28</b></summary>- feat(mask): Added
Mask Paste by BBox Masknode for simplified mask pasting with automatic base mask creation and bounding box detection - feat(image_tile): Added
Image Tile Split Presetnode with predefined resolution presets and intelligent tile size selection - feat(image): Added
Image Rotate with Masknode for advanced image rotation with mask support and multiple fill modes - feat(text): Enhanced
Text Load Localnode withuser_promptparameter for combining JSON content with additional user prompts
</details>
<details> <summary><b>v1.2.26</b></summary>- feat(image_crop): Enhanced
Image Crop with BBox Masknode with precise dimension control, addedcrop_to_sideandcrop_to_lengthparameters
</details>
<details> <summary><b>v1.2.25</b></summary>- feat(image_crop): Added
apply_paste_maskparameter toImage Paste by BBox Masknode for controlling smart scaling behavior
</details>
<details> <summary><b>v1.2.24</b></summary>- feat(image_crop): Added
opacityparameter toImage Paste by BBox Masknode for controlling paste image transparency - feat(image): Enhanced
Image Stroke by Masknode with batch processing support for handling multiple images and masks
</details>
<details> <summary><b>v1.2.23</b></summary>- fix(image): Enhanced
Image Stroke by Masknode color parsing logic, supporting RGB string formats and improved default fallback to white color - fix(image): Enhanced
Image Paste by BBox Masknode rotation parameter
</details>
<details> <summary><b>v1.2.21</b></summary>- feat(text): Added
Text Filter Commentnode for filtering single-line comments (starting with #) and multi-line comments (wrapped in triple quotes), preserving non-comment blank lines - feat(text): Added
Text Join by Text Listnode for merging any type of list into a string with support for prefix, suffix, and custom separators - refactor(text): Refactored
Text Formatnode toText Prefix Suffix, optimizing wildcard input processing and formatting functionality
</details>
<details> <summary><b>v1.2.18</b></summary>- feat(sample): Added
Step Splitnode for high-low frequency sampling step separation with support for percentage and integer input modes
</details>
<details> <summary><b>v1.2.17</b></summary>- feat(image_crop): Optimized
Image Crop with BBox Masknode
</details>
<details> <summary><b>v1.2.15</b></summary>- feat(text): Added
Text Join Multinode for concatenating multiple text inputs with dynamic variable referencing - feat(image_crop): Added
Image Edge Crop Padnode with smart edge cropping and padding capabilities, featuring mask output functionality - feat(image_blend): Enhanced
Image Luma Mattenode with feathering and alpha output features, supporting multiple color formats and edge processing
</details>
<details> <summary><b>v1.2.13</b></summary>- feat(text): Added
Text Load Localnode for loading JSON format prompt files from prompt directory with bilingual Chinese and English output
</details>
<details> <summary><b>v1.2.12</b></summary>- feat(text): Added
Text Formatnode for flexible text formatting with wildcard input support
</details>
<details> <summary><b>v1.2.9</b></summary>- feat(image_crop): Refactored
Image Crop with BBox Masknode
</details>
<details> <summary><b>v1.2.8</b></summary>- feat(image): Added
Image Resize Flux Kontextnode with support for automatic and manual size selection for images and masks - feat(image): Enhanced
Image Edit Stitchnode with improved stitching algorithms and parameter handling
</details>
<details> <summary><b>v1.2.7</b></summary>- feat(text): Added
List Custom Seednode for creating unique random seed lists with control after generate functionality
</details>
<details> <summary><b>v1.2.6</b></summary>- feat(image_hlfreq): Added high-low frequency separation node group, including
Image HLFreq Separate,Image HLFreq Combine, andImage HLFreq Transformnodes with support for RGB, HSV, and IGBI frequency separation methods
</details>
<details> <summary><b>v1.2.5</b></summary>- feat(mask): Added the
Mask Fill Holenode, which fills holes in enclosed areas of masks with support for batch processing.
</details>
<details> <summary><b>v1.2.3</b></summary>- fix(image_blend): Fixed the issue of inconsistency between devices for the
Image Blend Modes by Alphanode.
</details>
<details> <summary><b>v1.2.2</b></summary>- feat(image): Added the
Image BBox Overlay by Masknode, which overlays the image bounding box based on a mask.
</details>
<details> <summary><b>v1.2.1</b></summary>- refactor(image/crop): Renamed node classes and updated related documentation
- feat(image_crop): Enhanced the functionality and output options of the
ImageCropByMaskAlphanode
</details>
<details> <summary><b>v1.2.0</b></summary>- feat: Added
conversion, and restructured image mixing and masking processing
</details>
<details> <summary><b>v1.1.6</b></summary>- feat(ImageEditStitch): Add a “spacing” parameter to control the distance between stitched images
</details>
<details> <summary><b>v1.1.5</b></summary>- feat: Added text processing and logic nodes, optimized existing node functions
- refactor(util): Refactored utility nodes, renamed nodes
RangeMappingandPathBuild - feat(logic): Added
ImageListAppendnode for image list merging - feat(text): Added
TextCustomListandTextCustomExtracttext processing nodes - style: Cleaned up node parameter labels to maintain simplicity and consistency
</details>
<details> <summary><b>v1.1.2</b></summary>- feat(image_tile): Improved the
Image Tile Mergealgorithm, using weight masks and cosine gradients to achieve perfect seamless stitching
</details>
<details> <summary><b>v1.1.1</b></summary>- feat (image_crop): Added intelligent batch processing for
Image BBox Paste
</details>
<details> <summary><b>v1.1.0</b></summary>- build: Add new tile nodes
- feat: Update node functionality
- docs: Add bilingual documentation, improve node descriptions
</details>
<details> <summary><b>v1.0.5</b></summary>- Add Path Select
</details>
<details> <summary><b>v1.0.4</b></summary>- Fix Image Cropped Paste error, add batch processing feature.
</details>
</details>📋 Node List
🖼️ Image Processing Nodes
| Node Name | Description |
|-----------|--------------|
| Image Solid | Generate solid color images with enhanced color parameter supporting multiple input formats and dimension presets |
| Image Alpha Join | Combine optional image and mask into a 4-channel image; supports empty output, transparent canvas, and full-alpha fallback |
| Image Alpha Split | Extract alpha as mask while flattening RGBA or alpha images onto a configurable solid background |
| Image Rotate with Mask | Advanced image rotation with mask integration, multiple fill modes, and mask center rotation options |
| Image Edit Stitch | Image stitching and merging with multiple stitching modes |
| Image Main Stitch | Main-image stitcher supporting dynamic image_2..image_N, direction, size matching, spacing, and padding |
| Image Add Label | Add text labels to images with automatic alpha preservation for RGBA inputs |
| Image Plot | Image plotting and visualization tools with automatic RGBA preservation for alpha inputs |
| Image Stroke by Mask | Apply stroke effects to mask regions with customizable width and color |
| Image BBox Overlay by Mask | Mask-based image bounding box overlay with independent and merge modes |
| Image Alpha Clean | Clean image alpha edge noise with simple strength presets and optional detection-only output |
| Image BW Matte | Generate a cutout-friendly mask with a fixed auto + soft pipeline, plus gamma, inward shrink, and blur controls |
📐 Image Resize Nodes
| Node Name | Description |
|-----------|-------------|
| Image Resize FluxKontext | Resize images/masks to FluxKontext preset sizes with auto/manual target selection |
| Image Resize QwenImage | Qwen-oriented image resizing with preset resolutions and auto matching |
| Image Resize Universal | Universal image resizing with ratio inference, fit strategies, and synchronized mask output |
| Image Resize Jimeng | Resize for Jimeng-oriented presets with automatic nearest-size matching |
| Image Resize Gemini30ProImage | Gemini 3.0 Pro preset size adapter with auto tiers and synchronized image/mask transforms |
| Image Resize Gemini31FlashImage | Gemini 3.1 Flash preset size adapter with extended 0.5k/1k/2k/4k tiers and extreme aspect ratios |
| Image Resize GPT Image 2.0 | GPT Image 2.0 size adapter with auto preset matching, dynamic aspect-preserving tiers, and 1k/2k/4k fixed presets |
| Image Resize Square | General square size adapter with 256/512/1024/2048/4096 plus auto and auto (0.5k \| 1k) |
🌈 Color Nodes
| Node Name | Description | |-----------|-------------| | Match Brightness Contrast | Adjusts the brightness and contrast of the source image to match the reference image |
🎨 Image Blending Nodes
| Node Name | Description | |-----------|-------------| | Image Mask Blend | Luminance-based image mask compositing with feathering, alpha output, and edge-extension background strategies | | Image Blend Mode by Alpha | Alpha-based image blending with multiple Photoshop-style blend modes | | Image Blend Mode by CSS | CSS standard blend modes based on Pilgram library |
✂️ Image Cropping Nodes
| Node Name | Description | |-----------|-------------| | Image Mask Crop | Batch mask-based cropping with RGB/RGBA channel preservation and optional mask alpha output | | Image Crop Square | Square cropping with mask guidance and scaling support | | Image Crop With BBox Mask | Smart bounding box cropping with precise aspect ratio control and scale strength adjustment | | Image Paste By BBox Mask | Paste cropped images back with multiple blend modes | | Image Pad By BBox Mask | Restore a local image into the full bbox mask canvas and fill uncovered areas with a configurable color or strategy | | Image Edge Crop/Pad | Smart edge cropping and padding with multiple padding modes and mask output | | Image Grid Split | Split images into grid layouts with flexible row/column configuration and selective output options |
🧩 Image Tiling Nodes
| Node Name | Description | |-----------|-------------| | Image Tile Split | Image tile splitting with auto/grid/preset modes, overlap support, and reference image sizing | | Image Tile Merge | Image tile merging with intelligent stitching |
🌊 High-Low Frequency Separation Nodes
| Node Name | Description | |-----------|-------------| | Image HL Freq Separate | Advanced frequency separation node supporting RGB, HSV, and IGBI separation methods with precise high-low frequency image separation and automatic recombination | | Image HL Freq Combine | Advanced frequency recombination node supporting RGB, HSV, and IGBI recombination modes with intensity adjustment and intelligent batch matching | | Image HL Freq Transform | Advanced detail transfer node supporting IGBI, RGB, and HSV transfer methods for precise texture detail migration from detail images to generated images |
🎭 Mask Operation Nodes
| Node Name | Description |
|-----------|-------------|
| Mask Separate | Separate mask into individual connected regions with sorting and area filtering |
| Mask To BBox Mask | Convert mask foregrounds into minimum bounding rectangle masks, with merged/separate output and outward divisible_by alignment |
| Mask Fill Hole | Fill holes in enclosed areas of masks with batch processing support |
| Mask Stroke | Create an optional hole-filled outer stroke mask with percentage width support and union output |
| Mask Crop by BBox Mask | Mask bounding box cropping based on mask regions |
| Mask Paste by BBox Mask | Simplified mask pasting with automatic base mask creation and bounding box detection |
| Mask Repeat | Batch repeat masks with optional inversion support |
| Mask Alpha Clean | Clean mask alpha noise and tiny islands with strength presets and optional detection-only output |
🔍 Detection Nodes
| Node Name | Description | |-----------|-------------| | Detect Remove BG | Multi-backend background removal (RMBG/BiRefNet/Inspyrenet) with image + alpha mask outputs | | Detect Remove BG Refine | RMBG mask post-refinement using original image + mask, outputs refined RGBA and alpha | | Detect Yolo | YOLO model object detection with subfolder model support, customizable confidence thresholds, and optional label display control | | Detect Guide Line | Guide line detection combining Canny, HoughLinesP, and DBSCAN vanishing-point clustering |
🔧 Utility Nodes
| Node Name | Description | |-----------|-------------| | Workflow Name | Automatically retrieves current workflow filename with path control, custom prefixes/suffixes, and date formatting | | Range Mapping | Value range mapping tool supporting linear transformation and precision control for slider values | | Memory Cleanup | Requests ComfyUI to release execution cache and optionally unload models after the current task completes |
🔄 Conversion Nodes
| Node Name | Description |
|-----------|-------------|
| URL to Video | Convert video URLs to ComfyUI VIDEO objects with improved error handling, timeout control, and support for both synchronous and asynchronous download methods |
| Video to Image | Extract image frames, audio, FPS, and frame count from ComfyUI VIDEO objects |
| Image to URL | Convert image tensors into URL strings with auto, kefan, and data modes |
| Video to URL | Upload ComfyUI VIDEO objects to a public URL with content-based caching |
| Image to Mask | Convert an optional image into a luminance mask, falling back to a 64x64 black mask when empty |
| Image Batch to List | Convert batch images to image lists for individual processing |
| Image List to Batch | Convert image lists to batch images with automatic size normalization |
| Mask to Image | Convert a mask into RGB/RGBA image output with hole filling, configurable black/white color mapping, and optional transparent background |
| Mask Batch to List | Convert batch masks to mask lists for individual processing |
| Mask List to Batch | Convert mask lists to batch masks with automatic size normalization |
| Mask to SAM3 Box | Convert masks to SAM3 box prompts (normalized cx, cy, bw, bh), supporting positive/negative and merge/separate modes |
| String Coordinate to BBoxes | Convert string format coordinates to BBOXES format with enhanced format support and improved SAM2 compatibility |
| String Coordinate to BBox Mask | Convert string format coordinates to BBoxMask format with image dimension support and flexible output modes |
| Text List to String | Merge a text list by applying per-item prefix/suffix and joining with a separator; supports escape sequences and composite separators |
| Text to Any | Output text as a wildcard payload for flexible connections (e.g., COMBO inputs) |
🧠 Logic Nodes
| Node Name | Description |
|-----------|-------------|
| Any Empty Bool | Universal empty value checker (boolean output version) that checks if any type of input is empty and returns a boolean value |
| Any Empty Int | Universal empty value checker (integer output version) that checks if any type of input is empty and returns custom integer values |
| Any Switch Bool | Universal boolean switch node supporting any type input with lazy evaluation, selecting output based on boolean condition |
| Any Switch Select | Multi-way selector node supporting multiple input options, lazily routing the chosen input_k to output and returning the effective select value |
| Float Number Compare | Float comparison node that evaluates two FLOAT values with a selected operator and outputs a boolean |
| Int Number Compare | Integer comparison node that evaluates two INT values with a selected operator and outputs a boolean |
| Multi Switch Select | Multi-output selector for input_1..input_N; uses 1-based select to route the chosen input to its matching output_k |
| Text Compare | Compares two strings with equality, containment, prefix/suffix, or regex operators and outputs a boolean |
| Text Match Rownum | Match a single text against multi-line text and return first matched row number (1-based), or 0 when not found |
| Text Match Value | Match single-line text against multi-line key-value pairs and return corresponding value with simple numeric/boolean auto-typing |
🔢 Integer Nodes
| Node Name | Description |
|-----------|-------------|
| Int Image Count | Count valid images from dynamic image_X inputs, ignoring empty inputs, empty tensors, and all-zero images |
| Int Image Side Length | Output selected side length (longest/shortest/width/height) from image dimensions |
| Int Image Size | Output width and height integers from image dimensions |
| Int Mask Side Length | Output selected side length (longest/shortest/width/height) from mask dimensions |
| Int Video Count | Count connected videos from dynamic video_X inputs |
| Int Split | Split a total value into two parts, supporting percentage and integer split point |
| Int Wan | Generate 4n+1 arithmetic sequences with step and range validation |
📦 Batch Processing Nodes
| Node Name | Description |
|-----------|-------------|
| Image Batch Index | Extract images from a batch using multiline index text with flexible list/range/stride syntax and reverse-order support |
| Image Batch Split | Intelligent image batch splitter with forward/backward splitting modes and enhanced boundary condition handling |
| Image Batch Group | Intelligent image batch grouper with configurable batch sizes, overlap handling, and flexible padding strategies |
| Image Batch Range | Sample an image batch by start_index, step, and final num_frame; num_frame=0 takes all remaining images |
| Image Batch Uniform | Uniformly sample an image batch by final num_frame; num_frame=0 returns all images |
| Image Batch Interleave | Reorder an image batch by splitting it into contiguous segments and reading them back in column-first interleaved order |
| Image List Interleave | Reorder an image list by contiguous segment interleaving while preserving each image's original size |
| Image PingPong | Bidirectional frame repeat over batch, supports pre-reverse, link-frame removal, and frame truncation |
| Image List Append | Image list appender for intelligently merging images into lists |
| Mask Batch Math Ops | Batch mask mathematical operations |
| Mask Batch Range | Sample a mask batch by start_index, step, and final num_frame; num_frame=0 takes all remaining masks |
| Mask Batch Split | Intelligent mask batch splitter with forward/backward splitting modes and enhanced boundary condition handling |
| Video Cut Group | Video scene cut detector that identifies scene transitions by analyzing frame similarity, supporting both fast and precise modes |
📝 Text Processing Nodes
| Node Name | Description |
|-----------|-------------|
| Text Prefix Suffix | Text prefix suffix formatter with wildcard input support for flexible data formatting with custom prefix and suffix |
| Text Custom Extract | Text custom extractor for extracting specified key values from JSON |
| String Ratio Gpt20Image | Infer the nearest GPT 2.0 image supported aspect ratio from input images, or pass through the selected ratio when no image is connected |
| String Ratio Gemini31FlashImage | Infer the nearest Gemini 3.1 Flash supported aspect ratio from input images, or pass through the selected ratio when no image is connected |
| String Resolution | Infer the nearest resolution tier (0.5k / 1k / 2k / 4k) from input images, or pass through the selected label when no image is connected |
| String Filter | Text cleaner supporting {input} / {n} substitution from the input value, comment filtering (# and triple quotes), and optional empty-line removal |
| String Join Multi | Join up to 5 text blocks with {input} substitution, comment/empty-line filtering, and composite separators|
| List Custom Int | Build integer lists from flexible multiline value/range/stride text with reverse-order and mixed punctuation support |
| List Custom Float | Build float lists from flexible multiline value/range/stride text with reverse-order and mixed punctuation support |
| List Custom String | Custom string list generator with dash separator and multiple delimiter support |
| List Custom Seed | Custom seed list generator for creating unique random seed lists with control after generate functionality |
🔗 Multi Nodes
| Node Name | Description |
|-----------|-------------|
| Multi String Join | Concatenate dynamic string_X inputs with {input} variable support and comment/triple-quote filtering; customizable separator |
| Multi Image Batch | Build image batches from dynamic image_X with crop/pad/stretch size unification and automatic RGBA preservation when any input has alpha |
| Multi Image List | Build image_list from dynamic image_X batch or list inputs, splitting them into single-image list items |
| Multi Image Overlay | Overlay multiple image layers sequentially with alpha compositing, fit modes, and automatic RGBA preservation when any input has alpha |
| Multi Image Stitch | Dynamic multi-image stitcher with direction, size matching, spacing, padding color control, and automatic RGBA preservation when any input has alpha |
| Multi Mask Batch | Build mask batch from dynamic mask_X with crop/pad/stretch size unification and configurable gray padding |
| Multi Mask Math Ops | Dynamic multi-mask operations (union/intersection/difference/XOR) with batch broadcasting and size alignment |
📁 IO Nodes
| Node Name | Description |
|-----------|-------------|
| Get File Count | Count image/video/psd/txt files in a folder with optional recursive scanning, list-form filename / file_path outputs, and configurable filename extension retention |
| Load Image | Load images from a file or folder with batch mode, size unification, derived masks, and list-form filename output |
| Load PS | Load a PSD/PSB file as one indexed layer, all layer batches, or the merged document image, with drag-and-drop upload, optional node preview, hidden-layer, group-mode controls, and list-form layer_name output |
| Load Txt | Load .txt content from a file or folder with encode selection and indexed folder picking |
| Load Video | Select a video from a file or folder and apply trimming/FPS settings during decoding |
| Load Video to Image | Decode a video into an image batch, audio, fps, and frame count |
| Save Image | Save image batches to output/temp and return absolute saved file paths |
| Save Txt | Save any input as .txt with encode control, auto-increment naming, and preview-only mode |
| Save Video by Image | Encode an image batch into a video with optional audio muxing and alpha support |
| Save Video | Save a VIDEO object to disk with container extension preservation and alpha preview |
🎛️ Conditioning Nodes
| Node Name | Description | |-----------|-------------| | Text Encode QwenImageEdit | Qwen image-edit conditioning encoder combining vision inputs and text, supports size preservation modes and reference latents |
🔊 Audio Nodes
| Node Name | Description | |-----------|-------------| | Audio Duration | Get audio length (seconds) |
🙆 Acknowledgments
comfyUI_FrequencySeparation_RGB-HSV
🌟 Star
My gratitude extends to the generous souls who bestow a star.
<img src="imgs/Stargazers.png" alt="Stargazers" style="zoom:80%;" />