ConvIR DeSnow
Winter footage got snowed on? ConvIR DeSnow cleans the flakes off
- src_img
- res_img
Falling snow is the one weather effect that's genuinely miserable to remove after the fact. Rain streaks are semi-transparent and directional; snowflakes are big, opaque, and close to the lens, so they cover up more of the scene than you'd think. ConvIR DeSnow is the node you'd have sold your soul for the winter your dashcam or doorbell footage came back looking like a static storm. It's part of the ConvIR restoration family in FM_nodes, and like the rest of the family it's a single deterministic pass - no diffusion, no redraws.
How it works
Same backbone as the whole ConvIR line: a U-shaped convolutional encoder-decoder with redundant-feature pruning and multi-scale feature aggregation, from the Revitalizing Convolutional Network for Image Restoration paper. Trained on snow-heavy image datasets, it learns to separate the scene from the flakes and output a clean same-size frame. Feed it a video as a batch of IMAGE frames and it works down the stack with a progress bar.
The inputs that matter
src_img- the snowed-on IMAGE. Batch-friendly, so a video's frames work (with the usual per-frame speed caveat).model_name-snow100k(default),csd, orsrrs. The distinction here is real:snow100kis the big synthetic snow dataset (thousands of composited snow scenes),csdis the Chinese Snow Dataset, andsrrsis trained on real snow scenes. If your footage is actual winter weather rather than a render,srrstends to hold up better;snow100kis the safe general default.model_size-smallorbase. Nolargeoption on this node.baseis the sensible default;smallif you're testing on video and don't want to wait.
The res_img output is your de-snowed IMAGE, same resolution, ready to save or hand to an upscaler.
Installing it
Same pack, same routine - ComfyUI Manager (search FM_nodes) or:
cd ComfyUI/custom_nodes
git clone https://github.com/FuouM/FM_nodes
then restart. Requirements are just torch and einops, no API keys. The models come from the ConvIR Google Drive and are not auto-downloaded: drop snow100k-base.pkl (and friends) into custom_nodes/FM_nodes/models/convir/desnow/. The code builds the path as desnow/<model_name>-<size>.pkl, so if you get a file-not-found on queue, that's the folder to check first.
Where people get burned
The main trap is mild snow. If the scene just has a faint dusting or a few large flakes drifting past, a snow-removal model can smear those regions into soft blobs - the model assumes anything white and small is weather. Heavy, dense snow is where this shines. And like the rest of the family, it's a per-frame loop on video, so a long clip through the base model takes a while; preview on a single frame before committing to the whole render. For the actual blizzard footage, though, it's hard to beat for the price of one node and one downloaded model.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| src_img | IMAGE | — | |
| model_name | COMBO | snow100k | 3 options: csd, snow100k, srrs |
| model_size | COMBO | base | 2 options: small, base |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| res_img | IMAGE | — |