Speridlabs Idol превращает одно изображение в 3D Gaussian splat
Speridlabs Idol строит 3D Gaussian splat из одного изображения моделью на 0,66 млрд параметров в 7,2 ГБ VRAM, с открытым SDK и нодой ComfyUI от сообщества.
.ply, включая те стороны, которые входное изображение никогда не показывало.
Пробел, который закрывает Idol, обычно требует многовидовой реконструкции: у вас есть единственный снимок объекта, и вы хотите получить нечто, что можно повернуть. Idol удаляет фон, кадрирует объект, кодирует изображение и напрямую сэмплирует набор гауссиан. Выход открывается в любом просмотрщике Gaussian splat, а рядом модель записывает обрезанный вход, который она фактически видела, и предсказанную камеру в JSON.
Один из объектов галереи. Каждый пример на странице проекта начинается с одного изображения.
Небольшой diffusion-стек с двумя декодерами
Генеративное ядро Idol это diffusion-трансформер на 370,6 млн параметров, декодер октодерева на 50,8 млн параметров, который решает, где будут находиться гауссианы, и гауссов декодер на 237,3 млн параметров, предсказывающий их атрибуты, всего 0,66 млрд параметров. Вокруг расположены три вспомогательные модели: BiRefNet для удаления фона, DINOv3 ViT-H+/16 в роли кодировщика изображений и FLUX.2 VAE, что доводит полный запрос примерно до 1,80 млрд параметров.
| Компонент | Параметры | Вес в VRAM |
|---|---|---|
| DiT-денойзер | 370,6M | ~0,8 до 1,0 ГБ |
| Декодер октодерева | 50,8M | ~0,1 до 0,2 ГБ |
| Гауссов декодер | 237,3M | ~0,5 до 0,9 ГБ |
| BiRefNet, удаление фона | 220,7M | ~0,44 ГБ |
| DINOv3 ViT-H+/16 | 840,6M | ~1,68 ГБ |
| FLUX.2 VAE | 84,1M | ~0,17 ГБ |
В карточке указано, что суммарно веса занимают около 3,7 до 4,4 ГБ, а пиковое потребление составляет 7,2 ГБ, именно это позволяет модели работать на карте с 10 ГБ вместо GPU из датацентра.
Еда и небольшие объекты это одна из категорий галереи, наряду с мебелью и персонажами.
Детализация это настраиваемый параметр, а не фиксированный бюджет
Количество гауссиан задается аргументом во время выполнения: от 32 768 до 1 048 576 кратно 32, по умолчанию 262 144. На странице проекта одна и та же лампа весит 0,4 МБ при настройке 32 768 и 12,2 МБ при 1 048 576, так что один и тот же объект может быть как блокингом, так и финальным ассетом. Результат формируют еще две настройки: 50 шагов выборки по умолчанию и режим, который определяет, сколько места кроп оставляет вокруг объекта, synthetic для рендеров и сгенерированных изображений и real для фотографий.
Ускоренная выборка включена по умолчанию на GPU и дает примерно 1,7x при том же качестве: денойзер компилируется через torch.compile, проходы с управляющим сигналом и без него выполняются как один пакет, а внимание использует cuDNN с matmul в TF32. Первое изображение в процессе платит за компиляцию.
Персонажи и существа получаются по тому же рецепту, без отдельного пути модели.
Бенчмарки и тайминги
В карточке Idol сравнивается с TripoSplat, TRELLIS и LGM при 262 144 гауссианах на одной H100: входной вид оценивается по PSNR, SSIM, LPIPS и IoU, а семь новых видов по DINOv2, CLIP и дистанции резкости.
| Модель | PSNR | SSIM | LPIPS | IoU | DINOv2 | CLIP | Дистанция резкости | Время запроса |
|---|---|---|---|---|---|---|---|---|
| Idol | 12,25 | 0,726 | 0,213 | 0,862 | 0,781 | 0,885 | 0,81 | 6,8 с |
| TripoSplat | 11,76 | 0,712 | 0,225 | 0,860 | 0,743 | 0,868 | 1,03 | 9,9 с |
| TRELLIS | 11,89 | 0,716 | 0,235 | 0,845 | 0,754 | 0,868 | 0,97 | 7,1 с |
| LGM | 12,46 | 0,722 | 0,237 | 0,834 | 0,575 | 0,784 | 1,22 | 1,1 с |
LGM удерживает самый высокий PSNR, но выдает заметно размытые результаты, что в карточке объясняется тем, что PSNR усредняет квадрат ошибки по пикселям.
На потребительских картах тот же запрос занимает 14,1 с на RTX 5090, 19,1 с на RTX 4090 и 46,2 с на RTX 3080. Строка карточки про "меньше 2 секунд" не имеет соответствующей строки в ее собственной таблице, где самая быстрая запись это B300 с 3,4 с при 262 144 гауссианах, поэтому считайте таблицу эталоном, а утверждение о менее чем двух секундах лучшим случаем, который опубликованные цифры не воспроизводят.
| GPU | VRAM | Время запроса |
|---|---|---|
| B300 | 269 ГБ | 3,4 с |
| H100 | 80 ГБ | 6,7 с |
| RTX 5090 | 32 ГБ | 14,1 с |
| RTX 4090 | 24 ГБ | 19,1 с |
| RTX 3080 | 10 ГБ | 46,2 с |
| L4 | 22 ГБ | 54,6 с |
Тонкие структуры и полупрозрачность это сложные случаи для splat-декодера, и они встречаются в галерее наряду с мебелью.
Доступность
Idol поставляется как код на Python, а не как нода ComfyUI. Пакету idol-sdk нужны Python 3.10+, PyTorch 2.5+ и NVIDIA GPU с CUDA; установка выполняется командой pip install -e .. Веса, около 3 ГБ, вместе с двумя кодировщиками скачиваются с Hub при первом запуске. Оба кодировщика закрыты: для facebook/dinov3-vith16plus-pretrain-lvd1689m нужно принять условия на Hub, а black-forest-labs/FLUX.2-dev используется только ради VAE, поэтому перед первой генерацией требуется hf auth login или HF_TOKEN.
Одно изображение обрабатывается из командной строки, с --mode real для фотографий:
python -m idol.sample --image photo.jpg --mode real
python -m idol.sample --image renders/ --mode synthetic --out outputsСобственной интеграции с ComfyUI пока нет. Нода от сообщества Nynxz/ComfyUI-Idol оборачивает те же веса для ComfyUI, а демо в HF Space запускает модель прямо в браузере.
Комментарии
Войдите через GitHub, чтобы участвовать в обсуждении.