Installation
Get started with Open-Sora by following these installation steps.
Prerequisites
- Python 3.8 or higher
- CUDA-capable GPU (recommended)
- PyTorch installed
Install from Source
git clone https://github.com/hpcaitech/Open-Sora.git
cd Open-Sora
pip install -e .
Install Dependencies
pip install -r requirements.txt
Text-to-Video Generation
Generate videos from text prompts using Open-Sora.
Basic Usage
# Single GPU for 256px
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py \
configs/diffusion/inference/256px.py \
--prompt "raining, sea"
# Multi-GPU for 768px
torchrun --nproc_per_node 8 --standalone scripts/diffusion/inference.py \
configs/diffusion/inference/768px.py \
--prompt "raining, sea"
Parameters
--prompt: Text prompt describing the video
--aspect_ratio: Video aspect ratio (16:9, 9:16, 1:1, 2.39:1)
--num_frames: Number of frames (4k+1, less than 129)
--save-dir: Directory to save generated videos
Image-to-Video Generation
Generate videos from static images.
Single Image
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py \
configs/diffusion/inference/256px.py \
--cond_type i2v_head \
--prompt "A plump pig wallows in a muddy pond..." \
--ref assets/texts/i2v.png
Batch Processing
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py \
configs/diffusion/inference/256px.py \
--cond_type i2v_head \
--dataset.data-path assets/texts/i2v.csv
Motion Score
Control the intensity of motion in generated videos.
Fixed Motion Score
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py \
configs/diffusion/inference/t2i2v_256px.py \
--prompt "raining, sea" \
--motion-score 4
Dynamic Motion Score
Requires OpenAI API key:
export OPENAI_API_KEY=sk-xxxx
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py \
configs/diffusion/inference/t2i2v_256px.py \
--prompt "raining, sea" \
--motion-score dynamic
Motion scores range from 1 (static) to 7 (high motion).
Prompt Refinement
Automatically refine prompts using ChatGPT for better results.
export OPENAI_API_KEY=sk-xxxx
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py \
configs/diffusion/inference/t2i2v_256px.py \
--prompt "raining, sea" \
--refine-prompt True
Configuration
Customize generation settings for optimal results.
Reproducibility
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py \
configs/diffusion/inference/t2i2v_256px.py \
--prompt "raining, sea" \
--sampling_option.seed 42 \
--seed 42
Multiple Samples
--num-sample k # Generate k samples for each prompt
API Reference
For detailed API documentation, please refer to the GitHub repository.
Command Line Arguments
--prompt: Text prompt for video generation
--cond_type: Condition type (i2v_head for image-to-video)
--ref: Reference image path
--motion-score: Motion intensity (1-7 or dynamic)
--refine-prompt: Enable prompt refinement
--seed: Random seed for reproducibility
--num-sample: Number of samples to generate