Нейросеть Hunyan3D-2, генерирующая 3D модели по 2D картинкам, от компании Tencent появилась недавно в открытом доступе. Ее рабочая версия в виде «3D студии» существует, но доступна только владельцам китайских мобильных номеров (или если у вас есть WeChat). Но также она выложена в виде исходных кодов и поэтому ее уже «запилили» для использования с ComfyUI. Если вам повезет, то вы сможете все поставить быстро и просто. Если же нет, то... но об этом упомяну позже.
Враппер для ComfyUI под названием ComfyUI‑Hunyuan3DWrapper/ создал юзер Kijai и он пока находится в экспериментальном статусе и в него постоянно вносятся изменения. Но он уже в достаточно работоспособном состоянии, особенно если вы используете ComfyUI под Windows.
Системные требования: видеокарта Nvidia (на CPU очень медленно) хотя бы с 8 Гб видеопамяти (у меня RTX 4060) и 16 Гб ОЗУ (но лучше больше, так как у меня нейросеть при работе съедала от 17 до 20 Гб оперативки) и Windows 11.
Порядок установки следующий:
Качаем последнюю версию ComfyUI. Так как у меня на компьютере зоопарк из разных нейросетей и версий Python, то все дальнейшие действия будут относиться к Portable версии. Распаковываем архив. У меня он находится по пути D:\ComfyUI-windows-portable\
относительно него и будут дальнейшие команды.
Затем открываем командную строку, переходим в папку D:\ComfyUI_windows_portable\ComfyUI\custom_nodes\
(или заходим в нее в Проводнике и вводим в поле пути:cmd
и нажимаем Enter) и устанавливаем враппер
git clone https://github.com/kijai/ComfyUI-Hunyuan3DWrapper/
Возвращаемся в D:\ComfyUI_windows_portable\
и устанавливаем нужные зависимости, запустив в командной строке:
python_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\ComfyUI-Hunyuan3DWrapper\requirements.txt
А теперь важный момент — установка растеризатора, а точнее его бинарного ядра. Для этого оставаясь в той же директори, запускаем команду:
python_embeded\python.exe -m pip install ComfyUI\custom_nodes\ComfyUI-Hunyuan3DWrapper\wheels\custom_rasterizer-0.1.0+torch260.cuda126-cp312-cp312-win_amd64.whl
В 99% случаев у вас потом все заработает, если же нет, то попробуйте поставить wheel файл для более старой версии torch:
python_embeded\python.exe -m pip install ComfyUI\custom_nodes\ComfyUI-Hunyuan3DWrapper\wheels\custom_rasterizer-0.1-cp312-cp312-win_amd64.whl
Если же после этого растеризация и создание текстур не заработают, то тогда вам придется собирать его и mesh генератор вручную, установив библиотеки разработчика C++, Cuda, заголовочные файлы Python и взяв в руки бубен. Если же вы вдруг решите все поставить под Linux, то вам придется собирать ядро растеризации и генератора сетки в любом случае — читайте внимательно инструкцию на github враппера.
Далее качаем саму модель Hunyan3D-2 в виде safetensor файла по ссылке и кладем ее в папку D:\ComfyUI_windows_portable\ComfyUI/models\diffusion_models\
.
Если после этого запустить ComfyUI и попытаться открыть пайплайн генерации, то мы получим кучу предупреждений об отсутствующих нодах. Нам нужно установить расширение ComfyUI‑Essentials, если оно у вас не установлено ранее.
Это проще всего сделать через ComfyUI‑Manager. Для этого в командной строке снова переходим в папку D:\ComfyUI_windows_portable\ComfyUI\custom_nodes\
и там ставим расширение командой
git clone https://github.com/ltdrdata/ComfyUI-Manager comfyui-manager
Все. Можно запускать ComfyUI. После этого нужно открыть (или перенести в окно браузера) пайплайн генерации hy3d_example_01.json
, который находится по пути D:\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-Hunyuan3DWrapper\example_workflows
.
Нам высыпет кучу ошибок, поэтому вызываем менеджер кнопкой Manager в правом верхнем углу и выбираем пункт Install Missing Custom Nodes.

Отмечаем ComfyUI_essential
и нажимаем на Install. Потом перезапускаем ComfyUI.

Теперь все должно запуститься и все ноды обнаружиться.

После нужно указать путь к модели, так как по умолчанию в примере он неверный. Щелкните на название модели в поле model
и выберите ее из появившегося списка.

Можно нажать на генерацию и насладиться 3D моделью. Но можно и не насладиться. Если у вас не выводит текстурированную модель, то нужно удалить, вытащить на экран и заново связать две ноды: Hy3DExportMesh и Preview3D:

После генерации модели сохраняются как обычно в папке output в двух GLB файлах: просто геометрия и с текстурами. Для конвертирования можно использовать любой софт или сервисы, например я конвертировал в OBJ тут: https://convert3d.org/glb‑to‑obj
По скорости: на моей машине генерация 3D‑модели занимает порядка 200–220 секунд. Все зависит от числа полигонов и не рекомендуется делать его большим (по дефолту стоит 50 000 полигонов). Для сравнения ниже внешний вид модели при числе полигонов 300 000, 50 000, 10 000 и «шакальных» 1000 штук.



Я создавал 3D модели фигурок роботов для использования в версии моей настольной игры «Битва Големов» для Tabletop Simulator, который после экспорта в OBJ и вставки в него модели на 50 000 полигонов выдает ошибку. Поэтому я остановился на 10 000, благо игра сама оформлена в low-poly стиле.
Также вы можете включить параметр сглаживания сетки:

Модели нормально импортируются в тот же Blender и там дорабатываются. Маленькая хитрость — если экран 3D модели ничего не отображает, попереключайте режимы кнопками в левом верхнем углу ноды:

Итоговый результат в Tabletop Simulator на картинке:

Да, генерация еще не оптимальная и сильно зависит от качества исходного изображения и его сложности, так как картинка импортируется в низком разрешении. Есть вопросы к скорости и качеству текстуризации, но мы еще в начале пути 3D моделей и уверен дальше будет лучше.