Introdução geral
O Open-Sora é um projeto de código aberto criado para permitir que qualquer pessoa gere vídeos de alta qualidade com eficiência. Ele foi desenvolvido pela equipe hpcaitech para fornecer ferramentas de geração de vídeo a partir de texto ou imagens, com suporte a várias resoluções e durações. O projeto é totalmente de código aberto, com pesos de modelo, código e processos de treinamento tornados públicos para incentivar as contribuições da comunidade. A versão mais recente, Open-Sora 2.0, está próxima dos principais modelos do setor em termos de desempenho, custa apenas US$ 200.000 para ser treinada e gera vídeos rápidos e de alta qualidade. Os usuários podem fazer o download do código gratuitamente, executá-lo localmente ou experimentá-lo por meio da interface Gradio da Hugging Face. O Open-Sora é para criadores, desenvolvedores e pesquisadores, impulsionando a popularidade e a inovação na criação de vídeos e, ao mesmo tempo, fornecendo um produto comercial:Vídeo Ocean .
Lista de funções
- Geração de texto para vídeo: insira uma descrição de texto para gerar um vídeo que corresponda ao conteúdo.
- Geração de imagem para vídeo: gere vídeos dinâmicos com base em uma única imagem.
- Extensão de vídeo: aumenta a duração do vídeo ou adiciona conteúdo.
- Suporte a várias resoluções: suporta saída de vídeo de 144p a 768p.
- Duração flexível: gere vídeos de 2 segundos a 16 segundos.
- Variedade de proporções: suporta 16:9, 9:16, 1:1 e muito mais.
- Modelos e treinamento de código aberto: forneça pesos de modelo e código de treinamento, ofereça suporte ao desenvolvimento personalizado.
- Inferência eficiente: os algoritmos otimizados reduzem os requisitos de hardware e geram vídeo em uma única GPU.
- Otimização de palavras-chave: suporte ao GPT-4o para aprimorar as palavras-chave e melhorar a qualidade da geração.
- Pontuação de movimento: ajuste a dinâmica do vídeo por meio da pontuação de movimento.
Usando a Ajuda
Processo de instalação
Para usar o Open-Sora, os usuários precisam configurar seu ambiente Python e instalar as dependências. Veja a seguir as etapas detalhadas:
- Criação de um ambiente virtual
Crie um ambiente virtual com o Python 3.10 para evitar conflitos de dependência:conda create -n opensora python=3.10 conda activate opensora
- Clonagem da base de código
Faça o download do projeto Open-Sora no GitHub:git clone https://github.com/hpcaitech/Open-Sora cd Open-Sora
- Instalação de dependências
Certifique-se de que a versão do PyTorch seja superior a 2.4.0 executando o seguinte comando:pip install -v .
Se for necessário um modo de desenvolvimento, use-o:
pip install -v -e .
- Instalação de bibliotecas de aceleração
Uso do Open-Soraxformers
responder cantandoflash-attn
Aumentar o desempenho. Instalado de acordo com a versão CUDA:pip install xformers==0.0.27.post2 --index-url https://download.pytorch.org/whl/cu121 pip install flash-attn --no-build-isolation
Para um raciocínio mais rápido, a compilação manual
flash-attention
::git clone https://github.com/Dao-AILab/flash-attention cd flash-attention/hopper python setup.py install
- Download dos pesos do modelo
O Open-Sora 2.0 suporta a geração de vídeo de 256p e 768p e os modelos podem ser baixados do Hugging Face ou do ModelScope:pip install "huggingface_hub[cli]" huggingface-cli download hpcai-tech/Open-Sora-v2 --local-dir ./ckpts
ou usar o ModelScope:
pip install modelscope modelscope download hpcai-tech/Open-Sora-v2 --local_dir ./ckpts
- Verificar a instalação
Verifique se o ambiente está normal:python -c "import opensora; print(opensora.__version__)"
Uso
O Open-Sora suporta texto para vídeo, imagem para vídeo e muitas outras funções de fácil operação. Veja a seguir um guia detalhado:
Geração de texto para vídeo
O Open-Sora otimiza o processo de imagem para vídeo, mas também oferece suporte à geração direta de texto para vídeo. Recomenda-se um pipeline de texto-para-imagem-para-vídeo para melhorar a qualidade.
- Preparação de dicas
Prepare uma descrição detalhada do texto, por exemplo, "O oceano em uma tempestade, com ondas enormes batendo nas rochas e nuvens escuras". Quanto mais específicas forem as palavras-chave, melhores serão os resultados. - Execute o comando generate
Gera vídeo de 256x256:torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_256px.py --save-dir samples --prompt "Stormy ocean with crashing waves"
Gera vídeo de 768x768 (requer várias GPUs):
torchrun --nproc_per_node 8 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_768px.py --save-dir samples --prompt "Stormy ocean with crashing waves"
- Parâmetros de ajuste
--aspect_ratio
: Defina a proporção de aspecto, por exemplo.16:9
talvez1:1
.--num_frames
Número de quadros: Defina o número de quadros no intervalo 4k+1 (máximo de 129 quadros).--offload True
Ativar otimização de memória para dispositivos de baixo custo.
- Exibir resultados
O vídeo gerado é salvo no arquivosamples
no formato MP4.
Geração de imagem para vídeo
- Preparação de imagens de referência
Faça upload de uma imagem e salve-a comoinput.png
. - Execute o comando generate
Gera vídeo de 256p:torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/256px.py --cond_type i2v_head --prompt "A serene forest with flowing river" --ref input.png
Gera vídeo de 768p:
torchrun --nproc_per_node 8 --standalone scripts/diffusion/inference.py configs/diffusion/inference/768px.py --cond_type i2v_head --prompt "A serene forest with flowing river" --ref input.png
- Otimizar os efeitos dinâmicos
fazer uso de--motion-score
Ajusta o grau de dinâmica da tela. O valor padrão é 4. Exemplo:torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/256px.py --cond_type i2v_head --prompt "A running horse" --ref horse.png --motion-score 7
Otimização de palavras-chave
O Open-Sora suporta o uso do GPT-4o para otimizar as palavras-chave e melhorar a qualidade da geração:
- Defina a chave da API da OpenAI:
export OPENAI_API_KEY=sk-xxxx
- Execute o comando optimise:
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_256px.py --save-dir samples --prompt "raining, sea" --refine-prompt True
Operação da interface do Gradio
O Open-Sora oferece uma interface Gradio interativa:
- Interface de inicialização:
python scripts/demo.py --model-type v2-768px
- Acessado em um navegador
http://localhost:7860
. - Insira palavras de alerta ou carregue imagens, ajuste a resolução e a taxa de quadros e clique em "Generate" (Gerar) para gerar o vídeo.
- O prompt de otimização "Refine prompt" pode ser ativado (requer a chave de API da OpenAI).
Treinamento de modelos personalizados
Os usuários podem treinar modelos com base em seus próprios conjuntos de dados:
- Prepare o conjunto de dados: um arquivo CSV contendo o caminho e a descrição do vídeo.
- Modificar o arquivo de configuração:
configs/opensora-v2/train/stage1.py
Defina o caminho dos dados. - Treinamento de corrida:
torchrun --nproc_per_node 8 scripts/train.py configs/opensora-v2/train/stage1.py --data-path your_data.csv
eficiência computacional
O Open-Sora otimiza a eficiência da inferência e os resultados do teste são os seguintes (GPU H100, 50 etapas de amostragem):
- 256x256: GPU única 60 segundos, 52,5 GB de memória; 4 GPU 34 segundos, 44,3 GB de memória.
- 768x768: 8 GPUs 276 segundos, 44,3 GB de memória de vídeo.
advertência
- Requisitos de hardwareRecomenda-se o uso de NVIDIA H100 ou A100 com pelo menos 24 GB de memória de vídeo. Resoluções mais baixas estão disponíveis para dispositivos de baixo custo.
- Qualidade das dicasDescrições detalhadas podem melhorar drasticamente os resultados dos vídeos.
- licençasOpen-Sora: O Open-Sora usa a licença MIT, que permite o uso comercial, sujeito aos termos e condições.
cenário do aplicativo
- Criação de vídeos curtos
Os blogueiros podem usar o Open-Sora para gerar vídeos promocionais, como "luzes da cidade brilhando à noite", para compartilhamento em plataformas de mídia social. - Animação educacional
Os professores podem gerar animações, como "planetas girando em torno do sol", para aumentar a atratividade da sala de aula. - Design de cenas de jogos
Os desenvolvedores geram cenas dinâmicas com base em mapas conceituais para uso em fundos ou transições de jogos. - Pesquisa de IA
Os pesquisadores podem modificar o código do modelo para testar novos algoritmos ou conjuntos de dados para aprimorar as técnicas de geração de vídeo.
QA
- Qual é o desempenho do Open-Sora 2.0?
Na análise do VBench, o Open-Sora 2.0 e o OpenAI Sora A diferença diminui para 0,691 TP3T, próximo ao valor de HunyuanVídeo 11B e Step-Video 30B. - Quais resoluções e durações são suportadas?
Suporta 144p a 768p, duração de vídeo de 2 segundos a 16 segundos e proporções de aspecto, incluindo 16:9, 9:16 e muito mais. - Como otimizar a qualidade da geração?
Use dicas detalhadas para ajustarmotion-score
(1-7) ou ative o GPT-4o Optimize Prompt Words. - Posso usá-lo gratuitamente?
O Open-Sora é totalmente de código aberto, com modelos e códigos disponíveis gratuitamente, de acordo com a licença MIT.