2025-05-14 17:29:58 +08:00
2026-09-29 15:26:58 +08:00

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

v4.0.0

  • Major I/O upgrade: unify text reading/writing with metadata-aware Load Text / Save Text, add Save Audio, make Save Video container-safe, and switch Load PS to on-demand cached layer previews.
  • Logic and shared foundation: Multi Switch Select shares Image Batch Index's range grammar and supports multi-selection; duplicated image/video/text/file helpers are centralized in utils/_*.py, covered by the expanded consistency checker and regression suite.
  • Compatibility: all node IDs stay 1hew_*; Save Text uses the optional STRING text port (formerly any) and Load Text drops encode, with the front end migrating old widget values automatically; Save Audio requires PyAV.
  • Docs: bilingual node docs and README are synchronized; release notes before v4.0.0 are archived below.
3.x releases

v3.31.0

  • fix(io): Save Video now names WebM/VP8 and other sources after their own container (.webm / .mp4 / .mkv, Matroska when the codecs do not fit) instead of forcing MP4, which failed with 'mp4' format does not support 'vp8' codec; metadata remux and silent-audio remux also work on current PyAV builds
  • feat(io): Add Save Audio — save AUDIO to FLAC / WAV / MP3 / Opus with output/temp routing, auto-increment or fixed filenames, optional metadata, batch splitting, and empty-input pass-through (nothing is written when no audio is connected); the node embeds an audio player that previews the saved file, matching the native Save Audio (Advanced) preview
  • feat(io): Save Text now supports txt / csv / md / json, always writes UTF-8, can append workflow/prompt metadata, and clears its in-node preview when the input is empty; the input port is now the optional STRING text (formerly any)
  • feat(io): Load Text adds file upload, live in-node preview, automatic encoding detection, and strips the metadata block written by Save Text; the encode input is removed and the front end migrates old workflows
  • feat(io): Load PS previews are now loaded on demand — new /1hew/view_ps_info and /1hew/view_ps_layer endpoints list layers and render individual PNG previews with an LRU cache, merged previews reuse the embedded composite, and all_layers uses the native batch preview on classic or a single-layer viewer on Nodes 2.0; the node frame follows the image aspect ratio
  • feat(logic): Multi Switch Select accepts the same 1-based range/list syntax as Image Batch Index (1,3, 1-3, [1,3], :step, negatives) and routes multiple inputs; both nodes share the new utils/_index_range.py parser
  • refactor(utils): Move duplicated image/video/text/file helpers into utils/_*.py, and enforce one-node-per-file plus no cross-category node imports in scripts/check_node_consistency.py

v3.30.1

  • refactor(logic): Move Image Minimum Area's divisible_by input after fit / pad_color so the widget order matches Image Resize Universal; existing workflows should recheck that node's parameters
  • fix(detect): Align Detect Remove SolidBG UnMult's gamut-safe unpremultiply with the UnMult (Auto Background) 2026-10-15 fix — negative channels are clipped and positive overflow is jointly scaled, so one bad channel no longer reverts the whole pixel to the observed RGB
  • fix(color): Image Color Restore's hole filling now bails out when every border pixel is foreground (e.g. a 1–2px transparent fringe) instead of turning the whole image into foreground

v3.30.0

  • feat(multi): Add Multi Video Stitch — stitch dynamic video_X inputs end-to-end with crop / pad / stretch size unification, an optional get_video_size reference video, and configurable pad_color / fps (video_1 reuses the first segment; a number or auto also works); the dynamic-port table now pins get_video_size below every video_X port
  • feat(text): Add String Resolution Seedance 2.5 Multimodal Video — infer the nearest Seedance 2.5 video resolution tier (480p / 720p / 1080p / 2k / 4k) from the input video by pixel area, or pass through the selected label when no video is connected
  • feat(detect): Add Detect Remove SolidBG UnMult — estimate a flat background from the image border, unmultiply to alpha, then optionally clean low alpha with threshold and composite onto background_color (or sm smart background); outputs a foreground image plus alpha mask
  • refactor(image_resize): Make Image Resize Area's divisible_by / fit behave like Image Resize Universal — align both output sides to the multiple in every branch (no more failure when the range contains no multiple) and rename the int output to resolution
  • fix(io): Save Video by Image now raises a clear error when audio preparation or encoding fails instead of silently dropping the audio track, and removes placeholder or partial output files when a save fails

v3.29.2

  • fix(image): Refine Image Alpha Split sm smart-background selection to fully replicate the stroke-aware refiner scoring and selection strategy (using the required #808080 gray candidate), including OKLab/luminance contrast, alpha boundaries, grouped sampling, low-tail scoring, and the gray margin rule; grayscale+alpha inputs are supported as well

v3.29.1

  • feat(image): Add sm smart-background mode to Image Alpha Split background_color; for each alpha image it selects black, white, or #808080 to improve subject and translucent-edge visibility

v3.29.0

  • feat(image_resize): Add Image Resize Area, an aspect-preserving area normalizer: clamp and align sqrt(width × height) to configurable bounds, synchronize optional masks, provide Image Resize Universal-compatible fit / pad_color handling, and lazily use an optional upscale_model only for undersized inputs
  • fix(image): Make Image Alpha Join return an empty output whenever the image input is empty (unconnected or a zero-length batch) instead of a transparent canvas, and treat a zero-length mask batch as no mask
  • fix(image): Make Image Alpha Split return empty image / mask outputs when the image input is empty (unconnected or a zero-length batch)
  • docs: Add bilingual Image Resize Area documentation and synchronize the README node list

v3.28.2

  • chore(tooling): Extend scripts/check_node_consistency.py to fail on any quoted 1hew_* literal in web/**/*.js that is not a current node_id, so a renamed or removed node cannot leave a stale front-end reference

v3.28.1

  • chore(tooling): Extend scripts/check_node_consistency.py to validate the web/js/dynamic_port.js port table against the node schemas — stale node_ids, duplicate keys, base / addType / select / outputBase / outputType mismatches, and invalid initial / max now fail

v3.28.0

  • feat(text): Add model-specific String Resolution selectors — String Resolution GPT Image 2.0 (1k / 2k / 4k), String Resolution Gemini 3.1 Flash Image (0.5k / 1k / 2k / 4k), String Resolution Jimeng (1k / 2k / 4k), String Resolution Doubao Seedream 5.0 Pro (1k / 1.5k / 2k) and String Resolution Qwen Image 3.0 Pro (1k / 2k) — replacing the generic String Resolution node; switch existing workflows to the matching model node
  • feat(text): Add String Ratio Doubao Seedream 5.0 Pro (8 ratios) and String Ratio Qwen Image 3.0 Pro (15 ratios) to infer the nearest supported aspect ratio from input images
  • refactor(image_resize): Reorder Image Resize Doubao Seedream 5.0 Pro presets widest → square → tallest to match the API node's aspect_ratio option order
  • docs: Add bilingual docs for the 7 new text nodes, remove the generic String Resolution docs, and document the per-node/per-model Jimeng resolution tiers for String Resolution Jimeng / Image Resize Jimeng in the node docs
  • refactor(naming): Unify model node display names to the spaced form (Image Resize Gemini 3.1 Flash Image, String Ratio GPT Image 2.0, Text Encode Qwen Image Edit, …); node_ids are unchanged, so existing workflows keep working
  • feat(image): Give Image Align Change Mask an optional mask input — alignment, color compensation, and noise fitting then use only the redrawn region's background, and only change islands overlapping that region are kept, whole (the mask is used exactly as drawn)
  • chore(tooling): Add scripts/check_node_consistency.py and document the naming rule in nodes/__init__.py; nodes/**/*.py is the single source of truth, and the checker fails on duplicate node_id/display_name, missing or orphan web/docs entries, README node-list drift, and a pyproject.toml / changelog version mismatch

v3.27.0

  • feat(logic): Add Image Area Compare to compare the pixel area (width × height) of two IMAGE inputs with a selected operator and output a boolean
  • fix(image_resize): Remove the duplicate Image Resize Qwen Image 3.0 node, which was identical to Image Resize Qwen Image 3.0 Pro; switch existing workflows to the Pro node
  • refactor(image): Rework Image Alpha Edge so edge/feather modify the alpha channel only and never blur or recolour the subject's RGB; only newly visible pixels receive an alpha-aware colour extension instead of the old solid-region RGB bleed
  • docs: Add bilingual docs for Image Area Compare, update the Image Alpha Edge docs, and sync the node list

v3.26.0

  • feat(image): Add Image Alpha Edge to shrink/expand an alpha image's edge and feather it, with built-in RGB bleed for cleaning matte fringe (hole filling stays in the mask nodes)
  • feat(image_resize): Add Image Resize Doubao Seedream 5.0 Pro with exact official 1k/1.5k/2k presets, plus Image Resize Qwen Image 3.0 and Image Resize Qwen Image 3.0 Pro with 1k/2k presets and dynamic sizing
  • refactor(image_resize): Rebuild Image Resize GPT Image 2.0 1k/2k presets as exact multiples of 16 and make the 4k tier exactly proportional within the official limits and the 3840 longest-edge cap
  • refactor(color): Rename Image Color Restore outputs to image / unchanged_mask and default unchanged_threshold to 0 (auto)
  • docs: Add bilingual docs for the new image and resize nodes, and sync the node list

v3.25.0

  • feat(color): Add Image Color Restore to restore an aligned AI edit's colors to the reference while smoothing removal/occlusion seams
  • feat(mask): Add Mask Levels for grayscale levels (black/white point) adjustment with inversion and binary fallback
  • refactor(image): Adjust Image Align Change Mask expand/feather defaults to 16/8
  • docs: Add bilingual docs for the two new nodes and sync the node list

v3.24.0

  • feat(image_resize): Unify auto (tier by input area → closest aspect within tier) across GPT Image 2.0 / Gemini30Pro / Gemini31Flash / Jimeng resize nodes
  • feat(image_resize): Jimeng auto excludes [2.0_pro] presets
  • docs: Sync bilingual docs and node list for the four resize nodes

v3.23.1

  • fix(io): Make Load Video and Load Video to Image resolve 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 Video receives a source_path, avoiding unnecessary re-encoding that can drop transparency

v3.23.0

  • feat(int): Add Int Video Count to count connected videos from dynamic video_X inputs
  • docs: Add bilingual documentation for Int Video Count and synchronize the node list
  • feat(conversion): Add Video to URL to 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 Image for extracting image, audio, FPS, and frame-count outputs from ComfyUI VIDEO objects

v3.21.2

  • feat(image_resize): Update Image Resize GPT Image 2.0 with 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/Pad now supports RGBA (transparent) input — pad defaults to transparency, crop preserves alpha; supports transparent keyword and 4-component color strings (e.g. 255,0,0,128)

v3.21.0

  • feat(logic): Add Text Compare for string equality, containment, prefix/suffix, and regex boolean matching
  • feat(text): Expand String Ratio Gpt20Image and String Ratio Gemini31FlashImage supported ratio sets to match the latest selector presets
  • refactor(image_resize): Align Image Resize Gemini30ProImage and Image Resize Gemini31FlashImage preset families with the updated ratio ordering

v3.20.0

  • feat(image): Add a simplified Image BW Matte that fixes the pipeline to auto + soft and keeps only gamma, inward edge shrink, and blur controls
  • feat(mask): Add Mask Stroke for outer stroke mask with percentage width and union output

v3.19.1

  • feat(conversion): Add Image to Mask for optional image luminance-to-mask conversion with a 64x64 black fallback
  • refactor(conversion): Move Mask to Image from mask operations into the conversion group

v3.18.1

  • fix(image_resize): Correct Image Resize Gemini31FlashImage [1k] 4:1 preset to 2064x512

v3.18.0

  • feat(logic): Add Int Number Compare and Float Number Compare for boolean results from two numeric inputs and a selected comparison operator

v3.17.1

  • feat(image_blend): Add edge/e edge-average color and extend/ex edge-extension filling to Image Mask Blend.background_color

v3.17.0

  • feat(image_crop): Add Image Pad By BBox Mask for 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 psd scanning, list-form filename / file_path outputs, and filename_suffix control to Get File Count; align Load Image.filename and Load PS.layer_name to 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 PS for 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 step and num_frame=0 support to Image Batch Range / Mask Batch Range, and replacing Image Batch Extract with Image Batch Index and Image Batch Uniform
  • refactor(text): Enhance List Custom Int and List Custom Float with 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 Crop channel output and alpha handling

v3.13.0

  • feat(text): Add String Ratio Gpt20Image with 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 Gemini31FlashImage to String Ratio Gemini31FlashImage, rename String Image Resolution to String Resolution, and align related file/node/doc names

v3.11.0

  • feat(image): Add Image Batch Interleave for 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 Split for extracting alpha masks while flattening transparent images onto configurable solid backgrounds

v3.8.0

  • feat(conversion): Add Image to URL with auto, kefan, and data URL output modes

v3.7.2

  • build(repo): rewrite legacy fonts/*.otf history into Git LFS to reduce clone size; no node behavior change

v3.7.1

  • feat(image_resize): Add Image Resize Square with square presets for 256/512/1024/2048/4096, plus auto and auto (0.5k | 1k) matching

v3.6.0

  • feat(mask): Add Mask to Image with configurable black/white area colors, fill_hole, and optional RGBA output

v3.5.2

  • refactor(io): Adjust Save Text naming settings and filename generation logic

v3.5.1

  • refactor(io): Optimize video load/save compatibility and keep Save Image preview available when save_output is disabled

v3.5.0

  • feat(io): Add Load Text and Save Text nodes

v3.4.0

  • feat(nodes): Add Image Resize Gemini30ProImage, Image Resize Gemini31FlashImage, Detect Remove BG, Detect Remove BG Refine, and text_match_rownum; reorganize resize-related capabilities into the dedicated image_resize group, and sync related docs plus README node list updates.

v3.3.0

  • feat(conversion): Add Mask to SAM3 Box and Text to Any nodes

v3.2.6

  • refactor(condition): Optimize Text Encode QwenImageEdit node

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 Image node for turning IMAGE batches into video files
  • refactor(color): Enhance Match Brightness Contrast sequence consistency options

v3.0.8

  • refactor(image_crop): Optimize Image Crop With BBox Mask node
  • refactor(color): Optimize Match Brightness Contrast node

v3.0.7

  • feat(color): Add Match Brightness Contrast node

v3.0.6

  • feat(mask): Add Mask Repeat node, supporting batch mask repetition and inversion
  • feat(io): Add Get File Count, Load Image From Folder, and Load Video From Folder nodes to optimize file loading logic and stability

v3.0.5

  • feat(image_tile): Merged Image Tile Split and Image Tile Split Preset nodes into a unified Image Tile Split node

v3.0.2

  • feat(text): Add String Filter node
  • feat(text): Add String Join Multi node
  • feat(conversion): Add Text List to String node

v3.0.1

  • feat(image): Add Image PingPong node for bidirectional batch frame generation with pre-reverse, link-frame removal, and frame truncation
  • feat(audio): Add Audio Duration node to get audio length (seconds)

v3.0.0

  • build: bump version to 3.0.0
2.x releases

v2.0.5

  • feat(multi): Added Multi String Join, Multi Image Batch, Multi Mask Batch, Multi Image Stitch
  • feat(image): Added Image Three Stitch node
  • feat(condition): Added Text Encode QwenImageEdit Keep Size node

v2.0.3

  • feat(image_blend): Added output_mask_invert parameter to Image Mask Blend for 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.
1.x releases

v1.2.46

  • feat(detection): Added DetectGuideLine node

v1.2.45

  • feat(detection): Added DetectYolo node for YOLO model object detection

v1.2.44

  • feat(util): Added Workflow Name node

v1.2.43

  • feat(logic): Added Video Cut Group node

v1.2.42

  • feat(logic): Added Image Batch Extract node for extracting specific images from batches with multiple modes including custom indices, step intervals, and uniform distribution

v1.2.40

  • feat(text): Added IntWan node for generating 4n+1 arithmetic progression sequences with configurable step control and range validation
  • refactor(logic): Enhanced Image Batch Split and Mask Batch Split nodes with improved boundary condition handling and comprehensive error recovery
v1.2.39
  • feat(logic): Added Image Batch Group node for intelligent image batch splitting with overlap support and flexible padding strategies
v1.2.38
  • refactor(image): Enhanced ImageResizeUniversal node with comprehensive mask processing logic
v1.2.37
  • feat(image): Enhanced Image Solid node with advanced color parameter
  • feat(image): Added the ImageGridSplit node for splitting images into grid layouts with flexible output options
v1.2.36
  • feat(conversion): Enhanced URL to Video node
v1.2.35
  • feat(image): Added Image Resize Qwen Image node for Qwen vision model optimized image resizing with 7 preset resolutions and automatic aspect ratio selection
v1.2.32
  • feat(image): Added Image Solid Flux Kontext node for generating solid color images with Flux Kontext dimension presets
  • feat(image): Added Image Solid Qwen Image node for generating solid color images with QwenImage dimension presets
v1.2.31
  • fix: Fixed various bugs and improved stability
v1.2.28
  • feat(mask): Added Mask Paste by BBox Mask node for simplified mask pasting with automatic base mask creation and bounding box detection
  • feat(image_tile): Added Image Tile Split Preset node with predefined resolution presets and intelligent tile size selection
  • feat(image): Added Image Rotate with Mask node for advanced image rotation with mask support and multiple fill modes
  • feat(text): Enhanced Text Load Local node with user_prompt parameter for combining JSON content with additional user prompts
v1.2.26
  • feat(image_crop): Enhanced Image Crop with BBox Mask node with precise dimension control, added crop_to_side and crop_to_length parameters
v1.2.25
  • feat(image_crop): Added apply_paste_mask parameter to Image Paste by BBox Mask node for controlling smart scaling behavior
v1.2.24
  • feat(image_crop): Added opacity parameter to Image Paste by BBox Mask node for controlling paste image transparency
  • feat(image): Enhanced Image Stroke by Mask node with batch processing support for handling multiple images and masks
v1.2.23
  • fix(image): Enhanced Image Stroke by Mask node color parsing logic, supporting RGB string formats and improved default fallback to white color
  • fix(image): Enhanced Image Paste by BBox Mask node rotation parameter
v1.2.21
  • feat(text): Added Text Filter Comment node 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 List node for merging any type of list into a string with support for prefix, suffix, and custom separators
  • refactor(text): Refactored Text Format node to Text Prefix Suffix, optimizing wildcard input processing and formatting functionality
v1.2.18
  • feat(sample): Added Step Split node for high-low frequency sampling step separation with support for percentage and integer input modes
v1.2.17
  • feat(image_crop): Optimized Image Crop with BBox Mask node
v1.2.15
  • feat(text): Added Text Join Multi node for concatenating multiple text inputs with dynamic variable referencing
  • feat(image_crop): Added Image Edge Crop Pad node with smart edge cropping and padding capabilities, featuring mask output functionality
  • feat(image_blend): Enhanced Image Luma Matte node with feathering and alpha output features, supporting multiple color formats and edge processing
v1.2.13
  • feat(text): Added Text Load Local node for loading JSON format prompt files from prompt directory with bilingual Chinese and English output
v1.2.12
  • feat(text): Added Text Format node for flexible text formatting with wildcard input support
v1.2.9
  • feat(image_crop): Refactored Image Crop with BBox Mask node
v1.2.8
  • feat(image): Added Image Resize Flux Kontext node with support for automatic and manual size selection for images and masks
  • feat(image): Enhanced Image Edit Stitch node with improved stitching algorithms and parameter handling
v1.2.7
  • feat(text): Added List Custom Seed node for creating unique random seed lists with control after generate functionality
v1.2.6
  • feat(image_hlfreq): Added high-low frequency separation node group, including Image HLFreq Separate, Image HLFreq Combine, and Image HLFreq Transform nodes with support for RGB, HSV, and IGBI frequency separation methods
v1.2.5
  • feat(mask): Added the Mask Fill Hole node, which fills holes in enclosed areas of masks with support for batch processing.
v1.2.3
  • fix(image_blend): Fixed the issue of inconsistency between devices for the Image Blend Modes by Alpha node.
v1.2.2
  • feat(image): Added the Image BBox Overlay by Mask node, which overlays the image bounding box based on a mask.
v1.2.1
  • refactor(image/crop): Renamed node classes and updated related documentation
  • feat(image_crop): Enhanced the functionality and output options of the ImageCropByMaskAlpha node
v1.2.0
  • feat: Added conversion, and restructured image mixing and masking processing
v1.1.6
  • feat(ImageEditStitch): Add a “spacing” parameter to control the distance between stitched images
v1.1.5
  • feat: Added text processing and logic nodes, optimized existing node functions
  • refactor(util): Refactored utility nodes, renamed nodes RangeMapping and PathBuild
  • feat(logic): Added ImageListAppend node for image list merging
  • feat(text): Added TextCustomList and TextCustomExtract text processing nodes
  • style: Cleaned up node parameter labels to maintain simplicity and consistency
v1.1.2
  • feat(image_tile): Improved the Image Tile Merge algorithm, using weight masks and cosine gradients to achieve perfect seamless stitching
v1.1.1
  • feat (image_crop): Added intelligent batch processing for Image BBox Paste
v1.1.0
  • build: Add new tile nodes
  • feat: Update node functionality
  • docs: Add bilingual documentation, improve node descriptions
v1.0.5
  • Add Path Select
v1.0.4
  • Fix Image Cropped Paste error, add batch processing feature.

📋 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; an empty image yields an empty output, and a missing mask falls back to full alpha
Image Alpha Split Extract alpha as mask while flattening RGBA or alpha images onto a configurable solid background; an empty image yields empty outputs
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 Alpha Edge Shrink or expand an alpha image's edge and feather it, with built-in RGB bleed to remove matte fringe; hole filling is left to the mask nodes
Image BW Matte Generate a cutout-friendly mask with a fixed auto + soft pipeline, plus gamma, inward shrink, and blur controls
Image Align Change Mask Align an AI-edited image to its original and extract clean/raw change masks, a change score, and an overlay while rejecting small global color drift
Image Blur Whole-image Gaussian blur with fractional radius, per-frame batch processing, and pass-through when blur is 0

📐 Image Resize Nodes

Node Name Description
Image Resize Flux Kontext Resize images/masks to Flux Kontext preset sizes with auto/manual target selection
Image Resize Qwen Image 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 area-tiered auto matching and 1k/2k/4k fixed presets
Image Resize Gemini 3.0 Pro Image Gemini 3.0 Pro preset size adapter with area-tiered auto matching and synchronized image/mask transforms
Image Resize Gemini 3.1 Flash Image Gemini 3.1 Flash preset size adapter with area-tiered auto matching across 0.5k/1k/2k/4k tiers and extreme aspect ratios
Image Resize GPT Image 2.0 GPT Image 2.0 size adapter with area-tiered auto preset matching, dynamic aspect-preserving tiers, and 1k/2k/4k fixed presets
Image Resize Doubao Seedream 5.0 Pro Doubao Seedream 5.0 Pro size adapter with official 1k/1.5k/2k presets, tiered auto matching, dynamic sizing, and synchronized image/mask transforms
Image Resize Qwen Image 3.0 Pro Qwen Image 3.0 Pro size adapter with 1k/2k presets, tiered auto matching, dynamic sizing, and synchronized image/mask transforms
Image Resize Square General square size adapter with 256/512/1024/2048/4096 plus auto and auto (0.5k | 1k)
Image Resize Area Area-based automatic resize that keeps the source aspect ratio: N = sqrt(area) is clamped to min/max and aligned to a multiple, and the output is scaled to area N^2 with both sides rounded to that multiple; reuses Image Resize Universal's fit / pad_color / mask behaviour and supports an optional lazy upscale_model

🌈 Color Nodes

Node Name Description
Match Brightness Contrast Adjusts the brightness and contrast of the source image to match the reference image
Image Color Match Transfer the color of a reference image onto a source image with wavelet/adain (native) or mkl/hm/reinhard/mvgd plus hybrids (color-matcher), supporting batch cycling
Image Color Restore Restore an aligned AI edit's colors to its original reference with local occlusion-seam smoothing; outputs the corrected image and a trusted unchanged mask

🎨 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 implemented natively in PyTorch

✂️ 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
Mask Levels Apply a levels adjustment to a grayscale mask, remapping the range via black/white points with inversion and binary fallback

🔍 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 Remove SolidBG UnMult Solid-background UnMult keying: estimate the flat background from image borders, unmultiply to alpha, with optional low-alpha threshold cleanup and background composition
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; a 1-based select using the same range syntax as Image Batch Index (e.g. 1-3, [1,3]) lazily routes each chosen input to its matching output_k, leaving the rest None
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
Image Area Compare Compare the pixel area (width × height) of two IMAGE inputs with a selected operator and output a boolean
Image Minimum Area Upscale an image until its area reaches a minimum square reference area (N²), with crop/pad/stretch fit, divisible_by rounding, mask output, and a resize_bool flag
String Random Randomly pick one item from multiline custom text (split by dash lines, newlines, or punctuation) using a fixed seed

🔢 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 GPT Image 2.0 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 Gemini 3.1 Flash Image 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 Ratio Jimeng Infer the nearest Jimeng supported aspect ratio from input images, or pass through the selected ratio when no image is connected
String Ratio Doubao Seedream 5.0 Pro Infer the nearest Doubao Seedream 5.0 Pro supported aspect ratio from input images, or pass through the selected ratio when no image is connected
String Ratio Qwen Image 3.0 Pro Infer the nearest Qwen Image 3.0 Pro supported aspect ratio from input images, or pass through the selected ratio when no image is connected
String Resolution GPT Image 2.0 Infer the nearest GPT Image 2.0 resolution tier (1k / 2k / 4k) from input images, or pass through the selected label when no image is connected
String Resolution Gemini 3.1 Flash Image Infer the nearest Gemini 3.1 Flash Image resolution tier (0.5k / 1k / 2k / 4k) from input images, or pass through the selected label when no image is connected
String Resolution Jimeng Infer the nearest Jimeng resolution tier (1k / 2k / 4k) from input images, or pass through the selected label when no image is connected
String Resolution Doubao Seedream 5.0 Pro Infer the nearest Doubao Seedream 5.0 Pro resolution tier (1k / 1.5k / 2k) from input images, or pass through the selected label when no image is connected
String Resolution Qwen Image 3.0 Pro Infer the nearest Qwen Image 3.0 Pro resolution tier (1k / 2k) from input images, or pass through the selected label when no image is connected
String Resolution Seedance 2.5 Multimodal Video Infer the nearest Seedance 2.5 video resolution tier (480p / 720p / 1080p / 2k / 4k) from the input video, or pass through the selected label when no video 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
Multi Video Stitch Stitch dynamic video_X inputs end-to-end into one video with crop/pad/stretch size unification, optional get_video_size reference size, and configurable pad color / fps

📁 IO Nodes

Node Name Description
Get File Count Count image/video/psd/text 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, lazy cached layer previews, hidden-layer, group-mode controls, and list-form layer_name output
Load Text Load .txt content from a file or folder with upload, live preview, auto encoding detection, 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 Audio Save an AUDIO object as FLAC/WAV/MP3/Opus with output/temp routing, optional metadata, batch splitting, empty-input pass-through, and an in-node audio player preview
Save Image Save image batches to output/temp and return absolute saved file paths
Save Text Save text input as txt / csv / md / json (UTF-8) with auto-increment naming, metadata, 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 Qwen Image Edit 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

ComfyUI-KJNodes

ComfUI-Easy-Use

ComfyUI_LayerStyle

Comfyui_TTP_Toolset

comfyUI_FrequencySeparation_RGB-HSV

comfyui_extractstoryboards

ComfyUI-VideoHelperSuite

ComfyUI-RH-Nodes

🌟 Star

My gratitude extends to the generous souls who bestow a star.

Stargazers

S
Description
No description provided
Readme
4.9 MiB
Languages
Python 83.7%
JavaScript 16.3%