Nodes/VRGameDevGirl Video Enhancement Nodes/VRGDG LTX Audio Video LoRA Train Chunk
ComfyUI Node

VRGDG LTX Audio Video LoRA Train Chunk

Train an LTX 2.3 Audio-Video LoRA From a Single Short Clip

By vrgamegirl19·Created about a year ago·Updated about 7 hours ago· 718
VRGDG LTX Audio Video LoRA Train Chunk
  • model
  • model
  • latest_state_path
  • log_path
  • video_filename_prefix
  • output_name
  • completed_steps
  • total_target_steps
dataset_videos_dir
workspace_dir
run_nameLTXAVChunkRun
output_nameLTXAVChunkRun
av_profilefast_short_clip
use_profile_defaultstrue
resolution_width768
resolution_height512
target_frames17,33
frame_extractionhead
max_frames49
target_fps25.0
steps_per_run100
total_target_steps400
network_dim16
network_alpha16
blocks_to_swap2
separate_audio_bucketstrue
clear_memory_before_gemmatrue
lora_target_presett2v
fp8_basetrue
fp8_scaledtrue
learning_rate_preset1e-4
learning_rate0.0001
num_repeats8
cache_strategyauto
copy_latest_to_comfy_lorastrue
keep_only_comfy_lorafalse
strength_model1.00
create_captionsfalse
caption_text
add_trigger_wordfalse
trigger_text
musubi_rootA:/MUSUBI/musubi-tuner-ltx2
ltx2_checkpointA:/MUSUBI/models/ltx2/ltx-2.3-22b-dev.safetensors
gemma_rootA:/MUSUBI/models/gemma3
gemma_load_in_4bitfalse
gemma_recovery_modefalse

This is the heavy one. VRGDG_LTXAudioVideoLoraTrainChunk runs a musubi-tuner training chunk for LTX-2.3 audio-video LoRAs - i.e., it trains a LoRA that captures a voice and a look from short clips that have audio embedded. It's the node VRGameDevGirl uses to build her own LTX character/singer LoRAs, and it's genuinely different from image LoRA training: LTX is a 22B audio+video model, so the trainer has to handle frame buckets, audio buckets, a Gemma text-encoder cache, block swapping for VRAM, and an FP8 base-model path. All of that is surfaced here as knobs, but you don't have to touch most of them.

The workflow is: point it at a folder of short training videos (with audio), pick a training profile (a recipe bundle), and it caches the Gemma text embeddings, trains with musubi-tuner for a chunk of steps, and copies a Comfy-compatible LoRA into your ComfyUI loras folder. It can even apply the new LoRA back onto the MODEL you pass in, so the output model is immediately ready to sample with.

The inputs that matter

You will not tune all 30+ fields. The key ones:

  • dataset_videos_dir - folder of training videos (or a parent it organizes into a videos subfolder).
  • workspace_dir - working folder for caches, logs, configs, and checkpoints.
  • av_profile - the recipe switch, and the most important knob:
    • fast_short_clip (default) - quick test on one short video.
    • step200 - same recipe, 200-step chunk budget, lighter repeats.
    • balanced - stronger middle ground.
    • full_video - trains on the whole clip, slowest.
    • overnight_full_video - tuned for a longer clip at lower res and smaller frame windows so it can run overnight on a midrange GPU.
  • use_profile_defaults - on by default; the profile controls the recipe bundle. Turn off only if you want to hand-tune everything.
  • resolution_width / resolution_height - 768×512 default; 512 is faster, bigger costs VRAM.
  • target_frames - comma-separated frame buckets, default 17,33; the trainer rounds to the required N×4+1 buckets.
  • steps_per_run - steps before saving this chunk (100 default).
  • total_target_steps - overall budget (400 default).
  • network_dim / network_alpha - LoRA rank and alpha, both 16 default. Bump to 32 if the result is too weak.
  • blocks_to_swap - transformer blocks offloaded to CPU (2 default). Raise only if you OOM; lower if you have VRAM to spare.
  • lora_target_preset - which layers get adapters: t2v (fastest baseline), v2v (adds FFN), audio, or full.
  • musubi_root / ltx2_checkpoint / gemma_root - paths to your musubi-tuner install, the LTX-2.3 audio-video checkpoint, and the Gemma model files. The defaults point at A:/MUSUBI/... - that's the author's own machine layout, and you must change these to your paths.
  • copy_latest_to_comfy_loras - on by default, copies the trained LoRA into ComfyUI's loras folder.

Outputs: model (base model with the latest LoRA optionally applied via strength_model), plus latest_state_path, log_path, video_filename_prefix, output_name, completed_steps, and total_target_steps for tracking/continuation.

Install & the real requirements

You need three things: the pack, a musubi-tuner-ltx2 install (use VRGDG_MusubiTunerInstaller to get it), and the model files - an LTX-2.3 22B audio-video checkpoint and the Gemma text encoder. Expect tens of gigabytes of downloads and a machine with serious VRAM (the author's overnight_full_video profile exists specifically because midrange GPUs can't do the rest).

cd ComfyUI/custom_nodes
git clone https://github.com/vrgamegirl19/comfyui-vrgamedevgirl
pip install -r requirements.txt

Common issues

  • Training is way slower / OOMs immediately: you're not on overnight_full_video or fast_short_clip with a midrange card. Pick the profile that matches your hardware; raise blocks_to_swap only when you actually run out of memory.
  • LoRA is too weak: bump network_dim to 32, or total_target_steps up. One 10-second clip can't learn much - num_repeats (8 default) exists to get more signal out of that single clip.
  • Captions missing: turn on create_captions with a caption_text fallback, or the trainer has nothing to pair with your frames.
  • Text-encoder cache errors: leave clear_memory_before_gemma on - the Gemma cache step is where most failures happen because VRAM is full of other models. gemma_recovery_mode is the experimental fallback if the normal path still fails.

Honest take: this is an expert node for a demanding workflow, not a beginner toy. But it's the closest thing to "train your own LTX audio-video LoRA with one button" that exists, and once you accept that the first run is mostly downloads and the second run is mostly waiting, it works. The musubi-tuner angle also matters: LTX-2.3 LoRA training is where the LTX ecosystem actually lives right now, and this is a well-wired path into it.

CategoryVRGDG/Training

Inputs (39)

NameTypeDefaultDescription
modelMODELBase model to return downstream with the latest trained LoRA optionally applied.
dataset_videos_dirSTRINGFolder containing your training videos, or a parent folder that will be organized into a videos subfolder.
workspace_dirSTRINGWorking folder for cache, logs, config files, checkpoints, and training state.
run_nameSTRINGLTXAVChunkRunName prefix used for the log file.
output_nameSTRINGLTXAVChunkRunName prefix used for saved LoRA files and state folders.
av_profileCOMBOfast_short_clipTraining recipe switch. fast_short_clip is the default quick test for one short video. step200 keeps the same fast_short_clip recipe but sets a 200-step chunk budget with lighter repeats. balanced is a stronger middle ground. full_video trains on the whole clip and is the slowest. overnight_full_video is tuned for a longer clip using smaller frame windows, lower resolution, and light swapping so it can run overnight on a midrange GPU.
use_profile_defaultsBOOLEANtrueWhen enabled, the selected profile controls the AV recipe bundle instead of the manual fields below. Turn this off if you want to hand-tune every value.
resolution_widthINT76864–8192Training bucket width in pixels. 768 is a good fast default for a single short clip. Smaller values like 512 are faster; larger values cost more VRAM and time.
resolution_heightINT51264–8192Training bucket height in pixels. 512 pairs well with 768x512 for a quick short-clip run. Use a lower height for faster experiments.
target_framesSTRING17,33Comma-separated frame buckets to train on. For a 10-second clip, 17 and 33 frames are a good fast starting point. The trainer rounds values to the required N*4+1 frame buckets.
frame_extractionCOMBOheadHow frames are selected from each video. head uses only the first target_frames window and is the fastest choice for a short single-clip LoRA. full uses the entire video, but is much slower and should be capped with max_frames.
max_framesINT491–4096Safety cap used when frame_extraction is full. 49 keeps the run short and prevents a 10-second clip from turning into a long heavy sample. It does not affect head/chunk/slide/uniform.
target_fpsFLOAT25.01–240Target FPS used during caching/training. 25.0 is the standard LTX rate and works well for most short clips with audio.
steps_per_runINT1001–100000How many steps to train before saving and stopping this chunk. 100 is a fast check-run default for a single short clip.
total_target_stepsINT4001–1000000Total training budget across all chunks. 400 is a fast starter value for one short video; increase later only if you need more adaptation.
network_dimINT161–2048LoRA rank. 16 is a good quick-training default for one short clip. Use 32 if the result is too weak.
network_alphaINT161–2048LoRA alpha. Usually keep this equal to the rank for a simple fast baseline.
blocks_to_swapINT20–64How many transformer blocks to offload to CPU. Lower is faster if you have enough VRAM. Raise this only if you run out of memory.
separate_audio_bucketsBOOLEANtrueKeeps audio and non-audio items in separate batches. Safe to leave on and useful if your dataset ever mixes audio and silent clips.
clear_memory_before_gemmaBOOLEANtrueUnloads ComfyUI models and clears memory before Gemma caching. Leave this on unless you know your workspace is already empty.
lora_target_presetCOMBOt2vWhich transformer layers get LoRA adapters. t2v is the fastest useful baseline. v2v adds FFN layers. full is the heaviest and produces the largest adapter.
fp8_baseBOOLEANtrueUse the FP8 base-model loading path. Leave this on for speed and lower VRAM.
fp8_scaledBOOLEANtrueQuantize non-FP8 checkpoints into FP8 at load time. Turn this off if your checkpoint file is already FP8, usually visible from the filename.
learning_rate_presetCOMBO1e-4Quick preset for the training learning rate. 1e-4 is a strong starter value for a short 10-second clip.
learning_rateFLOAT0.00011e-8–1Custom learning rate used only when the preset is set to Custom.
num_repeatsINT81–1000How many times each video-caption pair is repeated in the dataset. Higher repeats help a single clip produce enough training signal without needing a huge number of source videos.
cache_strategyCOMBOautoAuto rebuilds cache only when the node detects the cache is missing or stale. Force always rebuilds. Skip assumes the cache is already correct.
copy_latest_to_comfy_lorasBOOLEANtrueCopies the latest Comfy-compatible LoRA into the ComfyUI loras folder after training.
keep_only_comfy_loraBOOLEANfalseIf enabled, deletes the standard .safetensors LoRA files after a matching .comfy.safetensors file exists.
strength_modelFLOAT1.00-100–100Strength used if the node applies the latest LoRA back onto the output model.
create_captionsBOOLEANfalseCreates missing .txt caption files automatically from the caption_text field. Leave this off if your videos already have captions.
caption_textSTRINGFallback caption text used only when create_captions is on and a video has no caption file.
add_trigger_wordBOOLEANfalsePrepends trigger_text to every caption. Useful when you want a fixed concept token.
trigger_textSTRINGTrigger word or phrase to prepend to captions when add_trigger_word is enabled.
musubi_rootSTRINGA:/MUSUBI/musubi-tuner-ltx2Root folder of your musubi-tuner-ltx2 install.
ltx2_checkpointSTRINGA:/MUSUBI/models/ltx2/ltx-2.3-22b-dev.safetensorsPath to the base LTX audio-video checkpoint used for caching and training.
gemma_rootSTRINGA:/MUSUBI/models/gemma3Folder containing the Gemma model files used for text encoder caching.
gemma_load_in_4bitBOOLEANfalseLoads Gemma in 4-bit mode instead of 8-bit. This reduces VRAM further, but can be slower or a little less stable.
gemma_recovery_modeBOOLEANfalseExperimental. If enabled, the node will try alternate Gemma cache settings after the normal path fails.

Outputs (7)

NameTypeDescription
modelMODEL
latest_state_pathSTRING
log_pathSTRING
video_filename_prefixSTRING
output_nameSTRING
completed_stepsINT
total_target_stepsINT