BYOKey Luma Text to Video
Luma Dream Machine text-to-video — Ray 2 with your own key
- luma_concepts
- output
Luma's Dream Machine - and its Ray model family - is one of the main hosted video generators, and BYOKey_Luma_Text2Video is the node that calls it with your own key. It hits api.lumalabs.ai/dream-machine/v1 directly, no Comfy proxy, no credits, and returns a real ComfyUI VIDEO. If you're already paying Luma and want its output feeding your ComfyUI pipeline, this is the door.
The Ray models are the hosted-fronfier class of video gen: strong motion coherence, good prompt adherence, and - worth calling out - the option to drive camera motion through Luma's Concepts system. The KB's framing applies: this is a closed model with no local equivalent, so the API node is the only way it enters a graph. The honest positioning versus the pack's other video nodes: Luma is a solid, well-established default, not the flashiest and not the cheapest, but reliably good at shot-level generation.
How it works
Standard submit-and-poll: POST to /generations, then poll the generation id until the state flips to completed (or failed), then download the finished video and wrap it in ComfyUI's VIDEO output type. The node blocks while it waits, which is why poll_interval and max_wait are exposed - Luma's queue can be slow at peak times.
The inputs that matter
model-ray-2(default),ray-flash-2, orray-1-6. Ray-2 is the quality default; ray-flash-2 is the cheap-and-fast tier; ray-1-6 is the older model, and its quirk is in the tooltips: resolution and duration are ignored for ray-1-6, so don't chase settings on it.prompt- the video prompt. Dream Machine responds to camera language ("slow push-in," "handheld") - use it.aspect_ratio- 16:9 (default), 9:16, 1:1, 4:3, 3:4, 21:9, 9:21.resolution- 540p (default), 720p, 1080p. Bump only for finals; video resolution costs multiply fast.duration- 5s or 9s.loop- a boolean; when true Luma aims for a seamless loop, which is great for backgrounds and product shots.luma_concepts- an optionalLUMA_CONCEPTSinput from a Luma Concepts node, which dictates camera motion. If you want "dolly in while tilting up," this is how you say it precisely instead of hoping the prompt reads.
seed exists but - honest tooltip - results are nondeterministic regardless. Don't expect reproducible takes.
Output is output (VIDEO) - feed it to a video preview/save node to see anything.
Installing it
It's one of the 37 nodes in comfyui-byokey, no extra dependencies beyond ComfyUI's bundled torch/aiohttp/PIL/numpy/av. Install via ComfyUI Manager (search "byokey") or:
cd ComfyUI/custom_nodes
git clone https://github.com/MeteorAndy/comfyui-byokey.git
Restart, and it's under api/byokey/video.
Gotchas
The recurring themes: cost and patience. Video generation is the most expensive per-call thing in ComfyUI, and Luma bills per generation - 1080p/9s runs add up fast, so 540p/5s for drafts. The synchronous wait means a busy queue can blow past max_wait (default 600s); raise it if you see timeouts. And don't bother tuning resolution/duration on ray-1-6 - they're ignored, which is easy to miss and frustrating to debug. Standard BYOKey hygiene: your key is saved into the workflow JSON, so scrub it before sharing. Solid, dependable, slightly pricey: that's Luma, and this is the node that puts it in your graph.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | Your Luma API key. | |
| base_url | STRING | https://api.lumalabs.ai/dream-machine/v1 | Luma API base URL (override for relays). |
| prompt | STRING | Prompt for the video generation. | |
| model | COMBO | ray-2 | The video generation model to use. |
| aspect_ratio | COMBO | 16:9 | Aspect ratio of the generated video. |
| resolution | COMBO | 540p | Output resolution (ignored for ray-1-6). |
| duration | COMBO | 5s | Video duration (ignored for ray-1-6). |
| loop | BOOLEAN | false | Whether the video should loop. |
| seed | INT | 00–18446744073709550000 | Seed to determine if node should re-run; results are nondeterministic regardless of seed. |
| luma_conceptsopt | LUMA_CONCEPTS | Optional Camera Concepts to dictate camera motion via the Luma Concepts node. | |
| poll_intervalopt | INT | 101–120 | Seconds between poll attempts. |
| max_waitopt | INT | 60030–3600 | Maximum seconds to wait for completion. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| output | VIDEO | — |