Hotshot-XL — это модель искусственного интеллекта для преобразования текста в GIF, предназначенная для работы вместе со Stable Diffusion XL.
Hotshot-XL может генерировать GIF-файлы с помощью любой точно настроенной модели SDXL. Это означает две вещи:
Вы сможете создавать GIF-файлы с помощью любой существующей или недавно настроенной модели SDXL, которую вы захотите использовать.
Если вы хотите создавать GIF-файлы с персонализированными объектами, вы можете загрузить свои собственные LORA на основе SDXL и не беспокоиться о точной настройке Hotshot-XL. Это здорово, потому что обычно гораздо проще найти подходящие изображения для обучающих данных, чем найти видео. Мы также надеемся, что он впишется в существующие процессы использования/рабочие процессы LORA :) Подробнее см. здесь.
Hotshot-XL совместим с SDXL ControlNet, что позволяет создавать GIF-файлы с желаемой композицией/макетом. См. раздел ControlNet ниже.
Hotshot-XL был обучен генерировать 1-секундные GIF-файлы со скоростью 8 кадров в секунду.
Hotshot-XL был обучен на различных соотношениях сторон. Для достижения наилучших результатов с базовой моделью Hotshot-XL мы рекомендуем использовать ее с моделью SDXL, настроенной для изображений с разрешением 512x512. Здесь вы можете найти модель SDXL, которую мы настроили для разрешения 512x512.
Попробуйте Hotshot-XL самостоятельно здесь: https://www.hotshot.co
Или, если вы хотите запустить Hotshot-XL самостоятельно локально, перейдите к разделам ниже.
Если вы сами используете Hotshot-XL, вы сможете получить гораздо больше гибкости и контроля с этой моделью. В качестве очень простого примера вы сможете изменить сэмплер. До сих пор мы видели лучшие результаты с Эйлером-А, но вы можете найти интересные результаты и с некоторыми другими.
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
или посетите https://huggingface.co/hotshotco/Hotshot-XL.
Примечание . Чтобы максимизировать данные и эффективность обучения, Hotshot-XL обучался при различных соотношениях сторон (около разрешения 512x512). Для достижения наилучших результатов с базовой моделью Hotshot-XL мы рекомендуем использовать ее с моделью SDXL, настроенной для изображений с разрешением около 512x512. Вы можете скачать модель SDXL, которую мы обучили с помощью изображений с разрешением 512x512 ниже, или принести свою собственную базовую модель SDXL.
# Make sure you have git-lfs installed (https://git-lfs.com) git lfs install git clone https://huggingface.co/hotshotco/SDXL-512
или посетите 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"
Чего ожидать:
Быстрый | Сасквотч подводное плавание | верблюд курит сигарету | Рональд Макдональд сидит у туалетного зеркала и красит помаду | Дрейк облизывает губы и смотрит в окно на кекс |
---|---|---|---|---|
Выход |
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"
Чего ожидать:
Примечание . В приведенных ниже выходных данных используется DDIMScheduler.
Быстрый | Скс человек кричит на солнце Капри | Скс человек целует лягушку Кермит | Скс человек в смокинге держит бокал шампанского, фейерверк на заднем плане, HD, высокое качество, 4K |
---|---|---|---|
Выход |
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"
По умолчанию Hotshot-XL создаст ключевые кадры из исходного GIF-изображения, используя 8 кадров с равным интервалом, и обрежет ключевые кадры до соотношения сторон по умолчанию. Для более детального управления узнайте, как изменять соотношение сторон и частоту/длину кадров.
Hotshot-XL в настоящее время поддерживает одновременное использование одной модели ControlNet; поддержка Multi-ControlNet была бы интересной.
Чего ожидать:
Быстрый | Девушка в стиле Pixar ставит два пальца вверх, счастливая, высокое качество, 8k, 3d, анимированный диснеевский рендер | Киану Ривз держит табличку с надписью «ПОМОГИТЕ», hd, высокое качество | женщина смеется, hd, высокое качество | Барак Обама делает руками радугу, перед ними слово «МАГИЯ», в сине-белой полосатой толстовке, hd, высокое качество |
---|---|---|---|---|
Выход | ||||
Контроль |
Примечание . Базовая модель SDXL предназначена для наилучшего создания изображений с разрешением около 1024x1024. Чтобы максимизировать данные и эффективность обучения, Hotshot-XL обучался при соотношении сторон разрешения около 512x512. См. «Дополнительные примечания», где приведен список соотношений сторон, с которыми была обучена базовая модель Hotshot-XL.
Как и SDXL, Hotshot-XL был обучен с использованием различных соотношений сторон с сегментированием соотношения сторон и включает поддержку таких параметров SDXL, как целевой размер и исходный размер. Это означает, что вы можете создавать GIF-файлы с различными соотношениями сторон и разрешениями, используя только базовую модель 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>
Чего ожидать:
512x512 | 672x384 | 384x672 | |
---|---|---|---|
обезьяна играет на гитаре, кадры природы, hd, высокое качество |
По умолчанию Hotshot-XL обучен генерировать GIF-файлы длительностью 1 секунду с частотой 8 кадров в секунду. Если вы хотите поэкспериментировать с созданием GIF-файлов с различной частотой кадров и продолжительностью, вы можете попробовать параметры video_length
и video_duration
.
video_length
устанавливает количество кадров. Значение по умолчанию — 8.
video_duration
устанавливает время выполнения выходного gif в миллисекундах. Значение по умолчанию — 1000.
Обратите внимание, что при изменении этих параметров следует ожидать нестабильных/«нервных» результатов, поскольку модель обучалась только с помощью видео длительностью 1 с при частоте 8 кадров в секунду. Вы сможете улучшить стабильность результатов для разных временных интервалов и частоты кадров, настроив Hotshot-XL. Пожалуйста, дайте нам знать, если да!
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 обучен генерировать GIF-файлы вместе с SDXL. Если вы хотите сгенерировать только изображение, вы можете просто установить video_length=1
в вызове вывода, и временные слои Hotshot-XL будут игнорироваться, как и следовало ожидать.
python inference.py --prompt="a bulldog in the captains chair of a spaceship, hd, high quality" --output="output.jpg" --video_length=1
Hotshot-XL был обучен при следующих соотношениях сторон; Чтобы надежно генерировать GIF-файлы за пределами этих соотношений сторон, вам потребуется настроить Hotshot-XL на видео с разрешением желаемого соотношения сторон.
Соотношение сторон | Размер |
---|---|
0,42 | 320 х 768 |
0,57 | 384 х 672 |
0,68 | 416 х 608 |
1.00 | 512 х 512 |
1,46 | 608 х 416 |
1,75 | 672 х 384 |
2.40 | 768 х 320 |
Следующий раздел посвящен тонкой настройке временной модели Hotshot-XL с использованием дополнительных пар текст/видео. Если вы пытаетесь создать GIF-файлы с персонализированными концепциями/предметами, мы рекомендуем не настраивать Hotshot-XL, а вместо этого обучать свои собственные LORA на основе SDXL и просто загружать их.
Скрипт fine_tune.py
ожидает, что ваши образцы будут структурированы следующим образом:
fine_tune_dataset ├── sample_001 │ ├── 0.jpg │ ├── 1.jpg │ ├── 2.jpg ... ... │ ├── n.jpg │ └── prompt.txt
Каждый каталог примеров должен содержать n ключевых кадров и файл prompt.txt
, содержащий приглашение. Последняя контрольная точка будет сохранена в output_dir
. Мы сочли полезным время от времени отправлять проверочные GIF-файлы в Weights & Biases. Если вы решите использовать проверку с весами и смещениями, вы можете установить, как часто она будет выполняться с помощью параметра 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"
Мы хотим улучшить Hotshot-XL по-разному. Например:
Точная настройка Hotshot-XL при более высокой частоте кадров для создания GIF-файлов с более длинной/более высокой частотой кадров.
Точная настройка Hotshot-XL при большем разрешении для создания GIF-файлов с более высоким разрешением.
Обучение временных слоев для скрытого масштабирования для создания GIF-файлов с более высоким разрешением.
Обучение модели «предсказания кадров» с учетом изображения для получения более последовательных и длинных GIF-файлов.
Обучение временных слоев для VAE для уменьшения мерцания/дизеринга на выходе
Поддержка Multi-ControlNet для большего контроля над созданием GIF.
Обучение и интеграция различных моделей ControlNet для дальнейшего контроля над генерацией GIF (было бы очень здорово более точно контролировать выражение лица)
Перемещение Hotshot-XL в AITemplate для ускорения вывода
Мы ? вклад сообщества открытого исходного кода! Пожалуйста, дайте нам знать в выпусках или PR, если вы заинтересованы в работе над этими улучшениями или чем-то еще!
@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} }
Модели преобразования текста в видео быстро совершенствуются, и разработка Hotshot-XL во многом вдохновлена следующими замечательными работами и командами:
SDXL
Выровняйте свои скрытые возможности
Сделать видео
АниматеДифф
Изображение видео
Мы надеемся, что выпуск этой модели/базы кода поможет сообществу продолжать открыто и ответственно продвигать эти творческие инструменты.