Magic Hour · Image Generator
A hosted image generator that hands you Nano Banana Pro and Seedream as a tensor
- IMAGE
Magic Hour · Image Generator is the still-image member of the pack: prompt in, IMAGE tensor out, rendered on Magic Hour's hosted infrastructure. No GPU, no checkpoints. On the surface it's the dullest node in the set - another txt2img box. The model dropdown is where it gets interesting, because it's a strange mix of company:
gpt-image-2 (OpenAI), nano-banana-pro (Google's flagship), seedream-5-pro (ByteDance) - all closed, all impossible to run locally, and this node is one of the few ways they show up inside a ComfyUI graph.
And then: flux-2-klein, z-image-turbo, qwen-edit - all open-weights models you can already run on your own card. Z-Image Turbo and Flux 2 Klein are literally the community's speed picks for consumer hardware; Qwen-Image's edit model is a local editing staple. So the honest take is split. If you're after Nano Banana Pro or Seedream, this is a legitimate door to a model you could never otherwise touch. If you're reaching for Klein or Z-Image and you own a working GPU, you're paying per image for something that's free and uncensored at home - that part only makes sense for the no-GPU workflow, or when you want a closed frontier model next to your local nodes without leaving the graph.
How it works
Your prompt is POSTed to Magic Hour's image-generator endpoint with your chosen model, aspect ratio, and resolution. The node polls until the job completes, downloads the result(s), and converts them into a ComfyUI IMAGE tensor - a float32 array in [batch, H, W, C], exactly like a local sampler's output. Whatever you wire downstream doesn't know or care that the pixels crossed a network.
That's a genuine advantage over pasting a URL into the graph: because the output is a real IMAGE, you can chain it into the rest of the pack - animate a generated still with the Image to Video node, or feed it straight into face swap - or run it through your local upscaler, img2img pass, or mask-and-detailing stack.
The inputs that matter
- prompt - multiline, the one field you'll actually spend time on.
- model -
defaultis Magic Hour's own pick; the rest are the named models above. Labels don't carry plan info here the way the video nodes do, so mind the closed ones are metered higher. - image_count - 1 to 16. Ask for a batch and you get a stacked IMAGE tensor, handy for pick-a-frame workflows or as a batch you fan out for variations.
- aspect_ratio -
1:1,16:9, or9:16. - resolution -
auto(sensible default), or pin640px/1k/2k/4k.autois the right answer until you know you need more. - api_key - only if you didn't set the env var.
One output, IMAGE. There's no Save node built in, so wire it to a preview/save or let it feed something downstream - this is a mid-graph node, not a terminal one.
Installing and your first run
ComfyUI Manager: search "Magic Hour" → install. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/RhythmP28/comfyui-magic-hour
Restart ComfyUI. Dependencies are just requests, pillow, and numpy - nothing to download, no models.
Free API key (no card, 400 credits on signup plus 100/day) at magichour.ai/developer. Paste it into the node, or keep it out of shared workflows:
export MAGIC_HOUR_API_KEY="your_key_here"
Where people get burned
- Credits run quieter than video but they still run. A still is far cheaper than a second of Sora, but batch up 16
nano-banana-proimages at 4k and watch the counter move. - The closed models bring their own moderation. You can't abliterate Nano Banana Pro - whatever Google refuses, the node refuses, and there's no local bypass because there are no weights to patch. That's the price of calling the closed frontier.
- Your prompts leave the machine. Inherent to the category, worth remembering before you push something sensitive.
- Out-of-credits raises an explicit "out of credits" error; failed jobs are auto-refunded.
Use it for the models you can't download, or the no-GPU machine. Use your own card for the ones you can.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| model | COMBO | default | 7 options: default, gpt-image-2, nano-banana-pro, seedream-5-pro, flux-2-klein, z-image-turbo, +1 |
| image_count | INT | 11–16 | — |
| aspect_ratio | COMBO | 1:1 | 3 options: 1:1, 16:9, 9:16 |
| resolution | COMBO | auto | 5 options: auto, 640px, 1k, 2k, 4k |
| api_keyopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |