ComfyUI Node
Muse Director V10
Muse Collective LTX Timeline V10 — timeline-driven LTX 2.3 AV Director + Infinite Sampler with segment_override_1..8 text inputs for LLM-driven prompt generation, plus reference_mode/ref_images (character images via timeline panel, no sockets) for a hidden-tail or IC-LoRA-prefix character reference guide reapplied every chunk. Includes a Seed Hunt scouting pass (seed_hunt toggle) and reference-frame latent extension for seamless multi-chunk generation.
Muse Director V10
- model
- clip
- audio_vae
- vae
- spatial_upscaler
- bg_audio
- base_model
- optional_latent
- 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
◄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►
◄auto_chunk_by_segmentfalse►
◄carry_frames73►
◄carry_strength1.00►
◄crossfade_frames0►
◄ic_lora_nameNone►
◄ic_lora_strength1.00►
◄stage1_steps8►
◄stage2_steps4►
◄stage2_denoise0.42►
◄cfg1.0►
◄single_stage_modefalse►
◄seed42►
◄filename_prefixmuse►
◄bg_volume1.00►
◄stage1_samplereuler►
◄guide_scale_by0.50►
◄stage2_samplereuler►
◄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►
◄ghost_anchor_buffer2►
◄enable_ambient_passtrue►
◄automation_start—►
◄automation_end—►
◄automation_duration—►
◄segment_override_1—►
◄segment_override_2—►
◄segment_override_3—►
◄segment_override_4—►
◄segment_override_5—►
◄segment_override_6—►
◄segment_override_7—►
◄segment_override_8—►
◄reference_modeOFF►
◄reference_strength1.00►
◄msr_prefix_frames65►
◄negative_prompt►
◄nag_scale11.0►
◄nag_alpha0.25►
◄nag_tau2.5►
◄nag_bypassfalse►
CategoryMuse Collective
Inputs (92)
| 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 | 5 options: maintain aspect ratio, stretch to fit, crop, pad, pad green |
| 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 | — |
| auto_chunk_by_segment | BOOLEAN | false | When ON, chunk boundaries automatically match your timeline segment boundaries exactly — one chunk per segment, never straddling a segment. chunk_duration_seconds and auto_chunk_threshold are ignored while this is on. When OFF (default), chunking works as before (fixed chunk_duration_seconds, segments may straddle a chunk boundary). |
| 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 | — |
| single_stage_mode | BOOLEAN | false | ON: skip Stage 2 (upscale + refine) entirely and sample once, directly, at full target resolution — stage1_steps becomes the single pass's full step count (raise it accordingly; 8 is a draft-only value meant for the two-stage flow). Seed Hunt is ignored while this is on, since there's no Stage 2 for a scouted candidate to be refined into. |
| seed | INT | 420–18446744073709550000 | — |
| filename_prefix | STRING | muse | — |
| bg_volume | FLOAT | 1.000–2 | — |
| stage1_sampler | COMBO | euler | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
| guide_scale_by | FLOAT | 0.500.01–8 | — |
| stage2_sampler | COMBO | euler | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
| 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 | — |
| ghost_anchor_buffer | INT | 20–20 | Ghost Mask (End) only. Extra empty latent frames inserted between the real visible content and the hidden reference tail, pushing the anchor further from the last visible frames. 2026-07-29/30 debugging found quality degradation (hallucinated overlay content) building up in the final ~6-12 visible frames right before the anchor, on a clip with 0 buffer. Still padding/crop only — never decoded, so raising this costs a little extra compute per chunk but no visible content. |
| enable_ambient_pass | BOOLEAN | true | ON (default): run the second, LoRA-free ambient/SFX audio pass and layer it under the main speech, in both generated-audio and custom-audio modes — needed because the talking-head LoRA suppresses ambient sound in the main pass regardless of audio mode. OFF: skip it entirely (faster; main pass audio only, no separate ambient layer) — useful for testing whether this pass is the source of duplicated/echoed speech in the background, since it does watch the actual talking video as visual context. |
| 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. | |
| optional_latentopt | LATENT | Connect a latent to override the auto-generated empty one for chunk 1 only. Ignored if its shape doesn't match the expected chunk-1 shape, or on chunk 2+. | |
| automation_startopt | FLOAT | Automation (connection-only). Start time in SECONDS. Overrides the panel start when connected. | |
| automation_endopt | FLOAT | Automation (connection-only). End time in SECONDS. When connected (and duration is not), the render length is derived from start..end. | |
| automation_durationopt | FLOAT | Automation (connection-only). Duration in SECONDS. Overrides the panel duration and sets the render length when connected. | |
| 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. | |
| segment_override_5opt | STRING | Overrides segment 4's prompt text if connected and non-empty. | |
| segment_override_6opt | STRING | Overrides segment 5's prompt text if connected and non-empty. | |
| segment_override_7opt | STRING | Overrides segment 6's prompt text if connected and non-empty. | |
| segment_override_8opt | STRING | Overrides segment 7's prompt text if connected and non-empty. | |
| reference_modeopt | COMBO | OFF | OFF: no character-reference guide. Ghost Mask (End): appends the timeline's character-card images + ref_images as hidden guide frames past the end of the clip, then crops them off. Licon MSR (Prefix): real IC-LoRA identity guide injected as a prefix — requires vae connected and ComfyUI-LTXVideo installed; crop downstream with the stock LTXVCropGuides node, not MuseCropGuides. |
| ref_imagesopt | IMAGE | Extra reference image(s) (e.g. an object, not a character) — a single image or a batch. Appended after the timeline's character-card images. | |
| reference_strengthopt | FLOAT | 1.000–5 | Guide strength applied to the character/ref reference images. |
| msr_prefix_framesopt | INT | 659–200 | Licon MSR (Prefix) only. Pixel-frame budget for the reference slideshow, shared across however many identity images + background are provided — more images means less budget per image unless you raise this. Should be 1 + a multiple of 8 (LTX's VAE frame rule); other values get floored to the nearest valid count automatically. |
| negative_promptopt | STRING | Text to steer generation away from (e.g. 'moles, blemishes, skin spots'). Requires comfyui-kjnodes' LTX2_NAG node. Empty = no effect. | |
| nag_scaleopt | FLOAT | 11.00–100 | Strength of the negative-guidance effect. 0 disables NAG entirely. |
| nag_alphaopt | FLOAT | 0.250–1 | — |
| nag_tauopt | FLOAT | 2.50–10 | — |
| nag_bypassopt | BOOLEAN | false | Hard kill-switch — when ON, NAG is never touched at all, regardless of nag_scale or negative_prompt. Checked first, before anything else. |
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 | — |