Nodes/was-node-suite-comfyui/Video Motion Model Loader
ComfyUI Node Runs on cloud

Video Motion Model Loader

SEA-RAFT weights when texture matching isn't enough

By WASasquatch·Created 4 years ago·Updated a day ago· 1,864
Video Motion Model Loader
    • motion_model
    ◄checkpoint▾►
    ◄iterations4►

    Video Motion ships with a built-in flow estimator that needs no weights at all, and most of the time that is enough. Video Motion Model Loader exists for the times it is not: fast movement, small movement, low-texture surfaces like a plain wall or a shirt, and anything where the classical estimator gives you smeared or confetti-looking motion. It builds a learned optical flow network - SEA-RAFT or FlowSeek - and hands it to Video Motion's motion_model input, which then measures the clip with it.

    Just remember what you are changing: you get a better measurement, not a different output. Video Motion returns the same motion type either way.

    The checkpoints

    checkpoint lists what is on disk first, then the options the pack knows how to fetch:

    • sea_raft_m_spring - the default. Spring is the "real" training variant, 540×960.
    • sea_raft_s_spring - about 1.3× faster, less accurate.
    • sea_raft_m_ct - the general-purpose variant, trained on Tartan-CT.
    • flowseek_t_ct - reads depth as well as colour, about 1.5× slower.

    Two FlowSeek checkpoints exist in the pack's fetch table; the Combo shows the folder contents first, so once you have files on disk they take precedence over the built-ins.

    iterations is the number of refinement passes per frame pair, and it is the honest speed/quality dial: 4 is the default and is the published fast setting, 12 is the published accurate setting at 1.5–2× the cost. If you are chasing an artefact and suspect the flow, move this before you move the checkpoint.

    Output is a single motion_model - the built network, for Video Motion's motion_model socket.

    Getting the weights in place

    Checkpoints live in ComfyUI/models/optical_flow. The pack can fetch the ones it knows about, but only if you opt in: features.network is false out of the box in config.yaml, so a node that cannot find its weights tells you which key it wanted and stops rather than quietly downloading. Set network: true under features: and a listed checkpoint that is not yet on disk is fetched on first use.

    By hand is fine too, and cheaper to reason about. If you drop files in yourself, note that the menu only lists upstream pickles whose filenames start with a recognised prefix (tartan, flowseek_), so other flow networks parked in that shared folder stay out of the list rather than confusing it. After adding files, press R on the canvas - the folder is read when the schema is built, not on every open of the menu.

    One thing to expect if you go the manual route: the pack's own note in docs/MODELS.md is that if the menu reads put a checkpoint in models/optical_flow, that means the folder is empty and fetching is off. It is not a bug, it is the feature doing its job.

    Install

    ComfyUI Manager → search WAS Node Suite v3 → install → restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/WASasquatch/was-node-suite-comfyui.git
    

    ComfyUI 0.14.0+, Python 3.10+. Nothing is pip-installed by the pack - requirements.txt is a single comment and the pack never runs pip on its own. The vendored SEA-RAFT and FlowSeek implementations ship inside the repo, which is why this needs no packages to run once you have weights.

    Is it worth it?

    For a camera sitting still and a subject walking across frame, no. The built-in texture flow handles that, and adding a network just slows the graph down. Reach for the loader when the measurement is visibly wrong - a stabilised shot that still jitters, a motion mask that lights up the whole frame instead of the subject, motion blur streaks pointing the wrong way.

    The one genuinely interesting option is flowseek_t_ct, since it reads depth alongside colour. If your clip has an occluding edge where one surface passes in front of another - the case where motion blur and the motion mask both hardest to get right - a network that sees depth is the only one of the four that has any hope of keeping those two motions apart.

    CategoryWAS Suite/Loaders

    Inputs (2)

    NameTypeDefaultDescription
    checkpointCOMBOWhich weights to build: 'sea_raft_m_spring' = default; 'sea_raft_s_spring' = about 1.3x faster; 'sea_raft_m_ct' = general purpose; 'flowseek_t_ct' = reads depth too, about 1.5x slower. Files already on disk are listed first.
    iterationsINT41–32Refinement passes per frame pair: 4 = default, the published fast setting; 12 = the published accurate setting, 1.5 to 2x slower.

    Outputs (1)

    NameTypeDescription
    motion_modelWAS_MOTION_MODELThe built network, for the motion_model input of Video Motion.