Video to Camera Events
Make Your Video Fake Being an Event Camera
- images
- events
Make Your Video Fake Being an Event Camera
The first thing to understand about the EvTexture pack is that it doesn't want your video. It wants an event stream - the output of an event camera, the kind of sensor that never records a frame and instead reports, per pixel, the instant brightness changes. Event cameras are real, and they're niche research hardware that almost nobody running ComfyUI owns. So this node, EVTVideoToEvents, is the pack's way of pretending you do.
This is the data-prep step. Every other node in the pack consumes EVT_EVENTS somewhere, and this is the thing that manufactures it from ordinary frames. On its own it produces nothing you can look at, which is fine - you'll wire its output straight into EVTTextureUpscaleVideo, and if you want to check your work, into EVTEventsToImage.
How it fakes an event camera
The mechanism comes from esim, the standard event simulator, and the wrapper's source keeps the default behavior: frames get converted to grayscale, then to log-intensity (event sensors respond to relative brightness change, roughly the way your eye does), then a contrast-threshold loop runs. A pixel fires a positive event when its log-brightness climbs past a threshold since its last event - default 0.275 - and a negative event when it drops that far, with a 1e-4 refractory period so nothing machine-guns. Every event carries an x, y, timestamp, and polarity (+1/−1). One batch of events comes out per frame gap.
The inputs and output that matter
- images (
IMAGE) - your frames, typically straight out of a video-load node (the pack's example workflow uses VHS_LoadImagesPath). - fps (
FLOAT) - the video's real frame rate. It matters because event timestamps are derived from it (frame_index / fps), and the upscaler reads those timestamps later. Get this right.
Output: events (EVT_EVENTS) - a custom type only this pack consumes. Feed it to the upscale node, and optionally to EventsToImage so you can see what the simulator actually caught.
Install
The whole pack installs at once via ComfyUI Manager - search "ComfyUI-EvTexture" - or the old-fashioned way:
cd ComfyUI/custom_nodes
git clone https://github.com/tocubed/ComfyUI-EvTexture
then restart ComfyUI. There's nothing heavy here: the pack's only dependencies are torch and torchvision, which ComfyUI already ships. No model download is needed for this node - that's the job of EVTLoadEvTextureModel.
Making it actually work
The README's best tip: run RIFE (or any frame interpolator) on your footage first to bump the frame rate, then feed the higher-fps frames in. Doubling the frame rate doubles the number of brightness transitions the simulator can catch, and more events means more texture hints for the upscaler downstream. The flip side: slow, dark, or static footage yields a sparse event stream, and a sparse stream gives the upscaler very little to work with. If your upscaled video comes out flat, this is the first thing to suspect.
One honest caveat: this pack is a small, effectively unmaintained wrapper (a single commit) around an ICML 2024 research model. People do run it - the one consistent account in the wild pairs it with Wan 2.1 footage - but it's a research idea you can run, not a polished product. Treat simulated events as an approximation, because that's exactly what they are.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| fps | FLOAT | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| events | EVT_EVENTS | — |