Nodes/ComfyUI-LTXV-TimeGated-LoRA/LTXV Time-Gated LoRA (LTX 2.3)
ComfyUI Node

LTXV Time-Gated LoRA (LTX 2.3)

Make an LTX 2.3 LoRA appear for one part of the clip — no stitching required

By Jinx138·Created 3 months ago·Updated 27 days ago· 21
LTXV Time-Gated LoRA (LTX 2.3)
  • model
  • video_latent
  • model
  • video_latent
  • schedule_info
  • data
fps24.00
lora_name
strength_model1.00
schedule_modeeffect_region
effect_regionmiddle third
envelope_modelocal
strength_before0.00
strength_during1.00
strength_after0.00
ramp_modeq_curve
q_in1.00
q_out1.00
segment_lengths80,81,80
segment_strengths0,1,0
transition_frames0
memory_modeoptimized_safe

LTX 2.3 is finally good enough that you want to do more with it than one flat style for a whole clip. But every LoRA you load applies at one strength for the entire video, and prompt adherence is still the model's weakest axis - asking a single prompt to deliver "realistic, then claymation in the middle, then realistic again" is a gamble. The old answer was rendering segments separately and stitching them, which is where temporal consistency goes to die.

This node is the alternative: it schedules a visual LTX 2.3 LoRA's strength over the video timeline inside a single continuous sampling run. The demo that ships with it is a clip that starts realistic, turns claymation for the middle third, then snaps back - one render, no cuts. Same trick works for an age-slider reveal (adult → younger → elderly) or for chaining two scheduled LoRAs in one clip.

Know what you're adopting, though. This is from Jinx138's ComfyUI-LTXV-TimeGated-LoRA pack, a young and small one - the author's r/comfyui launch post (June 2026) describes it as their first public custom node and got zero replies. The README and bundled workflows are the documentation, and there's no community lore to fall back on. You're an early adopter, and the reward is a genuinely neat idea.

How it works

The node reads the real video timeline from the video_latent you feed it (LTX 2.3's temporal compression is fixed at 8), builds a per-frame strength envelope, then wraps the model so the LoRA's effective strength equals strength_model × the local envelope value at that point in the clip. Audio LoRA layers are deliberately ignored - this is visual gating only. Multiple instances stack additively, which is how you get a rain LoRA on for one third and a color LoRA on for another.

Placement matters. This patches the model at runtime, so it goes last in the MODEL chain, immediately before the sampler or guider - not in the static LoRA group near the loader. And connect video_latent from the final video-only latent, before any audio/video concat. Feed it a combined AV latent and the timeline math goes wrong.

Inputs you'll actually set

  • lora_name - any visual LTX 2.3 LoRA from your loras folder.
  • strength_model - the global multiplier. Effective strength is this × the envelope. Don't assume 1.0 is the ceiling; the author's own docs say LTX 2.3 LoRAs often want more, and slider/transform LoRAs take signed values.
  • effect_region plus strength_before / strength_during / strength_after - the active interval (quarters, thirds, halves) and the strength on either side. ramp_mode=flat makes a hard step; q_curve with ramp_q softens the transition.
  • schedule_mode=manual_frames swaps the region presets for exact segment_lengths / segment_strengths CSV when you need frame-exact control.

Outputs: model (the patched chain), video_latent (unchanged passthrough so stacked nodes wire cleanly), schedule_info (a string reporting resolved frames, region and warnings - read it when something looks off), and data, the envelope payload that feeds the pack's curve preview.

Install

The pack has zero dependencies (pyproject declares none; it uses ComfyUI's bundled torch/PIL) and no model downloads - the LoRA comes from your existing folder:

cd ComfyUI/custom_nodes
git clone https://github.com/Jinx138/ComfyUI-LTXV-TimeGated-LoRA

Restart ComfyUI and it shows up under LTXV/LoRA. ComfyUI Manager works too - search "LTXV Time-Gated LoRA" in the registry tab.

Where people get burned

  • Effect weak or invisible? With I2V, a strong image anchor suppresses LoRA transformations. Lower the anchor to roughly 0.2–0.5 before blaming the LoRA.
  • Gate is right but the style still bleeds afterward? A real LoRA can shift later video semantics even when the gate itself is temporally correct.
  • "Stale TemporalLoRALinearWrapper" error? Restart ComfyUI before testing again.
  • transition_frames only does anything in manual_frames mode or the transition_frames envelope mode - local/hold_strength modes use the neighbor segment length as the ramp duration.
  • After updating the pack, replace node instances rather than reusing old ones; the v1.1 widget layout shifted.
  • torch.compile isn't supported. SageAttention works, but keep allow_compile=false.
CategoryLTXV/LoRA

Inputs (18)

NameTypeDefaultDescription
modelMODELCompleted LTX 2.3 MODEL chain. Place this node last, immediately before the sampler/guider. Chain additional LTXV Time-Gated LoRA nodes here to combine scheduled visual effects.
video_latentLATENTREQUIRED timing reference: connect the final video-only LATENT after image/FLF conditioning and before AV concatenation. Do not connect an audio+video latent. The unchanged latent is passed through on the output for stacking additional LTXV Time-Gated LoRA nodes.
fpsFLOAT24.001–240Frames per second for envelope data/preview timing. Connect the same FPS value used by Video Combine or your workflow output. It does not change the envelope or sampling.
lora_nameCOMBOVisual LTX 2.3 LoRA to time-shape. Audio LoRA layers are intentionally ignored in the classic visual TimeGate scope.
strength_modelFLOAT1.00-8–8LoRA strength multiplier. Effective patch strength equals lora_strength × the local envelope value. LTX 2.3 LoRAs may require strengths above 1.0; signed values are valid for slider/transform LoRAs.
schedule_modeCOMBOeffect_regioneffect_region uses the v1.1 temporal envelope controls. manual_frames preserves exact CSV segment scheduling and transition_frames crossfades.
effect_regionCOMBOmiddle thirdUsed only in effect_region mode. Select the active interval controlled by strength_during. Neighbor segments are resolved from this region and the video_latent timeline.
envelope_modeCOMBOlocallocal: strength_before and strength_after are stable levels before/after the active region; q_curve uses only the immediate neighbor segments as ramps into/out of strength_during. hold_strength is kept as a compatibility/explicit hold mode. transition_frames: before/during/after zones with boundary crossfades controlled by transition_frames.
strength_beforeFLOAT0.00-8–8Target LoRA envelope level before the active region. In local/hold_strength modes it is held across the earlier timeline; q_curve uses the immediate preceding neighbor segment as the ramp from this value into strength_during.
strength_duringFLOAT1.00-8–8Target LoRA envelope value inside the selected active region.
strength_afterFLOAT0.00-8–8Target LoRA envelope level after the active region. In local/hold_strength modes it is held across the later timeline; q_curve uses the immediate following neighbor segment as the ramp from strength_during down/up to this value.
ramp_modeCOMBOq_curveflat uses hard segment/envelope values. q_curve shapes transitions over the full neighboring segment length; transition_frames is not used by local/hold_strength envelope modes.
q_inFLOAT1.000.01–16Used only by q_curve. Shapes the incoming ramp: strength_before -> strength_during. q=1 linear; q>1 front-loaded; q<1 delayed.
q_outFLOAT1.000.01–16Used only by q_curve. Shapes the outgoing ramp: strength_during -> strength_after. q=1 linear; q>1 front-loaded; q<1 delayed.
segment_lengthsSTRING80,81,80Used only in manual_frames mode. Comma-separated segment lengths in rendered frames; the sum must equal the video length resolved from video_latent.
segment_strengthsSTRING0,1,0Used only in manual_frames mode. Comma-separated multipliers paired with segment_lengths; signed and decimal values are valid, for example 0,-1,1.5.
transition_framesINT00–4096Used only by manual_frames and envelope_mode=transition_frames. Ignored by v1.1 local/hold_strength envelope modes, where the neighboring segment length defines the ramp duration.
memory_modeCOMBOoptimized_safeoptimized_safe is the recommended default. optimized_low_vram_inplace may reduce peak VRAM for long clips or stacked nodes but is experimental; use it only after an OOM in safe mode and compare output stability.

Outputs (4)

NameTypeDescription
modelMODEL
video_latentLATENT
schedule_infoSTRING
dataLTXV_ENVELOPE_DATA