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} }