Hotshot-XL es un modelo de IA de texto a GIF entrenado para funcionar junto con Stable Diffusion XL.
Hotshot-XL puede generar GIF con cualquier modelo SDXL ajustado. Esto significa dos cosas:
Podrás crear GIF con cualquier modelo SDXL existente o recientemente ajustado que desees utilizar.
Si desea crear GIF de temas personalizados, puede cargar sus propios LORA basados en SDXL y no tener que preocuparse por ajustar el Hotshot-XL. Esto es fantástico porque normalmente es mucho más fácil encontrar imágenes adecuadas para los datos de entrenamiento que encontrar vídeos. Es de esperar que también se ajuste a los flujos de trabajo/uso de LORA existentes de todos :) Vea más aquí.
Hotshot-XL es compatible con SDXL ControlNet para crear GIF en la composición/diseño que desee. Consulte la sección ControlNet a continuación.
Hotshot-XL fue entrenado para generar GIF de 1 segundo a 8 FPS.
Hotshot-XL fue entrenado en varias relaciones de aspecto. Para obtener mejores resultados con el modelo base Hotshot-XL, recomendamos usarlo con un modelo SDXL que haya sido ajustado con imágenes de 512x512. Puede encontrar un modelo SDXL que ajustamos para resoluciones de 512x512 aquí.
Pruebe Hotshot-XL usted mismo aquí: https://www.hotshot.co
O, si desea ejecutar Hotshot-XL usted mismo localmente, continúe con las secciones siguientes.
Si usted mismo está ejecutando Hotshot-XL, podrá tener mucha más flexibilidad/control con el modelo. Como ejemplo muy simple, podrás cambiar la muestra. Hasta ahora hemos visto los mejores resultados con Euler-A, pero es posible que encuentre resultados interesantes con otros.
pip install virtualenv --upgrade virtualenv -p $(which python3) venv source venv/bin/activate pip install -r requirements.txt
# Make sure you have git-lfs installed (https://git-lfs.com) git lfs install git clone https://huggingface.co/hotshotco/Hotshot-XL
o visita https://huggingface.co/hotshotco/Hotshot-XL
Nota : Para maximizar los datos y la eficiencia del entrenamiento, Hotshot-XL se entrenó en varias relaciones de aspecto con una resolución de 512x512. Para obtener mejores resultados con el modelo base Hotshot-XL, recomendamos usarlo con un modelo SDXL que haya sido ajustado con imágenes en torno a la resolución de 512x512. Puede descargar un modelo SDXL que entrenamos con imágenes con una resolución de 512x512 a continuación, o traer su propio modelo base SDXL.
# Make sure you have git-lfs installed (https://git-lfs.com) git lfs install git clone https://huggingface.co/hotshotco/SDXL-512
o visita https://huggingface.co/hotshotco/SDXL-512
python inference.py --prompt="a bulldog in the captains chair of a spaceship, hd, high quality" --output="output.gif"
Qué esperar:
Inmediato | Buceo Sasquatch | un camello fumando un cigarrillo | Ronald McDonald sentado frente a un espejo de tocador poniéndose lápiz labial | Drake lamiéndose los labios y mirando por una ventana un pastelito. |
---|---|---|---|---|
Producción |
python inference.py --prompt="a bulldog in the captains chair of a spaceship, hd, high quality" --output="output.gif" --spatial_unet_base="path/to/stabilityai/stable-diffusion-xl-base-1.0/unet" --lora="path/to/lora"
Qué esperar:
Nota : Las siguientes salidas utilizan DDIMScheduler.
Inmediato | Persona sks gritándole a un sol capri | Persona sks besando a la rana Kermit | Persona con esmoquin sosteniendo una copa de champán, fuegos artificiales de fondo, hd, alta calidad, 4K |
---|---|---|---|
Producción |
python inference.py --prompt="a girl jumping up and down and pumping her fist, hd, high quality" --output="output.gif" --control_type="depth" --gif="https://media1.giphy.com/media/v1.Y2lkPTc5MGI3NjExbXNneXJicG1mOHJ2dzQ2Y2JteDY1ZWlrdjNjMjl3ZWxyeWFxY2EzdyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/YOTAoXBgMCmFeQQzuZ/giphy.gif"
De forma predeterminada, Hotshot-XL creará fotogramas clave a partir de su gif fuente utilizando 8 fotogramas igualmente espaciados y recortará los fotogramas clave a la relación de aspecto predeterminada. Para obtener un control más preciso, aprenda a variar las relaciones de aspecto y la velocidad y duración de los fotogramas.
Hotshot-XL actualmente admite el uso de un modelo ControlNet a la vez; Sería emocionante admitir Multi-ControlNet.
Qué esperar:
Inmediato | chica estilo pixar poniendo dos pulgares hacia arriba, feliz, alta calidad, 8k, 3d, render animado de disney | keanu reaves sosteniendo un cartel que dice "AYUDA", hd, alta calidad | una mujer riendo, hd, alta calidad | Barack Obama haciendo un arco iris con sus manos, la palabra "MAGIA" frente a ellos, vistiendo una sudadera con capucha a rayas azules y blancas, alta definición, alta calidad. |
---|---|---|---|---|
Producción | ||||
Control |
Nota : El modelo SDXL base está entrenado para crear mejor imágenes con una resolución de 1024x1024. Para maximizar los datos y la eficiencia del entrenamiento, Hotshot-XL se entrenó con relaciones de aspecto de alrededor de 512x512 de resolución. Consulte las Notas adicionales para obtener una lista de relaciones de aspecto con las que se entrenó el modelo base Hotshot-XL.
Al igual que SDXL, Hotshot-XL se entrenó en varias relaciones de aspecto con agrupación de relaciones de aspecto e incluye soporte para parámetros SDXL como el tamaño objetivo y el tamaño original. Esto significa que puede crear GIF con varias relaciones de aspecto y resoluciones diferentes, solo con el modelo base Hotshot-XL.
python inference.py --prompt="a bulldog in the captains chair of a spaceship, hd, high quality" --output="output.gif" --width=<WIDTH> --height=<HEIGHT>
Qué esperar:
512x512 | 672x384 | 384x672 | |
---|---|---|---|
un mono tocando la guitarra, imágenes de la naturaleza, hd, alta calidad |
De forma predeterminada, Hotshot-XL está entrenado para generar GIF de 1 segundo de duración con 8 FPS. Si desea jugar a generar GIF con diferentes velocidades de fotogramas y duraciones de tiempo, puede probar los parámetros video_length
y video_duration
.
video_length
establece el número de fotogramas. El valor predeterminado es 8.
video_duration
establece el tiempo de ejecución del gif de salida en milisegundos. El valor predeterminado es 1000.
Tenga en cuenta que debe esperar resultados inestables o "nerviosos" al modificar estos parámetros, ya que el modelo solo se entrenó con videos de 1 s a 8 fps. Podrás mejorar la estabilidad de los resultados para diferentes duraciones de tiempo y velocidades de fotogramas ajustando Hotshot-XL. ¡Háganos saber si lo hace!
python inference.py --prompt="a bulldog in the captains chair of a spaceship, hd, high quality" --output="output.gif" --video_length=16 --video_duration=2000
Hotshot-XL está capacitado para generar GIF junto con SDXL. Si desea generar solo una imagen, simplemente puede configurar video_length=1
en su llamada de inferencia y las capas temporales de Hotshot-XL se ignorarán, como era de esperar.
python inference.py --prompt="a bulldog in the captains chair of a spaceship, hd, high quality" --output="output.jpg" --video_length=1
Hotshot-XL fue entrenado con las siguientes relaciones de aspecto; Para generar GIF de manera confiable fuera del rango de estas relaciones de aspecto, deberá ajustar Hotshot-XL con videos con la resolución de la relación de aspecto deseada.
Relación de aspecto | Tamaño |
---|---|
0,42 | 320 x 768 |
0,57 | 384 x 672 |
0,68 | 416 x 608 |
1.00 | 512 x 512 |
1.46 | 608 x 416 |
1,75 | 672 x 384 |
2.40 | 768 x 320 |
La siguiente sección se relaciona con el ajuste del modelo temporal Hotshot-XL con pares de texto/video adicionales. Si está intentando generar GIF de conceptos/temas personalizados, le recomendamos no ajustar Hotshot-XL, sino entrenar sus propios LORA basados en SDXL y simplemente cargarlos.
El script fine_tune.py
espera que sus muestras estén estructuradas de esta manera:
fine_tune_dataset ├── sample_001 │ ├── 0.jpg │ ├── 1.jpg │ ├── 2.jpg ... ... │ ├── n.jpg │ └── prompt.txt
Cada directorio de muestra debe contener sus n fotogramas clave y un archivo prompt.txt
que contenga el mensaje. El punto de control final se guardará en output_dir
. Nos ha resultado útil enviar GIF de validación a Weights & Biases de vez en cuando. Si elige utilizar la validación con ponderaciones y sesgos, puede establecer la frecuencia con la que se ejecuta con el parámetro validate_every_steps
.
accelerate launch fine_tune.py --output_dir="<OUTPUT_DIR>" --data_dir="fine_tune_dataset" --report_to="wandb" --run_validation_at_start --resolution=512 --mixed_precision=fp16 --train_batch_size=4 --learning_rate=1.25e-05 --lr_scheduler="constant" --lr_warmup_steps=0 --max_train_steps=1000 --save_n_steps=20 --validate_every_steps=50 --vae_b16 --gradient_checkpointing --noise_offset=0.05 --snr_gamma --test_prompts="man sits at a table in a cafe, he greets another man with a smile and a handshakes"
Hay muchas formas en las que nos entusiasma mejorar Hotshot-XL. Por ejemplo:
Ajuste preciso de Hotshot-XL a velocidades de fotogramas más altas para crear GIF con velocidades de fotogramas más largas o más altas
Ajuste fino de Hotshot-XL a resoluciones más grandes para crear GIF de mayor resolución
Entrenamiento de capas temporales para que un escalador latente produzca GIF de mayor resolución
Entrenamiento de un modelo de "predicción de fotogramas" condicionado por imágenes para GIF más coherentes y más largos
Entrenamiento de capas temporales para un VAE para mitigar el parpadeo/difuminado en las salidas
Compatible con Multi-ControlNet para un mayor control sobre la generación de GIF
Capacitar e integrar diferentes modelos de ControlNet para un mayor control sobre la generación de GIF (un control más preciso de las expresiones faciales sería genial)
Mover Hotshot-XL a AITemplate para tiempos de inferencia más rápidos
Nosotros ? ¡Contribuciones de la comunidad de código abierto! ¡Háganos saber en los problemas o relaciones públicas si está interesado en trabajar en estas mejoras o en cualquier otra cosa!
@software{Mullan_Hotshot-XL_2023, author = {Mullan, John and Crawbuck, Duncan and Sastry, Aakash}, license = {Apache-2.0}, month = oct, title = {{Hotshot-XL}}, url = {https://github.com/hotshotco/hotshot-xl}, version = {1.0.0}, year = {2023} }
Los modelos de texto a vídeo están mejorando rápidamente y el desarrollo de Hotshot-XL se ha inspirado en gran medida en los siguientes increíbles trabajos y equipos:
SDXL
Alinee sus latentes
Hacer un video
AnimarDiff
Imagen Vídeo
Esperamos que el lanzamiento de este modelo/código base ayude a la comunidad a continuar impulsando estas herramientas creativas de una manera abierta y responsable.