Nodes/comfyui-mixlab-nodes/Luma Dream Machine @fal
ComfyUI Node Runs on cloud

Luma Dream Machine @fal

Call Luma's video model from inside ComfyUI

By MixLabPro·Created 3 years ago·Updated 2 months ago· 1,859
Luma Dream Machine @fal
  • image
  • STRING
prompt
aspect_ratio16:9
fal_key
looptrue

First thing to be clear about, because it saves you a wasted afternoon: this node does not generate video on your GPU. It's an API client. It packages your prompt, ships it to fal.ai, fal runs Luma's Dream Machine model on their hardware, and you get back a URL to the finished clip. Your 3090 sits idle the whole time. That's the deal - you're renting Luma through fal, and ComfyUI is just the front end.

Why bother, then, instead of using Luma's own site? Because it lets you stitch a closed hosted video model into a graph next to everything else. Generate a still with Flux locally, feed it in as the starting frame, fire it off to Luma for the motion, and keep the whole thing in one workflow. shadowcz007's mixlab pack added a batch of these fal-backed video nodes at once - Kling, Runway Gen3, and this Luma one - precisely so you can treat the big proprietary video models as just another node. It's the same pattern the ecosystem keeps landing on: local models can't touch the hosted ones for video yet, so people bridge to them via API rather than wait.

How it works

You supply a text prompt and, optionally, a starting image. The node authenticates to fal with your key, submits the job, polls until Luma finishes, and hands back the result as a string - the URL of the generated video. It is not an IMAGE or a video tensor; it's text pointing at a file on fal's side. So whatever comes next in your graph has to be something that consumes a URL (download it, preview it, save the link), not a node expecting frames.

The inputs and outputs that matter

  • prompt (STRING, multiline) - what you want to see. Luma responds well to motion and camera language ("slow dolly in", "hair moving in the wind"), not just static scene description.
  • aspect_ratio - pick from 16:9, 9:16, 4:3, 3:4, 21:9, 9:21. Default is 16:9.
  • fal_key (STRING) - your fal.ai API key. Required. No key, no output.
  • image (IMAGE, optional) - a starting frame for image-to-video. Leave it empty for pure text-to-video.
  • loop (BOOLEAN, optional, default true) - asks Luma to make the clip loop cleanly.

The single output is STRING - the video URL.

How to install it

Via ComfyUI Manager: search comfyui-mixlab-nodes, install, restart. Or clone it:

cd ComfyUI/custom_nodes
git clone https://github.com/shadowcz007/comfyui-mixlab-nodes.git

then pip install -r requirements.txt (or run install.bat on the Windows portable build) and restart. The heavy lifting is remote, so you don't need a beefy GPU for this node - you need a funded fal.ai account and a key from your fal dashboard.

Common issues & troubleshooting

It costs real money. This is the big one people miss. Every run bills your fal.ai account - video generations are not cents, they add up fast when you're iterating. Nail your prompt cheaply (or on Luma's site) before you loop on it here. There's no local free path; the node is a paywall by design.

Auth errors / empty output. Almost always the fal_key. Copy it fresh from the fal dashboard, make sure it's the fal key and not some other service's, and confirm the account has credit. An out-of-credit account fails the same way a bad key does.

"The output won't plug into my video node." Right - the output is a URL string, not frames. You need to download the clip from that URL before any frame-level node can touch it. Save the string, or use a download/load-video-from-URL node, then continue.

Model drift. This is a wrapper around a hosted model that fal and Luma update on their own schedule. If results suddenly change or a call starts failing, it's likely something moved on their end, not a bug in your graph - check fal's model status.

Category♾️Mixlab/Video

Inputs (5)

NameTypeDefaultDescription
promptSTRING
aspect_ratioCOMBO16:96 options: 16:9, 9:16, 4:3, 3:4, 21:9, 9:21
fal_keySTRING
imageoptIMAGE
loopoptBOOLEANtrue

Outputs (1)

NameTypeDescription
STRINGSTRING