FugitiveExpert01 166c482ec1 Bump version to 0.0.6 and add API routes
Update version to 0.0.6 and add new API routes for LoRA info.
2026-03-12 11:38:55 +01:00
2026-03-03 10:55:35 +01:00
2026-03-11 18:21:35 +01:00
2026-03-07 18:08:43 +01:00
2026-03-04 09:49:20 +01:00

ComfyUI VFX Nodes

by FugitiveExpert01

A growing collection of custom ComfyUI nodes built for VFX production pipelines — designed around the real demands of working with high-resolution imagery, video sequences, and AI-assisted visual effects workflows.


📌 Overview

This repo fills the gaps between off-the-shelf ComfyUI nodes and the specific needs of VFX work: large format images, temporal consistency across video frames, precise spatial control, and clean integration with diffusion-based upscaling and enhancement models.

Nodes are built with video batch support as a first-class concern — not an afterthought.


🧩 Nodes

🔲 TileSplit

Splits an image or video batch into an overlapping grid of tiles, ready to be passed individually to a model.

Parameter Type Description
image IMAGE Input image or video batch
tiles_x INT Number of columns
tiles_y INT Number of rows
overlap_percent FLOAT Overlap between adjacent tiles

Outputs: tiles (LIST) · debug_image · tile_calc

Features:

  • Overlap calculated automatically and stored for seamless reconstruction
  • Outputs tiles as (F, H, W, C) tensors — compatible with video model K-samplers
  • Debug image showing tile boundaries and overlap regions
  • Tile dimensions snapped to multiples of 8 for model compatibility

🔳 TileMerge

Reconstructs a full image or video sequence from processed tiles using Laplacian Pyramid blending for seamless, artifact-free joins.

Parameter Type Description
tiles IMAGE (LIST) Processed tile sequences
tile_calc TILE_CALC Layout data from TileSplit

Outputs: image

Features:

  • Gaussian feathering masks at overlap regions
  • Laplacian frequency blending for natural-looking seams
  • Robust handling of tensor shapes returned by video models
  • Weighted accumulation handles overlapping regions correctly

🎬 Video Upscale With Model

Memory-efficient upscaling of every frame in a video batch using a ComfyUI upscale model (ESRGAN, RealESRGAN, etc.).

Parameter Type Description
model_name upscale_models Model from your ComfyUI upscale_models folder
images IMAGE Input video batch (F, H, W, C)
upscale_method ENUM Final resize filter: nearest-exact, bilinear, area, bicubic
factor FLOAT Output scale multiplier (e.g. 2.0 = double resolution)
device_strategy ENUM See table below
batch_size INT Frames processed per GPU pass

Device strategies:

Strategy Description
auto Detects free VRAM and picks the best strategy automatically
keep_loaded Model stays on GPU — fastest, requires available VRAM
load_unload_each_frame Model moves to GPU per batch then back to CPU — lower peak VRAM
cpu_only Runs entirely on CPU — slowest, minimal VRAM usage

Outputs: upscaled_images (IMAGE)

Features:

  • Automatic tiled inference via comfy.utils.tiled_scale — no OOM on large frames
  • Single movedim pre-pass avoids repeated tensor copies per frame
  • torch.no_grad() throughout for faster inference and lower memory
  • Coloured progress bar with elapsed/ETA printed to the ComfyUI console

🧹 Free Video Memory

Pass-through node that explicitly flushes GPU memory between heavy pipeline stages.

Parameter Type Description
images IMAGE Passed through unchanged
aggressive_cleanup ENUM Also calls torch.cuda.synchronize() and allocator cache APIs if available
report_memory ENUM Prints allocated/reserved GB before and after to the console

Outputs: images (IMAGE) — identical to input


🔤 Text List → Batch / Text Batch → List

Bidirectional converters between ComfyUI LIST and batched STRING types, with optional delimiter joining.


⚙️ Installation

1. Clone into your ComfyUI custom nodes folder:

cd ComfyUI/custom_nodes
git clone https://github.com/FugitiveExpert01/ComfyUI-FEnodes.git

2. Restart ComfyUI.

Nodes will appear in the node menu under the FEnodes category.
No additional dependencies beyond what ComfyUI already requires (PyTorch, NumPy, Pillow).


🎬 Typical Workflows

Tiled video diffusion:

Load Video → TileSplit → [K-Sampler per tile] → TileMerge → Save Video

Video upscaling:

Load Video → Video Upscale With Model → [Free Video Memory] → Save Video

Combined:

Load Video → TileSplit → [K-Sampler per tile] → TileMerge
          → Video Upscale With Model → Free Video Memory → Save Video

🗺️ Roadmap

Node Description Status
TileSplit Grid tile splitting for video batches ✅ Released
TileMerge Laplacian pyramid tile reconstruction ✅ Released
Video Upscale With Model Memory-efficient per-frame upscaling ✅ Released
Free Video Memory Explicit VRAM flush between pipeline stages ✅ Released
Text List → Batch LIST to batched STRING conversion ✅ Released
Text Batch → List Batched STRING to LIST conversion ✅ Released

Have a node idea or a production use case that isn't covered? Open an issue.


🤝 Contributing

Pull requests are welcome. If you're adding a node, please:

  • Keep video batch support (F, H, W, C) as the primary tensor convention
  • Add a docstring describing what the node does and its input/output types
  • Test with both single images and multi-frame video batches
  • Set CATEGORY = "FEnodes" so nodes appear grouped in the menu

📄 License

Apache License 2.0 — free to use in personal and commercial VFX pipelines.

S
Description
No description provided
Readme Apache-2.0
230 KiB
Languages
Python 75.1%
JavaScript 24.9%