TRELLIS.2 Image-to-3D адаптирован для нативной работы на Apple Silicon.

Что это такое
Порт модели TRELLIS.2 от Microsoft для преобразования изображений в 3D, который работает нативно на Apple Silicon через PyTorch MPS, заменяя зависимости, требующие CUDA, на чисто PyTorch-альтернативы.
Ключевые детали
Оригинальная TRELLIS.2 требует CUDA с flash_attn, nvdiffrast и пользовательскими ядрами разреженной свертки, которые не работают на Mac. Этот порт заменяет их на:
- Реализацию разреженной 3D-свертки gather-scatter (backends/conv_none.py)
- SDPA-внимание для разреженных трансформеров с использованием scaled_dot_product_attention от PyTorch
- Извлечение мешей на Python, заменяющее операции с хэш-таблицами на CUDA (backends/mesh_extract.py)
Общие изменения составляют несколько сотен строк в 9 файлах. Все жестко заданные вызовы .cuda() были исправлены для использования активного устройства.
Производительность и требования
На M4 Pro (24 ГБ) генерирует меши с ~400K вершин из одиночных фотографий примерно за 3,5 минуты. Использование памяти достигает пика около 18 ГБ унифицированной памяти во время генерации.
Требования:
- macOS на Apple Silicon (M1 или новее)
- Python 3.11+
- Рекомендуется 24 ГБ+ унифицированной памяти
- ~15 ГБ дискового пространства для весов модели
Установка и использование
Быстрый старт:
git clone https://github.com/shivampkumar/trellis-mac.git
cd trellis-mac
hf auth login
bash setup.sh
source .venv/bin/activate
python generate.py path/to/image.pngВам нужно запросить доступ к моделям с ограниченным доступом на HuggingFace: facebook/dinov3-vitl16-pretrain-lvd1689m и briaai/RMBG-2.0.
Базовое использование:
python generate.py photo.png
python generate.py photo.png --seed 123 --output my_model --pipeline-type 512Ограничения
- Нет экспорта текстур (меши экспортируются только с цветами вершин)
- Заполнение отверстий отключено (в мешах могут быть небольшие отверстия)
- Медленнее, чем на CUDA (~в 10 раз медленнее для разреженной свертки)
- Только вывод, без поддержки обучения
Техническая реализация
Разреженная 3D-свертка строит пространственный хэш активных вокселей, собирает признаки соседей для каждой позиции ядра, применяет веса через матричное умножение и рассеивает-добавляет результаты обратно. Извлечение мешей перереализует flexible_dual_grid_to_mesh с использованием словарей Python вместо операций с хэш-таблицами на CUDA.
Бенчмарки на M4 Pro (24 ГБ), тип пайплайна 512:
- Загрузка модели: ~45с
- Предобработка изображения: ~5с
- Сэмплирование разреженной структуры: ~15с
- Сэмплирование формы SLat: ~90с
- Сэмплирование текстуры SLat: ~50с
- Декодирование меша: ~30с
- Итого: ~3,5 мин
📖 Прочитать полный исходный код: HN LLM Tools
👀 Смотрите также

MetaBot: Открытый Мост Соединяет Код Claude с Telegram, Feishu и WeChat
MetaBot — это открытый мост на TypeScript, который соединяет SDK агента Claude Code с мессенджерами, такими как Telegram, Feishu и WeChat. Он предоставляет постоянную память, запланированные задачи, совместную работу нескольких агентов и потоковую передачу вызовов инструментов в реальном времени.

Контекст Lean: Плагин Claude Code преобразует многословную документацию в файлы, оптимизированные для агентов.
Бесплатный плагин с открытым исходным кодом для Claude Code под названием Lean Context анализирует документацию проекта и удаляет контент, который AI-агенты могут обнаружить через поиск (grepping), оставляя только важные неочевидные команды, подводные камни и особенности окружения. В тесте с .NET e-commerce проектом он сократил 8 документов общим объёмом в 1 263 строки до всего 23 строк.

Плагин Claude Code запускает DOOM в терминале, пока ИИ размышляет
Разработчик создал плагин Claude Code, который отображает DOOM в виде всплывающего оверлея tmux во время обработки ИИ. Плагин использует doom-ascii, терминальный порт исходного кода DOOM, и автоматически запускается/закрывается при запросах.

Сервер MCP для семантического поиска в хранилищах Obsidian
Разработчик создал MCP-сервер, который индексирует хранилища Obsidian в Qdrant с локальными эмбеддингами, обеспечивая семантический поиск вместо поиска по ключевым словам. Он разбивает markdown по заголовкам, использует эмбеддинги BAAI/bge-small-en-v1.5 и работает с Claude Code, Cursor, Windsurf или любым MCP-клиентом.