DeOldify Colorize
The classic DeOldify GAN as a single ComfyUI node
- image
- image
If you've got a scanned black-and-white photo and you want it in color without writing a single prompt, this is the node. DeOldify Colorize drops the classic DeOldify GAN - the 2018-era model behind a decade's worth of "look what I did to grandpa's wedding photo" posts - straight into your graph. Feed it a grayscale image, it hands you a plausible, usually pretty tasteful colorization. No prompt engineering, no checkpoint hunt, no API key. That last part is worth repeating: despite the name, nothing here calls an external service. The whole thing runs on your own GPU.
There's a reason it exists in a diffusion town. Colorizing an old photo isn't really a diffusion job - it's a deterministic image-to-image mapping, and DeOldify is purpose-built for it. The modern alternative is an instruction-following editor like Qwen-Image-Edit or Flux.2 Klein, and people do benchmark the two against each other for "de-oldifying" scans. Those give you dialogue - "clothing colors from the 1930s" - and in return they're slower, prompt-sensitive, and inconsistent run to run. DeOldify is the opposite: no prompt, same answer every time, and it was good enough that the upstream project only got archived in late 2024 because its author moved on, not because it stopped working.
How it actually works
Under the hood is a ResNet-based U-Net generator that predicts the image's color channels (the a/b channels in Lab space) from its luminance, trained with the project's own "NoGAN" technique - a way to get GAN-style color without most of the GAN artifacts. The node renders at render_factor times a base resolution, then downsamples, and the post_process step runs DeOldify's signature move: upsampling the color while keeping full-resolution luminance, exploiting the fact that your eyes forgive blurry color far more than blurry brightness.
One thing to know: the pack caches one loaded colorizer per model type and device, so second runs are fast - and why the pack also ships a Clear Cache node.
The inputs that matter
- model_type -
stableorvideo, defaultstable. Note what's missing: the original's "artistic" model, its most vibrant, isn't exposed here. For portraits and landscapesstableis the right call anyway. - render_factor - default 35, range 8–45. Higher renders at higher resolution for more consistent, detailed color at the cost of speed. The knob you'll actually fiddle with.
- saturation - 0–4, default 0.75. It ships slightly dialed back, reading "restored" rather than "neon"; crank past 1.5 for vintage Technicolor energy.
- post_process - boolean, default on. Turn it off and you lose the luminance-preserving upsampling trick; there's rarely a reason to.
The remaining fields are image (your IMAGE tensor) and device (cuda/cpu); the single output is an IMAGE that wires straight into Save Image or anything else.
Installing it
The README's install path is the usual one:
cd ComfyUI/custom_nodes
git clone https://github.com/Praveenhalder/ComfyUI-DeOldify
Then restart ComfyUI. You can also search "ComfyUI DeOldify" in ComfyUI Manager, which does the same clone for you. The heavy part is the dependencies: this pack pins fastai==1.0.61 - an ancient, mostly-abandoned library - plus pandas, opencv-python, scipy, scikit-image, matplotlib and friends. The good news: you don't download model weights yourself. On first use the node pulls ColorizeStable_gen.pth or ColorizeVideo_gen.pth from the spensercai/DeOldify HuggingFace repo into ComfyUI/models/deoldify/models/, with a progress message.
Where people get burned
- The fastai dependency is the number-one failure. A 2020 library pinned to the exact version, it fights modern PyTorch. If you hit an import error, the node itself prints the exact pip command to run - for the portable Windows build that's
.\\python_embeds\\python.exe -m pip install ...from the ComfyUI root, and plainpip installfor a venv. The code also patchestorch.loadfor PyTorch 2.6+ because fastai checkpoints embed arbitrary classes, so aweights_only=Falsewarning from a security scanner is expected and safe here - the checkpoints come from a known repo. - First run is slow on purpose. A few hundred MB download over HuggingFace, then the model import takes a while. Don't assume it hung.
- Washed-out or desaturated results? Raise
saturation- the 0.75 default reads "restored" rather than "neon," but it's the most common thing people try to fix. - Zombie faces or gray patches - DeOldify's classic failure, where faces and hands stay gray. The
stablemodel is trained specifically to reduce this, so you're already on the better horse. - VRAM pressure - the cached colorizer holds memory after a run. Run the pack's Clear Cache node before a big diffusion job, or drop
devicetocpuif you're on a 4 GB card and patient.
Honest verdict: it's a niche tool that does one job well and asks nothing of you. If you restore old family photos, it's a keeper; for an artistic recoloring playground, the modern editors win.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| model_type | COMBO | stable | 2 options: stable, video |
| render_factor | INT | 358–45 | — |
| post_process | BOOLEAN | true | — |
| saturation | FLOAT | 0.750–4 | — |
| device | COMBO | cuda | 2 options: cuda, cpu |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |