DiffSynth: LingBot Video Inference
LingBot Video Inference — physics first, and it shows in the settings
- pipe
- input_image
- input_video
- video
Here's the honest pitch for LingBot-Video: it's an Apache 2.0 video model built by an embodied-AI lab to check whether the world behaves correctly in a clip. Sand pours. Water splashes. Reflections line up with the light. It was never tuned for how good the shot looks, its own testers rank it behind Wan on cinematic quality, and it wants a structured caption most people won't hand-write.
If you're here for a physics probe, a robotics-ish test clip, or because Apache 2.0 matters to you, this node is the front door. If you want a beautiful five-second shot, go load Wan.
The required inputs
pipe from the loader, then the usual five. prompt is multiline and, per the loader's design, expects the rewriter's structured output to really sing. seed is a plain integer. num_inference_steps defaults to 40 - higher than the 20–30 you'd see on a distilled video model, because this isn't one. height and width default to 480 and the template runs 480×832, which is the resolution this thing is actually comfortable at.
The optional inputs worth touching
negative_prompt- a real field. At CFG 3 there's an unconditional pass for it to steer, so unlike a guidance-distilled model, this one listens.input_imageandinput_video- both typed IMAGE (a video here is an image batch, the usual ComfyUI convention). Feed one to switch the run from text-to-video into image- or video-conditioned generation.denoising_strength(default 1.0) - how much of the input to destroy at the start. Only meaningful when you've actually wired an input; at 1.0 the input is basically a hint.num_frames- default 81, which at 24fps is a bit over three seconds. This is the single biggest lever on both VRAM and wall-clock time. Halve it before you touch anything else.cfg_scale(3.0) - the pack's default, and a sane starting point for a non-distilled video model. Push it up and you get harder prompt adherence with the usual video-model artifacts; push it down and motion gets looser.sigma_shift(3.0) - the flow-matching schedule shifter. It biases the sampler toward high-noise or low-noise steps, which lands as a motion-versus-detail trade. The default is the Wan-family value and you should leave it there unless you're deliberately experimenting.t_thresh(0.0) andsigma_tail_steps(2) - the tail end of the schedule, where the last couple of steps get handled differently. Set both to their defaults and forget they exist until you're deep in a problem.
Output is a single video of type IMAGE - an image batch, which is what you feed to ComfyUI's video combine nodes or SaveAnimatedWEBP. There is no audio output on this one.
Install
ComfyUI Manager → DiffSynth-ComfyUI → install → restart. Or:
pip install git+https://github.com/modelscope/DiffSynth-Studio.git
cd ComfyUI/custom_nodes && git clone https://github.com/modelscope/DiffSynth-ComfyUI.git
Copy the pack's general_lingbot_video_t2v template from the Template tab rather than wiring it by hand - the processor wiring in particular is easy to get wrong.
Where people get burned
Writing a Wan-style prompt. LingBot wants the structured caption, and the loader exists to produce one. If your output is motionless or ignores half the prompt, that's the first suspect.
Expecting speed from the MoE. On a single card the expert pool stays resident, so the sparse design doesn't buy you much. The dense variant in this pack is the friendlier run.
Long frame counts on a card that barely fits 81. Every extra frame is more latent to hold. Cut frames before you cut steps.
Judging quality against LTX or Wan and concluding it's broken. It's a physics model that the scene mostly adopted as a curiosity. Its clip count in the wild is low for exactly this reason - not because it fails, but because it isn't the model you reach for. It's the one you reach for when you want to know if the water is right.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| pipe | DIFFSYNTH_PIPE | — | |
| prompt | STRING | — | |
| seed | INT | 00–4294967295 | — |
| num_inference_steps | INT | 401–200 | — |
| height | INT | 48064–4096 | — |
| width | INT | 48064–4096 | — |
| negative_promptopt | STRING | — | |
| input_imageopt | IMAGE | — | |
| input_videoopt | IMAGE | — | |
| denoising_strengthopt | FLOAT | 1.00–10000 | — |
| num_framesopt | INT | 811–1000 | — |
| cfg_scaleopt | FLOAT | 3.00–10000 | — |
| sigma_shiftopt | FLOAT | 3.00–10000 | — |
| t_threshopt | FLOAT | 0.00–10000 | — |
| sigma_tail_stepsopt | INT | 20–4294967295 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | IMAGE | — |