LTX-2 Inject Reference Into Start Frames ??
Actually get the reference into the conditioning, not just into the graph
- start_images
- reference_image
- start_images
- report
Here's the complaint this node exists to fix, straight from the source code comment: in LTX extension workflows, the model mostly follows the conditioning frames - the images input - and feeding a reference image into an auxiliary or empty-latent slot often has little or no effect on identity. So the "reference" wasn't really being applied. This node fixes that by pushing the reference where the model actually looks: into the start frames themselves.
It's the step-up from IAMCCS_LTX2_ReferenceImageSwitch. The switch picks which image flows; this one splices your reference into the actual conditioning frames of a segment. If you've ever wired a character still into a secondary image slot, watched the character drift anyway, and assumed the model was broken - this is the tool for that exact frustration.
How it works
You feed it the start_images (the conditioning frames, e.g. start_images from the IAMCCS ExtensionModule), a reference_image, and it overwrites or blends the reference into the last K (or first K) frames of that batch.
The controls that matter:
mode-none(passthrough),inject(replace frames outright, strength treated as 1.0), orblend(mix with what's there viablend_strength).frames_to_inject- how many of the conditioning frames get modified (default 1).ramp- when on (default), the strength gradually increases across the injected frames instead of slamming in at full force. That's the difference between a hard cut and a smooth lead-in for the model.position-tail(last K frames, default) orhead(first K frames).
The plumbing is automatic: a batch-1 reference is repeated to match the batch, and it's resized to the start frames' resolution before injection.
Inputs and outputs
start_images- the conditioning frames to modify.mode,blend_strength,frames_to_inject,ramp,position- the injection controls above.reference_image- optional; batch 1 is fine.
Outputs: start_images (the modified conditioning batch) and a report STRING. Same names, same type, so it drops into an existing graph without rewiring - you just insert it between wherever start images come from and wherever they go.
Install
ComfyUI Manager → "IAMCCS", or:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
Restart. Pure image math, no model files.
Gotchas
Start at frames_to_inject: 1 and ramp: true. Injecting a full-strength reference into too many frames at once can over-anchor the segment and freeze the motion - the exact "static I2V" problem LTX users already fight. The tail position is the right default for extension work because it's the region the model is trying to continue from; flip to head only when you're conditioning the start of a fresh clip. And if you see no effect at all, check that mode isn't none - it's the default, deliberately, to keep old workflows untouched.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| start_images | IMAGE | Conditioning frames (e.g. start_images from ExtensionModule) | |
| mode | COMBO | none | none: passthrough | inject: replace frames with reference | blend: mix with existing |
| blend_strength | FLOAT | 1.000–1 | Used for mode=blend (0=no change, 1=full reference). For mode=inject it's treated as 1.0 |
| frames_to_inject | INT | 11–64 | How many conditioning frames to modify |
| ramp | BOOLEAN | true | If true, gradually increases strength across the injected frames |
| position | COMBO | tail | Where to inject (tail=last K frames, head=first K frames) |
| reference_imageopt | IMAGE | Reference image (batch 1 is ok; will be resized to match start_images) |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| start_images | IMAGE | — |
| report | STRING | — |