LingBot EXPERIMENTAL First + Last Frame Prompt
The experimental bridge between two fixed frames
- model
- first_frame
- last_frame
- conditioning
- structured_json
- expanded_caption
- conditioned_first_frame
- conditioned_last_frame
This node is the "EXPERIMENTAL" in its name, so let's be direct about what you're signing up for. LingBotFLFPromptEncode is the prompt half of the pack's first/last-frame (FLF) mode: you give it an opening image, a closing image, and a sentence describing the motion in between, and it produces conditioning that pins both endpoints. The sampler's job is then to connect them.
The catch, stated plainly in the README: LingBot was not trained for this mode. Dense 1.3B knows how to generate video and how to start from a fixed first frame - it doesn't know how to hit a target last frame. So what you get is a bridge, and how well it holds depends on how close your two endpoints are. The README's exact warning: large endpoint differences can morph, freeze, or jump. If your two images are the same subject in a similar pose, this can be magical. If they're wildly different, you'll get the video equivalent of a JPG morph, and no amount of CFG tuning fixes that.
Reach for it when you have a genuine two-point idea - a character shifting from one expression to another, a camera move between two framings of the same scene - and you're willing to treat the output as a prototype. For reliable "animate from an image" work, use the TI2V path instead.
What it does
The mechanism mirrors LingBotTI2VPromptEncode with a second image bolted on:
- Both
first_frameandlast_frameare center-cropped to the video aspect ratio and normalized. The FLF sampler needs both as latents, so this node encodes the endpoint pixel data into the conditioning (first_frame_pixelandlast_frame_pixel). plaintext_promptis expanded by Qwen into the LingBot JSON - and the tooltip confirms Qwen sees both ordered endpoints during rewriting. It's told to produce "one continuous, physically plausible transition" preserving identity, anatomy, clothing, lighting and scene continuity with no cuts or teleportation. That's the ideal; the model's obedience to it is the experiment.- Everything gets encoded into a
LINGBOT_CONDITIONINGplus the processed endpoint images.
Outputs: conditioning, structured_json, expanded_caption, conditioned_first_frame, and conditioned_last_frame. Note the rule baked into the code: last frame without a first frame is a hard error - this node refuses to produce FLF conditioning with only one endpoint.
Inputs
- first_frame - exact opening frame.
- last_frame - "experimental exact ending-frame target," per the tooltip.
- plaintext_prompt - describe the transition, not the frames. Default: "Create one continuous, physically plausible transition from the supplied first frame to the supplied last frame…"
- structured_json_override - still works; both endpoint images condition Qwen and the sampler regardless.
- duration_seconds, negative_prompt (JSON only), width, height - same roles as the rest of the pack.
Install
Same pack, same dance:
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 FLF workflow is workflows/lingbot_fp8_flf_experimental.json, and like the TI2V one it ships with placeholder Load Image nodes - pick both endpoint images before queueing.
Realistic expectations
Three things to internalize before you spend an afternoon here:
- Endpoints that are too different will fail gracefully but visibly - morphing, freezing, or jumping mid-clip. Iterate on the endpoint pair, not the prompt.
- Minimum 5 output frames is enforced by the FLF sampler; short bridges are where this mode is least silly.
- This is genuinely early - the pack labels it experimental, the model wasn't trained for it, and there's essentially no community mileage on it yet. You're the beta tester. That's fine, but don't build a pipeline on it until you've confirmed it does what your endpoint pairs need.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| model | LINGBOT_MODEL | — | |
| first_frame | IMAGE | Exact opening frame. | |
| last_frame | IMAGE | Experimental exact ending-frame target. | |
| plaintext_prompt | STRING | Create one continuous, physically plausible transition from the supplied first frame to the supplied last frame. Preserve subject identity, anatomy, clothing, objects, lighting, and scene continuity with no cuts or teleportation. | Describe the motion connecting the first image to the last image. Qwen sees both ordered endpoints. |
| structured_json_override | STRING | Optional structured JSON override. Both endpoint images still condition Qwen and the latent sampler. | |
| duration_seconds | FLOAT | 3.00.2–120 | — |
| negative_prompt | STRING | — | |
| width | INT | 64016–4096 | — |
| height | INT | 35216–4096 | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| conditioning | LINGBOT_CONDITIONING | — |
| structured_json | STRING | — |
| expanded_caption | STRING | — |
| conditioned_first_frame | IMAGE | — |
| conditioned_last_frame | IMAGE | — |