LingBot EXPERIMENTAL FLF Sampler (Both Endpoints Fixed)
Both ends pinned, fingers crossed — the experimental FLF sampler
- model
- conditioning
- latents
LingBotFLFSampler is the sampler half of the pack's experimental first-and-last-frame mode, and its name tells you exactly what it does: both endpoint latents are hard-pinned during denoising. Your first frame stays frame 0, your last frame stays the final frame, and the model has to invent a plausible path between them. That's a genuinely cool trick - the video equivalent of "give me an interpolation between these two images, but make the in-between physically coherent" - and it's also, to quote the README, a mode LingBot was not trained for. Large endpoint differences can morph, freeze, or jump. Read the FLF prompt-encode article for the full reality check; the short version is: use it when your two endpoints are close cousins of the same subject, not for arbitrary A→B pairs.
The sampler itself is a strict sibling of the TI2V one. Same denoising loop, same CFG options, same LINGBOT_LATENTS output - but it demands conditioning from LingBotFLFPromptEncode and enforces the FLF rules: both first_frame_pixel and last_frame_pixel must be present, and you need at least 5 output frames.
How it works
When it runs, the sampler VAE-encodes both endpoint images from the conditioning into latents, then feeds them as the fixed endpoints (cond_latent and cond_latent_last) into the diffusion pass. Everything between them is free territory for the denoiser - and that's exactly where the model's untrained-ness shows. Two practical consequences:
- The closer your endpoints are in composition, subject, and lighting, the less the model has to invent, and the better the bridge holds. Treat endpoint selection as the primary quality knob.
- The enforced 5-frame minimum exists because a shorter bridge leaves no room for the model to do anything but jump. Even at 5 frames you're asking for a lot of movement in very few steps.
The sampler runs the same validation suite as its siblings: resolution of both conditioned endpoints must match width/height (drift → explicit error telling you to keep the same Generation Settings connections on both nodes), exactly one RGB image per endpoint, and full conditioning keys present.
Inputs and outputs
model, conditioning, width, height, num_frames (min 1, but the FLF check forces ≥5), steps, cfg, shift, seed, plus optional cfg_execution (default sequential_sage; batched modes auto-fallback above 16,384 video tokens or on CUDA OOM - details in the LingBotSampler article). Output: latents → LingBotVAEDecode → VHS save.
Install
Same pack, same commands:
cd ComfyUI/custom_nodes
git clone https://github.com/ALX-CODE/lingbot-video-1.3b-fp8
pip install -r requirements.txt
or ComfyUI Manager → search "LingBot" → restart. The experimental workflow is workflows/lingbot_fp8_flf_experimental.json; remember its Load Image nodes are intentional placeholders - pick both endpoint images before queueing. SageAttention recommended (install a matching build, launch with --use-sage-attention), sequential fallback otherwise.
Gotchas
- Missing image errors at queue time are almost always the placeholder
Load Imagenodes, not this sampler. - "LingBot FLF requires both a first-frame and last-frame conditioning" - you wired TI2V (or plain T2V) conditioning into the FLF sampler, or the prompt node got only one image. Both endpoints are mandatory.
- num_frames < 5 → hard error. FLF needs room to breathe.
- If your output morphs or freezes mid-clip, don't blame the sampler - change the endpoints. This mode's ceiling is set by the model's lack of FLF training, and the pack is honest that it's a best-effort bridge.
- The status line will tell you which CFG mode actually ran and any fallback reason - worth reading on this node, because the batched CFG paths are the newest and least-tested code in the pack.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| model | LINGBOT_MODEL | — | |
| conditioning | LINGBOT_CONDITIONING | — | |
| width | INT | 64016–4096 | — |
| height | INT | 35216–4096 | — |
| num_frames | INT | 731–1001 | — |
| steps | INT | 401–1000 | — |
| cfg | FLOAT | 3.01–30 | — |
| shift | FLOAT | 3.000.01–20 | — |
| seed | INT | 420–18446744073709550000 | — |
| cfg_executionopt | COMBO | sequential_sage | Sequential Sage is the conservative baseline. Batched native computes exact masked B=2 CFG in one pass. Sage-varlen is experimental. All batched modes auto-fallback above 16,384 video tokens or on CUDA OOM. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| latents | LINGBOT_LATENTS | — |