Нейросеть 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 моделей и уверен дальше будет лучше.
Комментарии (15)
AlexRihter9690
02.02.2025 12:51чувствую, что меши, которые там получаются - настоящий кошмар 3д художника
akdengi Автор
02.02.2025 12:513D художникам такое пока очень и очень рано. Это для тех, кому надо быстро 3D модельку сделать, но у кого лапки :)
silkysmooth
02.02.2025 12:51Настоящий кошмар был год назад, а тут меши уже очень даже ничего, но пока все равно не то. Плюс тут нужно учитывать, что модельки, которые состоят из только одного меша целиком существуют в крайне ограниченной области. Любой персонаж как минимум имеет отдельно глаза, часто еще и одежду. Любая движущаяся часть должна генерироваться как отдельный меш. Так что ждем.
Mr_Zavod
02.02.2025 12:51Как же нейросетям тяжело дается это направление.
А все потому что надо модельку не как набор точек и треугольников скармливать, а как структуру. Которая создаётся из примитивов с поэтапным добавлением деталей.
Для этого можно попробовать скормить нейрсеткам туториалы с ютуба. Их много. Но ресурсов такое обучение с анализом видео и звука в 1080р сожрет явно на порядки больше, чем даже самые продвинутые текстовые модели.
Зато будут идеальные модельки с супер топологией, разверткой, редактируемыми модификаторами и так далее.
Ждем.
Jijiki
02.02.2025 12:51уже же есть нейросети вроде, которые делают через облако точек, а потом поидее по поверхности обьема точек делают ретопологию поидее, типо облако даёт силует
a0lli1en
02.02.2025 12:51Дело в том, как мне кажется, что нейронки не "видят" мир так, как люди. У нас есть органы чувств в виде тех же глаз, благодаря которым мы ловим свет, а мозг его обрабатывает и исходя из тех или иных данных, мы получаем на данный момент, самую объективную картину, которую мозг может сгенерировать. Нейронки же состоят из двоичного кода, у которого нет никаких органов чувств, у которого нет возможности "увидеть", чтобы "понять" как выглядит то что что нейронка должна по нашим требованиям сделать. И именно поэтому, происходят проблемы с 3д объектами. Но возможно я лопух и ничегошеньки не понимаю.
Jijiki
02.02.2025 12:51в целом интересно, спасибо, почему obj используете?
я для себя открыл формат .3ds, возможно если напишу под него парсер буду им пользоваться, под модельки с костями пока юзал fbx ну и obj, но obj редко, хочу выйти на уровень чтоб парсить нужную инфу на модельку и кидать просто 3-4 списка последовательно так вроде проще если либо бд использовать или сериализацию, тут правда есть нюансы как кидать списки - raw данные, но победа в том что потом при присоединении обьекта в структуру проекта он парситься не будет
akdengi Автор
02.02.2025 12:51Tabletop Simulator понимает только OBJ для моделек. Ну и для печати STL, мне не для анимации.
zagoper
02.02.2025 12:513ddd.ru цены опять подняли на модели, надеюсь через пару лет они лососнут тунца
Foxchasing
02.02.2025 12:51С чего бы им лососнуть, у них все будет в порядке, нормальные модели, сделанные людьми, как были, так и будут востребованы. К тому же, обучение генеративных нейросетей, зачастую напоминает воровство, скорее будут накладываться ограничения на такие модели, хотя, перспективы моделей для генерации качественных и функциональных 3D объектов под вопросом, учитывая пониманимание специфики изнутри.
Jijiki
02.02.2025 12:51голова самое сложное если реально делать и без референсов а по обрубовке которая есть в реале, ну если она референс) тоесть мышкой на глаз по пропорциям в блендере причем реф не в пк, получается самое сложное руки и голова
Foxchasing
02.02.2025 12:51Ну, я вижу, что у вас довольно общие и абстрактные представления о моделировании, особенно о моделировании с учетом будущей сферы применения модели. Ну да ладно, не мне развеивать какие-то мифы или учить вас.
Jijiki
02.02.2025 12:51общие представление, а как же тогда делать голову, если нужна именно стиль обрубовки вы предлагаете сначала рисовать референс тоесть переносить соскульптуренный купленный референс в магазине и в блендер тащить картинку, зачем если блендер отвечает всем параметрам на перенос ощущения обьема от увиденного блендер буквально и для этого придуман, голова самая сложная часть, если руки еще можно как-то перекинуть в формулу, то голову врятли, да и руки все равно придётся мышкой делать, я написал про голову и руки, потомучто чтобы уйти от словосочетания воровство в диджитал модельках придётся делать руками модельку с головой и руками, и потом её анимировать - руками - тоесть мышкой это вполне доступно сегодня, весь пайплайн от общего к частному на персонажа со всем необходимым для порта в движок (ну или покупать систему анимирования(там где костюм), но проще собрать модельку и сделать риг самому)
SadOcean
Несмотря на то, что выглядит как какашечка, это действительно впечатляет.
Впрочем о чем тут говорить, сама генерация изображений нейросетями, если подумать, то еще чудо чудесное.