ComfyUI custom nodes and production workflows for LTX 2.3 image-to-video lip sync, storyboard scheduling, segmented audio rendering, and waveform-driven timing.
This repository is designed to be placed inside ComfyUI/custom_nodes/.
This pack extends LTX 2.3 with tools for longer-form audio-driven rendering.
If you want a quick starting point, begin with the storyboard or waveform workflows in the workflows/ folder.
ComfyUI/custom_nodes/.install_ltx23_motion_models.bat or place the required models manually.workflows/.__init__.py: ComfyUI package entry pointltx_motion_audio_segments.py: custom node implementationsjs/: frontend extensions for dynamic storyboard and waveform nodesworkflows/: workflow JSON filesinstall_ltx23_motion_models.bat: Windows model installermerge_safetensors_shards.py: safetensors merge helperLTX-2.3_Image_To_Video_Motion_Transfer.json: motion-transfer base workflowComfyUI/custom_nodes/LTX-2-3-LipSync.install_ltx23_motion_models.bat if you want the required checkpoint, LoRAs, and Gemma text encoder downloaded into the correct folders.ffmpeg is available if you plan to use segmented-audio or storyboard loop workflows.Place these files in your ComfyUI models directories:
models/checkpoints/ltx-2.3-22b-dev.safetensorsmodels/loras/ltx-2.3-22b-distilled-lora-384.safetensorsmodels/loras/ltx-2.3-22b-ic-lora-motion-track-control-ref0.5.safetensorsmodels/text_encoders/gemma_3_12B_it_fp4_mixed.safetensorsThe workflows use a separate Gemma text encoder. A log such as no CLIP/text encoder weights in checkpoint is expected with this setup.
workflows/geekatplay_studio_ltx_2_3_ia2v_audio_range_lipsync_reimport.json: render from a selected audio rangeworkflows/geekatplay_studio_ltx_2_3_ia2v_segmented_audio_reimport.json: segmented audio lip-sync loop for long audioworkflows/geekatplay_studio_ltx_2_3_ia2v_segmented_audio_first_last_reimport.json: segmented audio with first-frame and last-frame controlworkflows/geekatplay_studio_ltx_2_3_ia2v_storyboard_song_looper_reimport.json: duration-based storyboard song looperworkflows/geekatplay_studio_ltx_2_3_ia2v_storyboard_song_looper_per_image_prompts_reimport.json: storyboard looper with per-image promptsworkflows/geekatplay_studio_ltx_2_3_ia2v_waveform_storyboard_song_looper_reimport.json: waveform-timed storyboard looperworkflows/geekatplay_studio_ltx_2_3_ia2v_waveform_storyboard_song_looper_per_image_prompts_reimport.json: waveform storyboard with per-image promptsworkflows/geekatplay_studio_ltx_2_3_first_last_simple_reimport.json: simple first-frame and last-frame guide setupworkflows/geekatplay_studio_ltx_2_3_first_last_motion_track_reimport.json: motion-track plus first/last guide setupWorkflow selection help is in docs/workflow-guide.md.
geekatplay_studio_ltx_2_3_ia2v_audio_range_lipsync_reimport.json for fast lip-sync testing on a short audio range.geekatplay_studio_ltx_2_3_ia2v_segmented_audio_reimport.json when one image should drive a long full-song or long-dialogue render.geekatplay_studio_ltx_2_3_ia2v_storyboard_song_looper_reimport.json when each image should run for a fixed duration.geekatplay_studio_ltx_2_3_ia2v_waveform_storyboard_song_looper_reimport.json when image changes should align to musical beats or spoken timing.per_image_prompts variants when each storyboard image needs its own text prompt.The main nodes added by this package are:
LTX Motion Storyboard Segment SelectorLTX Motion Waveform Storyboard SelectorLTX Motion Storyboard Prompt SelectorLTX Motion Audio Segment LoopThese nodes are built to work with the included workflows but can also be reused in custom ComfyUI graphs.
no CLIP/text encoder weights in checkpoint is expected.ffmpeg for final segment concatenation.ffmpeg is available.per_image_prompts workflow and confirm the prompt selector is connected to current_segment.Prepared release notes for the current public version are in docs/release-notes-v1.0.0.md.
ffmpeg for final segment merging.This project is released under the MIT License. See LICENSE.
$ claude mcp add LTX-2-3-LipSync \
-- python -m otcore.mcp_server <graph>