Magnific Upscale Image
The paid upscaler as a node, credits and all
- image
- folder
- image
- creation_identifier
- metadata
What it is
This is Magnific's hosted upscaler with a ComfyUI socket on the front. You wire in an IMAGE, it uploads the picture to Magnific, queues an upscale job on your account, polls until it is done, and downloads the result back as an IMAGE. Nothing runs locally, no model is downloaded, and your picture leaves your machine.
Why would you? Because Magnific is the paid baseline the whole open upscaler argument is measured against - SUPIR's launch thread was literally framed as "vs Very Expensive Magnific AI", and Comfy Org's own 2026 upscaling handbook still lists Magnific among its recommendations. There is a real class of image where its "invent plausible detail" pass looks better than anything you have locally. There is also a real class where SeedVR2 or SUPIR does it for free, so treat this as the comparison point, not the default.
How it works
The node uploads the image, sends the settings as one creation request, then long-polls for the finished creation (up to roughly fifty minutes of polling before it gives up). The returned URL is fetched and turned into a ComfyUI batch. The first URL wins - you get one image out per image in.
The inputs that matter
scale is 2x, 4x, 8x or 16x. precision is creative or precision, and that choice decides which slider family the server listens to: creativity, hdr, resemblance and fractality are the creative knobs (each β10 to +10), while sharpness, grain and ultra_detail are the precision knobs (0 to 100). The author's code says it plainly - the server ignores the family that does not match the chosen precision, so cranking sharpness on a creative pass does nothing.
presets (subtle / vivid / wild) and engine (Automatic, Illusio, Sharpy, Sparkle) are the two "I don't want to think about this" dropdowns; mode picks the Magnific generation (Magnific v1 (high HDR), the v2 variants, or the ultra/ultra-denoiser set). prompt gives the model a hint about what it is looking at.
There is also an optional folder input from a Magnific Save To node. Unconnected, results go to your Personal project - which is fine, and one less node in the graph.
Outputs
image is the upscaled picture. creation_identifier is Magnific's ID for the job - useful for finding it on the site later. metadata is a JSON string with the model, prompt, seed, size and the link to the creation; feed it to Magnific Metadata (unpack) if you want those as real sockets, or push a value into Save Image's filename_prefix so each file records which model made it.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Code2Collapse/ComfyUI-CustomNodePacks.git
ComfyUI Manager β search "CustomNodePacks" works too. Restart, then check for [C2C] CustomNodePacks: 142 nodes loaded (...) - 0 failed in the console.
Two things are easy to get wrong. First, sign in: ComfyUI menu β Magnific β Sign in (device-code flow, browser approval, token in ~/.magnific/comfyui_auth.json). Second, do not install Magnific's own comfyui-magnific plugin alongside this - both claim the same fifteen node IDs and the winner is whichever loads last. This pack is the port of that plugin, slightly patched (notably: the vendor's version could let a remote manifest refuse to run your own source, and this one warns instead).
The core pack wants opencv-python, scipy and safetensors; the Magnific nodes themselves need nothing extra. Do not blind-run the requirements file over ComfyUI's torch install:
pip list | grep -i "opencv\|scipy\|safetensors"
pip install opencv-python>=4.7.0 scipy>=1.10.0 safetensors>=0.4.0
Where people get burned
- Credits, not VRAM. Every run is a paid, metered request at whatever resolution you asked for.
16xon a large photo is a long wait and a real charge, so do the arithmetic before you put it in a batch of 50. - The 25 MB upload ceiling. Magnific's upload endpoint rejects images above 25 MB, and this node does not magically re-encode for you. Downscale the PNG first if you are feeding it a big raw render.
- It rewrites faces. That is the whole point of a generative upscaler, and it is why the KB's rule is to decide which job you have before you pick a tool: if the source is already sharp and you only need more pixels, a 4x ESRGAN model or plain Lanczos is free, instant and cannot invent anything.
- Not signed in gives you an auth error on run rather than a helpful dialog. Press R after signing in so the node definitions refresh.
- It is an API node. It reaches the network by design and holds a credential, so the usual advice applies: understand what it sends and where. Here that is your image, to Magnific, under their terms.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | β | |
| scale | COMBO | 2x | 4 options: 2x, 4x, 8x, 16x |
| precision | COMBO | creative | 2 options: creative, precision |
| presets | COMBO | subtle | 3 options: subtle, vivid, wild |
| engine | COMBO | Automatic | 8 options: Automatic, Illusio, Sharpy, Sparkle, automatic, magnific_illusio, +2 |
| mode | COMBO | Automatic | 10 options: Automatic, Magnific v1 (high HDR), Magnific v2 (sublime), Magnific v2 (photo), Magnific v2 (photo denoiser), default, +4 |
| folderopt | MAGNIFIC_FOLDER | Optional β from a Magnific Save To node. Not connected β your Personal project. | |
| promptopt | STRING | β | |
| creativityopt | INT | 0-10β10 | β |
| hdropt | INT | 0-10β10 | β |
| resemblanceopt | INT | 0-10β10 | β |
| fractalityopt | INT | 0-10β10 | β |
| sharpnessopt | INT | 00β100 | β |
| grainopt | INT | 00β100 | β |
| ultra_detailopt | INT | 00β100 | β |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | β |
| creation_identifier | STRING | β |
| metadata | STRING | β |