Nodes/Mage/Mage Mango Image
ComfyUI Node

Mage Mango Image

A model you can't download, wired into your graph

By mage-space·Created 26 days ago·Updated 26 days ago· 2
Mage Mango Image
  • images
  • image
  • url
◄prompt►
◄model_idmango-v3►
◄aspect_ratio4:5►
◄resolution2K►
◄seed0►

Mango is Mage's house image model. You can't download it, you can't run it on your 4090, and the only way to get its output is to call it. This node is that call, dressed up to look like a normal generator: prompt goes in, IMAGE comes out, and everything downstream in your graph - upscalers, masks, detailers - keeps working exactly as it did.

Why you'd reach for it

The honest reason is that you want that model. The Mage web app has a look people chase (there's a recurring "how do I get Mango2/Guava's style locally?" thread shape on r/StableDiffusion, and the usual answer is "they don't publish model cards"), and this is the only way to get it without leaving ComfyUI. The second reason is hardware: this node does its work on Mage's servers, so an integrated GPU, a Mac, or a machine that chokes on a 12GB checkpoint is not a blocker.

The cost of admission is that it's metered. Every run spends Gems from whichever Mage account the configured API key belongs to, your prompt and any image you connect get uploaded to Mage's storage, and the node is the exact shape this ecosystem warns about: arbitrary Python holding a credential that phones home by design. Mage's own handling is better than average here, though - more on that in the install section.

How it actually works

The node builds a request body from your widgets and POSTs it to the Mage API. If you wired something into images, each frame is converted to PNG and uploaded first, and the returned URLs become the request's reference images. Then it polls, reporting status, elapsed seconds and Gems on the node's title bar - Mage: done in 41s (8 gems) when it lands.

When the job completes, the node downloads the result bytes and decodes them into a standard ComfyUI IMAGE batch. From that point nothing in your workflow knows or cares where it came from.

The seed is fixed by default, deliberately: queue the same inputs twice and ComfyUI's cache serves the second run without a new request, so you're not paying twice to look at the same picture. Change the seed when you want a variation.

The fields that matter

Prompt is the obvious one. Mention saved characters and references by @handle, same as on mage.space.

Then two decisions that mostly determine price and shape:

  • model_id - mango, mango-v2, mango-v3s, mango-v3, defaulting to mango-v3. v3s is the fast one; reach for it while you're still deciding what to make.
  • resolution - 1K, 2K, 3K, 4K, defaulting to 2K. This is the dial that changes the bill, so draft at 1K and only pay for 4K once the composition is right.

aspect_ratio gives you nine options from 21:9 through 9:16; the default is 4:5. And images is the optional input worth knowing about, because it does double duty: one image is the thing you're editing, several are references for the generation. The node checks what the model actually accepts before spending anything, so an incompatible combination fails with a message rather than a surprise.

Outputs are image (wire it into anything local) and url (a STRING pointing at Mage's copy).

Installing it

ComfyUI Manager is the easy path - search Mage and install. Otherwise:

cd ComfyUI/custom_nodes
git clone https://github.com/mage-space/ComfyUI-Mage
cd ComfyUI-Mage
pip install -r requirements.txt   # with ComfyUI's Python

The only real dependency is the Mage SDK (mage-space on PyPI); PyAV, httpx, torch and Pillow all ship with ComfyUI already. Restart after installing.

Then give it a key. Create one at mage.space under API → API Keys - either export it before you launch ComfyUI:

export MAGE_API_KEY="your-key-here"

or copy config.ini.example to config.ini inside the pack folder and fill in api_key =. The environment variable wins if both exist. Two details I actually like: config.ini is gitignored, and the key is never written into your workflows - so sharing a workflow doesn't leak your account.

Where people get tripped up

"No Mage API key." That's the node refusing to run, with instructions attached. Almost always means the variable was set in a different shell than the one running ComfyUI, or set after ComfyUI started. Set it, restart, retry.

The dropdown doesn't list a model you know exists. The combos aren't hardcoded - they're read from the installed SDK at import time, so an old SDK means an old model list:

pip install -U "mage-space>=0.0.0,<0.1"

Gems. Insufficient balance and rejected option combinations both fail the node before anything is charged, which is the right behaviour. Hitting Stop is not: interrupting the queue cancels the Mage request and the Gems are not refunded.

The URL expires. Mage keeps outputs for 30 days, so wire image into a Save Image node if you care about the file - don't treat url as storage.

One last thing: this pack is at 0.x and the author says the inputs may still change. Don't build anything load-bearing on it yet.

CategoryMage

Inputs (6)

NameTypeDefaultDescription
promptSTRINGWhat to generate. Mention saved characters and references by @handle.
model_idCOMBOmango-v3The model variant to generate with.
aspect_ratioCOMBO4:5Aspect ratio as `W:H`.
resolutionCOMBO2KOutput resolution token.
seedINT00–2147483647The same seed and inputs reproduce an output. Change it for a new variation.
imagesoptIMAGEReference images, or the image to edit.

Outputs (2)

NameTypeDescription
imageIMAGEThe generated image.
urlSTRINGWhere Mage stores the output for 30 days.