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

VRGDG LTX Audio Only LoRA Train Chunk

Train an LTX-2.3 voice LoRA from inside ComfyUI — no command line

By vrgamegirl19·Created about a year ago·Updated about 7 hours ago· 718
VRGDG LTX Audio Only LoRA Train Chunk
  • model
  • audio
  • model
  • latest_state_path
  • log_path
  • dataset_audio_dir
  • output_name
  • completed_steps
  • total_target_steps
workspace_dir
run_nameLTXAudioChunkRun
output_nameLTXAudioChunkRun
audio_profilevoice_test
use_profile_defaultstrue
audio_only_target_resolution64
audio_only_target_fps25.0
audio_only_sequence_resolution64
steps_per_run100
total_target_steps800
network_dim16
network_alpha16
blocks_to_swap2
lora_target_presetaudio
fp8_basetrue
fp8_scaledtrue
ltx2_audio_only_modeltrue
clear_memory_before_gemmatrue
gemma_recovery_modefalse
learning_rate_preset1e-4
learning_rate0.0001
num_repeats2
audio_bucket_strategypad
audio_bucket_interval2.0
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/ltx/ltx-2.3-22b-dev.safetensors
gemma_rootA:/MUSUBI/models/gemma3
gemma_load_in_4bitfalse
audio_directory

If you've ever wanted a character's voice in LTX-2.3 - not just their face - this is the node for it. LTX-2.3 is the audio-plus-video generation model that can read text as speech, but by default it speaks with the generic model voice. Training an audio-only LoRA on dialogue clips lets you push it toward a specific timbre. That's a genuinely niche capability, and people ask for it on r/StableDiffusion ("is it possible to train a LoRA on LTX using only audio?") - the answer here is yes, and this node does it without you ever touching a terminal.

It's part of VRGameDevGirl's pack of music-video automation nodes, and it leans on a separate musubi-tuner-ltx2 install as the actual training engine. The node is the glue: it builds the dataset config, runs one chunk of training, caches text embeddings, converts the result to ComfyUI's LoRA format, and hands you back a MODEL with the LoRA optionally already applied.

How it works - the "chunk" model

You don't train a whole LoRA in one go. Each run of this node does steps_per_run steps (default 100) then saves state and stops. Re-run the graph and it picks up where it left off, until completed_steps reaches total_target_steps (default 800). That's the pattern the whole pack uses for long training runs: short, resumable chunks you can babysit. workspace_dir is where cache, logs, config and checkpoints live, so point it somewhere with free disk.

The audio side is the unusual part. You can connect an audio AUDIO input (the node copies it into a managed dataset folder), or set audio_directory to a folder of clips with matching .txt captions. audio_profile picks a recipe bundle: voice_test is a short spoken-dialogue sanity check, voice is the real spoken preset, and music gives a larger temporal budget with more capacity. Keep use_profile_defaults on until you know why you'd turn it off. audio_bucket_strategy (pad vs truncate) with audio_bucket_interval (seconds) controls how clips of different lengths are bucketed.

The inputs that actually matter

Most of the rest is standard musubi training knobs you'll recognize:

  • lora_target_preset - leave on audio. That's the whole point of this node.
  • network_dim / network_alpha - LoRA rank and alpha. 16/16 is the default and fine to start.
  • blocks_to_swap - offloads transformer blocks to CPU to fit VRAM. The 22B LTX-2.3 DiT is heavy; start at 2 and raise if you OOM.
  • fp8_base and fp8_scaled - on by default and a big part of making this fit on consumer cards.
  • musubi_root, ltx2_checkpoint, gemma_root - these default to A:/MUSUBI/... Windows paths. You must repoint them at your own musubi-tuner-ltx2 install, LTX-2.3 checkpoint, and Gemma 3 model files. This is the first thing that bites everyone.

The outputs are honest about where things stand: model (with the latest LoRA applied at strength_model if you want), latest_state_path, log_path, dataset_audio_dir, output_name, completed_steps and total_target_steps. Wire completed_steps/total_target_steps into a check node so your graph knows when training is actually done.

Install and gotchas

Install the pack via ComfyUI Manager (search "vrgamedev") or cd ComfyUI/custom_nodes && git clone https://github.com/vrgamegirl19/comfyui-vrgamedevgirl, then restart. The README's requirements.txt needs kornia, librosa, imageio. That's the easy part - the hard part is that musubi-tuner-ltx2, the LTX-2.3 checkpoint, and the Gemma encoder are all separate downloads you point this node at.

Expect it to be slow and memory-hungry; a full LTX-2.3 video LoRA runs about 7 hours on a 5090 per the community, and audio-only is still a 22B model being trained. Run voice_test first - it exists to catch a broken setup in seconds instead of hours. And if Gemma caching fails, the experimental gemma_recovery_mode toggle tries alternate cache settings before you give up.

CategoryVRGDG/Training

Inputs (39)

NameTypeDefaultDescription
modelMODELBase model to return downstream with the latest trained LoRA optionally applied.
workspace_dirSTRINGWorking folder for cache, logs, config files, checkpoints, and training state.
run_nameSTRINGLTXAudioChunkRunName prefix used for the log file.
output_nameSTRINGLTXAudioChunkRunName prefix used for saved LoRA files and state folders.
audio_profileCOMBOvoice_testvoice_test is a short spoken-dialogue sanity check. voice is the spoken-dialogue preset. music uses a larger temporal budget and more capacity. voice_fast and voice_balanced are legacy aliases.
use_profile_defaultsBOOLEANtrueWhen enabled, the selected profile controls the audio recipe bundle instead of the manual fields below.
audio_only_target_resolutionINT6432–4096Square target resolution used for audio-only latent geometry.
audio_only_target_fpsFLOAT25.01–240Target FPS used to derive frame count from audio duration during caching.
audio_only_sequence_resolutionINT640–8192Virtual sequence resolution used for shifted_logit_normal in audio mode. Set 0 to use cached virtual geometry.
steps_per_runINT1001–100000How many steps to train before saving and stopping this chunk.
total_target_stepsINT8001–1000000Total training budget across all chunks.
network_dimINT161–2048LoRA rank.
network_alphaINT161–2048LoRA alpha.
blocks_to_swapINT20–64How many transformer blocks to offload to CPU.
lora_target_presetCOMBOaudioaudio is the intended preset for audio-only training.
fp8_baseBOOLEANtrueUse the FP8 base-model loading path.
fp8_scaledBOOLEANtrueQuantize non-FP8 checkpoints into FP8 at load time.
ltx2_audio_only_modelBOOLEANtrueForce loading the physically audio-only transformer variant. Keep this on for audio-only training.
clear_memory_before_gemmaBOOLEANtrueUnloads ComfyUI models and clears memory before Gemma caching.
gemma_recovery_modeBOOLEANfalseExperimental. If enabled, the node will try alternate Gemma cache settings after the normal path fails.
learning_rate_presetCOMBO1e-4Quick preset for the training learning rate.
learning_rateFLOAT0.00011e-8–1Custom learning rate used only when the preset is set to Custom.
num_repeatsINT21–1000How many times each audio-caption pair is repeated in the dataset.
audio_bucket_strategyCOMBOpadAudio duration bucketing strategy.
audio_bucket_intervalFLOAT2.00.1–120Audio bucket step size in seconds.
cache_strategyCOMBOautoAuto rebuilds cache only when the node detects it is missing or stale.
copy_latest_to_comfy_lorasBOOLEANtrueCopies the latest Comfy-compatible LoRA into the ComfyUI loras folder after training.
keep_only_comfy_loraBOOLEANfalseDeletes 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.
caption_textSTRINGFallback caption text used when a source audio clip has no caption file.
add_trigger_wordBOOLEANfalsePrepends trigger_text to every caption.
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/ltx/ltx-2.3-22b-dev.safetensorsPath to the base LTX 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.
audiooptAUDIOOptional connected AUDIO input. If provided, it is copied into a managed audio dataset folder and used instead of audio_directory.
audio_directoryoptSTRINGOptional folder containing audio files with matching .txt captions. Leave empty if you connect an AUDIO input.

Outputs (7)

NameTypeDescription
modelMODEL
latest_state_pathSTRING
log_pathSTRING
dataset_audio_dirSTRING
output_nameSTRING
completed_stepsINT
total_target_stepsINT