Difusión de vídeo estable

por Difusión de vídeo estable

Por favor, añada las imágenes que necesite arrastrando y soltando o subiendo imágenes locales. Los modelos se procesarán rápidamente,

imagen 21
imagen 20

haga clic en el botón de generar. Comience a generar, aquí porque se está ejecutando en la memoria de vídeo A100. Tardará más tiempo. El efecto de imagen a vídeo aparecerá en tan sólo 177 segundos después de la generación.

imagen 22
imagen 22 1

Difusión de vídeo estable es estable vídeo modelo de difusión latente para la generación de texto a vídeo e imagen a vídeo de alta resolución y última generación. Recientemente, los modelos de difusión latente para la síntesis de imágenes 2D se transformaron en modelos generativos de vídeo mediante la inserción de capas temporales y su ajuste fino en pequeños conjuntos de datos de vídeo de alta calidad. Sin embargo, los métodos de entrenamiento en la literatura varían enormemente, y el campo aún tiene que ponerse de acuerdo sobre una estrategia unificada para los datos de vídeo. En este artículo, identificamos y evaluamos tres etapas distintas para entrenar con éxito un LDM (Modelo de Difusión Latente) de vídeo: preentrenamiento de texto a imagen, preentrenamiento de vídeo y ajuste fino de vídeo de alta calidad.

Este vídeo estable ofrece un nuevo método para producir vídeos de alta calidad. Toma como entrada texto o imágenes y genera vídeos realistas relacionados con el contenido de entrada. Este modelo tiene un amplio potencial de aplicación en la producción cinematográfica, la realidad virtual, el desarrollo de juegos y otros campos.

La investigación sobre la difusión estable de vídeos es crucial para mejorar la tecnología de generación de vídeos. Proporciona a los investigadores un marco para seguir explorando métodos de entrenamiento y estrategias de datos para los modelos de generación de vídeo con el fin de mejorar la calidad y fidelidad de los vídeos generados.

Estabilidad AIuna conocida empresa de dibujo de IA, ha entrado por fin en la industria del vídeo generado por IA.

imagen 18

El martes de esta semana, Difusión de vídeo estableun modelo de generación de vídeo basado en la difusión estable, y la comunidad de la IA empezó a debatirlo inmediatamente.

Tarjeta de modelo de imagen a vídeo de difusión de vídeo estable

Difusión de vídeo estable (SVD) Imagen a vídeo es un modelo de difusión que toma una imagen fija como fotograma condicionante y genera un vídeo a partir de ella.

640
640 1
640 2

(SVD) Image-to-Video es un modelo de difusión latente entrenado para generar clips de vídeo cortos a partir de un condicionamiento de imagen. Este modelo se entrenó para generar 25 fotogramas a resolución 576×1024 dado un fotograma de contexto del mismo tamaño, afinado de SVD Imagen a vídeo [14 fotogramas]. También ponemos a punto el decodificador f8 para garantizar la coherencia temporal. Por conveniencia, proporcionamos adicionalmente el modelo con el decodificador estándar frame-wise aquí.

  • Desarrollado por: Estabilidad AI
  • Financiado por: Estabilidad AI
  • Tipo de modelo: Modelo generativo de imagen a vídeo
  • Ajustado a partir del modelo: SVD Imagen a vídeo [14 fotogramas]

Para fines de investigación, recomendamos nuestro modelos generativos Repositorio de Github (https://github.com/Stability-AI/generative-models), que implementa los marcos de difusión más populares (tanto de entrenamiento como de inferencia).

El gráfico anterior evalúa la preferencia de los usuarios por SVD-Image-to-Video frente a GEN-2 y PikaLabs. SVD-Image-to-Video es el preferido por los votantes humanos en términos de calidad de vídeo. Para más detalles sobre el estudio de usuarios, remitimos al trabajo de investigación

El modelo está pensado únicamente para fines de investigación. Entre las posibles áreas y tareas de investigación se incluyen

  • Investigación sobre modelos generativos.
  • Implantación segura de modelos que puedan generar contenidos nocivos.
  • Probar y comprender las limitaciones y los sesgos de los modelos generativos.
  • Generación de obras de arte y utilización en el diseño y otros procesos artísticos.
  • Aplicaciones en herramientas educativas o creativas.

Los usos excluidos se describen a continuación.

El modelo no ha sido entrenado para representar hechos o acontecimientos reales, por lo que su uso para generar contenidos de este tipo está fuera del alcance de las capacidades de este modelo. El modelo no debe utilizarse de ninguna manera que infrinja los principios de Stability AI. Política de uso aceptable.

  • Los vídeos generados son bastante cortos (<= 4seg), y el modelo no alcanza un fotorrealismo perfecto.
  • El modelo puede generar vídeos sin movimiento, o movimientos de cámara muy lentos.
  • El modelo no puede controlarse mediante texto.
  • El modelo no puede mostrar texto legible.
  • Es posible que las caras y las personas en general no se generen correctamente.
  • La parte de autocodificación del modelo tiene pérdidas.

El modelo está destinado únicamente a fines de investigación.

Echa un vistazo https://github.com/Stability-AI/generative-models

imagen 18

Modelos generativos de Stability AI

muestra1

21 de noviembre de 2023

  • Lanzamos Stable Video Diffusion, un modelo de imagen a vídeo, con fines de investigación:
    • SVD: Este modelo se entrenó para generar 14 fotogramas con una resolución de 576×1024 a partir de un fotograma contextual del mismo tamaño. Utilizamos el codificador de imágenes estándar de SD 2.1, pero sustituimos el decodificador por un decodificador temporalmente sensible. decodificador deflickering.
    • SVD-XT: Misma arquitectura que SVD pero afinado para la generación de 25 fotogramas.
    • Ofrecemos una demostración en streaming scripts/demo/video_sampling.py y un script python independiente scripts/sampling/simple_video_sample.py para la inferencia de ambos modelos.
    • Junto con el modelo, publicamos un informe técnico.

26 de julio de 2023

muestra2

4 de julio de 2023

  • Ya está disponible un informe técnico sobre SDXL aquí.

22 de junio de 2023

  • Publicamos dos nuevos modelos de difusión con fines de investigación:
    • SDXL-base-0,9: El modelo base fue entrenado en una variedad de relaciones de aspecto en imágenes con resolución 1024^2. El modelo base utiliza OpenCLIP-ViT/G y CLIP-ViT/L para la codificación de texto, mientras que el modelo refinador sólo utiliza el modelo OpenCLIP.
    • SDXL-refinador-0.9: El refinador ha sido entrenado para eliminar pequeños niveles de ruido de datos de alta calidad y, como tal, no se espera que funcione como un modelo de texto a imagen; en su lugar, sólo debe utilizarse como un modelo de imagen a imagen.

Si desea acceder a estos modelos para su investigación, solicítelo a través de uno de los siguientes enlaces: SDXL-0.9-Modelo básicoSDXL-0.9-Refinador. Esto significa que puede solicitar cualquiera de los dos enlaces y, si se le concede, podrá acceder a ambos. Inicie sesión en su cuenta de Hugging Face con el correo electrónico de su organización para solicitar el acceso. Planeamos hacer un lanzamiento completo pronto (julio).

Filosofía general

La modularidad es el rey. Este repositorio implementa un enfoque basado en la configuración en el que construimos y combinamos submódulos llamando a instanciar_desde_config() sobre objetos definidos en configuraciones yaml. Véase configs/ para ver muchos ejemplos.

Registro de cambios del antiguo ldm base de código

Para la formación, utilizamos Rayo PyTorchpero debería ser fácil utilizar otras envolturas de formación alrededor de los módulos base. La clase principal del modelo de difusión (anteriormente LatentDiffusionAhora Motor de difusión) se ha limpiado:

  • Se acabaron las subclases. Ahora manejamos todos los tipos de entradas de condicionamiento (vectores, secuencias y condicionamientos espaciales, y todas sus combinaciones) en una sola clase: Acondicionador generalVer sgm/modules/encoders/modules.py.
  • Separamos los guiadores (como el guiador sin clasificador, véase sgm/modules/diffusionmodules/guiders.py) de los muestreadores (sgm/modules/diffusionmodules/sampling.py), y los muestreadores son independientes del modelo.
  • Adoptamos el "marco denoiser" tanto para el entrenamiento como para la inferencia (el cambio más notable es probablemente ahora la opción de entrenar modelos de tiempo continuo):
    • Los modelos de tiempo discreto (denoisers) son simplemente un caso especial de los modelos de tiempo continuo (denoisers); véase sgm/modules/diffusionmodules/denoiser.py.
    • Las siguientes características son ahora independientes: ponderación de la función de pérdida por difusión (sgm/modules/diffusionmodules/denoiser_weighting.py), preacondicionamiento de la red (sgm/modules/diffusionmodules/denoiser_scaling.py), y el muestreo de los niveles de ruido durante el entrenamiento (sgm/modules/diffusionmodules/sigma_sampling.py).
  • También se han depurado los modelos de autocodificación.

1. Clonar el repositorio

git clone [email protected]:Stability-AI/generative-models.git cd modelos generativos

2. Configuración del virtualenv

Esto es suponiendo que usted ha navegado a la modelos generativos raíz después de clonarlo.

NOTA: Esto se comprueba en python3.10. Para otras versiones de python, puede encontrar conflictos de versión.

PyTorch 2.0# install required packages from pypi python3 -m venv .pt2 source .pt2/bin/activate pip3 install -r requirements/pt2.txt

3. Instale sgm

pip3 install .

4. Instale sdata para la formación

pip3 install -e git+https://github.com/Stability-AI/datapipelines.git@main#egg=sdata

Embalaje

Este repositorio utiliza empaquetado conforme a PEP 517 utilizando Escotilla.

Para crear una rueda distribuible, instale escotilla y ejecuta construcción de la escotilla (especificando -rueda t omitirá la construcción de un sdist, que no es necesario).

pip install escotilla
hatch build -t rueda

Encontrará el paquete creado en dist/. Puede instalar la rueda con pip install dist/*.whl.

Tenga en cuenta que el paquete no actualmente especifican dependencias; necesitarás instalar los paquetes requeridos, dependiendo de tu caso de uso y versión de PyTorch, manualmente.

Ofrecemos un streamlit demostración de muestreo de texto a imagen y de imagen a imagen en scripts/demo/muestreo.py. Proporcionamos los hashes del archivo completo, así como sólo de los tensores guardados en el archivo ( véase Especificación del modelo para obtener un script que lo evalúe). Actualmente se admiten los siguientes modelos:

  • SDXL-base-1.0Archivo Hash (sha256): 31e35c80fc4829d14f90153f4c74cd59c90b779f6afe05a74cd6120b893f7e5b Tensordata Hash (sha256): 0xd7a9105a900fd52748f20725fe52fe52b507fd36bee4fc107b1550a26e6ee1d7
  • SDXL-refinador-1.0Archivo Hash (sha256): 7440042bbdc8a24813002c09b6b69b64dc90fded4472613437b7f55f9b7d9c5f Tensordata Hash (sha256): 0x1a77d21bebc4b4de78c474a90cb74dc0d2217caf4061971dbfa75ad406b75d81
  • SDXL-base-0,9
  • SDXL-refinador-0.9
  • SD-2.1-512
  • SD-2.1-768

Pesos para SDXL:

SDXL-1.0: Los pesos de SDXL-1.0 están disponibles (sujetos a un CreativeML Open RAIL++-M licencia) aquí:

SDXL-0.9: Los pesos de SDXL-0.9 están disponibles y sujetos a un licencia de investigación. Si desea acceder a estos modelos para su investigación, solicítelo a través de uno de los siguientes enlaces: Modelo SDXL-base-0.9SDXL-refinador-0.9. Esto significa que puede solicitar cualquiera de los dos enlaces y, si se le concede, podrá acceder a ambos. Inicie sesión en su cuenta de Hugging Face con el correo electrónico de su organización para solicitar el acceso.

Una vez obtenidos los pesos, colóquelos en puntos de control/. A continuación, inicie la demostración con

streamlit run scripts/demo/sampling.py --server.port

Las imágenes generadas con nuestro código utilizan el marca de agua invisible para incrustar una marca de agua invisible en la salida del modelo. También proporcionamos un script para detectar fácilmente esa marca de agua. Tenga en cuenta que esta marca de agua no es la misma que en las versiones anteriores de Stable Diffusion 1.x/2.x.

Para ejecutar la secuencia de comandos es necesario tener una instalación de trabajo como el anterior o tratar de un experimental importar utilizando sólo una cantidad mínima de paquetes:python -m venv .detect source .detect/bin/activate pip install "numpy>=1.17" "PyWavelets>=1.1.1" "opencv-python>=4.1.0.25" pip install -no-deps invisible-watermark

Para ejecutar el script es necesario tener una instalación en funcionamiento como la anterior. El script se puede utilizar de las siguientes maneras (no olvide activar su entorno virtual de antemano, p.ej. fuente .pt1/bin/activate):# probar un solo archivo python scripts/demo/detect.py # probar múltiples archivos a la vez python scripts/demo/detect.py ... # probar todos los archivos en una carpeta específica python scripts/demo/detect.py /*

Proporcionamos ejemplos de configuraciones de formación en configs/ejemplo_formación. Para iniciar un entrenamiento, ejecute

python main.py --base configs/ configs/

donde las configuraciones se combinan de izquierda a derecha (las configuraciones posteriores sobrescriben los mismos valores). Esto puede utilizarse para combinar configuraciones de modelo, entrenamiento y datos. Sin embargo, todas ellas también pueden definirse en una única configuración. Por ejemplo, para ejecutar el entrenamiento de un modelo de difusión basado en píxeles condicional a la clase en MNIST, ejecutepython main.py -base configs/example_training/toy/mnist_cond.yaml

NOTA 1: Utilizar las configuraciones sin juego de datos configs/ejemplo_formación/imagenet-f8_cond.yamlconfigs/ejemplo_formación/txt2img-clipl.yaml y configs/ejemplo_formación/txt2img-clipl-legacy-ucg-formación.yaml para la formación requerirá modificaciones en función del conjunto de datos utilizado (que se espera que se almacene en un archivo tar en la carpeta webdataset-format). Para encontrar las partes que deben adaptarse, busque los comentarios que contengan USUARIO: en la configuración correspondiente.

NOTA 2: Este repositorio admite tanto pytorch1.13 y pytorch2para el entrenamiento de modelos generativos. Sin embargo, para el entrenamiento de autoencoders como, por ejemplo, en configs/entrenamiento_de_ejemplo/autocodificador/kl-f4/imagenet-attnfree-logvar.yamlsólo pytorch1.13 es compatible.

NOTA 3: Entrenamiento de modelos generativos latentes (como, por ejemplo, en configs/ejemplo_formación/imagenet-f8_cond.yaml) requiere recuperar el punto de control de Cara de abrazo y sustituyendo el CKPT_PATH marcador de posición en esta línea. Lo mismo debe hacerse con las configuraciones de texto a imagen proporcionadas.

Acondicionador

En Acondicionador general se configura a través del acondicionador_config. Su único atributo es emb_modelsuna lista de diferentes incrustadores (todos heredados de AbstractEmbModel) que se utilizan para condicionar el modelo generativo. Todos los incrustadores deben definir si son entrenables o no (is_trainablepor defecto Falso), se utiliza un índice de abandono de la orientación sin clasificador (ucg_ratepor defecto 0), y una tecla de entrada (clave_entrada), por ejemplo, txt para el acondicionamiento de textos o cls para el condicionamiento de clases. Al calcular los condicionantes, el incrustador obtendrá lote[clave_entrada] como entrada. Actualmente admitimos condicionantes de dos a cuatro dimensiones y los condicionantes de diferentes incrustantes se concatenan adecuadamente. Tenga en cuenta que el orden de las incrustaciones en el archivo acondicionador_config es importante.

Red

La red neuronal se configura a través del configuración_de_red. Esto solía llamarse unet_configque no es lo suficientemente general, ya que tenemos previsto experimentar con redes troncales de difusión basadas en transformadores.

Pérdida

La pérdida se configura mediante configuración_pérdidas. Para el entrenamiento estándar del modelo de difusión, tendrá que configurar sigma_sampler_config.

Como ya se ha dicho, el muestreador es independiente del modelo. En el sampler_config, establecemos el tipo de solucionador numérico, el número de pasos, el tipo de discretización, así como, por ejemplo, las envolturas de guiado para el guiado sin clasificador.

Para la formación a gran escala, recomendamos utilizar las canalizaciones de datos de nuestro canalización de datos proyecto. El proyecto está contenido en el requisito y se incluye automáticamente al seguir los pasos de la sección Sección de instalación. Los pequeños conjuntos de datos de tipo mapa deben definirse aquí en el repositorio (por ejemplo, MNIST, CIFAR-10, ...), y devolver un dict de claves/valores de datos, por ejemplo,ejemplo = {"jpg": x, # esto es un tensor -1...1 chw "txt": "una bella imagen"}

donde esperamos imágenes en -1...1, formato de canal primero.

es_ESSpanish