Nodes/IAMCCS-nodes/AU+IMG2VID Refresh Policy (legacy alias)
ComfyUI Node

AU+IMG2VID Refresh Policy (legacy alias)

The node that decides how hard to re-anchor each segment to keep identity alive

By IAMCCS·Created 11 months ago·Updated 8 days ago· 113
AU+IMG2VID Refresh Policy (legacy alias)
  • parent_contract
  • linx
  • refresh_payload
  • contract
  • linx
  • apply_refresh
  • segment_role
  • continuity_preset_override
  • first_anchor_strength_effective
  • last_anchor_strength_effective
  • first_lock_slots
  • last_lock_slots
  • end_transition_slots
  • report
planner_payload{}
keyframe_payload{}
segment_policyplanner_driven
continuity_presetlossless_refresh_24fps
reanchor_presetlossless_refresh_24fps
first_anchor_strength0.35
last_anchor_strength0.20
tail_refresh_strength0.30
reanchor_overlap_modefilmic_crossfade

The KeyframeTimeline node decides when to refresh; IAMCCS_AUIMG2VID_RefreshPolicy (legacy alias for Ltx2HelperModules_RefreshPolicy) decides how. Given the planner's segment plan and the keyframe schedule, it works out which refresh strategy each segment uses and how strongly to lock the anchor frames - then hands the result to the ReanchorLatent node as a refresh_payload. It's the tunable middle layer of the anti-drift system.

The single most important input is segment_policy, with four choices:

  • planner_driven (default) - let the upstream planner decide per segment.
  • continuity_only - just trim/blend overlap, no heavy re-anchoring.
  • reanchor_mix - blend continuity with re-anchoring.
  • reanchor_only - force a full re-anchor every segment (heavy, but maximum identity lock).

Around that sit the two presets, continuity_preset and reanchor_preset (each offering the same menu: lossless_refresh_24fps, target_extension_ltx2, videoclip_audio_24fps, monologue_audio_24fps, the cut_bestofk_* variants, etc.). These preset different blend behaviors depending on whether the segment is being treated as a plain continuation or a refresh point.

Then the anchor strengths, which are the knobs that actually change the output:

  • first_anchor_strength (0.35) - how hard the first frame of the reference locks the generation.
  • last_anchor_strength (0.2) - same for the last frame.
  • tail_refresh_strength (0.3) - how strongly the tail of the previous chunk seeds the next.
  • reanchor_overlap_mode - how the anchor region blends (cut, linear_blend, ease_in_out, filmic_crossfade, perceptual_crossfade).

Higher strength = better identity, more "locked down" motion. This is where the tradeoff lives: crank everything to 1.0 and your character stays the same but the video barely moves; drop toward 0.05 and it moves freely but drifts.

The outputs are the verdict for this segment: apply_refresh (boolean - does this segment refresh at all?), segment_role (a string like the resolved role), the effective strengths (first_anchor_strength_effective, last_anchor_strength_effective), and the counts first_lock_slots, last_lock_slots, end_transition_slots that tell downstream how many frames are being locked/transitioned. Wire refresh_payload into the ReanchorLatent node and you're done.

Where it sits: planner → audio timeline → keyframe timeline → refresh policy → re-anchor latent → runtime bridge. It makes the most sense there, because the presets were tuned for that chain - use the custom preset and you're back to setting everything by hand, at which point you should ask whether you need the node at all.

Installing: part of IAMCCS/IAMCCS-nodes - ComfyUI Manager → search "IAMCCS", or cd ComfyUI/custom_nodes && git clone https://github.com/IAMCCS/IAMCCS-nodes.git, restart. No models, no extra deps; it's policy math.

The trap is over-anchoring. New users see drift, set every strength to 0.8, and wonder why the video looks like a slideshow. Start with the defaults, and only raise first_anchor_strength/last_anchor_strength when a specific identity keeps slipping - that's the targeted fix, and it's what these separate strength inputs exist for.

CategoryIAMCCS/Ltx2 Helper Modules

Inputs (11)

NameTypeDefaultDescription
planner_payloadSTRING{}
keyframe_payloadSTRING{}
segment_policyCOMBOplanner_driven4 options: planner_driven, continuity_only, reanchor_mix, reanchor_only
continuity_presetCOMBOlossless_refresh_24fps10 options: custom, target_extension_ltx2, lossless_refresh_24fps, lossless_refresh_strong_24fps, videoclip_audio_24fps, monologue_audio_24fps, +4
reanchor_presetCOMBOlossless_refresh_24fps10 options: custom, target_extension_ltx2, lossless_refresh_24fps, lossless_refresh_strong_24fps, videoclip_audio_24fps, monologue_audio_24fps, +4
first_anchor_strengthFLOAT0.350–1
last_anchor_strengthFLOAT0.200–1
tail_refresh_strengthFLOAT0.300–1
reanchor_overlap_modeCOMBOfilmic_crossfade5 options: cut, linear_blend, ease_in_out, filmic_crossfade, perceptual_crossfade
parent_contractoptIAMCCS_SUPERNODE_CONTRACT
linxoptIAMCCS_SUPERNODE_LINX

Outputs (12)

NameTypeDescription
refresh_payloadSTRING
contractIAMCCS_SUPERNODE_CONTRACT
linxIAMCCS_SUPERNODE_LINX
apply_refreshBOOLEAN
segment_roleSTRING
continuity_preset_overrideSTRING
first_anchor_strength_effectiveFLOAT
last_anchor_strength_effectiveFLOAT
first_lock_slotsINT
last_lock_slotsINT
end_transition_slotsINT
reportSTRING