Extensions/Magic Hour
ComfyUI Extension

Magic Hour

Run Sora 2, Veo 3.1, Kling 3.0 and Seedance inside ComfyUI, plus face swap and lip sync, via the Magic Hour API.

By RhythmP28·Created about a month ago·Updated about a month ago· 0
RhythmP28/comfyui-magic-hour
Nodes4
On cloudLocal install
CategoryMagic Hour
Stars0
Updatedabout a month ago
Readme

ComfyUI × Magic Hour

Run frontier video models — Sora 2, Veo 3.1, Kling 3.0, Seedance, MiniMax H3 — inside your ComfyUI workflow, plus face swap and hosted image generation. No GPU needed; everything renders on Magic Hour's infrastructure.

These models can't run locally. This node puts them in your graph next to everything that can.

Nodes

| Node | In | Out | |---|---|---| | Magic Hour · Text to Video | prompt | video path | | Magic Hour · Image to Video | IMAGE + prompt | video path | | Magic Hour · Image Generator | prompt | IMAGE | | Magic Hour · Face Swap (Photo) | 2× IMAGE | IMAGE |

Video nodes write an .mp4 into your ComfyUI output folder and return its path.

Install

ComfyUI Manager: search "Magic Hour" → install.

Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/YOUR_GITHUB/comfyui-magic-hour

Restart ComfyUI.

API key

Free at magichour.ai/developer — no credit card, 400 credits on signup plus 100/day.

Paste it into the node, or better, set it once so you don't leak it when sharing workflows:

export MAGIC_HOUR_API_KEY="your_key_here"

Models

Labels in the dropdown tell you the plan you need and what each model is for.

Free plan

| Model | Credits/sec | Durations | Notes | |---|---|---|---| | wan-2.2 | 24 | 3–15s | physics & camera motion | | ltx-2.3 | 24 | 1–30s | fastest, good for iterating | | minimax-h3 | 24 | 1–30s | native audio, max 1080p |

Paid plans

| Model | Credits/sec | Durations | Notes | |---|---|---|---| | seedance-1.5 | 30 | 4–12s | smooth, precise motion | | kling-2.6 | 36 | 5 or 10s | action & motion blur | | kling-3.0 | 48 | 3–15s | best cinematic, up to 4k | | veo3.1-lite | 48 | 4–56s | Veo quality, cheaper | | seedance-2.0-mini | 96 | 4–15s | max 720p | | veo3.1 | 96 | 4–56s | highest realism | | veo3.1-audio | 96 | 4–56s | Veo + native audio | | sora-2 | 120 | 4/8/12/24/36/48/60s | max 720p | | seedance-2.0 | 144 | 4–15s | reference-to-video, max 720p | | seedance-2.5 | 288 | 4–30s | best quality, max 720p |

Resolution

Gated by plan, not by model:

| Resolution | Plan | |---|---| | 480p | Free | | 720p | Creator+ | | 1080p | Pro+ | | 4k | Business |

If you pick something above your plan, the node steps down and retries rather than failing — you get a video and a note in the console.

Behaviour worth knowing

  • Invalid durations are corrected, not rejected. Every model accepts a different set of clip lengths; ask Sora for 10 seconds and you get 8, with a console note.
  • Cost is printed before each run, e.g. wan-2.2 · 5s · 480p = ~120 credits.
  • Failed jobs are auto-refunded by Magic Hour — an error costs you nothing.
  • Nodes block while polling. A 5s clip usually lands in about a minute; longer or higher-res takes more.
  • Model list changes often. If something new appears in the web app, add it to VIDEO_MODELS and MODEL_CONSTRAINTS in nodes.py.

Links

Docs · API reference · OpenAPI spec · Pricing

License

MIT