Open Sora: una herramienta de generación de vídeo de código abierto para optimizar la coherencia de los rostros

Introducción general

Open-Sora es un proyecto de código abierto diseñado para que cualquiera pueda generar vídeos de alta calidad de forma eficiente. Ha sido desarrollado por el equipo hpcaitech para proporcionar herramientas para generar vídeo a partir de texto o imágenes, con soporte para múltiples resoluciones y duraciones. El proyecto es completamente de código abierto, por lo que los pesos del modelo, el código y el proceso de formación están a disposición del público y se fomentan las contribuciones de la comunidad. La última versión, Open-Sora 2.0, se acerca a los mejores modelos del sector en cuanto a rendimiento, cuesta sólo 200.000 dólares entrenarlos y genera vídeo rápido y de alta calidad. Los usuarios pueden descargar el código de forma gratuita, ejecutarlo localmente o experimentarlo a través de la interfaz Gradio de Hugging Face. Open-Sora está dirigido a creadores, desarrolladores e investigadores, impulsando la popularidad y la innovación en la creación de vídeo al tiempo que proporciona un producto comercial:Vídeo Océano .

Open Sora:优化脸部一致性的开源视频生成工具

 

Lista de funciones

  • Generación de texto a vídeo: introduzca una descripción de texto para generar un vídeo que coincida con el contenido.
  • Generación de imagen a vídeo: Genere vídeos dinámicos a partir de una sola imagen.
  • Extensión de vídeo: amplía la duración del vídeo o añade contenido.
  • Compatible con varias resoluciones: admite salida de vídeo de 144p a 768p.
  • Duración flexible: Genere vídeos de 2 a 16 segundos.
  • Variedad de relaciones de aspecto: admite 16:9, 9:16, 1:1 y más.
  • Modelos y formación de código abierto: proporcionar los pesos del modelo y el código de formación, apoyar el desarrollo personalizado.
  • Inferencia eficiente: los algoritmos optimizados reducen los requisitos de hardware y generan vídeo en una sola GPU.
  • Optimización de las palabras clave: ayuda a GPT-4o a mejorar las palabras clave y la calidad de la generación.
  • Puntuación de movimiento: Ajuste la dinámica del vídeo mediante la puntuación de movimiento.

 

Utilizar la ayuda

Proceso de instalación

Para utilizar Open-Sora, los usuarios deben configurar su entorno Python e instalar las dependencias. A continuación se detallan los pasos a seguir:

  1. Creación de un entorno virtual
    Crea un entorno virtual con Python 3.10 para evitar conflictos de dependencias:

    conda create -n opensora python=3.10
    conda activate opensora
  1. Clonación del código base
    Descargue el proyecto Open-Sora de GitHub:

    git clone https://github.com/hpcaitech/Open-Sora
    cd Open-Sora
    
  2. Instalación de dependencias
    Asegúrate de que la versión de PyTorch es superior a 2.4.0 ejecutando el siguiente comando:

    pip install -v .
    

    Si necesita un modo de desarrollo, utilícelo:

    pip install -v -e .
    
  3. Instalación de bibliotecas de aceleración
    Uso de Open-Sora xformers responder cantando flash-attn Aumenta el rendimiento. Se instala en función de la versión CUDA:

    pip install xformers==0.0.27.post2 --index-url https://download.pytorch.org/whl/cu121
    pip install flash-attn --no-build-isolation
    

    Para un razonamiento más rápido, se compila manualmente flash-attention::

    git clone https://github.com/Dao-AILab/flash-attention
    cd flash-attention/hopper
    python setup.py install
    
  4. Descargar modelos de pesos
    Open-Sora 2.0 admite la generación de vídeo a 256p y 768p, y los modelos pueden descargarse de Hugging Face o ModelScope:

    pip install "huggingface_hub[cli]"
    huggingface-cli download hpcai-tech/Open-Sora-v2 --local-dir ./ckpts
    

    o utilizar ModelScope:

    pip install modelscope
    modelscope download hpcai-tech/Open-Sora-v2 --local_dir ./ckpts
    
  5. Verificar la instalación
    Compruebe que el entorno es normal:

    python -c "import opensora; print(opensora.__version__)"
    

Utilización

Open-Sora permite convertir texto en vídeo, imágenes en vídeo y muchas otras funciones con un funcionamiento sencillo. A continuación se ofrece una guía detallada:

Generación de texto a vídeo

Open-Sora optimiza el proceso de imagen a vídeo, pero también admite la generación directa de texto a vídeo. Se recomienda una canalización de texto a imagen y a vídeo para mejorar la calidad.

  1. Preparación de las señales
    Prepare una descripción detallada del texto, por ejemplo: "El océano en una tormenta, con enormes olas golpeando las rocas y nubes oscuras". Cuanto más específicas sean las palabras, mejores serán los resultados.
  2. Ejecute el comando generate
    Genera 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"
    

    Genera vídeo de 768x768 (requiere varias GPU):

    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: Establece la relación de aspecto, por ejemplo. 16:9 tal vez 1:1.
    • --num_frames: Establece el número de fotogramas en el rango 4k+1 (máximo 129 fotogramas).
    • --offload True: Habilita la optimización de memoria para dispositivos de gama baja.
  4. Ver resultados
    El vídeo generado se guarda en la carpeta samples en formato MP4.

Generación de imagen a vídeo

  1. Preparación de imágenes de referencia
    Sube una imagen y guárdala como input.png.
  2. Ejecute el comando generate
    Genera 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
    

    Genera 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. Optimizar los efectos dinámicos
    utilizar --motion-score Ajusta el grado de dinamismo de la pantalla. el valor por defecto es 4. Ejemplo:

    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
    

Optimización de las palabras clave

Open-Sora admite el uso de GPT-4o para optimizar las palabras clave y mejorar la calidad de la generación:

  1. Establece la clave de la API de OpenAI:
    export OPENAI_API_KEY=sk-xxxx
    
  2. Ejecuta el comando optimizar:
    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
    

Funcionamiento de la interfaz de Gradio

Open-Sora ofrece una interfaz interactiva de Gradio:

  1. Interfaz de inicio:
    python scripts/demo.py --model-type v2-768px
    
  2. Acceso desde un navegador http://localhost:7860.
  3. Introduzca palabras o cargue imágenes, ajuste la resolución y la frecuencia de imagen y haga clic en "Generar" para generar el vídeo.
  4. Se puede activar el aviso de optimización "Refinar aviso" (requiere clave API de OpenAI).

Formación de modelos personalizados

Los usuarios pueden entrenar modelos basados en sus propios conjuntos de datos:

  1. Prepare el conjunto de datos: un archivo CSV que contenga la ruta y la descripción del vídeo.
  2. Modificar el archivo de configuración:configs/opensora-v2/train/stage1.pyestablece la ruta de datos.
  3. Entrenamiento de carrera:
    torchrun --nproc_per_node 8 scripts/train.py configs/opensora-v2/train/stage1.py --data-path your_data.csv
    

eficiencia computacional

Open-Sora optimiza la eficacia de la inferencia y los resultados de las pruebas son los siguientes (GPU H100, 50 pasos de muestreo):

  • 256x256: una GPU 60 segundos, 52,5 GB de memoria; 4 GPU 34 segundos, 44,3 GB de memoria.
  • 768x768: 8 GPUs 276 segundos, 44,3 GB de memoria de vídeo.

advertencia

  • requisitos de hardwareSe recomienda NVIDIA H100 o A100 con al menos 24 GB de memoria de vídeo. Hay resoluciones inferiores disponibles para dispositivos de gama baja.
  • Calidad de las señalesLas descripciones detalladas pueden mejorar notablemente los resultados de los vídeos.
  • licenciasOpen-Sora utiliza la licencia MIT, que permite el uso comercial, sujeto a términos y condiciones.

 

escenario de aplicación

  1. Creación de vídeos cortos
    Los blogueros pueden utilizar Open-Sora para generar vídeos promocionales, como "las luces de la ciudad parpadean por la noche", y compartirlos en las redes sociales.
  2. Animación educativa
    Los profesores pueden generar animaciones didácticas, como "planetas girando alrededor del sol", para aumentar el atractivo de la clase.
  3. Diseño de escenarios de juego
    Los desarrolladores generan escenas dinámicas basadas en mapas conceptuales para su uso en fondos de juego o transiciones.
  4. Investigación sobre IA
    Los investigadores pueden modificar el código del modelo para probar nuevos algoritmos o conjuntos de datos que permitan avanzar en las técnicas de generación de vídeo.

 

CONTROL DE CALIDAD

  1. ¿Cuál es el rendimiento de Open-Sora 2.0?
    En la revisión de VBench, Open-Sora 2.0 y OpenAI Sora La diferencia se reduce a 0,691 TP3T, cerca del HunyuanVídeo 11B y Step-Video 30B.
  2. ¿Qué resoluciones y duraciones son compatibles?
    Admite de 144p a 768p, duración de vídeo de 2 segundos a 16 segundos y relaciones de aspecto como 16:9, 9:16, etc.
  3. ¿Cómo optimizar la calidad de la generación?
    Utilice indicaciones detalladas para ajustar motion-score(1-7), o active GPT-4o Optimizar palabras de aviso.
  4. ¿Puedo utilizarlo gratuitamente?
    Open-Sora es completamente de código abierto, con modelos y código disponibles libremente, siguiendo la licencia MIT.
© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...