VEVID
The node that makes your image look like a better version of itself
- image
- Vevid
- Kernel
Most edge-detection nodes give you a map and make you do something with it. VEViD - Vision Enhancement via Virtual diffraction and coherent Detection - gives you a better image. It's the odd one out in the PhyCV family: instead of extracting edges, it simulates light diffracting through the image and being detected coherently, and the result is a sharpened, punchier version of what you put in. Think embossed, crystalline, HDR-lite. Feed it a flat photo and the contours come alive; feed it a render and it gets a chrome-plated attitude.
Like the rest of the pack it's not neural-net ML - no weights, no API, no downloads. It's physics-inspired classical processing from the UCLA phycv library, and it runs entirely on the GPU.
How it works
The transform runs the image through a virtual diffraction stage, then applies coherent detection to pull the phase response back out as visible enhancement. Edges get amplified, weak details gain contrast, and if you flip color_enhance on, color rendition gets a boost too. The knobs are all about shaping that phase response.
The inputs that matter
image- any ComfyUI IMAGE, one frame at a time.phase_strength(S, default 0.2) - overall enhancement strength. The master volume.spectral_phase_function_variance(T, default 0.01) - variance of the spectral phase function, which shapes the virtual diffraction kernel. Small values are subtle; this is your finesse dial.regularization_term(b, default 0.16) - damps noise amplification. If the output gets crunchy or starts showing sensor grain, raise this before you lower the volume.phase_activation_gain(G, default 1.4) - how hard the phase response gets amplified. This is the "how dramatic" knob, and it's the one you'll fight with most.color_enhance(default false) - toggles the color rendition stage. Off keeps it closer to luminance enhancement; on gives the full saturated pop.lite(default false) - a faster approximate path. Flip it on if the full version is too slow; you trade a little quality.
The outputs
Two IMAGEs. Vevid is the enhanced result - that's the one you use. Kernel is the usual PhyCV kernel visualization, the filter's fingerprint; a debug output you can preview but don't need to wire anywhere.
Where it fits
Three genuinely useful slots. As a pre-enhancement for img2img: the model sees a cleaner, higher-contrast source, and your regenerations inherit those contours. As a pre-edge step: run VEViD, then Canny or a ControlNet edge preprocessor on the output, and faint edges that were invisible before show up. And as a look, if you want a dramatic embossed style - it's fantastic on architecture, jewelry, and product shots, and genuinely alarming on skin, since it will enthusiastically sharpen every pore. It's also a real research tool for low-light image enhancement, so if you have a dark photo that needs CPR, this is a legitimate first pass.
Install
The standard two ways, same as the rest of the pack:
# Option 1: ComfyUI Manager → Custom Nodes → search "ComfyUI-PhyCV" → install → restart
# Option 2: manual
cd ComfyUI/custom_nodes
git clone https://github.com/JPrevots/ComfyUI-PhyCV
# restart ComfyUI
Dependencies: torch, torchvision, opencv-python, and phycv - Manager handles them. No model files to fetch.
The gotchas
The pack-wide ones apply here too: it's CUDA-only (hardcoded torch.device("cuda"), no CPU or MPS fallback - on a Mac or CPU-only box it errors the instant you run it), and it expects a single image, not a batch. And the repo ships with no README and no community tutorials to speak of - the Comfy Registry entry at v1.0.1 is the whole manual. That said, VEViD is the most immediately gratifying node in the pack: set color_enhance on, bump phase_activation_gain a touch, and you get a before/after you can actually see without squinting.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| phase_strength | FLOAT | 0.20 | — |
| spectral_phase_function_variance | FLOAT | 0.01 | — |
| regularization_term | FLOAT | 0.16 | — |
| phase_activation_gain | FLOAT | 1.40 | — |
| color_enhance | BOOLEAN | false | — |
| lite | BOOLEAN | false | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| Vevid | IMAGE | — |
| Kernel | IMAGE | — |