LTX Video LoRA Trainer (fal)
Train a video LoRA without a local GPU
- lora_file_url
Training a video LoRA locally is a real commitment - a big model, a lot of VRAM, and hours of your GPU pinned. This node hands that whole job to fal: point it at a dataset, set a few knobs, and it trains an LTX Video LoRA on fal's hardware, returning a URL to the finished .safetensors. LTX is the sensible target for this because it's the speed tier of local video - Lightricks built it to draft in seconds where Wan takes minutes - so LTX LoRAs are cheap to train and fast to use afterward. The quality sits a tier below Wan, which is the trade you're accepting for the speed.
What it actually does
You give it a training_data_url - a ZIP of your clips - and fal runs the LTX trainer remotely, then hands back a lora_file_url. Nothing trains on your machine; you pay for the GPU time on fal. The pack makes the dataset side painless too: its FAL/Utils nodes turn a folder of clips (or a video's frames) into the ZIP URL this node wants, so the full pipeline is load clips → build ZIP → this node → LoRA without leaving ComfyUI.
The inputs that matter
- training_data_url (required): the ZIP of training clips. Build it with the pack's dataset utilities and paste the URL here.
- trigger_phrase: the word you'll put in prompts to invoke the LoRA. Use a rare token that isn't a real word (
ltxstyl3,ohwx) so it doesn't collide with normal vocabulary. - rank (8–128, default 128): capacity. Higher captures more but bloats the file and risks overfitting; a style or single subject rarely needs the full 128.
- number_of_steps (default 1000): how long it trains. More isn't automatically better - overcooking is real.
- learning_rate (default 0.0002): leave it unless you know why you're changing it.
There's a stack of number_of_frames, frame_rate, resolution, aspect_ratio settings plus a full set of validation_* options that generate preview clips during training. The single output is a STRING, the URL to your trained LoRA - download it and drop it in an LTX workflow to use.
Installing it
ComfyUI Manager → search ComfyUI-fal-API → install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/gokayfem/ComfyUI-fal-API.git
cd ComfyUI-fal-API
pip install -r requirements.txt
Restart ComfyUI. No model in models/; you need fal-client and a fal API key in config.ini under [API], or the FAL_KEY env var.
Where people get burned
The dataset is where LoRAs live or die, and that's on you, not the node - clean, consistent clips beat a big messy pile every time. If your training_data_url isn't reachable by fal, training fails immediately; the pack's own ZIP-upload utilities are the reliable way to produce a URL fal can actually fetch. Note the SDXL rank tables don't port here - video LoRAs behave differently, and rank 128 as a default is a ceiling, not a target.
The bigger gotcha is expectations: a training run is a chunky, single billable job - you can't cache your way out of it the way you can with a repeated generation, so get the dataset and settings right before you submit. If it errors, read fal's message; the pack passes the real text through, and it usually names the parameter or the unreachable URL.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| training_data_url | STRING | — | |
| rank | COMBO | 128 | 5 options: 8, 16, 32, 64, 128 |
| number_of_steps | INT | 1000100–10000 | — |
| number_of_frames | INT | 811–1000 | — |
| frame_rate | INT | 251–60 | — |
| resolution | COMBO | medium | 3 options: low, medium, high |
| aspect_ratio | COMBO | 1:1 | 3 options: 16:9, 1:1, 9:16 |
| learning_rate | FLOAT | 0.000.00001–0.01 | — |
| trigger_phraseopt | STRING | — | |
| auto_scale_inputopt | BOOLEAN | false | — |
| split_input_into_scenesopt | BOOLEAN | true | — |
| split_input_duration_thresholdopt | FLOAT | 30.001–300 | — |
| validation_negative_promptopt | STRING | blurry, low quality, bad quality, out of focus | — |
| validation_number_of_framesopt | INT | 811–1000 | — |
| validation_resolutionopt | COMBO | high | 3 options: low, medium, high |
| validation_aspect_ratioopt | COMBO | 1:1 | 3 options: 16:9, 1:1, 9:16 |
| validation_reverseopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| lora_file_url | STRING | — |