Magic Hour: Photo Colorizer
Magic Hour: Photo Colorizer
- image
- image
- image_paths
- credits_charged
One input. image. No prompt, no sliders, no strength dial. The node takes a black-and-white photo and returns a colourised version.
That's the whole interface, and the absence of a prompt is the most important fact about it. You cannot tell it the coat was green. Colourisation here is inference: the model guesses skin tones, sky blues, foliage greens, and whatever it decides the rest of the frame should be. For a family photo where the coat actually was green, you get a guess, and your grandmother will tell you it's wrong.
When that's fine and when it isn't
For archival photos, historical images, or restoring a scan where nobody alive remembers the colours, a good guess is exactly what you want and it's usually convincing - particularly because the model is conservative: skin tones, skies and grass are the three things colourisation models are most reliable on, and they're most of most photos.
For anything where you know the true colours, you'll end up doing correction work in an editor anyway, at which point the local route makes more sense. There are colourisation nodes and models in the ComfyUI ecosystem that give you a prompt or a reference swatch. The KB's post-processing doc skims this territory in the broader context of finishing touches, and the honest summary is: colourisation is one of those jobs where the interesting work is post-hoc correction, not the initial pass.
How it works
Your image becomes a temp PNG, gets uploaded, and the remote model does its thing. The result is downloaded into ComfyUI/output/magic_hour/ and returned as an IMAGE.
Two mechanical things carry over from every image node in this pack. Only the first image of a batch is used - feed it ten frames of an old film scan and you'll get one colourised frame - and the returned tensor is RGB, so a grayscale source with an alpha or a 16-bit channel is going to arrive flattened.
That batch limit is the thing that bites people on this node specifically, because colourising a photo collection is the natural use case. You're writing a loop or running the graph N times, and each run is a paid API call.
Inputs and outputs
image(required) - the source. Clean, high-resolution scans colourise dramatically better than small or compressed ones.image(output) - the colourisedIMAGEbatch.image_paths(output) -STRINGwith the saved file path(s), newline-joined if several came back.credits_charged(output) -INT, the per-run cost.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/magichourhq/comfyui-magic-hour
pip install -r comfyui-magic-hour/requirements.txt
Restart and look under Magic Hour. Dependencies: magic-hour>=0.87.1 and nothing else - no model weights, no GPU work, no dependency on torch beyond what ComfyUI already has. ComfyUI Manager users can search "Magic Hour".
export MAGIC_HOUR_API_KEY=your_key_here
before launching, or a bare key in comfyui-magic-hour/api_key.txt. The key isn't a widget because widget values are saved into the workflow JSON and would travel with any graph you share.
Where it disappoints
Saturated guesses. Colourisation models tend toward muted, tasteful colours - desaturated pastels for clothing, a soft blue sky. If you were hoping for the gaudy reality of a 1970s print, you'll be disappointed.
Uniform regions going wrong. Large single-colour areas - a wall, a car, a uniform - are where the guess is most visible, because there's nothing in a grayscale image to constrain them.
No control. No strength, no palette, no regional prompt. If it guesses badly there is nothing in the node to fix it with, and you're off to a paint program.
Cost across a collection. Per-image pricing times a shoebox of family photos is not trivial. Run three, look at them, then decide.
The wait. It's an API round trip plus polling - seconds, not instant, and the queue is held while it happens.
Practical workflow: colourise here, then take the result into a local upscale and a light grain pass so the colour doesn't look more modern than the photograph. A colourised scan with sharp modern colour and no grain reads as fake; the same image with a bit of noise and a slight warm shift reads as restored.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| image_paths | STRING | — |
| credits_charged | INT | — |