Что такое Hunyuan, можно почитать ТУТ

Если вкратце — это text2video(из текстового описания в видео) или image2video(из картинки + текстового описания в видео) модель от китайских разработчиков без NSFW (без цензуры), где вы, платя только за серверы, можете генерировать видео из текста или картинки в высоком разрешении. 

Но, если вы нашли этот пост, то и так знаете, что это и зачем оно вам нужно)

Чтобы развернуть ML-модель на арендованном сервере, нужно:

1. Арендовать сам сервер

2. Установить все рекомендуемые зависимости (библиотеки, драйверы для карты и CUDA)

3. Запустить сам Hunyuan в режиме, который вам нужен


Теперь по пунктам:


1. Арендуем сервер, нужен сервер с GPU A100 (80 Гб памяти)

Тут сразу несколько вариантов. Я рекомендую выбирать тот, который удобнее именно вам, в зависимости от ваших потребностей и кошелька. Какие сейчас есть варианты:

- Selectel/Яндекс (если нужно платить российской картой и нет иностранной) — это примерно 400-500 руб. в час (видеокарты дорогие). Я тестировал только Selectel, для быстрых тестов нормально.

- AWS/GCP/DigitalOcean — примерно 5 долларов, так что по сути те же деньги. Этот вариант я не рекомендую совсем.

- vast.ai — 1,3 доллара в час. По нашинским это примерно 100 руб. Это мой вариант, его и вам рекомендую.


Остальные параметры не особо важны, я рекомендую выбирать сервер с быстрым интернетом и диском не меньше 250гб, чтобы все быстро скачалось и без проблем уместилось на диск


Все ВМ можно остановить после того, как с ними поработали, тогда вы платите только за диск (в среднем около 100 руб. в сутки). При этом ВМ не уничтожается — вы сможете ее включить, когда вам будет нужно, и продолжить работу.

2. Устанавливаем все зависимости

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

Для примера возьмем Hunyuan-I2V:

2.1 CUDA

CUDA — необходимая штука для работы с видеокартами. 

Что это такое? Совсем грубо — набор инструментов и библиотек для работы с GPU. Лучше почитать в интернете, если вам интересно.

Идеальный вариант — выбрать сервер с установленной CUDA нужной версии. Почти на всех хостингах есть выпадающий список шаблонов (Templates), иначе придется качать самостоятельно (не наш вариант).


В описании мы видим вот такую фразу:

We recommend CUDA versions 12.4 or 11.8 for the manual installation.

Это враньё — с CUDA 11.8 вы будете плясать с бубном очень долго, поэтому выбирайте сервер с CUDA 12.4 (или выше, но не сильно).


2.2 Python

Также надо выбрать образ с нужной нам версией Python(3.11). Я отметил его на скрине — там и Python, и CUDA нужной версии.

Готовый образ с нужной версией CUDA и Python
Готовый образ с нужной версией CUDA и Python


2.3 Conda

Найти инструкцию можно тут. Главное в конце (пункт 7) выбрать yes. В остальном инструкция написана хорошо, так что этот пункт я пропущу.


2.4 Библиотеки

У Hunyuan есть инструкция, как установить все зависимости. Тут есть несколько нюансов. Делайте строго по порядку, но не выключайте голову — если видите ошибки, значит, вы что-то сделали неправильно из шагов выше.


- flash-attention может устанавливаться долго, но если этого не произошло за 10-15 минут, значит, лучше не ждать — где-то ошибка (у меня обычно он устанавливается за 2-3 секунды).


- xfuser — в инструкции есть строчка:

python -m pip install xfuser==0.4.0

Если вы так сделаете, у вас ничего не заработает (лол). Просто не скачивайте его — он и так идет в зависимостях к PyTorch. Он в любом случае нужен, если вы арендуете сервер с несколькими GPU (я пробовал взять 4×A100). В остальных случаях он не нужен.


- Вот это вообще можете не делать — у вас уже все должно быть

pip install nvidia-cublas-cu12==12.4.5.8 

export LD_LIBRARY_PATH=/opt/conda/lib/python3.8/site-packages/nvidia/cublas/lib/

3. Осталось самое простое!

Скачать нужные модельки и запустить. Инструкция по установке моделей тут (будьте осторожны — они немного ошиблись с командами, добавили cd туда, где он не нужен).

После установки структура папок у вас должна быть такая:

 ├──ckpts
  │  ├──hunyuan-video-i2v-720p
  │  ├──text_encoder_i2v
  │  ├──text_encoder_2

Даже если вы криво скачали, можно просто перенести.


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

Если у вас сервер с несколькими GPU, порядок действий тот же, но команда запуска другая.

Как только все отработает, можно забирать готовое видео из папки results!

Какие видео будет делать вы? Пишите в комментариях!

У меня также есть телеграмм канал, приходите :-)