Muse Collective LTX Timeline V6 (V2.5 + Ghost Mask)
Ghost Mask With Actual Photo Sockets
- model
- clip
- audio_vae
- vae
- spatial_upscaler
- bg_audio
- base_model
- char_images_1
- char_images_2
- char_images_3
- ref_images
- 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
- reference_image
V4 introduced Ghost Mask but drove it off text descriptions. V6 is the version that says "no, give me the actual photos" - it's V2.5 with CGlide's Ghost Mask character-reference guide ported in, where character reference images come in as real IMAGE sockets on the node. Same hidden-tail latent trick, but the references are graph inputs you can wire from a Load Image node instead of descriptions you type.
That makes V6 the practical pick for most people who want character-consistency without the whole Face ID tuning stack. It's V2.5 (so you keep Seed Hunt and the segment overrides), plus a character-reference system that's easy to understand: wire photos in, they guide every chunk.
How Ghost Mask works here
From the tooltip: when reference_mode is Ghost Mask (End), the node appends char_images_1..3 and ref_images as hidden guide frames past the end of the clip, then crops them off. The sampler attends to them as references, but they never appear in the visible output. It's reapplied every chunk, so the character anchor holds for the whole timeline, not just the opening.
The inputs:
reference_mode-OFForGhost Mask (End). Off = pure V2.5 behavior.char_images_1- character 1's reference image(s); a single image or a batch (multiple angles). This is the "give me several angles of the same character" slot.char_images_2/char_images_3- optional characters 2 and 3.ref_images- extra references, e.g. a prop or object, appended after the character slots.reference_strength- guide strength applied to the character/ref images (0–5, default 1). Push for stronger identity-lock, ease off if the character looks rigid.
Because it's V2.5 underneath, you also get segment_override_1..4 for LLM-driven prompts, Seed Hunt, the timeline editor, [SPEECH]/[SOUNDS] tags, chunking, and the full output set (last_chunk_frames, audio, stage1_frames, seed-hunt previews, reference_image).
How it differs from V4
- V6 takes image sockets; V4 works off
char1_descriptiontext and timeline content. If your reference material is photos on disk, V6 is dramatically more direct. - V6 doesn't carry V3's Face ID cluster. It's Ghost Mask + the V2.5 base. If you want Face ID and Ghost Mask together, that's V4 (or V10).
- The character references are all-or-nothing per mode - no partial enable.
Installing it
Standard pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/muse-collective-26/muse-ltx-timeline
Restart, pip install av torchaudio soundfile, LTX 2.3 stack. No extra dependencies for the Ghost Mask feature itself.
Gotchas
- Batch inputs are the hidden power here - multiple angles of one character in
char_images_1beats a single stiff portrait almost every time. - References are ignored when
reference_modeis OFF; if you wire photos and see nothing change, the mode toggle is your first suspect. - WIP module, try/except-loaded - silent-skip if a dependency fails.
If your goal is "same two characters in every chunk of a long timeline" with the least knob-twiddling, V6 is probably the Muse director you actually want. Wire the photos, set the strength, let the hidden tail do its job.
Inputs (75)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| audio_vae | VAE | — | |
| vae | VAE | — | |
| spatial_upscaler | LATENT_UPSCALE_MODEL | — | |
| start_second | FLOAT | 0.000–3600 | — |
| end_second | FLOAT | 10.000–3600 | — |
| duration_seconds | FLOAT | 10.000–3600 | — |
| start_frame | INT | 00–86400 | — |
| end_frame | INT | 2400–86400 | — |
| duration_frames | INT | 2401–86400 | — |
| timeline_data | STRING | {} | — |
| local_prompts | STRING | — | |
| segment_lengths | STRING | — | |
| global_prompt | STRING | — | |
| guide_strength | STRING | — | |
| epsilon | FLOAT | 0.00100–1 | — |
| frame_rate | FLOAT | 24.001–120 | — |
| display_mode | COMBO | seconds | 2 options: seconds, frames |
| custom_width | INT | 96064–4096 | — |
| custom_height | INT | 54464–4096 | — |
| resize_method | COMBO | maintain aspect ratio | 4 options: maintain aspect ratio, stretch to fit, crop, pad |
| divisible_by | INT | 321–256 | — |
| img_compression | INT | 180–51 | — |
| generate_audio | BOOLEAN | true | LTX generates ambient/sfx audio from [SOUNDS] prompts. |
| custom_audio_on | BOOLEAN | false | Use audio file(s) from the AUDIO timeline track. |
| lipsync | BOOLEAN | true | Sync mouth movements to custom audio. Requires Custom Audio ON and talking head LoRA. |
| motion_guide_on | BOOLEAN | true | Use motion guide segments from the timeline. |
| chunk_duration_seconds | FLOAT | 10.02–120 | — |
| auto_chunk_threshold | FLOAT | 10.00–3600 | — |
| carry_frames | INT | 731–240 | Reference frames from previous chunk locked at chunk start. 73 ≈ 3s at 24fps. |
| carry_strength | FLOAT | 1.000–1 | — |
| crossfade_frames | INT | 00–120 | — |
| ic_lora_name | COMBO | None | 1 options: None |
| ic_lora_strength | FLOAT | 1.00-10–10 | — |
| stage1_steps | INT | 81–50 | — |
| stage2_steps | INT | 41–50 | — |
| stage2_denoise | FLOAT | 0.420–1 | — |
| cfg | FLOAT | 1.00–20 | — |
| seed | INT | 420–18446744073709550000 | — |
| filename_prefix | STRING | muse | — |
| bg_volume | FLOAT | 1.000–2 | — |
| guide_scale_by | FLOAT | 0.500.01–8 | — |
| guide_scale_by_s2 | FLOAT | 1.000.01–8 | — |
| guide_upscale_method | COMBO | bicubic | 5 options: bicubic, bilinear, nearest-exact, area, bislerp |
| guide_image_attn_strength | FLOAT | 1.000–1 | — |
| guide_crop | COMBO | center | 2 options: center, disabled |
| guide_auto_snap_ic_grid | BOOLEAN | true | — |
| guide_use_tiled_encode | BOOLEAN | false | — |
| guide_tile_size | INT | 25664–512 | — |
| guide_tile_overlap | INT | 6416–256 | — |
| timeline_ui | STRING | — | |
| seed_hunt | BOOLEAN | false | ON + 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_steps | INT | 61–50 | — |
| seed_hunt_scale | FLOAT | 0.250.05–1 | Unused 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_1 | INT | 10–18446744073709550000 | Unused 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_2 | INT | 20–18446744073709550000 | — |
| seed_hunt_3 | INT | 30–18446744073709550000 | — |
| seed_hunt_4 | INT | 40–18446744073709550000 | — |
| use_seed_hunt_1 | BOOLEAN | false | — |
| use_seed_hunt_2 | BOOLEAN | false | — |
| use_seed_hunt_3 | BOOLEAN | false | — |
| use_seed_hunt_4 | BOOLEAN | false | — |
| bg_audioopt | AUDIO | — | |
| base_modelopt | MODEL | Base model without talking-head LoRA. Connect the UNETLoader output directly here so the ambient audio pass generates sounds without speech. | |
| segment_override_1opt | STRING | Overrides segment 0's prompt text if connected and non-empty. | |
| segment_override_2opt | STRING | Overrides segment 1's prompt text if connected and non-empty. | |
| segment_override_3opt | STRING | Overrides segment 2's prompt text if connected and non-empty. | |
| segment_override_4opt | STRING | Overrides segment 3's prompt text if connected and non-empty. | |
| reference_modeopt | COMBO | OFF | OFF: no character-reference guide. Ghost Mask (End): appends char_images_1..3/ref_images as hidden guide frames past the end of the clip, then crops them off. |
| char_images_1opt | IMAGE | Character 1 reference image(s) — a single image or a batch (e.g. multiple angles). Ignored when reference_mode is OFF. | |
| char_images_2opt | IMAGE | Character 2 reference image(s) (optional). | |
| char_images_3opt | IMAGE | Character 3 reference image(s) (optional). | |
| ref_imagesopt | IMAGE | Extra reference image(s) (e.g. an object) — a single image or a batch. Appended after the character slots. | |
| reference_strengthopt | FLOAT | 1.000–5 | Guide strength applied to the character/ref reference images. |
Outputs (12)
| Name | Type | Description |
|---|---|---|
| last_chunk_frames | IMAGE | — |
| audio | AUDIO | — |
| stage1_frames | IMAGE | — |
| seed_hunt_preview_1 | IMAGE | — |
| seed_hunt_preview_2 | IMAGE | — |
| seed_hunt_preview_3 | IMAGE | — |
| seed_hunt_preview_4 | IMAGE | — |
| seed_hunt_audio_1 | AUDIO | — |
| seed_hunt_audio_2 | AUDIO | — |
| seed_hunt_audio_3 | AUDIO | — |
| seed_hunt_audio_4 | AUDIO | — |
| reference_image | IMAGE | — |