SparseCtrl: Adding Sparse Controls to Text-to-Video Diffusion Models (original) (raw)
Abstract
The development of text-to-video (T2V), i.e., generating videos with a given text prompt, has been significantly advanced in recent years. However, relying solely on text prompts often results in ambiguous frame composition due to spatial uncertainty. The research community thus leverages the dense structure signals, e.g., per-frame depth/edge sequences to enhance controllability, whose collection accordingly increases the burden of inference. In this work, we present SparseCtrl to enable flexible structure control with temporally sparse signals, requiring only one or few inputs. It incorporates an additional condition encoder to process these sparse signals while leaving the pre-trained T2V model untouched. The proposed approach is compatible with various modalities, including sketches, depth, and RGB images, providing more practical control for video generation and promoting applications such as storyboarding, depth rendering, keyframe animation, and interpolation. Extensive experiments demonstrate the generalization of SparseCtrl on both original and personalized T2V generators.
Overview Video
Your browser does not support the video tag.
Applications
Click to Play the Videos
Image Animation = RGB Image Encoder + starting frame
Image input
Image input
Keyframe Interpolation = RGB Image Encoder + first & last frames
Image inputs
Image inputs
Video Interpolation = RGB Image Encoder + low framerate input
Video Prediction = RGB Image Encoder + initial N frames
Depth-guided Generation = Depth Encoder + arbitrary depth maps
Input depth
Sketch-to-Video = Sketch Encoder + single sketch
Input sketch
Input sketch
Storyboarding = Sketch Encoder + arbitrary sketches
…
BibTeX
@misc{guo2023sparsectrl, title={SparseCtrl: Adding Sparse Controls to Text-to-Video Diffusion Models}, author={Yuwei Guo and Ceyuan Yang and Anyi Rao and Maneesh Agrawala and Dahua Lin and Bo Dai}, year={2023}, eprint={2311.16933}, archivePrefix={arXiv}, primaryClass={cs.CV} }