Extensions/Lokken VideoTools
ComfyUI Extension

Lokken VideoTools

Video post-processing for ComfyUI: Lanczos upscaling, optional RIFE frame interpolation (Fill Nodes required), adjustable film grain, audio passthrough, configurable H.264 presets/profiles and CRF or lossless encoding, with selectable frame batching. Accepts video or image batches; outputs video, FPS and timing statistics.

By LordLocksley·Created 2 days ago·Updated a day ago· 0
LordLocksley/ComfyUI-Lokken-VideoTools
Nodes—
On cloudLocal install
Stars0
Updateda day ago
Readme

ComfyUI Lokken VideoTools

One video post-processing node for ComfyUI: Lanczos upscaling, optional RIFE frame interpolation, adjustable film grain, audio passthrough and H.264 encoding with configurable presets, profiles and CRF or lossless mode. Accepts video or image batches, supports selectable frame batching, and returns video, FPS and timing statistics. Derived from the Turbo Post Processing node in Elvax Nodes.

RIFE interpolation requires Fill Nodes and its rife49 model. It supports frame-rate multiplication and optional dual-pass RIFE. Encoding, grain and Lanczos upscaling work without Fill Nodes.

Status and installation

Version 1.0.0 is published on Comfy Registry and available through ComfyUI-Manager. Open Manager's custom-node list, search for Lokken VideoTools, install it, and restart ComfyUI. If the package is missing from the list, refresh the listing and check its filters.

Alternatively, install manually by running the following from your ComfyUI/custom_nodes/ directory:

git clone https://github.com/LordLocksley/ComfyUI-Lokken-VideoTools.git

Restart ComfyUI and search for Video Post Processing — Lokken. Registry publishing instructions are in PUBLISHING.md.

The internal node identifier is LokkenVideoPostProcessing, in category Lokken/Video. It can be installed alongside Elvax Nodes. Existing workflows using ElvaxPostProcessing continue to use Elvax; they are not migrated automatically.

Usage

Connect a VIDEO or an IMAGE batch. A connected VIDEO supplies its own frames and frame rate and takes precedence over images. For an image batch, set original_fps to its intended frame rate. Optional audio_pass supplies audio; otherwise a video input's soundtrack is retained when available.

The processing order is Lanczos upscale, RIFE interpolation, optional film grain, then H.264 encoding. Disable the processing toggles you do not need. The node returns VIDEO, FPS and a timing summary. Connect VIDEO to ComfyUI's Save Video node.

| Setting | Meaning | | --- | --- | | upscale / upscale_by | Enables native Lanczos spatial scaling and sets the scale factor. | | interpolate / interpolate_by | Enables RIFE frame interpolation and sets the frame-rate multiplier. Requires Fill Nodes and rife49. | | dual_pass_rife | Runs RIFE in both directions and combines the results, trading additional processing time and VRAM for potentially better interpolation. | | original_fps | Sets the source frame rate for image batches; a connected video supplies its own frame rate. | | audio_pass | Supplies audio for the output. If omitted, the source video's audio is retained when available. | | encoder_preset | ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow. Default: medium. Slower presets trade encoding time for compression efficiency. | | h264_profile | auto, baseline, main, high. Default: auto, leaving the profile constraint unset. A forced profile constrains allowed features; the actual profile can be lower when a preset disables those features. | | compress / crf | Compression is on by default at CRF 18. Disabling compression or setting CRF 0 uses the inherited encoder's lossless mode. That mode requires profile auto; forced profiles produce an error. | | grain | Enables random film grain. grain_intensity sets its amount; saturation_mix blends the inherited channel-weighted grain with shared green-channel noise. There is no fixed-seed control. | | batching_mode | full sequence, normal (64), low vram (16) or custom. custom_batch_size is used only in custom mode. |

For matching segment exports, use the same frame geometry, frame rate, CRF, preset and profile on both encoders. The node retains the fork's four-frame encoding handoff and disk-backed temporary video output; it does not eliminate memory occupied by the input image batch. Temporary files remain alive while their video objects are retained, including by ComfyUI's cache.

The inherited timing summary tracks workflow start through a local PromptServer.send_sync wrapper. It forwards events to the existing handler.

Requirements

The node uses PyTorch, NumPy and PyAV supplied by ComfyUI. No additional pip packages or install scripts are added. The checked environment is ComfyUI 0.42.0, PyTorch 2.14.1 and PyAV 17.0.1.

RIFE interpolation only: requires the FL_RIFE node from Fill Nodes and its rife49 model. This dependency is accessed only when interpolation runs. Encoding, grain and Lanczos upscaling do not require Fill Nodes.

Development checks

See tests/README.md for small CPU checks. Real GPU processing and model-backed RIFE interpolation require separate runtime testing.

Attribution and license

The copied backend and frontend originate in Elvax Nodes, maintained by younestft, and its contributors. Our H.264 preset/profile controls are also available in the upstream pull request.

The inherited grain routine is credited to Fast Film Grain by Jean Thompson (VRGameDevGirl). It is covered here by the historical AGPLv3 source grant identified in NOTICE.md.

ComfyUI's native Lanczos scaler is called at runtime. Optional RIFE interpolation calls FL_RIFE from Fill Nodes by filliptm. Their implementations and model weights are not bundled; those projects retain their own licenses.

Elvax-derived portions and Lokken's original additions use GPL-3.0-or-later; the grain-derived portion uses AGPL-3.0-only. They are distributed together under GPLv3 section 13, with AGPLv3's network-interaction requirements applying to the combination. Both applicable license texts are included: GPLv3 and AGPLv3.

See NOTICE.md for the per-component scope, preserved notices and dated modifications. This covers this repository's code; it does not relicense the wider Elvax pack, ComfyUI, Fill Nodes or their models. No endorsement by the original authors is implied.