GraphVidInteractive Graph-Controllable Video Generation

Vedant Shah♦, Onkar Susladkar♦, Tushar Prakash♣, Kiet A. Nguyen♦, Tianjiao Yu♦,
Adheesh Juvekar♦, Muntasir Wahed♦, Ismini Lourentzou♦
♦PLAN Lab · University of Illinois Urbana-Champaign♣Sony Research India

ECCV 2026

TL;DR

We introduce GraphVid, a framework for controlling image-to-video generation through object interactions. Users edit a graph to specify how objects push, pull, lift, or move relative to one another, guiding coherent multi-object motion.

Intended motion
Intended motion for GraphVid example 1
Interaction graph
Edited interaction graph for GraphVid example 1
GraphVid output

Why Graph-Based Video Control?

Trajectory control is low-level

Dense "literal" paths are hard to author for multi-object scenes, especially under occlusion, overlap, or contact.

Users think in interactions

Many desired motions are naturally relational: one object pushes, follows, lifts, supports, or moves relative to another.

Graphs preserve structure

Directed nodes and edges bind the requested dynamics to the correct entities and interactions.

Abstract

Controllable video generation remains challenging because precise multi-object interactions are difficult to specify using text prompts or motion-control inputs that primarily constrain pixel displacement. Trajectory-based control requires accurate tracks for multiple objects, which scales poorly with scene complexity and becomes ambiguous under occlusion or overlap.

We introduce GraphVid, a graph-conditioned image-to-video generation framework that enables interactive control through structured directed interaction graphs. Starting from a single input frame, GraphVid constructs a scene graph over detected entities, allows users to edit object-level interactions, and translates the edited graph into conditioning tokens for a frozen video diffusion transformer.

To support this paradigm, we curate GraphVid-Bench, an interaction-centric dataset of approximately 27K videos paired with structured relational annotations. Despite using substantially less training data and fewer trainable parameters than prior motion-control methods, GraphVid achieves strong controllability and video quality. Compared with Motion-I2V, it reduces FID by up to 39.9% and FVD by 37.6%, while improving PSNR from 9.87 to 15.98 and SSIM from 0.38 to 0.61.

Contributions

  • Interactive graph-based control. GraphVid enables multi-object image-to-video control through directed interaction scene graphs constructed from a single image, replacing dense trajectory authoring with intuitive object-level interaction edits.
  • Edge-Aware Graph Reasoning. A GINEConv-based graph module injects directed edge semantics into message passing so that node representations capture both object identity and interaction-driven dynamics.
  • Parameter-efficient graph-to-video adaptation. A lightweight graph-to-token adapter and LoRA modules condition a frozen LTX-Video 2B backbone and frozen VAE while preserving pretrained generative priors.
  • GraphVid-Bench and efficient performance. We curate approximately 27K interaction-centric clips with structured graphs. GraphVid uses 0.6B trainable parameters and achieves the fastest inference among the compared methods at 200 seconds.

GraphVid Method

GraphVid is a controllable image-to-video framework that interfaces a structured directed interaction graph with a pretrained LTX-Video 2B diffusion transformer. Each node represents a detected entity, and each directed edge describes how one entity influences another. Unary actions such as rotate, move, or scale are represented as self-loop edges. The LTX DiT and VAE remain frozen; GraphVid trains only the Edge-Aware GNN, graph-to-video adapter, and LoRA modules.

GraphVid method overview
Loading...

GraphVid overview. Objects are detected from the input image and encoded into node embeddings. An MLLM extracts relational edges to construct an initial interaction graph. Users edit interactions through the image interface, and the resulting graph is converted into conditioning tokens that guide the frozen video diffusion transformer.

Node representations. Qwen3-VL detects objects and provides an 8192-dimensional visual embedding from mean and max pooling over each object crop. A 2560-dimensional text embedding of the object label and four normalized bounding-box coordinates are concatenated to form a 10,756-dimensional node feature.

Edge representations. Each directed edge contains an open-vocabulary textual description of the intended interaction. Qwen3-Embedding encodes this description into a 2560-dimensional edge feature.

Edge-aware graph reasoning. Node and edge features are projected to a shared 512-dimensional hidden space and processed using GINEConv layers, which inject semantic edge attributes directly into message passing.

Graph-to-video conditioning. Interaction-aware node embeddings are mapped through a three-layer MLP into 4096-dimensional LTX conditioning tokens. LoRA modules of rank 128 are inserted into the transformer's attention projections, while the original DiT and VAE weights remain frozen.

GraphVid edge-aware graph reasoning module
Loading...
GraphVid teaser figure showing image input, graph construction, graph editing, and graph-conditioned generated video
Loading...

GraphVid interactive control pipeline. Starting from an input frame, GraphVid constructs a scene graph over detected entities and their interactions. Users indirectly modify the graph by interacting with our interface to specify desired relational dynamics. The edited interaction graph is then translated into conditioning tokens that guide a frozen video diffusion backbone to generate a coherent video sequence.

GraphVid-Bench Dataset

GraphVid-Bench pairs interaction-centric videos with directed scene graphs. Nodes represent scene entities, while edges encode the type, direction, and textual context of interactions that influence scene dynamics.

The dataset contains 27,504 curated clips drawn from WISA-80K, Something-Something v2, and MagicData. Clips are standardized to 512 × 288, 81 frames, and 16 FPS. Dynamic letterboxing preserves aspect ratio, and motion-energy windowing selects the most interaction-active segment.

Graph Statistic Mean Median Std.
Nodes / Graph 7.76 5.0 8.03
Edges / Graph 4.85 4.0 3.46
Interaction Complexity Number of Clips
No explicit interaction 3,881
Single interaction 10,982
Multi-interaction 12,641

Which interactions occur together?

holdingpushingsupportingpullingliftingrotatingcollidingrestingpressingcompressingslidingstandingreflectingmovingreachingplacingrollingfallingswimmingwalkingholdingholding · holding: approximately 10.6 log(count + 1)holding · pushing: approximately 9.4 log(count + 1)holding · supporting: approximately 9.1 log(count + 1)holding · pulling: approximately 7.7 log(count + 1)holding · lifting: approximately 7.2 log(count + 1)holding · rotating: approximately 7.2 log(count + 1)holding · colliding: approximately 6.3 log(count + 1)holding · resting: approximately 6.6 log(count + 1)holding · pressing: approximately 6.6 log(count + 1)holding · compressing: approximately 6.3 log(count + 1)holding · sliding: approximately 6 log(count + 1)holding · standing: approximately 6.2 log(count + 1)holding · reflecting: approximately 6 log(count + 1)holding · moving: approximately 5.9 log(count + 1)holding · reaching: approximately 5.9 log(count + 1)holding · placing: approximately 5.7 log(count + 1)holding · rolling: approximately 5.1 log(count + 1)holding · falling: approximately 4.8 log(count + 1)holding · swimming: approximately 4.4 log(count + 1)holding · walking: approximately 5.3 log(count + 1)pushingpushing · holding: approximately 9.4 log(count + 1)pushing · pushing: approximately 10.4 log(count + 1)pushing · supporting: approximately 9.1 log(count + 1)pushing · pulling: approximately 7.6 log(count + 1)pushing · lifting: approximately 7.1 log(count + 1)pushing · rotating: approximately 6.9 log(count + 1)pushing · colliding: approximately 6.5 log(count + 1)pushing · resting: approximately 6.7 log(count + 1)pushing · pressing: approximately 6.4 log(count + 1)pushing · compressing: approximately 6.2 log(count + 1)pushing · sliding: approximately 6.3 log(count + 1)pushing · standing: approximately 5.7 log(count + 1)pushing · reflecting: approximately 5.9 log(count + 1)pushing · moving: approximately 5.8 log(count + 1)pushing · reaching: approximately 5.9 log(count + 1)pushing · placing: approximately 5.7 log(count + 1)pushing · rolling: approximately 5.4 log(count + 1)pushing · falling: approximately 4.9 log(count + 1)pushing · swimming: approximately 4.4 log(count + 1)pushing · walking: approximately 5 log(count + 1)supportingsupporting · holding: approximately 9.1 log(count + 1)supporting · pushing: approximately 9.1 log(count + 1)supporting · supporting: approximately 10 log(count + 1)supporting · pulling: approximately 7.3 log(count + 1)supporting · lifting: approximately 7 log(count + 1)supporting · rotating: approximately 6.7 log(count + 1)supporting · colliding: approximately 6.2 log(count + 1)supporting · resting: approximately 6.4 log(count + 1)supporting · pressing: approximately 6.3 log(count + 1)supporting · compressing: approximately 6 log(count + 1)supporting · sliding: approximately 5.9 log(count + 1)supporting · standing: approximately 5.6 log(count + 1)supporting · reflecting: approximately 5.7 log(count + 1)supporting · moving: approximately 5.6 log(count + 1)supporting · reaching: approximately 5.7 log(count + 1)supporting · placing: approximately 5.5 log(count + 1)supporting · rolling: approximately 5.2 log(count + 1)supporting · falling: approximately 4.6 log(count + 1)supporting · swimming: approximately 4.4 log(count + 1)supporting · walking: approximately 5.2 log(count + 1)pullingpulling · holding: approximately 7.7 log(count + 1)pulling · pushing: approximately 7.6 log(count + 1)pulling · supporting: approximately 7.3 log(count + 1)pulling · pulling: approximately 8.4 log(count + 1)pulling · lifting: approximately 4.9 log(count + 1)pulling · rotating: approximately 4.8 log(count + 1)pulling · colliding: approximately 4.1 log(count + 1)pulling · resting: approximately 4.7 log(count + 1)pulling · pressing: approximately 4.5 log(count + 1)pulling · compressing: approximately 4.3 log(count + 1)pulling · sliding: approximately 4.5 log(count + 1)pulling · standing: approximately 4.1 log(count + 1)pulling · reflecting: approximately 3.2 log(count + 1)pulling · moving: approximately 4 log(count + 1)pulling · reaching: approximately 4.4 log(count + 1)pulling · placing: approximately 3 log(count + 1)pulling · rolling: approximately 2.5 log(count + 1)pulling · falling: approximately 2.7 log(count + 1)pulling · swimming: approximately 2.1 log(count + 1)pulling · walking: approximately 3 log(count + 1)liftinglifting · holding: approximately 7.2 log(count + 1)lifting · pushing: approximately 7.1 log(count + 1)lifting · supporting: approximately 7 log(count + 1)lifting · pulling: approximately 4.9 log(count + 1)lifting · lifting: approximately 7.9 log(count + 1)lifting · rotating: approximately 3.8 log(count + 1)lifting · colliding: approximately 3.6 log(count + 1)lifting · resting: approximately 4.8 log(count + 1)lifting · pressing: approximately 3.9 log(count + 1)lifting · compressing: approximately 3.5 log(count + 1)lifting · sliding: approximately 3.6 log(count + 1)lifting · standing: approximately 3.7 log(count + 1)lifting · reflecting: approximately 2.1 log(count + 1)lifting · moving: approximately 3.6 log(count + 1)lifting · reaching: approximately 4.2 log(count + 1)lifting · placing: approximately 3.1 log(count + 1)lifting · rolling: approximately 1.4 log(count + 1)lifting · falling: approximately 2.5 log(count + 1)lifting · swimming: approximately 1.9 log(count + 1)lifting · walking: approximately 1.4 log(count + 1)rotatingrotating · holding: approximately 7.2 log(count + 1)rotating · pushing: approximately 6.9 log(count + 1)rotating · supporting: approximately 6.7 log(count + 1)rotating · pulling: approximately 4.8 log(count + 1)rotating · lifting: approximately 3.8 log(count + 1)rotating · rotating: approximately 7.7 log(count + 1)rotating · colliding: approximately 3.6 log(count + 1)rotating · resting: approximately 4.1 log(count + 1)rotating · pressing: approximately 4 log(count + 1)rotating · compressing: approximately 4 log(count + 1)rotating · sliding: approximately 3.4 log(count + 1)rotating · standing: approximately 3.5 log(count + 1)rotating · reflecting: approximately 3.5 log(count + 1)rotating · moving: approximately 3.7 log(count + 1)rotating · reaching: approximately 3.8 log(count + 1)rotating · placing: approximately 2.3 log(count + 1)rotating · rolling: approximately 2.2 log(count + 1)rotating · falling: approximately 1.6 log(count + 1)rotating · swimming: approximately 0 log(count + 1)rotating · walking: approximately 1.1 log(count + 1)collidingcolliding · holding: approximately 6.3 log(count + 1)colliding · pushing: approximately 6.5 log(count + 1)colliding · supporting: approximately 6.2 log(count + 1)colliding · pulling: approximately 4.1 log(count + 1)colliding · lifting: approximately 3.6 log(count + 1)colliding · rotating: approximately 3.6 log(count + 1)colliding · colliding: approximately 7.6 log(count + 1)colliding · resting: approximately 3.7 log(count + 1)colliding · pressing: approximately 3 log(count + 1)colliding · compressing: approximately 3 log(count + 1)colliding · sliding: approximately 3.2 log(count + 1)colliding · standing: approximately 3.1 log(count + 1)colliding · reflecting: approximately 1.4 log(count + 1)colliding · moving: approximately 2.6 log(count + 1)colliding · reaching: approximately 3 log(count + 1)colliding · placing: approximately 3.1 log(count + 1)colliding · rolling: approximately 3.4 log(count + 1)colliding · falling: approximately 3.3 log(count + 1)colliding · swimming: approximately 1.4 log(count + 1)colliding · walking: approximately 1.1 log(count + 1)restingresting · holding: approximately 6.6 log(count + 1)resting · pushing: approximately 6.7 log(count + 1)resting · supporting: approximately 6.4 log(count + 1)resting · pulling: approximately 4.7 log(count + 1)resting · lifting: approximately 4.8 log(count + 1)resting · rotating: approximately 4.1 log(count + 1)resting · colliding: approximately 3.7 log(count + 1)resting · resting: approximately 7.2 log(count + 1)resting · pressing: approximately 4 log(count + 1)resting · compressing: approximately 3.5 log(count + 1)resting · sliding: approximately 3.7 log(count + 1)resting · standing: approximately 3 log(count + 1)resting · reflecting: approximately 3 log(count + 1)resting · moving: approximately 3.3 log(count + 1)resting · reaching: approximately 3 log(count + 1)resting · placing: approximately 4.1 log(count + 1)resting · rolling: approximately 2.9 log(count + 1)resting · falling: approximately 2.4 log(count + 1)resting · swimming: approximately 1.1 log(count + 1)resting · walking: approximately 2.5 log(count + 1)pressingpressing · holding: approximately 6.6 log(count + 1)pressing · pushing: approximately 6.4 log(count + 1)pressing · supporting: approximately 6.3 log(count + 1)pressing · pulling: approximately 4.5 log(count + 1)pressing · lifting: approximately 3.9 log(count + 1)pressing · rotating: approximately 4 log(count + 1)pressing · colliding: approximately 3 log(count + 1)pressing · resting: approximately 4 log(count + 1)pressing · pressing: approximately 7.2 log(count + 1)pressing · compressing: approximately 4.3 log(count + 1)pressing · sliding: approximately 3.2 log(count + 1)pressing · standing: approximately 2.6 log(count + 1)pressing · reflecting: approximately 1.9 log(count + 1)pressing · moving: approximately 3 log(count + 1)pressing · reaching: approximately 3.2 log(count + 1)pressing · placing: approximately 2.5 log(count + 1)pressing · rolling: approximately 2.5 log(count + 1)pressing · falling: approximately 2.2 log(count + 1)pressing · swimming: approximately 2.4 log(count + 1)pressing · walking: approximately 2.4 log(count + 1)compressingcompressing · holding: approximately 6.3 log(count + 1)compressing · pushing: approximately 6.2 log(count + 1)compressing · supporting: approximately 6 log(count + 1)compressing · pulling: approximately 4.3 log(count + 1)compressing · lifting: approximately 3.5 log(count + 1)compressing · rotating: approximately 4 log(count + 1)compressing · colliding: approximately 3 log(count + 1)compressing · resting: approximately 3.5 log(count + 1)compressing · pressing: approximately 4.3 log(count + 1)compressing · compressing: approximately 6.9 log(count + 1)compressing · sliding: approximately 2.3 log(count + 1)compressing · standing: approximately 2.5 log(count + 1)compressing · reflecting: approximately 2.1 log(count + 1)compressing · moving: approximately 3.3 log(count + 1)compressing · reaching: approximately 3 log(count + 1)compressing · placing: approximately 1.9 log(count + 1)compressing · rolling: approximately 2.4 log(count + 1)compressing · falling: approximately 1.9 log(count + 1)compressing · swimming: approximately 1.1 log(count + 1)compressing · walking: approximately 2.5 log(count + 1)slidingsliding · holding: approximately 6 log(count + 1)sliding · pushing: approximately 6.3 log(count + 1)sliding · supporting: approximately 5.9 log(count + 1)sliding · pulling: approximately 4.5 log(count + 1)sliding · lifting: approximately 3.6 log(count + 1)sliding · rotating: approximately 3.4 log(count + 1)sliding · colliding: approximately 3.2 log(count + 1)sliding · resting: approximately 3.7 log(count + 1)sliding · pressing: approximately 3.2 log(count + 1)sliding · compressing: approximately 2.3 log(count + 1)sliding · sliding: approximately 6.9 log(count + 1)sliding · standing: approximately 2.4 log(count + 1)sliding · reflecting: approximately 1.6 log(count + 1)sliding · moving: approximately 2.6 log(count + 1)sliding · reaching: approximately 2.6 log(count + 1)sliding · placing: approximately 2.4 log(count + 1)sliding · rolling: approximately 1.8 log(count + 1)sliding · falling: approximately 1.8 log(count + 1)sliding · swimming: approximately 0.7 log(count + 1)sliding · walking: approximately 1.4 log(count + 1)standingstanding · holding: approximately 6.2 log(count + 1)standing · pushing: approximately 5.7 log(count + 1)standing · supporting: approximately 5.6 log(count + 1)standing · pulling: approximately 4.1 log(count + 1)standing · lifting: approximately 3.7 log(count + 1)standing · rotating: approximately 3.5 log(count + 1)standing · colliding: approximately 3.1 log(count + 1)standing · resting: approximately 3 log(count + 1)standing · pressing: approximately 2.6 log(count + 1)standing · compressing: approximately 2.5 log(count + 1)standing · sliding: approximately 2.4 log(count + 1)standing · standing: approximately 6.8 log(count + 1)standing · reflecting: approximately 3.8 log(count + 1)standing · moving: approximately 3 log(count + 1)standing · reaching: approximately 1.8 log(count + 1)standing · placing: approximately 1.4 log(count + 1)standing · rolling: approximately 1.9 log(count + 1)standing · falling: approximately 1.1 log(count + 1)standing · swimming: approximately 2.1 log(count + 1)standing · walking: approximately 2.8 log(count + 1)reflectingreflecting · holding: approximately 6 log(count + 1)reflecting · pushing: approximately 5.9 log(count + 1)reflecting · supporting: approximately 5.7 log(count + 1)reflecting · pulling: approximately 3.2 log(count + 1)reflecting · lifting: approximately 2.1 log(count + 1)reflecting · rotating: approximately 3.5 log(count + 1)reflecting · colliding: approximately 1.4 log(count + 1)reflecting · resting: approximately 3 log(count + 1)reflecting · pressing: approximately 1.9 log(count + 1)reflecting · compressing: approximately 2.1 log(count + 1)reflecting · sliding: approximately 1.6 log(count + 1)reflecting · standing: approximately 3.8 log(count + 1)reflecting · reflecting: approximately 6.7 log(count + 1)reflecting · moving: approximately 2.1 log(count + 1)reflecting · reaching: approximately 1.1 log(count + 1)reflecting · placing: approximately 0 log(count + 1)reflecting · rolling: approximately 0.7 log(count + 1)reflecting · falling: approximately 1.8 log(count + 1)reflecting · swimming: approximately 1.1 log(count + 1)reflecting · walking: approximately 2.3 log(count + 1)movingmoving · holding: approximately 5.9 log(count + 1)moving · pushing: approximately 5.8 log(count + 1)moving · supporting: approximately 5.6 log(count + 1)moving · pulling: approximately 4 log(count + 1)moving · lifting: approximately 3.6 log(count + 1)moving · rotating: approximately 3.7 log(count + 1)moving · colliding: approximately 2.6 log(count + 1)moving · resting: approximately 3.3 log(count + 1)moving · pressing: approximately 3 log(count + 1)moving · compressing: approximately 3.3 log(count + 1)moving · sliding: approximately 2.6 log(count + 1)moving · standing: approximately 3 log(count + 1)moving · reflecting: approximately 2.1 log(count + 1)moving · moving: approximately 6.5 log(count + 1)moving · reaching: approximately 2.1 log(count + 1)moving · placing: approximately 1.4 log(count + 1)moving · rolling: approximately 1.8 log(count + 1)moving · falling: approximately 1.9 log(count + 1)moving · swimming: approximately 1.1 log(count + 1)moving · walking: approximately 2.1 log(count + 1)reachingreaching · holding: approximately 5.9 log(count + 1)reaching · pushing: approximately 5.9 log(count + 1)reaching · supporting: approximately 5.7 log(count + 1)reaching · pulling: approximately 4.4 log(count + 1)reaching · lifting: approximately 4.2 log(count + 1)reaching · rotating: approximately 3.8 log(count + 1)reaching · colliding: approximately 3 log(count + 1)reaching · resting: approximately 3 log(count + 1)reaching · pressing: approximately 3.2 log(count + 1)reaching · compressing: approximately 3 log(count + 1)reaching · sliding: approximately 2.6 log(count + 1)reaching · standing: approximately 1.8 log(count + 1)reaching · reflecting: approximately 1.1 log(count + 1)reaching · moving: approximately 2.1 log(count + 1)reaching · reaching: approximately 6.4 log(count + 1)reaching · placing: approximately 2.4 log(count + 1)reaching · rolling: approximately 0.7 log(count + 1)reaching · falling: approximately 1.6 log(count + 1)reaching · swimming: approximately 0.7 log(count + 1)reaching · walking: approximately 1.4 log(count + 1)placingplacing · holding: approximately 5.7 log(count + 1)placing · pushing: approximately 5.7 log(count + 1)placing · supporting: approximately 5.5 log(count + 1)placing · pulling: approximately 3 log(count + 1)placing · lifting: approximately 3.1 log(count + 1)placing · rotating: approximately 2.3 log(count + 1)placing · colliding: approximately 3.1 log(count + 1)placing · resting: approximately 4.1 log(count + 1)placing · pressing: approximately 2.5 log(count + 1)placing · compressing: approximately 1.9 log(count + 1)placing · sliding: approximately 2.4 log(count + 1)placing · standing: approximately 1.4 log(count + 1)placing · reflecting: approximately 0 log(count + 1)placing · moving: approximately 1.4 log(count + 1)placing · reaching: approximately 2.4 log(count + 1)placing · placing: approximately 6.3 log(count + 1)placing · rolling: approximately 0.7 log(count + 1)placing · falling: approximately 1.4 log(count + 1)placing · swimming: approximately 0 log(count + 1)placing · walking: approximately 0.7 log(count + 1)rollingrolling · holding: approximately 5.1 log(count + 1)rolling · pushing: approximately 5.4 log(count + 1)rolling · supporting: approximately 5.2 log(count + 1)rolling · pulling: approximately 2.5 log(count + 1)rolling · lifting: approximately 1.4 log(count + 1)rolling · rotating: approximately 2.2 log(count + 1)rolling · colliding: approximately 3.4 log(count + 1)rolling · resting: approximately 2.9 log(count + 1)rolling · pressing: approximately 2.5 log(count + 1)rolling · compressing: approximately 2.4 log(count + 1)rolling · sliding: approximately 1.8 log(count + 1)rolling · standing: approximately 1.9 log(count + 1)rolling · reflecting: approximately 0.7 log(count + 1)rolling · moving: approximately 1.8 log(count + 1)rolling · reaching: approximately 0.7 log(count + 1)rolling · placing: approximately 0.7 log(count + 1)rolling · rolling: approximately 6.3 log(count + 1)rolling · falling: approximately 1.4 log(count + 1)rolling · swimming: approximately 0 log(count + 1)rolling · walking: approximately 0 log(count + 1)fallingfalling · holding: approximately 4.8 log(count + 1)falling · pushing: approximately 4.9 log(count + 1)falling · supporting: approximately 4.6 log(count + 1)falling · pulling: approximately 2.7 log(count + 1)falling · lifting: approximately 2.5 log(count + 1)falling · rotating: approximately 1.6 log(count + 1)falling · colliding: approximately 3.3 log(count + 1)falling · resting: approximately 2.4 log(count + 1)falling · pressing: approximately 2.2 log(count + 1)falling · compressing: approximately 1.9 log(count + 1)falling · sliding: approximately 1.8 log(count + 1)falling · standing: approximately 1.1 log(count + 1)falling · reflecting: approximately 1.8 log(count + 1)falling · moving: approximately 1.9 log(count + 1)falling · reaching: approximately 1.6 log(count + 1)falling · placing: approximately 1.4 log(count + 1)falling · rolling: approximately 1.4 log(count + 1)falling · falling: approximately 6.3 log(count + 1)falling · swimming: approximately 0.7 log(count + 1)falling · walking: approximately 0.7 log(count + 1)swimmingswimming · holding: approximately 4.4 log(count + 1)swimming · pushing: approximately 4.4 log(count + 1)swimming · supporting: approximately 4.4 log(count + 1)swimming · pulling: approximately 2.1 log(count + 1)swimming · lifting: approximately 1.9 log(count + 1)swimming · rotating: approximately 0 log(count + 1)swimming · colliding: approximately 1.4 log(count + 1)swimming · resting: approximately 1.1 log(count + 1)swimming · pressing: approximately 2.4 log(count + 1)swimming · compressing: approximately 1.1 log(count + 1)swimming · sliding: approximately 0.7 log(count + 1)swimming · standing: approximately 2.1 log(count + 1)swimming · reflecting: approximately 1.1 log(count + 1)swimming · moving: approximately 1.1 log(count + 1)swimming · reaching: approximately 0.7 log(count + 1)swimming · placing: approximately 0 log(count + 1)swimming · rolling: approximately 0 log(count + 1)swimming · falling: approximately 0.7 log(count + 1)swimming · swimming: approximately 6.1 log(count + 1)swimming · walking: approximately 1.8 log(count + 1)walkingwalking · holding: approximately 5.3 log(count + 1)walking · pushing: approximately 5 log(count + 1)walking · supporting: approximately 5.2 log(count + 1)walking · pulling: approximately 3 log(count + 1)walking · lifting: approximately 1.4 log(count + 1)walking · rotating: approximately 1.1 log(count + 1)walking · colliding: approximately 1.1 log(count + 1)walking · resting: approximately 2.5 log(count + 1)walking · pressing: approximately 2.4 log(count + 1)walking · compressing: approximately 2.5 log(count + 1)walking · sliding: approximately 1.4 log(count + 1)walking · standing: approximately 2.8 log(count + 1)walking · reflecting: approximately 2.3 log(count + 1)walking · moving: approximately 2.1 log(count + 1)walking · reaching: approximately 1.4 log(count + 1)walking · placing: approximately 0.7 log(count + 1)walking · rolling: approximately 0 log(count + 1)walking · falling: approximately 0.7 log(count + 1)walking · swimming: approximately 1.8 log(count + 1)walking · walking: approximately 6 log(count + 1)02.755.58.2511log(count + 1)

GraphVideoCorpus interaction counts

Annotated occurrences
011250225003375045000HoldingHolding · Annotated occurrences: 4046640466PushingPushing · Annotated occurrences: 3284932849SupportingSupporting · Annotated occurrences: 2186421864PullingPulling · Annotated occurrences: 42814281LiftingLifting · Annotated occurrences: 26512651RotatingRotating · Annotated occurrences: 22682268CollidingColliding · Annotated occurrences: 20352035RestingResting · Annotated occurrences: 13931393PressingPressing · Annotated occurrences: 12511251CompressingCompressing · Annotated occurrences: 987987SlidingSliding · Annotated occurrences: 945945StandingStanding · Annotated occurrences: 866866ReflectingReflecting · Annotated occurrences: 813813MovingMoving · Annotated occurrences: 690690ReachingReaching · Annotated occurrences: 625625PlacingPlacing · Annotated occurrences: 581581RollingRolling · Annotated occurrences: 561561FallingFalling · Annotated occurrences: 554554SwimmingSwimming · Annotated occurrences: 455455WalkingWalking · Annotated occurrences: 437437Interaction count

Interaction statistics. GraphVid-Bench covers force and manipulation, kinematics and motion, physical contact, and support and position relations. Co-occurrence statistics show that real-world dynamics often combine multiple interaction primitives, motivating graph-structured video control.

Quantitative Results

GraphVid is evaluated on an interaction-centric MoveBench subset against trajectory-based, physics-aware, and motion-control baselines. It uses only 27K training clips and 0.6B trainable parameters, while achieving the fastest inference in the comparison at 200 seconds. We report perceptual, reconstruction, temporal, and motion-accuracy metrics, including End-Point Error (EPE).

Efficiency at a glance: GraphVid uses approximately 24× fewer trainable parameters than Wan-Move and nearly two orders of magnitude less training data, while outperforming all comparable-scale methods on several core quality and motion metrics.

Interaction-centric MoveBench

GraphVid is second-best overall on FID, FVD, PSNR, SSIM, and EPE while using the fewest trainable parameters and the fastest inference. Compared with WISA, it improves FID by 34.5%, FVD by 7.8%, PSNR by 5.9%, SSIM by 15.0%, and EPE by 29.3%.

Method Train Data Trainable Params Inference ↓ FID ↓ FVD ↓ PSNR ↑ SSIM ↑ EPE ↓
Wan-Move Large-scale baseline 2M 14.5B 1800s 15.56 82.17 17.21 0.61 2.6
Motion-I2V 10M 1.2B 790s 28.32 159.32 9.87 0.38 3.9
Tora 630K 5B 1200s 24.45 110.47 11.27 0.54 3.3
MagicMotion 23K 1.5B 750s 26.57 105.12 12.04 0.51 3.2
WISA 80K 1B 1000s 25.98 107.89 15.08 0.53 4.1
FlashMotion 23K 13B 677s 19.02 104.12 14.04 0.56 3.8
GraphVid (Ours) Efficient 27K 0.6B 200s 17.02 99.42 15.98 0.61 2.9

Multi-object MoveBench

On the harder multi-object subset, GraphVid achieves the best FID, FVD, and EPE among comparable-scale methods. It improves FID over FlashMotion by 10.1% and FVD by 6.4%, while using approximately 21.7× fewer trainable parameters.

Method Train Data Trainable Params FID ↓ FVD ↓ PSNR ↑ SSIM ↑ EPE ↓
Wan-Move Large-scale baseline 2M 14.5B 31.29 252 16.69 0.61 2.2
Tora 630K 5B 56.04 369 14.98 0.52 3.5
WISA 80K 1B 60.12 341 13.13 0.55 3.9
FlashMotion 23K 13B 55.03 311 12.12 0.52 3.9
GraphVid (Ours) Efficient 27K 0.6B 49.45 291 14.44 0.55 3.0

Qualitative Results

Intended Motion
Intent motion for GraphVid example 1
Loading...
Edited Interaction Graph
Edited interaction graph for GraphVid example 1
Loading...
GraphVid Output
Loading...
Intended Motion
Intent motion for GraphVid example 2
Loading...
Edited Interaction Graph
Edited interaction graph for GraphVid example 2
Loading...
GraphVid Output
Loading...
Intended Motion
Intent motion for GraphVid example 3
Loading...
Edited Interaction Graph
Edited interaction graph for GraphVid example 3
Loading...
GraphVid Output
Loading...

Each example shows the user's intended motion, the corresponding edited interaction graph, and the generated GraphVid output. The side-by-side layout illustrates how GraphVid translates graph-level relational edits into coordinated video dynamics while preserving scene appearance and object identity.

BibTeX

@inproceedings{shah2026graphvid,
  title={GraphVid: Interactive Graph-Controllable Video Generation},
  author={Shah, Vedant and Susladkar, Onkar and Prakash, Tushar and Nguyen, Kiet A. and Yu, Tianjiao and Juvekar, Adheesh and Wahed, Muntasir and Lourentzou, Ismini},
  booktitle={European Conference on Computer Vision (ECCV)},
  year={2026}
}