Свяжитесь с нами:

Как обучать и использовать модели Hunyuan Video LoRA

Искусственный интеллект

Как обучать и использовать модели Hunyuan Video LoRA

mm
ChatGPT-4o: Вариация на тему «Создайте мне изображение 1792 x 1024. Оно должно быть в стиле Теодора Жерико и должно изображать темную средневековую фигуру, сидящую перед ноутбуком, освещенную экраном. Мы смотрим на фигуру и видим только заднюю часть крышки ноутбука. Вокруг сидящей средневековой фигуры много других средневековых мужчин и женщин, которым любопытно, что происходит на экране компьютера».

В этой статье вы узнаете, как установить и использовать программное обеспечение на базе Windows, которое может обучать Видеомодели LoRA Хуньюань, что позволяет пользователю создавать собственные личности в базовой модели Hunyuan Video:

Нажмите, чтобы играть. Примеры недавнего всплеска популярности Hunyuan LoRAs от сообщества civit.ai.

На данный момент наиболее популярными способами локального создания моделей Hunyuan LoRA являются:

1) diffusion-pipe-ui Фреймворк на основе Docker, который опирается на Подсистема Windows для Linux (WSL) для обработки некоторых процессов.

2) Тюнер Мусуби, новое дополнение к популярному Кохья сс Архитектура диффузионного обучения. Musubi Tuner не требует Docker и не зависит от WSL или других прокси-серверов на базе Linux, но его может быть сложно запустить в Windows.

Поэтому в этом обзоре основное внимание будет уделено Musubi Tuner и предоставлению полностью локального решения для обучения и генерации Hunyuan LoRA без использования веб-сайтов, управляемых API, или коммерческих процессов аренды GPU, таких как Runpod.

Нажмите, чтобы играть. Образцы из обучения LoRA на Musubi Tuner для этой статьи. Все разрешения предоставлены изображенным лицом для целей иллюстрации этой статьи.

ТРЕБОВАНИЯ

Для установки потребуется как минимум ПК с Windows 10 и видеокартой NVIDIA серии 30+/40+, имеющей не менее 12 ГБ видеопамяти (хотя рекомендуется 16 ГБ). Установка, использованная в этой статье, была протестирована на машине с 64 ГБ система RAM и видеокарты NVIDIA 3090 с 24 ГБ VRAM. Тестирование проводилось на выделенной тестовой системе с использованием свежей установки Windows 10 Professional на разделе с 600+ ГБ свободного места на диске.

ПРЕДУПРЕЖДЕНИЕ

Установка Musubi Tuner и его предварительных условий также влечет за собой установку программного обеспечения и пакетов, ориентированных на разработчиков, непосредственно на основную установку Windows на ПК. Принимая во внимание установку ComfyUI, на конечных этапах этот проект потребует около 400-500 гигабайт дискового пространства. Хотя я несколько раз без происшествий протестировал процедуру в недавно установленных тестовых средах Windows 10, ни я, ни unite.ai не несем ответственности за какой-либо ущерб системам в результате выполнения этих инструкций. Я советую вам сделать резервную копию любых важных данных перед попыткой такого рода процедуры установки.

Соображения

Этот метод все еще актуален?

Сфера генеративного ИИ развивается очень быстро, и в этом году мы можем ожидать появления более совершенных и оптимизированных методов работы фреймворков Hunyuan Video LoRA.

...или даже на этой неделе! Пока я писал эту статью, разработчик Kohya/Musubi выпустил musubi-тюнер-gui, усовершенствованный графический интерфейс Gradio для тюнера Musubi:

Очевидно, что удобный графический интерфейс предпочтительнее BAT-файлов, которые я использую в этой функции – как только musubi-tuner-gui заработает. На момент написания статьи он появился в сети всего пять дней назад, и я не могу найти ни одного аккаунта, который бы успешно его использовал.

Согласно сообщениям в репозитории, новый графический интерфейс планируется как можно скорее внедрить непосредственно в проект Musubi Tuner, что положит конец его текущему существованию в качестве отдельного репозитория GitHub.

На основе настоящих инструкций по установке новый GUI клонируется непосредственно в существующую виртуальную среду Musubi; и, несмотря на множество усилий, я не могу заставить его ассоциироваться с существующей установкой Musubi. Это означает, что при запуске он обнаружит, что у него нет движка!

После того, как GUI будет интегрирован в Musubi Tuner, проблемы такого рода наверняка будут решены. Хотя автор признаёт, что новый проект «действительно сложный», он с оптимизмом смотрит на его развитие и интеграцию непосредственно в Musubi Tuner.

Учитывая эти проблемы (а также касающиеся путей по умолчанию во время установки и использования Пакет UV Python, что усложняет определенные процедуры в новом выпуске), нам, вероятно, придется немного подождать для более гладкого опыта обучения Hunyuan Video LoRA. Тем не менее, это выглядит очень многообещающе!

Но если вы не можете ждать и готовы немного потрудиться, вы можете прямо сейчас записаться на видеообучение LoRA от Hunyuan, проводимое локально.

Итак, начнем.

Зачем устанавливать Все на Bare Metal?

(Пропустите этот абзац, если вы не продвинутый пользователь)
Продвинутые пользователи будут удивляться, почему я решил установить так много программного обеспечения на голом железе Windows 10, а не в виртуальной среде. Причина в том, что существенный порт Windows на основе Linux Пакет Тритон гораздо сложнее заставить работать в виртуальной среде. Все остальные установки bare-metal в руководстве не могут быть установлены в виртуальной среде, поскольку они должны напрямую взаимодействовать с локальным оборудованием.

Установка необходимых пакетов и программ

Для программ и пакетов, которые необходимо установить изначально, порядок установки имеет значение. Итак, начнём.

1: Загрузите Microsoft Redistributable

Загрузите и установите пакет Microsoft Redistributable с сайта https://aka.ms/vs/17/release/vc_redist.x64.exe.

Это простая и быстрая установка.

2: Установите Visual Studio 2022

Загрузите версию Microsoft Visual Studio 2022 Community с сайта https://visualstudio.microsoft.com/downloads/?cid=learn-onpage-download-install-visual-studio-page-cta

Запустите загруженный установщик:

Нам не нужны все доступные пакеты, так как это потребовало бы много времени и сил на установку. На начальном этапе Нагрузки открывшуюся страницу, отметьте галочкой Разработка настольных приложений на C++ (см. изображение ниже).

Теперь нажмите Отдельные компоненты вкладку в левом верхнем углу интерфейса и используйте поле поиска, чтобы найти «Windows SDK».

По умолчанию только Пакет SDK для Windows 11 отмечен. Если у вас Windows 10 (эта процедура установки не была протестирована мной на Windows 11), отметьте последнюю версию Windows 10, указанную на изображении выше.

Найдите «C++ CMake» и проверьте, что Инструменты C++ CMake для Windows проверено.

Эта установка займет не менее 13 ГБ места.

После установки Visual Studio попытается запуститься на вашем компьютере. Разрешите ей полностью открыться. Когда интерфейс Visual Studio наконец станет видимым, закройте программу.

3: Установите Visual Studio 2019

Некоторые из последующих пакетов для Musubi ожидают более старую версию Microsoft Visual Studio, в то время как другим нужна более новая.

Поэтому также загрузите бесплатную версию Visual Studio 19 Community Edition с сайта Microsoft (https://visualstudio.microsoft.com/vs/older-downloads/ – требуется учетная запись) или Techspot (https://www.techspot.com/downloads/7241-visual-studio-2019.html).

Установите его с теми же параметрами, что и для Visual Studio 2022 (см. процедуру выше, за исключением того, что Windows SDK уже отмечен в установщике Visual Studio 2019).

Вы увидите, что установщик Visual Studio 2019 уже знает о новой версии, поскольку он устанавливает ее:

После завершения установки и открытия и закрытия установленного приложения Visual Studio 2019 откройте командную строку Windows (введите CMD в поле «Начать поиск») и введите и введите:

where cl

Результатом должны быть известные расположения двух установленных редакций Visual Studio.

Если вместо этого вы получите INFO: Could not find files for the given pattern(s)См. Проверить путь раздел этой статьи ниже и используйте эти инструкции для добавления соответствующих путей Visual Studio в среду Windows.

Сохраните все изменения, внесенные в соответствии с Проверить пути раздел ниже, а затем попробуйте снова выполнить команду where cl.

4: Установка наборов инструментов CUDA 11 + 12

Различные пакеты, установленные в Musubi, требуют разных версий NVIDIA CUDA, который ускоряет и оптимизирует обучение на видеокартах NVIDIA.

Причина, по которой мы установили версии Visual Studio первый заключается в том, что установщики NVIDIA CUDA выполняют поиск и интеграцию с любыми существующими установками Visual Studio.

Загрузите установочный пакет CUDA 11+ серии с сайта:

https://developer.nvidia.com/cuda-11-8-0-download-archive?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_local (скачать 'exe (локальный)' )

Загрузите установочный пакет CUDA Toolkit 12+ серии с сайта:

https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64

Процесс установки идентичен для обоих установщиков. Игнорируйте любые предупреждения о существовании или отсутствии путей установки в переменных среды Windows — мы займемся этим вручную позже.

Установить NVIDIA CUDA Toolkit V11+

Запустите установщик CUDA Toolkit серии 11+.

At Параметры установки, выберите Пользовательский (Advanced) и продолжаем.

Снимите флажок NVIDIA GeForce Experience и нажмите Следующая.

Оставлять Выберите место установки по умолчанию (это важно):

Нажмите Следующая и дайте установке завершиться.

Игнорируйте любые предупреждения или примечания, которые дает установщик по поводу Nsight Visual Studio интеграция, которая не нужна в нашем случае использования.

Установить NVIDIA CUDA Toolkit V12+

Повторите весь процесс для отдельного установщика NVIDIA Toolkit 12+, который вы скачали:

Процесс установки для этой версии идентичен описанному выше (версия 11+), за исключением одного предупреждения о путях среды, которое можно проигнорировать:

После завершения установки версии CUDA 12+ откройте командную строку в Windows и введите:

nvcc --version

Это должно подтвердить информацию об установленной версии драйвера:

Чтобы проверить, распознана ли ваша карта, введите и введите:

nvidia-smi

5: Установка GIT

GIT будет заниматься установкой репозитория Musubi на вашем локальном компьютере. Загрузите установщик GIT по адресу:

https://git-scm.com/downloads/win («64-битная установка Git для Windows»)

Запустите программу установки:

Использовать настройки по умолчанию для Выбрать компоненты:

Оставьте редактор по умолчанию напор:

Позвольте GIT принять решение об именах веток:

Используйте рекомендуемые настройки для Тропа Окружающая среда:

Используйте рекомендуемые настройки для SSH:

Используйте рекомендуемые настройки для HTTPS-транспортная серверная часть:

Используйте рекомендуемые настройки для преобразования окончания строки:

Выберите консоль Windows по умолчанию в качестве эмулятора терминала:

Использовать настройки по умолчанию (Перемотка вперед или слияние) для Git Pull:

Используйте Git-Credential Manager (настройка по умолчанию) для Credential Helper:

In Настройка дополнительных опций, покинуть Включить кэширование файловой системы отмечено галочкой, и Включить символические ссылки не отмечено (если вы не являетесь продвинутым пользователем, использующим жесткие ссылки для централизованного репозитория моделей).

Завершите установку и проверьте, что Git установлен правильно, открыв окно CMD и введя следующую команду:

git --version

Войти в GitHub

Позже, когда вы попытаетесь клонировать репозитории GitHub, у вас могут запросить учетные данные GitHub. Чтобы это предвидеть, войдите в свою учетную запись GitHub (создайте ее, если необходимо) в любом браузере, установленном в вашей системе Windows. Таким образом, метод аутентификации 0Auth (всплывающее окно) должен занять как можно меньше времени.

После этого первоначального вызова ваша аутентификация должна оставаться автоматической.

6: Установка CMake

Для некоторых частей процесса установки Musubi требуется CMake 3.21 или более новая версия. CMake — это кроссплатформенная архитектура разработки, способная координировать различные компиляторы и компилировать программное обеспечение из исходного кода.

Загрузите его по адресу:

https://cmake.org/download/  («Установщик Windows x64»)

Запустите установщик:

Обеспечивать Добавьте Cmake в переменную среды PATH проверено.

Press Следующая.

Введите и запустите следующую команду в командной строке Windows:

cmake --version

Если CMake установлен успешно, вы увидите что-то вроде:

cmake version 3.31.4
CMake suite maintained and supported by Kitware (kitware.com/cmake).

7: Установка Python 3.10

Интерпретатор Python является центральным элементом этого проекта. Загрузите версию 3.10 (лучший компромисс между различными требованиями пакетов Musubi) по адресу:

https://www.python.org/downloads/release/python-3100/ («Установщик Windows (64-разрядная версия)»)

Запустите установщик и оставьте настройки по умолчанию:

В конце процесса установки нажмите Отключить ограничение длины пути (требуется подтверждение администратора UAC):

В командной строке Windows введите:

python --version

Это должно привести к Python 3.10.0

Проверить пути

Клонирование и установка фреймворков Musubi, а также их нормальная работа после установки требуют, чтобы их компоненты знали пути к нескольким важным внешним компонентам в Windows, в частности, к CUDA.

Поэтому нам нужно открыть среду path и проверить наличие всех реквизитов.

Быстрый способ получить доступ к элементам управления средой Windows — ввести Изменить системные переменные среды в строку поиска Windows.

При нажатии на нее откроется Свойства системы Панель управления. В правом нижнем углу Свойства системы, Нажмите Переменные среды кнопка, и окно под названием Переменные среды открывается. В Системные переменные панель в нижней половине этого окна, прокрутите вниз, чтобы Тропа и дважды щелкните по нему. Это откроет окно под названием Редактировать переменные среды. Растяните это окно по ширине, чтобы увидеть полный путь переменных:

Вот важные записи:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\libnvvp
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64
C:\Program Files\Git\cmd
C:\Program Files\CMake\bin

В большинстве случаев правильные переменные пути уже должны присутствовать.

Добавьте все отсутствующие пути, нажав Новое слева от Изменить переменную среды окно и вставка по правильному пути:

НЕ просто копируйте и не вставляйте пути, указанные выше; проверьте, что каждый эквивалентный путь существует в вашей собственной установке Windows.

Если имеются незначительные изменения путей (особенно при установке Visual Studio), используйте пути, перечисленные выше, чтобы найти правильные целевые папки (т. е. x64 in Хост64 в вашей собственной установке. Затем вставьте те пути в Изменить переменную среды окно.

После этого перезагрузите компьютер.

Установка Мусуби

Обновление PIP

Использование последней версии установщика PIP может сгладить некоторые этапы установки. В командной строке Windows с правами администратора (см. Высота, ниже), введите и введите:

pip install --upgrade pip

Высота

Некоторые команды могут требовать повышенных привилегий (т. е. запуска от имени администратора). Если вы получаете сообщения об ошибках относительно разрешений на следующих этапах, закройте окно командной строки и снова откройте его в режиме администратора, введя CMD в поле поиска Windows, щелкнув правой кнопкой мыши Командная строка и выбор Запуск от имени администратора:

На следующих этапах мы будем использовать Windows Powershell вместо командной строки Windows. Вы можете найти ее, введя Powershell в поле поиска Windows и (при необходимости) щелкнуть правой кнопкой мыши по нему, чтобы Запуск от имени администратора:

Установить факел

В Powershell введите и введите:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

Будьте терпеливы, пока устанавливаются многочисленные пакеты.

После завершения вы можете проверить установку PyTorch с поддержкой GPU, введя следующую команду:

python -c "import torch; print(torch.cuda.is_available())"

Это должно привести к следующему:

C:\WINDOWS\system32>python -c "import torch;
print(torch.cuda.is_available())"
True

Установить Triton для Windows

Далее следует установка Тритон для Windows компонент. В Powershell с повышенными правами введите (в одну строку):

pip install https://github.com/woct0rdho/triton-windows/releases/download/v3.1.0-windows.post8/triton-3.1.0-cp310-cp310-win_amd64.whl

(Установщик triton-3.1.0-cp310-cp310-win_amd64.whl работает как для процессоров Intel, так и для AMD, если архитектура 64-битная, а среда соответствует версии Python)

После запуска это должно привести к следующему:

Successfully installed triton-3.1.0

Мы можем проверить, работает ли Triton, импортировав его в Python. Введите эту команду:

python -c "import triton; print('Triton is working')"

Это должно вывести:

Triton is working

Чтобы проверить, поддерживает ли Triton графический процессор, введите:

python -c "import torch; print(torch.cuda.is_available())"

Это должно привести к True:

Создайте виртуальную среду для Мусуби

С этого момента мы будем устанавливать любое дополнительное программное обеспечение в Виртуальная среда Python (или venv). Это означает, что все, что вам нужно будет сделать для удаления всего следующего программного обеспечения, — это перетащить папку установки Venv в корзину.

Давайте создадим папку для установки: создадим папку с названием Мусуби на рабочем столе. В следующих примерах предполагается, что эта папка существует: C:\Users\[Your Profile Name]\Desktop\Musubi\.

В Powershell перейдите в эту папку, введя:

cd C:\Users\[Your Profile Name]\Desktop\Musubi

Мы хотим, чтобы виртуальная среда имела доступ к тому, что у нас уже установлено (особенно к Triton), поэтому мы будем использовать --system-site-packages флаг. Введите это:

python -m venv --system-site-packages musubi

Дождитесь создания среды, а затем активируйте ее, введя:

.\musubi\Scripts\activate

С этого момента вы можете определить, что находитесь в активированной виртуальной среде, по тому, что (musubi) появляется в начале всех ваших подсказок.

Клонировать репозиторий

Перейдите к недавно созданному мусуби папка (которая находится внутри Мусуби папка на рабочем столе):

cd musubi

Теперь, когда мы находимся в нужном месте, введите следующую команду:

git clone https://github.com/kohya-ss/musubi-tuner.git

Дождитесь завершения клонирования (это не займет много времени).

Требования к установке

Перейдите в папку установки:

cd musubi-tuner

Введите:

pip install -r requirements.txt

Дождитесь завершения многочисленных установок (это займет больше времени).

Автоматизация доступа к видео Hunyuan Venv

Чтобы легко активировать и получить доступ к новому venv для будущих сеансов, вставьте следующий текст в Блокнот и сохраните его под именем активировать.bat, сохранив его с помощью Все файлы вариант (см. изображение ниже).

@echo off

call C:\Users\[Your Profile Name]\Desktop\Musubi\musubi\Scripts\activate

cd C:\Users\[Your Profile Name]\Desktop\Musubi\musubi\musubi-tuner

cmd

(Заменить [Your Profile Name]с реальным именем вашего профиля пользователя Windows)

Неважно, в какое место вы сохраните этот файл.

С этого момента вы можете дважды щелкнуть активировать.bat и немедленно приступайте к работе.

Использование тюнера Musubi

Загрузка моделей

Процесс обучения Hunyuan Video LoRA требует загрузки не менее семи моделей для поддержки всех возможных вариантов оптимизации для предварительного кэширования и обучения Hunyuan video LoRA. Вместе эти модели весят более 60 ГБ.

Актуальные инструкции по их загрузке можно найти по адресу https://github.com/kohya-ss/musubi-tuner?tab=readme-ov-file#model-download

Однако на момент написания статьи инструкции по загрузке были следующими:

clip_l.safetensors
llava_llama3_fp16.safetensors
и
llava_llama3_fp8_scaled.safetensors
можно скачать по адресу:
https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/tree/main/split_files/text_encoders

mp_rank_00_model_states.pt
mp_rank_00_model_states_fp8.pt
и
mp_rank_00_model_states_fp8_map.pt
можно скачать по адресу:
https://huggingface.co/tencent/HunyuanVideo/tree/main/hunyuan-video-t2v-720p/transformers

pytorch_model.pt
можно скачать по адресу:
https://huggingface.co/tencent/HunyuanVideo/tree/main/hunyuan-video-t2v-720p/vae

Хотя вы можете поместить их в любой каталог по вашему выбору, для согласованности с последующими скриптами давайте поместим их сюда:

C:\Users\[Your Profile Name]\Desktop\Musubi\musubi\musubi-tuner\models\

Это соответствует структуре каталогов, существовавшей до этого момента. Все последующие команды и инструкции будут предполагать, что модели находятся именно здесь. Не забудьте заменить [Имя вашего профиля] на имя вашей реальной папки профиля Windows.

Подготовка набора данных

Игнорируя разногласия в сообществе по этому вопросу, можно смело утверждать, что для обучающего набора данных для Hunyuan LoRA вам понадобится от 10 до 100 фотографий. Даже с 15 изображениями можно получить очень хорошие результаты, если они сбалансированы и качественны.

Hunyuan LoRA можно обучать как на изображениях, так и на очень коротких видеоклипах с низким разрешением, или даже на их смеси, хотя использование видеоклипов в качестве обучающих данных является сложной задачей даже для карты объемом 24 ГБ.

Однако видеоклипы действительно полезны только в том случае, если ваш персонаж движется таким необычным образом, что модель фонда Hunyuan Video может не знать об этом, или уметь догадываться.

Примерами могут служить Кролик Роджер, ксеноморф, Маска, Человек-паук или другие личности, обладающие особенным характерное движение.

Поскольку Hunyuan Video уже знает, как двигаются обычные мужчины и женщины, для создания убедительного человеческого персонажа Hunyuan Video LoRA не нужны видеоклипы. Поэтому мы будем использовать статические изображения.

Подготовка изображения

The Bucket List

Краткая версия:

Лучше всего либо использовать изображения одинакового размера для вашего набора данных, либо использовать разделение 50/50 между двумя разными размерами, т. е. 10 изображений размером 512x768 пикселей и 10 изображений размером 768x512 пикселей.

Обучение может пройти успешно, даже если вы этого не сделаете — видеосистемы Hunyuan Video LoRA могут быть на удивление снисходительными.

Более длинная версия

Как и в случае с LoRA Kohya-ss для статических генеративных систем, таких как Stable Diffusion, ведро используется для распределения рабочей нагрузки между изображениями разного размера, что позволяет использовать более крупные изображения, не вызывая ошибок нехватки памяти во время обучения (т. е. сегментирование «разрезает» изображения на фрагменты, которые может обработать графический процессор, сохраняя при этом семантическую целостность всего изображения).

Для каждого размера изображения, включённого в обучающий набор данных (например, 512x768 пикселей), будет создана группа, или «подзадача» для этого размера. Таким образом, если у вас следующее распределение изображений, внимание в группе нарушается, и возникает риск того, что некоторые фотографии будут учитываться при обучении больше, чем другие:

2 изображения размером 512x768 пикселей
7 изображения размером 768x512 пикселей
1x изображение 1000x600 пикселей
3 изображения размером 400x800 пикселей

Мы видим, что внимание к корзине распределено неравномерно между этими изображениями:

Поэтому либо придерживайтесь одного размера формата, либо старайтесь, чтобы распределение разных размеров было относительно равномерным.

В любом случае избегайте слишком больших изображений, так как это может замедлить обучение и принести незначительную пользу.

Для простоты я использовал размер 512x768 пикселей для всех фотографий в моем наборе данных.

Отказ от ответственности: Модель (человек), использованная в наборе данных, дала мне полное разрешение на использование этих изображений в этих целях и одобрила все результаты работы искусственного интеллекта, отображающие ее образ, представленный в этой статье.

Мой набор данных состоит из 40 изображений в формате PNG (хотя JPG тоже подойдет). Мои изображения были сохранены в C:\Users\Martin\Desktop\DATASETS_HUNYUAN\examplewoman

Вы должны создать кэш папка внутри папки с учебными изображениями:

Теперь давайте создадим специальный файл, который будет настраивать обучение.

Файлы TOML

Процессы обучения и предварительного кэширования Hunyuan Video LoRAs получают пути к файлам из простого текстового файла с .томл расширение.

Для моего теста TOML находится по адресу C:\Users\Martin\Desktop\DATASETS_HUNYUAN\training.toml

Содержание моего обучающего TOML выглядит так:

[general]

resolution = [512, 768]

caption_extension = ".txt"

batch_size = 1

enable_bucket = true

bucket_no_upscale = false

[[datasets]]

image_directory = "C:\\Users\\Martin\\Desktop\\DATASETS_HUNYUAN\\examplewoman"

cache_directory = "C:\\Users\\Martin\\Desktop\\DATASETS_HUNYUAN\\examplewoman\\cache"

num_repeats = 1

(Двойные обратные косые черты для каталогов изображений и кэша не всегда необходимы, но они могут помочь избежать ошибок в случаях, когда в пути есть пробел. Я обучил модели с файлами .toml, которые использовали одинарные прямые и одинарные обратные косые черты)

Мы можем видеть в resolution раздел, в котором будут рассмотрены два разрешения – 512px и 768px. Вы также можете оставить это на 512 и все равно получить хорошие результаты.

Подписи

Видео Hunyuan — это текст+модель фундамента зрения, поэтому нам нужны описательные подписи к этим изображениям, которые будут учитываться во время обучения. Процесс обучения не будет работать без подписей.

Существует множество систем субтитров с открытым исходным кодом, которые мы могли бы использовать для этой задачи, но давайте упростим задачу и используем тегги система. Хотя он хранится на GitHub и загружает некоторые очень тяжелые модели глубокого обучения при первом запуске, он поставляется в виде простого исполняемого файла Windows, который загружает библиотеки Python и простой графический интерфейс.

После запуска Taggui используйте Файл > Загрузить каталог для перехода к вашему набору данных изображений и, при необходимости, указать идентификатор токена (в данном случае, примерженщина), который будет добавлен ко всем подписям:

(Обязательно выключите Загрузить в 4-битном формате при первом открытии Taggui – если оставить эту опцию включенной, будут выдаваться ошибки во время субтитров)

Выберите изображение в левом столбце предварительного просмотра и нажмите CTRL+A, чтобы выбрать все изображения. Затем нажмите кнопку Start Auto-Captioning справа:

Вы увидите, как Taggui загружает модели в небольшом CLI в правой колонке, но только если вы запускаете субтитратор в первый раз. В противном случае вы увидите предварительный просмотр субтитров.

Теперь каждая фотография имеет соответствующую подпись в формате .txt с описанием содержимого изображения:

Вы можете щелкнуть Дополнительные параметры в Taggui для увеличения длины и стиля субтитров, но это выходит за рамки данного обзора.

Выйдем из Taggui и перейдем к…

Скрытое предварительное кэширование

Чтобы избежать чрезмерной нагрузки на графический процессор во время обучения, необходимо создать два типа предварительно кэшированных файлов: один для представления скрытого изображения, полученного из самих изображений, а другой для оценки кодировки текста, относящегося к содержанию субтитров.

Чтобы упростить все три процесса (2x кэш + обучение), вы можете использовать интерактивные .BAT-файлы, которые будут задавать вам вопросы и выполнять процессы, когда вы предоставите необходимую информацию.

Для скрытого предварительного кэширования скопируйте следующий текст в Блокнот и сохраните его как файл .BAT (т.е. назовите его как-то так: скрытый-precache.bat), как и ранее, убедившись, что тип файла в раскрывающемся меню в Сохранить как диалог - это Все файлы (см. изображение ниже):

@echo off

REM Activate the virtual environment

call C:\Users\[Your Profile Name]\Desktop\Musubi\musubi\Scripts\activate.bat

REM Get user input

set /p IMAGE_PATH=Enter the path to the image directory:

set /p CACHE_PATH=Enter the path to the cache directory:

set /p TOML_PATH=Enter the path to the TOML file:

echo You entered:

echo Image path: %IMAGE_PATH%

echo Cache path: %CACHE_PATH%

echo TOML file path: %TOML_PATH%

set /p CONFIRM=Do you want to proceed with latent pre-caching (y/n)?

if /i "%CONFIRM%"=="y" (

REM Run the latent pre-caching script

python C:\Users\[Your Profile Name]\Desktop\Musubi\musubi\musubi-tuner\cache_latents.py --dataset_config %TOML_PATH% --vae C:\Users\[Your Profile Name]\Desktop\Musubi\musubi\musubi-tuner\models\pytorch_model.pt --vae_chunk_size 32 --vae_tiling

) else (

echo Operation canceled.

)

REM Keep the window open

pause

(Убедитесь, что вы заменили [Имя вашего профиля] с реальным именем папки вашего профиля Windows)

Теперь вы можете запустить .BAT-файл для автоматического скрытого кэширования:

При появлении различных вопросов из BAT-файла вставьте или введите путь к вашему набору данных, папкам кэша и файлу TOML.

Предварительное кэширование текста

Мы создадим второй BAT-файл, на этот раз для предварительного кэширования текста.

@echo off

REM Activate the virtual environment

call C:\Users\[Your Profile Name]\Desktop\Musubi\musubi\Scripts\activate.bat

REM Get user input

set /p IMAGE_PATH=Enter the path to the image directory:

set /p CACHE_PATH=Enter the path to the cache directory:

set /p TOML_PATH=Enter the path to the TOML file:

echo You entered:

echo Image path: %IMAGE_PATH%

echo Cache path: %CACHE_PATH%

echo TOML file path: %TOML_PATH%

set /p CONFIRM=Do you want to proceed with text encoder output pre-caching (y/n)?

if /i "%CONFIRM%"=="y" (

REM Use the python executable from the virtual environment

python C:\Users\[Your Profile Name]\Desktop\Musubi\musubi\musubi-tuner\cache_text_encoder_outputs.py --dataset_config %TOML_PATH% --text_encoder1 C:\Users\[Your Profile Name]\Desktop\Musubi\musubi\musubi-tuner\models\llava_llama3_fp16.safetensors --text_encoder2 C:\Users\[Your Profile Name]\Desktop\Musubi\musubi\musubi-tuner\models\clip_l.safetensors --batch_size 16

) else (

echo Operation canceled.

)

REM Keep the window open

pause

Замените имя вашего профиля Windows и сохраните его как текст-кэш.bat (или любое другое имя, которое вам нравится) в любом удобном месте, как описано в процедуре для предыдущего BAT-файла.

Запустите этот новый BAT-файл, следуйте инструкциям, и необходимые текстовые файлы появятся в кэш Папка:

Обучение Hunyuan Видео Lora

Обучение самой LoRA займет значительно больше времени, чем эти два подготовительных процесса.

Хотя есть еще множество переменных, о которых нам стоит беспокоиться (такие как размер партии, повторы, эпохи, а также следует ли использовать полные или квантованные модели и т. д.), мы оставим эти соображения на другой день и более подробно рассмотрим тонкости создания LoRA.

Давайте сейчас немного сократим выбор и обучим LoRA на «медианных» настройках.

Мы создадим третий BAT-файл, на этот раз для запуска обучения. Вставьте его в Блокнот и сохраните как BAT-файл, как и раньше, под именем обучение.bat (или любое другое имя по вашему желанию):

@echo off

REM Activate the virtual environment

call C:\Users\[Your Profile Name]\Desktop\Musubi\musubi\Scripts\activate.bat

REM Get user input

set /p DATASET_CONFIG=Enter the path to the dataset configuration file:

set /p EPOCHS=Enter the number of epochs to train:

set /p OUTPUT_NAME=Enter the output model name (e.g., example0001):

set /p LEARNING_RATE=Choose learning rate (1 for 1e-3, 2 for 5e-3, default 1e-3):

if "%LEARNING_RATE%"=="1" set LR=1e-3

if "%LEARNING_RATE%"=="2" set LR=5e-3

if "%LEARNING_RATE%"=="" set LR=1e-3

set /p SAVE_STEPS=How often (in steps) to save preview images:

set /p SAMPLE_PROMPTS=What is the location of the text-prompt file for training previews?

echo You entered:

echo Dataset configuration file: %DATASET_CONFIG%

echo Number of epochs: %EPOCHS%

echo Output name: %OUTPUT_NAME%

echo Learning rate: %LR%

echo Save preview images every %SAVE_STEPS% steps.

echo Text-prompt file: %SAMPLE_PROMPTS%

REM Prepare the command

set CMD=accelerate launch --num_cpu_threads_per_process 1 --mixed_precision bf16 ^

C:\Users\[Your Profile Name]\Desktop\Musubi\musubi\musubi-tuner\hv_train_network.py ^

--dit C:\Users\[Your Profile Name]\Desktop\Musubi\musubi\musubi-tuner\models\mp_rank_00_model_states.pt ^

--dataset_config %DATASET_CONFIG% ^

--sdpa ^

--mixed_precision bf16 ^

--fp8_base ^

--optimizer_type adamw8bit ^

--learning_rate %LR% ^

--gradient_checkpointing ^

--max_data_loader_n_workers 2 ^

--persistent_data_loader_workers ^

--network_module=networks.lora ^

--network_dim=32 ^

--timestep_sampling sigmoid ^

--discrete_flow_shift 1.0 ^

--max_train_epochs %EPOCHS% ^

--save_every_n_epochs=1 ^

--seed 42 ^

--output_dir "C:\Users\[Your Profile Name]\Desktop\Musubi\Output Models" ^

--output_name %OUTPUT_NAME% ^

--vae C:/Users/[Your Profile Name]/Desktop/Musubi/musubi/musubi-tuner/models/pytorch_model.pt ^

--vae_chunk_size 32 ^

--vae_spatial_tile_sample_min_size 128 ^

--text_encoder1 C:/Users/[Your Profile Name]/Desktop/Musubi/musubi/musubi-tuner/models/llava_llama3_fp16.safetensors ^

--text_encoder2 C:/Users/[Your Profile Name]/Desktop/Musubi/musubi/musubi-tuner/models/clip_l.safetensors ^

--sample_prompts %SAMPLE_PROMPTS% ^

--sample_every_n_steps %SAVE_STEPS% ^

--sample_at_first

echo The following command will be executed:

echo %CMD%

set /p CONFIRM=Do you want to proceed with training (y/n)?

if /i "%CONFIRM%"=="y" (

%CMD%

) else (

echo Operation canceled.

)

REM Keep the window open

cmd /k

Как обычно, обязательно замените все экземпляры of [Имя вашего профиля] с правильным именем вашего профиля Windows.

Убедитесь, что каталог C:\Users\[Your Profile Name]\Desktop\Musubi\Output Models\ существует, и создать его в этом месте, если его нет.

Превью тренировок

Недавно для Musubi trainer была добавлена ​​очень простая функция предварительного просмотра обучения, которая позволяет вам приостанавливать модель обучения и генерировать изображения на основе сохраненных вами подсказок. Они сохраняются в автоматически созданной папке под названием Образец, в том же каталоге, где сохранены обученные модели.

Чтобы включить это, вам нужно будет сохранить хотя бы одну подсказку в текстовом файле. Учебный BAT, который мы создали, попросит вас ввести местоположение этого файла; поэтому вы можете назвать файл подсказки как угодно и сохранить его где угодно.

Вот несколько примеров файла, который будет выводить три разных изображения по запросу обучающей программы:

Как видно из примера выше, в конце подсказки можно разместить флаги, которые повлияют на изображения:

–w это ширина (по умолчанию 256 пикселей, если не установлено, согласно документы)
-его высота (по умолчанию 256 пикселей, если не указано иное)
–f – это количество кадров. Если установлено значение 1, создается изображение; если больше одного, создается видео.
–d — это семя. Если не установлено, оно случайно; но вы должны установить его, чтобы увидеть развитие одной подсказки.
–s — количество шагов генерации, по умолчанию 20.

Посмотреть официальная документация для дополнительных флагов.

Хотя предварительный просмотр обучения может быстро выявить некоторые проблемы, которые могут заставить вас отменить обучение и пересмотреть данные или настройки, тем самым экономя время, помните, что каждая дополнительная подсказка немного замедляет обучение.

Кроме того, чем больше ширина и высота изображения предварительного просмотра обучения (заданные в перечисленных выше флагах), тем сильнее оно замедлит обучение.

Запустите обучающий BAT-файл.

Вопрос #1 "Введите путь к конфигурации набора данных. Вставьте или введите правильный путь к вашему файлу TOML".

Вопрос #2 «Введите количество эпох для обучения». Это переменная, которую можно определить методом проб и ошибок, поскольку на неё влияют количество и качество изображений, а также подписи к ним и другие факторы. В целом, лучше установить её слишком высокой, чем слишком низкой, поскольку вы всегда можете остановить обучение, нажав Ctrl+C в окне обучения, если почувствуете, что модель достаточно продвинулась. Для начала установите значение 100 и посмотрите, как пойдёт.

Вопрос #3 «Введите название модели выходных данных». Дайте название своей модели! Лучше всего выбрать короткое и простое название.

Вопрос #4 «Выберите скорость обучения», которая по умолчанию равна 1e-3 (вариант 1). Это хорошая отправная точка, с которой можно начать, пока не накопится опыт.

Вопрос #5 «Как часто (в шагах) сохранять предварительные изображения». Если вы установите это значение слишком низким, вы увидите небольшой прогресс между сохранениями предварительных изображений, и это замедлит обучение.

Вопрос #6 «Где находится файл текстовых подсказок для предварительного просмотра обучения?». Вставьте или введите путь к текстовому файлу подсказок.

Затем BAT показывает вам команду, которую он отправит модели Hunyuan, и спрашивает, хотите ли вы продолжить, да/нет.

Продолжайте и начинайте обучение:

В это время, если вы проверите раздел «Графический процессор» на вкладке «Производительность» диспетчера задач Windows, вы увидите, что процесс использует около 16 ГБ видеопамяти.

Это не может быть произвольной цифрой, поскольку именно такой объем видеопамяти доступен на многих видеокартах NVIDIA, а исходный код мог быть оптимизирован для того, чтобы уместить задачи в 16 ГБ для удобства владельцев таких карт.

Тем не менее, очень легко повысить этот показатель, отправив более чрезмерные флаги обучающей команде.

Во время обучения в правом нижнем углу окна CMD вы увидите цифру, показывающую, сколько времени прошло с начала обучения, и оценку общего времени обучения (которое будет сильно зависеть от установленных флагов, количества обучающих изображений, количества предварительных изображений обучения и ряда других факторов).

Обычное время обучения составляет около 3–4 часов при средних настройках в зависимости от доступного оборудования, количества изображений, настроек флагов и других факторов.

Использование обученных моделей LoRA в видео Hunyuan

Выбор контрольных точек

По завершении обучения у вас будет контрольная точка-образец для каждой эпохи обучения.

Пользователь может изменить частоту сохранения, чтобы сохранять данные чаще или реже по своему желанию, изменив --save_every_n_epochs [N] число в обучающем BAT-файле. Если вы добавили низкое число сохранений на шаги при настройке обучения с BAT, будет большое количество сохраненных файлов контрольных точек.

Какой контрольно-пропускной пункт выбрать?

Как упоминалось ранее, самые ранние обученные модели будут наиболее гибкими, в то время как более поздние контрольные точки могут предложить наибольшую детализацию. Единственный способ проверить эти факторы — запустить некоторые LoRA и сгенерировать несколько видео. Таким образом, вы можете узнать, какие контрольные точки наиболее продуктивны и представляют наилучший баланс между гибкостью и точностью.

Удобный интерфейс

Самая популярная (хотя и не единственная) среда для использования Hunyuan Video LoRAs на данный момент — это Удобный интерфейс, редактор на основе узлов с продуманным интерфейсом Gradio, работающий в вашем веб-браузере.

Источник: https://github.com/comfyanonymous/ComfyUI

Источник: https://github.com/comfyanonymous/ComfyUI

Инструкции по установке просты и понятны. доступно в официальном репозитории GitHub (необходимо будет загрузить дополнительные модели).

Конвертация моделей для ComfyUI

Ваши обученные модели сохранены в формате (diffusers), который несовместим с большинством реализаций ComfyUI. Musubi может конвертировать модель в формат, совместимый с ComfyUI. Давайте создадим BAT-файл для реализации этой возможности.

Перед запуском этого BAT-файла создайте C:\Users\[Your Profile Name]\Desktop\Musubi\CONVERTED\ папка, которую ожидает скрипт.

@echo off

REM Activate the virtual environment

call C:\Users\[Your Profile Name]\Desktop\Musubi\musubi\Scripts\activate.bat

:START

REM Get user input

set /p INPUT_PATH=Enter the path to the input Musubi safetensors file (or type "exit" to quit):

REM Exit if the user types "exit"

if /i "%INPUT_PATH%"=="exit" goto END

REM Extract the file name from the input path and append 'converted' to it

for %%F in ("%INPUT_PATH%") do set FILENAME=%%~nF

set OUTPUT_PATH=C:\Users\[Your Profile Name]\Desktop\Musubi\Output Models\CONVERTED\%FILENAME%_converted.safetensors

set TARGET=other

echo You entered:

echo Input file: %INPUT_PATH%

echo Output file: %OUTPUT_PATH%

echo Target format: %TARGET%

set /p CONFIRM=Do you want to proceed with the conversion (y/n)?

if /i "%CONFIRM%"=="y" (

REM Run the conversion script with correctly quoted paths

python C:\Users\[Your Profile Name]\Desktop\Musubi\musubi\musubi-tuner\convert_lora.py --input "%INPUT_PATH%" --output "%OUTPUT_PATH%" --target %TARGET%

echo Conversion complete.

) else (

echo Operation canceled.

)

REM Return to start for another file

goto START

:END

REM Keep the window open

echo Exiting the script.

pause

Как и в случае с предыдущими BAT-файлами, сохраните скрипт как «Все файлы» из Блокнота, назвав его конвертировать.bat (или как вам нравится).

После сохранения дважды щелкните новый BAT-файл, после чего будет выведен запрос на указание местоположения файла для преобразования.

Вставьте или введите путь к обученному файлу, который вы хотите преобразовать, нажмите yи нажмите ввод.

После сохранения преобразованного LoRA в ПРЕОБРАЗОВАННЫЙ папку, скрипт спросит, хотите ли вы преобразовать другой файл. Если вы хотите протестировать несколько контрольных точек в ComfyUI, преобразуйте выборку моделей.

Когда вы преобразуете достаточное количество контрольных точек, закройте командное окно BAT.

Теперь вы можете скопировать преобразованные модели в папку models\loras в вашей установке ComfyUI.

Обычно правильное местоположение выглядит примерно так:

C:\Users\[Your Profile Name]\Desktop\ComfyUI\models\loras\

Создание Hunyuan Video LoRA в ComfyUI

Хотя рабочие процессы ComfyUI, основанные на узлах, на первый взгляд кажутся сложными, настройки других, более опытных пользователей можно загрузить, перетащив изображение (созданное в ComfyUI другого пользователя) непосредственно в окно ComfyUI. Рабочие процессы также можно экспортировать в виде JSON-файлов, которые можно импортировать вручную или перетаскивать в окно ComfyUI.

Некоторые импортированные рабочие процессы будут иметь зависимости, которые могут отсутствовать в вашей установке. Поэтому установите ComfyUI-менеджер, который может автоматически извлекать недостающие модули.

Источник: https://github.com/ltdrdata/ComfyUI-Manager

Источник: https://github.com/ltdrdata/ComfyUI-Manager

Чтобы загрузить один из рабочих процессов, используемых для создания видео из моделей в этом руководстве, загрузите этот файл JSON и перетащите его в окно ComfyUI (хотя в различных сообществах Reddit и Discord, которые используют Hunyuan Video, есть гораздо лучшие примеры рабочего процесса, и мой собственный адаптирован из одного из них).

Здесь не место для подробного руководства по использованию ComfyUI, но стоит упомянуть несколько важных параметров, которые повлияют на ваш вывод, если вы загрузите и используете макет JSON, ссылку на который я привел выше.

1) Ширина и высота

Чем больше изображение, тем больше времени займет генерация и тем выше риск ошибки нехватки памяти (OOM).

2) Длина

Это числовое значение количества кадров. Сколько секунд оно добавляется, зависит от частоты кадров (установленной на 30 кадров в секунду в этом макете). Вы можете преобразовать секунды>кадры на основе кадров в секунду в Омникалькуляторе.

3) Размер партии

Чем выше вы установите размер пакета, тем быстрее может прийти результат, но тем больше нагрузка на VRAM. Установите слишком большое значение, и вы можете получить OOM.

4) Контроль после генерации

Это управляет случайным семенем. Параметры для этого подузла: фиксированной, увеличить, декремент и Randomize. Если вы оставите его в фиксированной и не меняйте текстовую подсказку, вы будете получать одно и то же изображение каждый раз. Если вы измените текстовую подсказку, изображение изменится в ограниченной степени. увеличить и декремент настройки позволяют вам исследовать ближайшие начальные значения, в то время как Randomize дает вам совершенно новую интерпретацию подсказки.

5) Имя Лора

Прежде чем приступить к генерации, вам необходимо будет выбрать установленную модель.

6) Жетон

Если вы обучили свою модель запускать концепцию с помощью токена (например, «пример-человек»), вставьте это ключевое слово в подсказку.

7) Шаги

Это показывает, сколько шагов система применит к процессу диффузии. Более высокие шаги могут дать лучшую детализацию, но существует потолок эффективности этого подхода, и этот порог может быть трудно найти. Обычный диапазон шагов составляет около 20-30.

8) Размер плитки

Этот параметр определяет объём информации, обрабатываемой за один раз во время генерации. По умолчанию он равен 256. Увеличение этого значения может ускорить генерацию, но слишком большое значение может привести к особенно раздражающему эффекту OOM, поскольку он возникает в самом конце длительного процесса.

9) Временное перекрытие

Генерация людей на видео Hunyuan может привести к появлению «гостеров» или неубедительному движению, если значение этого параметра слишком низкое. В целом, для достижения более качественной передачи движения это значение следует устанавливать выше количества кадров.

Заключение

Хотя дальнейшее изучение использования ComfyUI выходит за рамки этой статьи, опыт сообщества Reddit и Discords может облегчить процесс обучения, и есть несколько интерактивные руководства которые знакомят с основами.

 

Впервые опубликовано Четверг, Январь 23, 2025