Nodes/LingBot-Video Dense 1.3B FP8/LingBot Prompt Geometry + Duration
ComfyUI Node

LingBot Prompt Geometry + Duration

Prompt geometry without dragging the sampler around

By ALX-CODE·Created 2 months ago·Updated about a month ago· 8
LingBot Prompt Geometry + Duration
    • width
    • height
    • duration_seconds
    width640
    height352
    duration_seconds3.0

    LingBotPromptSettings is the small, focused cousin of LingBotGenerationSettings. Where Generation Settings hands out every sampling knob, this one deals only with the geometry that affects the prompt: width, height, and duration_seconds. Three inputs in, three outputs out, no CFG, no steps, no seed.

    The reason it exists is that those three values are what determine how Qwen expands your plaintext prompt into LingBot's structured JSON. The duration_seconds tooltip is the key sentence: "Only these prompt-dependent values invalidate the Qwen rewrite cache." In other words, change the resolution or the clip length and the prompt rewrite cache stops matching, so the text encoder has to redo its work. Change a sampler-only knob like CFG and it doesn't - the cached rewrite stays valid.

    Why you'd use it instead of Generation Settings

    If your graph has one place where resolution and duration are decided, and you're feeding a prompt-encode node plus a sampler, this node keeps the "prompt side" wiring separate from the "denoise side" wiring. Concretely:

    • Wire this node's width, height, duration_seconds into the LingBotPromptEncode (or TI2V/FLF variant) node.
    • Feed its width and height into the sampler as well, since the sampler must run at the same resolution the prompt was conditioned on.

    The pack checks that conditioning and sampler resolutions match - you'll get a "TI2V resolution changed after prompt encoding" error if they drift. Having one shared geometry source is the cleanest way to never hit that.

    It also runs the same input validation as the bigger settings node: duration must be greater than zero, and the resolution has to pass the model's check_inputs sanity check before you queue.

    What's here

    Inputs:

    • width (default 640, 16–4096, step 16)
    • height (default 352, 16–4096, step 16)
    • duration_seconds (default 3.0, 0.1–120, step 0.1)

    Outputs:

    • width, height, duration_seconds - pass-through scalars ready to fan out to the prompt node and sampler.

    That's the whole node. If you're the kind of person who builds a LingBot graph from scratch rather than editing the published workflows, this is the tidy way to do it. If you're pasting in the example workflows, honestly, you can leave this node alone - the shipped graphs already wire it - and only touch it when you change aspect ratio or clip length.

    Install and gotchas

    It ships inside the pack, so:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ALX-CODE/lingbot-video-1.3b-fp8
    pip install -r requirements.txt
    

    or install via ComfyUI Manager (search "LingBot") and restart. No extra model files are needed for this node itself - the model, text encoder, and FP8 checkpoint belong to the loader.

    One trap worth naming: this node outputs duration_seconds, and the prompt nodes expect exactly that (their tooltip tells you to connect it so Qwen's action timestamps line up with the clip). Don't get clever and feed it a computed frame count instead. Frame-count math - the 4n+1 snap - lives in LingBotGenerationSettings; keep duration and frames on separate wires and you'll be fine. And when you change width, height, or duration here, expect the prompt rewrite to re-run once - that's the cache invalidation working as intended, not a bug.

    CategoryLingBot Video

    Inputs (3)

    NameTypeDefaultDescription
    widthINT64016–4096
    heightINT35216–4096
    duration_secondsFLOAT3.00.1–120Only these prompt-dependent values invalidate the Qwen rewrite cache.

    Outputs (3)

    NameTypeDescription
    widthINT
    heightINT
    duration_secondsFLOAT