Nodes/Muse Collective LTX Timeline/Muse Collective LTX Timeline V3
ComfyUI Node

Muse Collective LTX Timeline V3

Keeping the Same Face Across a Whole Timeline

By muse-collective-26·Created 3 months ago·Updated about a month ago· 8
Muse Collective LTX Timeline V3
  • model
  • clip
  • audio_vae
  • vae
  • spatial_upscaler
  • bg_audio
  • base_model
  • face_reference_image
  • last_chunk_frames
  • audio
  • stage1_frames
  • seed_hunt_preview_1
  • seed_hunt_preview_2
  • seed_hunt_preview_3
  • seed_hunt_preview_4
  • seed_hunt_audio_1
  • seed_hunt_audio_2
  • seed_hunt_audio_3
  • seed_hunt_audio_4
start_second0.00
end_second10.00
duration_seconds10.00
start_frame0
end_frame240
duration_frames240
timeline_data{}
local_prompts
segment_lengths
global_prompt
guide_strength
epsilon0.0010
frame_rate24.00
display_modeseconds
custom_width960
custom_height544
resize_methodmaintain aspect ratio
divisible_by32
img_compression18
generate_audiotrue
custom_audio_onfalse
lipsynctrue
motion_guide_ontrue
chunk_duration_seconds10.0
auto_chunk_threshold10.0
carry_frames73
carry_strength1.00
crossfade_frames0
ic_lora_nameNone
ic_lora_strength1.00
stage1_steps8
stage2_steps4
stage2_denoise0.42
cfg1.0
seed42
filename_prefixmuse
bg_volume1.00
guide_scale_by0.50
guide_scale_by_s21.00
guide_upscale_methodbicubic
guide_image_attn_strength1.00
guide_cropcenter
guide_auto_snap_ic_gridtrue
guide_use_tiled_encodefalse
guide_tile_size256
guide_tile_overlap64
timeline_ui
seed_huntfalse
seed_hunt_steps6
seed_hunt_scale0.25
seed_hunt_11
seed_hunt_22
seed_hunt_33
seed_hunt_44
use_seed_hunt_1false
use_seed_hunt_2false
use_seed_hunt_3false
use_seed_hunt_4false
face_id_enabledfalse
identity_projectorNone
source_id2
phase_scale1.0
id_strength1.0
arcface_modeauto_adjust

The most frustrating part of long-form video generation is that your character is only consistent until they're not. You're five chunks in, the plot's moving, and suddenly the protagonist has a different nose. MuseDirectorSamplerV3 takes V2's director and adds Face ID - a reference-image identity lock that pulls the sampled face toward a real face you provide, chunk after chunk.

V3 is a WIP fork, and the pack is honest about it: V2's full feature set is intact (Seed Hunt included), and the delta is the face machinery. If identity drift is your number-one enemy, this is the version to try.

How Face ID works

The node uses an identity-overlap conditioning pass (under the hood it drives LTX's LTXIdentityOverlapConditioning, the same identity conditioning Lightricks ships for 2.3) to bias the sampled face toward a reference image. The reference goes in through the optional face_reference_image input - and the tooltip gives you the good advice: feed it a close-up face crop, not a full-body shot. The MuseFaceLock node in this same pack exists precisely to produce that crop from any reference image, via SAM3 text-prompted segmentation.

The controls are the required face_id_enabled toggle plus a small cluster of identity knobs:

  • face_id_enabled - master switch. Default off; V3 behaves like V2 when it's off.
  • identity_projector / source_id / arcface_mode - which face-embedding projector pipeline to use and how it reads the reference. Defaults are the sane starting point; changing these is for people who've already seen the defaults fail.
  • phase_scale and id_strength - how hard and at what stage of sampling the identity is pushed. id_strength is your dial: too low and identity drifts anyway, too high and the face starts looking pasted-on and stiff.

The rest of the panel

Since V3 inherits V2, you get the full director: the timeline editor with MAIN/AUDIO/BG AUDIO/MOTION tracks, [SPEECH]/[SOUNDS] tags (uppercase only), Seed Hunt with seed_hunt and the use_seed_hunt_1..4 toggles, chunking (chunk_duration_seconds, carry_frames), and the two-stage sampling (stage1_steps 8, stage2_steps 4, stage2_denoise 0.42, cfg 1). Outputs are last_chunk_frames, audio, stage1_frames, and the four seed-hunt preview/audio pairs.

Installing it

Same pack, same drill:

cd ComfyUI/custom_nodes
git clone https://github.com/muse-collective-26/muse-ltx-timeline

Restart and pip install av torchaudio soundfile. You'll need the LTX 2.3 stack plus the talking-head LoRA if you're doing lipsync. If you want Face ID plus the automatic face crop, add MuseFaceLock - which needs the comfyui_sam3 custom node package, a dependency the README doesn't advertise. The pack loads V3 as a WIP module in a try/except, so a missing dependency won't take the whole pack down, but it will silently skip the node.

Gotchas

  • Face ID is not magic. A close-up reference with good lighting gives you a chance; a mid-shot of a face at an angle gives you a coin flip. Crop tight, crop well.
  • Identity conditioning costs VRAM and time on top of an already-heavy 22B pipeline.
  • V3's Face ID sits alongside V4's Ghost Mask as two different answers to the same problem - V3 locks the face, V4 locks whole-character references across the timeline. If you're fighting full-character drift rather than just faces, V4 is the one.

It's WIP, it's fiddly, and the identity knobs reward tuning. But if you've ever watched a character's face quietly change over a ninety-second clip, you know why this node exists.

CategoryMuse Collective

Inputs (72)

NameTypeDefaultDescription
modelMODEL
clipCLIP
audio_vaeVAE
vaeVAE
spatial_upscalerLATENT_UPSCALE_MODEL
start_secondFLOAT0.000–3600
end_secondFLOAT10.000–3600
duration_secondsFLOAT10.000–3600
start_frameINT00–86400
end_frameINT2400–86400
duration_framesINT2401–86400
timeline_dataSTRING{}
local_promptsSTRING
segment_lengthsSTRING
global_promptSTRING
guide_strengthSTRING
epsilonFLOAT0.00100–1
frame_rateFLOAT24.001–120
display_modeCOMBOseconds2 options: seconds, frames
custom_widthINT96064–4096
custom_heightINT54464–4096
resize_methodCOMBOmaintain aspect ratio4 options: maintain aspect ratio, stretch to fit, crop, pad
divisible_byINT321–256
img_compressionINT180–51
generate_audioBOOLEANtrueLTX generates ambient/sfx audio from [SOUNDS] prompts.
custom_audio_onBOOLEANfalseUse audio file(s) from the AUDIO timeline track.
lipsyncBOOLEANtrueSync mouth movements to custom audio. Requires Custom Audio ON and talking head LoRA.
motion_guide_onBOOLEANtrueUse motion guide segments from the timeline.
chunk_duration_secondsFLOAT10.02–120
auto_chunk_thresholdFLOAT10.00–3600
carry_framesINT731–240Reference frames from previous chunk locked at chunk start. 73 ≈ 3s at 24fps.
carry_strengthFLOAT1.000–1
crossfade_framesINT00–120
ic_lora_nameCOMBONone1 options: None
ic_lora_strengthFLOAT1.00-10–10
stage1_stepsINT81–50
stage2_stepsINT41–50
stage2_denoiseFLOAT0.420–1
cfgFLOAT1.00–20
seedINT420–18446744073709550000
filename_prefixSTRINGmuse
bg_volumeFLOAT1.000–2
guide_scale_byFLOAT0.500.01–8
guide_scale_by_s2FLOAT1.000.01–8
guide_upscale_methodCOMBObicubic5 options: bicubic, bilinear, nearest-exact, area, bislerp
guide_image_attn_strengthFLOAT1.000–1
guide_cropCOMBOcenter2 options: center, disabled
guide_auto_snap_ic_gridBOOLEANtrue
guide_use_tiled_encodeBOOLEANfalse
guide_tile_sizeINT25664–512
guide_tile_overlapINT6416–256
timeline_uiSTRING
seed_huntBOOLEANfalseON + no candidate chosen: run a 4-seed Stage-1-resolution preview instead of the full pipeline. ON + one use_seed_hunt_N chosen: commit to that candidate — Stage 2 refines its actual cached latent instead of regenerating Stage 1 from scratch.
seed_hunt_stepsINT61–50
seed_hunt_scaleFLOAT0.250.05–1Unused as of 1.0.4 — Seed Hunt now scouts at Stage 1's real resolution automatically (so the picked candidate's actual latent can carry forward into Stage 2). Kept as a widget only so older saved workflows still load correctly.
seed_hunt_1INT10–18446744073709550000Unused as of 1.0.4 — scouting now draws a fresh random seed for each candidate every run instead of reusing these fixed values (the actual latent carries forward on commit, so the seed number no longer needs to be fixed or reproducible).
seed_hunt_2INT20–18446744073709550000
seed_hunt_3INT30–18446744073709550000
seed_hunt_4INT40–18446744073709550000
use_seed_hunt_1BOOLEANfalse
use_seed_hunt_2BOOLEANfalse
use_seed_hunt_3BOOLEANfalse
use_seed_hunt_4BOOLEANfalse
face_id_enabledBOOLEANfalsePatches the model at every Stage 1/Stage 2/per-chunk build point so the sampled face is pulled toward face_reference_image. Requires the matching Best-Face-ID LoRA already loaded onto the model input, and ComfyUI-BFSNodes installed. Off = identical to V2.
identity_projectorSTRINGNoneArcFace projector .safetensors filename from models/loras, or 'None' for overlap-only (recommended default — the projector is a weak channel; the overlap latent carries the bulk of identity).
source_idFLOAT20–8
phase_scaleFLOAT1.00–4
id_strengthFLOAT1.00–50
arcface_modeCOMBOauto_adjust3 options: auto_adjust, as_is, disable
bg_audiooptAUDIO
base_modeloptMODELBase model without talking-head LoRA. Connect the UNETLoader output directly here so the ambient audio pass generates sounds without speech.
face_reference_imageoptIMAGEReference face for Face ID (see face_id_enabled). Feed it a close-up face crop — Muse Face Lock can produce one from any reference image automatically.

Outputs (11)

NameTypeDescription
last_chunk_framesIMAGE
audioAUDIO
stage1_framesIMAGE
seed_hunt_preview_1IMAGE
seed_hunt_preview_2IMAGE
seed_hunt_preview_3IMAGE
seed_hunt_preview_4IMAGE
seed_hunt_audio_1AUDIO
seed_hunt_audio_2AUDIO
seed_hunt_audio_3AUDIO
seed_hunt_audio_4AUDIO