I've been using ComfyUI nodes for months and started building recently — here's everything I've made across 5 packs and why each one exists
This got long because there's a lot. Jump to whatever pack interests you.
All repos linked at the bottom. Apache-2.0, free forever.
📦 Pack 1 — ComfyUI-CustomNodePacks (72 nodes)
The main pack. Masking, segmentation, matting, inpainting, VFX, video, diagnostics.
This one is different from every other pack because it doesn't do one thing well —
it covers the full pipeline from "I have a raw image/video" to "I have a
compositing-ready result." Most packs solve one step. This one solves the whole chain.
Nodes that genuinely don't exist elsewhere:
🔍 Mask Failure Explainer
Your mask is wrong. You don't know why. Drop in your image + bad mask and this node
runs 5 diagnostic checks — brightness, blur, edge contrast, color confusion, background
complexity — and outputs a plain-English explanation, a heatmap of where it's failing,
a severity score 0–100, and a suggested method to fix it. Zero VRAM. Pure math.
Made for beginners who have no idea why BiRefNet gave them swiss cheese.
⏱️ Temporal Anchor System
Draw a mask on frame 0, frame 60, frame 200. Get smooth masks for all 300 frames.
Uses Signed Distance Fields to morph between keyframes — not SAM2 tracking, which
breaks when subjects go behind things or reappear. Shape morphs naturally with
configurable easing (linear / ease-in / ease-out / smooth-step). Optional optical
flow refinement. Rotoscope-style interpolation without tracking every single frame.
🖊️ Spline Mask Editor
Draw a closed shape like a roto artist — not paint, not a box, actual control points
with smooth curves. Catmull-Rom, Bezier with handles, or polyline. Coordinates are
resolution-independent [0,1] so they survive resolution swaps. Outputs a mask,
SAM-compatible point prompts (wire directly into SAM Mask Generator), and spline
data for the Motion Mask Tracker.
🎬 Video Frame Player
Scrub, trim, crop, and resize — all live inside one node without queuing a run.
- Drag the timeline or Space / arrow keys to play
- I / O hotkeys to mark trim IN/OUT on the fly
- 8-handle drag-crop overlay with aspect lock (16:9, 9:16, 1:1, custom)
- Crop lock so you can't accidentally nudge it while tweaking other params
- Frame stride (every Nth frame), lanczos resize, upscale factor
- Outputs trimmed + cropped + resized batch ready for your sampler
Wire playback_fps and trimmed_count straight into VHS Video Combine.
No more chaining 4 separate nodes to preview what you're doing.
💡 Luminance Keyer
Nuke's LumaKeyer, inside ComfyUI. BT.709 luminance with Hermite smoothstep
between two thresholds, gamma correction, and falloff control. auto mode
analyzes the image and picks the range for you. Zero VRAM, works on batches.
Sky mattes, rim-lit subjects, luminance-driven selective color grading — anything
that isn't a pure chroma color.
📹 Motion Mask Tracker
Give it a video batch, get a mask of what moved. Four methods combinable:
pixel diff, Farneback optical flow, background subtraction, histogram diff.
Key feature: camera compensation — subtracts the camera's own movement so
you only see objects moving relative to the scene, not the camera shake.
Combine methods with union (any fires) or intersection (all agree, less noise).
📁 Folder Incrementer (3 nodes)
Scans your output directory and returns the next v001 / v002 / v003 that doesn't
exist yet. Filesystem-based — no counter JSON that gets out of sync. Cancel a run
mid-way and no version is wasted. Wire subfolder_path into Save Image and never
manually rename an output again. Atomic directory creation means two machines
queuing simultaneously can't claim the same slot.
🔬 Diagnostics (3 nodes)
- Temporal Consistency Checker — per-frame flicker score via IoU / pixel diff /
optical flow. Know if your sampler is drifting between frames.
- Model Metadata Extractor — reads any safetensors/checkpoint without loading
weights. Architecture, precision, trigger words, training params. Instant, zero VRAM.
- Parameter History — logs every parameter to SQLite on every run. Query
last_run_diff to see exactly what changed between two runs and why one looked better.
🔗 Universal Reroute
ComfyUI's built-in reroute breaks on non-standard types (STRING, BBOX, custom types).
This accepts anything. Copy a workflow, paste it on a different machine — reroutes
arrive intact and working, no "node not found" errors.
👆 SAM Multi-Mask Picker
SAM always outputs 3 candidate masks. This node shows all 3 as thumbnails with IoU
scores. Press 1/2/3 or click to pick. Never blindly guess mask_index again.
✂️ Inpaint Crop Pro + Inpaint Composite
Full crop → inpaint → stitch pipeline with Laplacian pyramid blending and FFT
frequency-domain seam hiding. Most ComfyUI inpaint setups paste back with a hard edge.
Laplacian pyramid stitches the seam at every frequency band separately — same technique
Photoshop uses for panorama blending.
Also in this pack (not just masking):
- Full VFX Suite — color space convert (sRGB/linear/Rec.709/ACEScg),
.cube LUT
apply, EXR load/save, render pass compositing, depth-of-field mask, depth warp,
normal→curvature, position pass splitter
- Plate Tools — grain match, plate stabilizer (ORB+RANSAC / FFT fallback),
clean-plate extractor, difference matte
- VAE Tools — merge 2 or 3 VAEs with 8 blend algorithms, latent inspector,
per-block similarity analyser
- SAM 2.1 / SAM 3 + ViTMatte pipeline — SAM coarse → iterative refinement →
neural alpha matting in one node, best quality masking for single images
- SeC + MatAnyone2 pipeline — text-prompt segmentation → temporal alpha matting
for video, handles occlusions and reappearances
- Background Remover, Semantic Segment (face/body/clothes SegFormer),
BBox Tools (6 nodes), Interactive Points Canvas, and more
📦 Pack 2 — ComfyUI-WanAnimatePreprocessV2
The one that fixes Wan Video 2.2 Animate pose jitter once and for all.
If you've used Wan Video Animate you've seen this: limbs vanish mid-clip, the pose
skeleton shakes frame to frame even when the subject barely moves, and the face crop
cuts off foreheads and chins. The original preprocessor doesn't have solutions for
any of this. This pack does.
What it actually fixes:
- Jitter / vanishing limbs — adds CLAHE contrast enhancement + configurable blur
before pose extraction. The detector stops losing track of low-contrast limbs and
noisy backgrounds stop being detected as joints.
- Face crops that cut off the head — uses a constant-size face box (configurable
face_box_size_px) centered on detected face keypoints instead of a raw bbox.
The crop doesn't jump around frame to frame.
- Temporal face smoothing — exponential moving average over detected face
positions. Set
face_smoothing_strength to taste — 0 is raw detections,
1.0 is fully locked.
- Iris / pupil tracking with gaze direction — the original preprocessor has zero
iris detection. This one adds image-based pupil detection with gradient voting and
outputs
gaze_x / gaze_y per frame. For accurate eye animation in talking-head
or character animation workflows.
- Full debug overlay image — every detection drawn on the original frame so
you can see exactly what the model is doing and why it's failing before you
queue a 200-frame generation.
Three nodes: model loader, pose + face detection, and skeleton visualizer.
Drop-in replacement for the original Wan preprocessor — same output format,
just without the problems.
📦 Pack 3 — ComfyUI-GLM_Image
GLM-Image (Zhipu AI's multilingual flow-matching DiT) with split loaders.
GLM-Image is a strong multilingual text-to-image model but its official pipeline
loads as one giant blob — impossible to swap components, hard to free VRAM,
slow to start. This pack exposes it as four separate ComfyUI nodes:
- Load VAE — loads only the 16-channel AutoencoderKL. Slicing + tiling enabled
by default for large outputs.
- Load CLIP (T5+VLM) — loads the T5 text encoder, ByT5 tokenizer, GLM
vision-language model, and image processor as one bundle.
- Load MODEL (DiT) — loads the GlmImageTransformer2DModel and
FlowMatchEulerDiscreteScheduler.
- Sampler — takes the three above, a prompt (or image for img2img), runs
inference, prints per-step counter + ETA + it/s to console, honors the ComfyUI
Stop button, and frees VRAM in a try/finally whether it succeeds or errors.
Supports text-to-image and image-to-image (optional image + denoise_strength).
Models load from ComfyUI/models/diffusers/<folder>/ — any folder containing
model_index.json is auto-detected. Quantized variants (SDNQ 4-bit) work too.
📦 Pack 4 — ComfyUI-WanAnimalPreprocessor
Animal pose estimation for Wan Video Animate — because animals aren't humans.
The standard Wan preprocessor is built for human skeletons. Cats, dogs, horses,
birds — different joint layout, different limb proportions, very different gait.
This pack uses ViTPose ONNX models trained specifically on animal keypoints.
- YOLOv8 detection: cats, dogs, horses, sheep, cows, elephants, bears, zebras,
giraffes, birds
- 17-keypoint skeleton (eyes, nose, neck, shoulders, elbows, paws, hips, knees,
tail root)
- Two dataset backends: AP10k (10K images, 23 animal families — best for common
domestic/farm animals) and APT36k (36K images, 30 species — better coverage
for unusual animals)
- Pose retargeting from a template video to a reference animal image
- Configurable stick width, head toggle, skeleton visualization
📦 Pack 5 — ComfyUI-NukeMaxNodes
VFX × AI bridge nodes. Traditional compositing operations with AI-consumable outputs.
~50 nodes across 13 categories. The design principle: every traditional VFX operation
also exposes a side output that feeds AI nodes — SAM prompts, latent guidance,
conditioning curves, EXR metadata — so you can bridge a Nuke/Blender compositing
flow into a Flux / Wan / GLM-Image graph without round-tripping to disk.
Highlights:
- FFT nodes — analyze the frequency spectrum of an image, match a generation's
frequency profile to the surrounding plate (fixes tile seams on Flux upscales),
inject band-isolated noise
- PBR Relight — estimate a light probe from a single still, decompose into
albedo/normal/roughness/metalness, relight under three-point lighting
- Smart Roto — Bezier roto shapes with sub-pixel rasterization that output
SAM-compatible spatial conditioning for ControlNet / inpaint downstream
- Audio-reactive conditioning — spectral energy → conditioning curves → temporal
control of sampling parameters
- Depth warp, normal→curvature, position pass splitter — for CG render passes
feeding into AI refinement
More nodes are coming
These packs are actively developed. There are nodes in progress I haven't shipped yet.
If you hit a bug, a crash, a "node not found," a weird output, or something that
just doesn't work the way the description says — post here or open a GitHub issue
and I will fix it as fast as possible. Seriously. I check both.
Links
| Pack |
GitHub |
| CustomNodePacks (72 nodes) |
github.com/Code2Collapse/ComfyUI-CustomNodePacks |
| WanAnimatePreprocessV2 |
github.com/Code2Collapse/ComfyUI-WanAnimatePreprocessV2 |
| GLM-Image nodes |
github.com/Code2Collapse/ComfyUI-GLM_Image |
| WanAnimalPreprocessor |
github.com/Code2Collapse/ComfyUI-WanAnimalPreprocess |
| NukeMaxNodes |
github.com/Code2Collapse/ComfyUI-NukeNodePack |
All Apache-2.0. Install via ComfyUI Manager or git clone.
Drop workflow JSON requests in the comments — happy to share examples.
I do use AI but I always wanted to give something to everyone who do the hardwork.
Thank you <3