Muse Guide
The Standalone IC-LoRA Encoder That Removes the WhatDreamsCost Dependency
- positive
- negative
- vae
- latent
- guide_data
- motion_guide_data
- model
- positive
- negative
- latent
- model
- latent_downscale_factor
Reference-keyframe conditioning for LTX - the thing that lets a still image or a short clip steer an entire generation - usually means pulling in the whole LTX Director node. MuseGuide is the part of that pipeline pulled out on its own: a standalone encoder that takes guide keyframes and bakes them into LTX conditioning, with optional IC-LoRA support, no WhatDreamsCost dependency anywhere in sight.
The pack credits WhatDreamsCost's LTX Director as the inspiration, and it's a well-known piece of ecosystem history by now - that node's 2.0 overhaul scored nearly 400 upvotes on r/StableDiffusion in mid-2026. Muse's contribution is reimplementing the guide-encoding core as a standalone node you can wire into a vanilla LTX graph. If you've ever wanted Director's reference control without committing to its monolithic workflow, this is the node.
How it works
On the surface it's a pass-through node with attitude: positive and negative conditioning, a vae, and a latent go in, and the same three come back out - but the returned conditioning has your guide keyframes and (optionally) IC-LoRA reference frames folded in, so the sampler sees them as part of the prompt context rather than as separate data it has to reconcile. It also returns a model output (with the IC-LoRA applied, if you set one) and a latent_downscale_factor float you can feed downstream.
The guide_data input is the interesting one - it's a structured bundle (images, strengths, motion-guide segments, MSR reference data) that this node interprets. In a Muse Director workflow the timeline UI generates it; on its own, you build it from whatever produces the pack's guide format. motion_guide_data is the optional sibling that adds reference-video motion conditioning.
The inputs you'll actually set
ic_lora_name/ic_lora_strength- pick an IC-LoRA (e.g. an MSR LoRA likeLTX-2.3-Licon-MSR-V2.safetensors) and it applies it to the returned model. Strength defaults to 1; you can push it negative for "avoid this."scale_by/upscale_method/crop- how guide frames are resized to match the latent.scale_by1 and bicubic are sane defaults; the Director internally uses a 0.5 scale for the half-res Stage 1, which is whereMuseCropGuidescomes in to re-align after the upscale.image_attention_strength(default 1) - how hard the reference frames grab attention in cross-attention. Crank it for identity-lock, back it off for subtle style-only guidance.msr_strength- Licon MSR (Prefix) only; a per-stage override for the reference strength baked intoguide_data['msr']. 0 means "use the Director's value."
The use_tiled_encode / tile_size / tile_overlap trio matters if you're encoding big reference frames on limited VRAM - tiled VAE encoding trades a bit of consistency for a lot of memory headroom.
Installing it
Same pack as the rest:
cd ComfyUI/custom_nodes
git clone https://github.com/muse-collective-26/muse-ltx-timeline
Restart, pip install av torchaudio soundfile, and have the LTX 2.3 stack on hand (22B transformer, both VAEs, Gemma 3 encoder). If you want IC-LoRA working, that's the Lightricks IC-LoRA set in models/loras/.
Gotchas
- This node needs
guide_datain the pack's format. In the wild, that mostly means "feed it from a Muse Director." Using it standalone requires producing that structure yourself. - LTX 2.3's resolution rules still apply to your reference frames - 32-divisible dimensions and the (multiple of 8) + 1 frame rule.
For anyone hand-rolling an LTX 2.3 pipeline, MuseGuide is the cleanest standalone reference encoder in this pack, and MuseCropGuides beside it is the alignment fix you'll want after the upscaler. Together they give you Director-style control with Director's bulk left behind.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| vae | VAE | — | |
| latent | LATENT | — | |
| guide_data | GUIDE_DATA | — | |
| motion_guide_dataopt | MOTION_GUIDE_DATA | — | |
| modelopt | MODEL | — | |
| ic_lora_nameopt | COMBO | None | 2 options: None, put_ic_lora_in_ComfyUI_models_loras |
| ic_lora_strengthopt | FLOAT | 1.00-100–100 | — |
| scale_byopt | FLOAT | 1.000.01–8 | — |
| upscale_methodopt | COMBO | bicubic | 5 options: nearest-exact, bilinear, area, bicubic, bislerp |
| image_attention_strengthopt | FLOAT | 1.000–1 | — |
| cropopt | COMBO | center | 2 options: disabled, center |
| auto_snap_ic_gridopt | BOOLEAN | true | — |
| use_tiled_encodeopt | BOOLEAN | false | — |
| tile_sizeopt | INT | 25664–512 | — |
| tile_overlapopt | INT | 6416–256 | — |
| retake_modeopt | BOOLEAN | false | — |
| msr_strengthopt | FLOAT | 0.000–1 | Licon MSR (Prefix) only. Per-stage override for the reference strength baked into guide_data['msr'] by the Director — 0 means 'use the Director's reference_strength', >0 wins (set it lower on a refinement stage so references hold detail without repainting the opening). |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent | LATENT | — |
| model | MODEL | — |
| latent_downscale_factor | FLOAT | — |