ComfyUI Extension: ComfyUI-PulseOfMotion
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.
Predicts Physical FPS (PhyFPS) from video using the Visual Chronometer model from the Pulse of Motion paper. Includes SDPA-optimized attention, device selection, progress tracking, and auto-downloads the model from HuggingFace.
Looking for a different extension?
Custom Nodes (3)
README
ComfyUI-PulseOfMotion
ComfyUI nodes for predicting Physical FPS (PhyFPS) from video using the Visual Chronometer model.
Based on the paper "The Pulse of Motion: Measuring Physical Frame Rate from Visual Dynamics" by the TACO Group.
PhyFPS measures the true temporal resolution of a video from its visual motion dynamics — independent of the container frame rate. This is useful for detecting AI-generated videos, evaluating video quality, and understanding temporal characteristics.
Nodes
| Node | Description | |------|-------------| | Load Visual Chronometer | Loads the VC model checkpoint. Auto-downloads from HuggingFace on first use. Supports device selection (auto/cpu/cuda). | | Predict PhyFPS | Predicts average PhyFPS from video frames using a sliding window. Returns a float and a detailed report. | | Predict PhyFPS (Batch) | Same as above but also returns a per-segment FPS list for analysis. |
Installation
Via ComfyUI-Manager (recommended)
Search for "Pulse of Motion" in ComfyUI-Manager and click Install.
Manual
cd ComfyUI/custom_nodes
git clone https://github.com/akashzeno/ComfyUI-PulseOfMotion.git
cd ComfyUI-PulseOfMotion
pip install -r requirements.txt
Restart ComfyUI after installation.
Model
The checkpoint (vc_common_10_60fps.ckpt) is automatically downloaded from HuggingFace on first use and saved to ComfyUI/models/pulse_of_motion/.
Usage
- Add a Load Video (Upload) node (from VideoHelperSuite) to load your video
- Add a Load Visual Chronometer node — select the checkpoint and device
- Add a Predict PhyFPS node — connect
modelfrom the loader andIMAGEfrom the video loader toimages - Add two Preview as Text nodes:
- Connect
phyfpsto one for the average FPS value - Connect
reportto another for the detailed per-segment breakdown
- Connect
- Adjust
clip_length(default 30) andstride(default 4) as needed, then queue the prompt
Parameters
- clip_length — Number of frames per analysis clip (default: 30, trained on 30-frame clips)
- stride — Step size between clips (default: 4). Lower = more clips = smoother average but slower
Example Workflow
Download the example workflow JSON and drag it into ComfyUI to get started.
Optimizations
This implementation uses PyTorch SDPA (scaled_dot_product_attention) for the spatial and cross-attention modules, which automatically dispatches to Flash Attention 2 or memory-efficient attention depending on your GPU. This provides identical accuracy with better speed and memory efficiency compared to the original manual attention implementation.
Credits
- Paper: The Pulse of Motion: Measuring Physical Frame Rate from Visual Dynamics
- Original Code: taco-group/Pulse-of-Motion
- Model Weights: xiangbog/Visual_Chronometer
License
This project wraps the Visual Chronometer model for ComfyUI. Please refer to the original repository for licensing of the model and weights.
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.