LTX 2.3 Image Guide Manager
The LTX 2.3 guide manager
- image_guides
Every serious LTX 2.3 workflow ends up being two passes: a low-resolution first pass to find the composition, then a high-resolution second pass on the winner. Both passes want the same reference images pinned to the same frames - and if you hand-place those guides twice, you get to debug the moment your low-res and high-res stages disagree. LTX 2.3 Image Guide Manager exists to make that impossible. It owns the image list and the shared timing/strength settings once, and hands a single reusable IMAGE_GUIDES payload to as many Apply nodes as you have stages.
What it does (and doesn't do)
The name is doing honest work: this is a manager, not an encoder. It takes your guide images and the shared settings, bundles them into a payload, and stops there. No VAE, no latent, no conditioning - those happen downstream in the Apply nodes, which is exactly the point. The Manager is where you make decisions once:
fps(default 24),num_frames(default 97), andtiming_mode(frameorseconds) - how guide positions translate to frames. Same8*n + 1rule as the rest of the LTX world: 97, 105, 113, and so on.resize_mode(defaultcontain),pad_color(0,0,0),img_compression(default 35) - how guide images are prepared before encoding.duplicate_policy- what happens if two enabled guides land on the same frame.erroris the default and the safest;offset_nextshoves the later one to the next free frame.global_strength- master multiplier for every guide, plusstart_images_strength(default 0.85) for start sequences. The effective per-guide strength isglobal_strength * per-image strength.lock_start_frames/lock_end_frame- the stronger latent-initialization toggles.
One subtlety that trips people: the Manager's width and height (default 768×512) are only used for preview and aspect-ratio warnings. The actual guide encoding resolution comes from the Apply node you feed the payload into. So you can manage one list and have the low-res Apply stage encode at 384×256 while the high-res stage encodes at 768×512 - which is the whole point of the split.
The output and what it feeds
One output: image_guides (type IMAGE_GUIDES). Wire it into the image_guides input of one or more LTX 2.3 Apply Image Guides nodes. The payload carries the guide list plus every shared setting, so each Apply inherits timing, strength, resize, and lock behavior without you re-entering them.
The editor and its config
The guide UI lives on the node body: add images, position them by frame or seconds, set per-image strength, reorder, enable/disable. Guide sets can be saved and reloaded from the UI, and they're stored under the pack's config/guide_sets/ directory. Configured image folders live in config/folders.json with friendly aliases, so the workflow JSON never embeds an absolute path - good for portability, but it means an alias that doesn't exist on a new machine fails cleanly rather than silently.
Install
Same pack, same trivial install:
cd ComfyUI/custom_nodes
git clone https://github.com/helto4real/comfui-helto-ltx.git
Then restart ComfyUI. Or use ComfyUI Manager and search "comfui-helto-ltx". No extra Python dependencies - it runs on ComfyUI's native LTXV support (comfy_extras.nodes_lt) and nothing else. You still need the LTX 2.3 checkpoint and its VAE yourself.
Gotchas
- The Apply node shows old sockets. ComfyUI can hold stale node-interface data after a schema change; refresh the browser or recreate the node. The Apply node tolerates legacy inputs at runtime so old workflows don't crash while you migrate.
- Thumbnails or image lists look stale. Hit the refresh button in the toolbar, or restart ComfyUI to clear server-side state.
- Loading a saved guide set complains about missing images. Re-add the folder alias - workflows store aliases, not paths, so the alias has to exist in
config/folders.jsonon this machine.
Reach for the Manager + two Apply nodes the moment you're doing low-res-then-high-res or any multi-stage LTX 2.3 work. For a single throwaway pass, the all-in-one node is fewer clicks - but the moment you're iterating on a two-stage upscale, this is the piece that keeps both stages honest.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| fps | FLOAT | 24.001–240 | Frames per second used when timing_mode is seconds. |
| num_frames | INT | 971–16384 | Pixel frame count used for timing, negative frame positions, and internally-created empty latents. Native LTXV lengths must be 8*n + 1, for example 97, 105, 113. |
| timing_mode | COMBO | frame | Interpret manual guide positions as frame indexes or seconds. |
| resize_mode | COMBO | contain | How guide images are resized before VAE encoding. contain/pad preserves aspect ratio with padding. |
| duplicate_policy | COMBO | error | How to handle manual guide images that resolve to the same frame. |
| pad_color | STRING | 0,0,0 | RGB padding color for contain/pad resize mode. Accepts r,g,b or #rrggbb. |
| img_compression | INT | 350–100 | Native LTXV image compression applied before guide encoding. Set 0 to disable. |
| global_strength | FLOAT | 1.000–1 | Multiplier applied to every manual guide strength and start sequence strength. |
| lock_start_frames | BOOLEAN | false | When enabled, frame 0 guides and start_images are written into the beginning video latent instead of only appended as guide references. VAE-level lock, not pixel-perfect copy. |
| lock_end_frame | BOOLEAN | false | When enabled, a manual guide resolving to the final frame is written into the final video latent instead of only appended as a guide reference. VAE-level lock, not pixel-perfect copy. |
| start_images_strength | FLOAT | 0.850–1 | Strength for the optional start image sequence before global_strength is applied. |
| width | INT | 76864–16384 | Preview target width used for aspect-ratio warnings. |
| height | INT | 51264–16384 | Preview target height used for aspect-ratio warnings. |
| guides_json | STRING | {"version":1,"guides":[]} | Hidden serialized guide data used by the custom UI and saved in workflows. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image_guides | IMAGE_GUIDES | — |