Aprendizagem pessoal com IA
e orientação prática
Beanbag Marscode1

Open Sora: uma ferramenta de geração de vídeo de código aberto para otimizar a consistência facial

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 .

Open Sora: uma ferramenta de geração de vídeo de código aberto para otimizar a consistência facial-1


 

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:

  1. 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
  1. 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
    
  2. 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 .
    
  3. Instalação de bibliotecas de aceleração
    Uso do Open-Sora xformers responder cantando flash-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
    
  4. 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
    
  5. 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.

  1. 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.
  2. 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"
    
  3. Parâmetros de ajuste
    • --aspect_ratio: Defina a proporção de aspecto, por exemplo. 16:9 talvez 1:1.
    • --num_framesNúmero de quadros: Defina o número de quadros no intervalo 4k+1 (máximo de 129 quadros).
    • --offload TrueAtivar otimização de memória para dispositivos de baixo custo.
  4. Exibir resultados
    O vídeo gerado é salvo no arquivo samples no formato MP4.

Geração de imagem para vídeo

  1. Preparação de imagens de referência
    Faça upload de uma imagem e salve-a como input.png.
  2. 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
    
  3. 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:

  1. Defina a chave da API da OpenAI:
    export OPENAI_API_KEY=sk-xxxx
    
  2. 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:

  1. Interface de inicialização:
    python scripts/demo.py --model-type v2-768px
    
  2. Acessado em um navegador http://localhost:7860.
  3. 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.
  4. 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:

  1. Prepare o conjunto de dados: um arquivo CSV contendo o caminho e a descrição do vídeo.
  2. Modificar o arquivo de configuração:configs/opensora-v2/train/stage1.pyDefina o caminho dos dados.
  3. 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

  1. 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.
  2. Animação educacional
    Os professores podem gerar animações, como "planetas girando em torno do sol", para aumentar a atratividade da sala de aula.
  3. 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.
  4. 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

  1. 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.
  2. 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.
  3. Como otimizar a qualidade da geração?
    Use dicas detalhadas para ajustar motion-score(1-7) ou ative o GPT-4o Optimize Prompt Words.
  4. 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.
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Open Sora: uma ferramenta de geração de vídeo de código aberto para otimizar a consistência facial
pt_BRPortuguês do Brasil