
Салют, Хабр! В прошлом году мы рассказали о наших исследованиях и разработках в сфере генеративных моделей для 3D-контента, а теперь открываем доступ для тестирования. Встречайте первый российский сервис для генерации 3D-моделей по текстовому описанию или изображению — Kandinsky 3D.
Введение
Искусственный интеллект уже стал незаменимым помощником в задачах, охватывающих самые разные модальности: он уверенно работает с текстом, сочиняет музыку, монтирует и создаёт фильмы. Однако работа с 3D-объектами — одна из самых сложных задач для AI. И одна из самых востребованных для множества отраслей от дизайна игр до робототехники.
Последние полгода индустрия генерации 3D-объектов стремительно развивается. Ведущие исследовательские лаборатории, такие как Tencent, Microsoft, Google, представили ряд работ, которые существенно изменили представление о возможностях генеративных моделей в 3D (Hunyan3d, Trellis). Сегодня существуют как продукты для широкой аудитории (Tripo, CSM, Rodin, Meshy), так и более профессиональные инструменты, такие как разработки Autodesk. Кроме того, появляются встроенные в крупные платформы решения — пример тому Roblox Cube.
Особенно важно отметить несколько ключевых технологических сдвигов:
появились новые подходы к автокодированию 3D-мешей: на основе гауссовых представлений (например, Trellis), неструктурированных векторов (Shape2Vec, Rodin) и иерархических моделей (Dora);
были разработаны пайплайны для генерации текстурных PBR-моделей, позволяющие создавать высококачественные текстуры для произвольной геометрии;
существенно улучшились архитектура и алгоритмы обучения диффузионных моделей, что повысило стабильность и выразительность генерации (DiT).
Мы начали работать в этом направлении ещё в прошлом году: собирали датасеты, тестировали архитектуры и исследовали новые принципы обучения. Всё это привело к созданию генеративной модели Kandinsky 3D, более совершенной и универсальной по сравнению с нашими предыдущими решениями. Эта модель открывает новые возможности для всех, кто создаёт и применяет 3D-объекты — от дизайнеров и художников до инженеров и исследователей.
Наша цель — сделать создание 3D-контента с помощью искусственного интеллекта таким же простым и доступным, как генерация изображений или текста. Сегодня Kandinsky 3D позволяет создавать 3D-модели по текстовому описанию или на основе изображения. Например, можно сфотографировать любимого плюшевого медведя, а затем получить его трёхмерную модель в любом удобном формате для всех современных 3D-движков: Blender, Maya и других. Процесс создания 3D-объектов ещё никогда не был таким простым и интуитивным.
Архитектура
В отличие от больших мультимодальных языковых моделей вроде GigaChat, Kandinsky 3D по принципу строения схож с такими диффузионными моделями, как Sora или Kandinsky Video. Ключевая особенность именно 3D генеративных моделей такого класса — разделение генерации 3D-ассета на два последовательных этапа: геометрический и текстурный. Это повторяет привычный рабочий процесс 3D-моделлеров и художников.
На первом этапе геометрический генератор создает объёмную форму объекта, как если бы её вручную моделировал 3D-дизайнер: формирует структуру, силуэт и детали поверхности. Для обучения такой модели на большом датасете разнообразных геометрических данных из разных источников обучается вариационный автокодировщик (VAE), состоящий из энкодера и декодера. Он позволяет закодировать геометрию в латентное пространство меньшей размерности. Благодаря отдельному геометрическому авто энкодеру модель может обучаться на данных, которые содержат только информацию о внутреннем строении без информации о текстуре поверхности (например, CAD-моделях). Затем обучается трансформерный денойзер, оперирующий в этом латентном пространстве. Он пошагово восстанавливает структуру объекта из случайного шума, а декодер преобразует полученное латентное представление объекта в полноценную 3D-геометрию. Благодаря трансформерной архитектуре модель легко интегрирует дополнительную информацию через механизм кросс-аттеншена, что позволяет задавать параметры генерации с помощью текста, изображений или других модальностей. В нашем случае для этого используется кодировщик DINOv2, который помогает геометрическому генератору ориентироваться на заданный пример, будь то фотография или иллюстрация.
На втором этапе подключается текстурная модель, которая накладывает фотореалистичные PBR-текстуры на готовую геометрию — так, как это делает 3D-художник. Для этого геометрическая заготовка рендерится с разных ракурсов и подаётся на вход дообученной 2D-диффузионной картиночной модели, которая умеет сохранять визуальную согласованность между всеми ракурсами и при этом максимально точно соответствовать оригинальному запросу или изображению.
Обе части Kandinsky 3D — геометрический генератор и текстурная модель — построены на базе диффузионных трансформеров и используют самые современные подходы GenAI, включая DiT, Flow Matching и другие. Разделение позволяет точно контролировать каждый этап генерации, перезапускать их отдельно и добиваться более предсказуемых и качественных результатов, что ранее было невозможно в рамках единых моделей. Это даёт пользователям больше свободы и гибкости при создании 3D-контента, а значит, им удобнее применять нашу генеративную модель на практике. Ниже — три кейса, где Kandinsky 3D точно найдёт применение.
Геймдев
Генеративные 3D‑модели позволяют существенно ускорить и оптимизировать производство игрового контента. Искусственный интеллект открывает разработчикам доступ к быстрой генерации высококачественных 3D‑объектов и сцен без трудоёмкого ручного моделирования. Это особенно ценно для инди‑студий и мобильных команд, ограниченных в ресурсах. Впрочем, мировые технологические гиганты тоже активно внедряют генеративные решения для производства как отдельных ассетов, так и целых сцен.
Одна из возможностей Kandinsky 3D — создание профессиональных моделей без привлечения специалистов. Буквально за один запрос можно получать готовые к интеграции в движок 3D-объекты с правильной квадратизированной сеткой — модели выгружаются в формате .fbx с текстурой.
При этом возможны совершенно разные сценарии применения генератора 3D-моделей Kandinsky 3D:
Быстрая подмена whitebox на визуально соответствующие задумке дизайнера ассеты как по 2D-референсной картинке, так и по текстовому описанию.
Интеграция Kandinsky 3D прямо в игровой движок (Unreal Engine, Unity) и генерация объектов прямо в движке через API (например, для пользовательского контента — UGC).
Генерация разнообразных пропсов, то есть элементов игрового окружения, для ассетов; создание объектов с разной степенью детализации (LODs).
Так, для вариативности пропсов можно сгенерировать в Kandinsky 3D варианты, похожие на референс. Например, создать несколько деревьев на основе сделанной 3D-художником в стилистике проекта модели дерева, чтобы быстро собрать игровой лес.

Другой пример: быстрая генерация моделей-пропсов для оформления улицы средневекового европейского города.

Генерация NPC для дальнейшего риггинга — создания скелетной структуры, которая позволит анимировать персонажа. Чтобы получить модель в удобной для риггинга позе, достаточно добавить в промпт фразу «full body view, center, character sheet, character in t-pose, front view».

Ещё пример — классический набор предметов для RPG в средневековом сеттинге.

Рекомендация: добавляйте в промпты детальные описания стиля, который хотите получить. Например: «A cartoonish and humorous model of an angry android. Bright colors, exaggerated expressions, comic-style lines and motion effects, lighthearted and funny mood». Если модель получается излишне плоской, можно добавить после описательной части промпта «is volumetric».
Пример генерации game-ready объекта по промпту: «Стул деревянный. Realistic, PBR, Artstation, realism, detailed, redshift» с визуализацией геометрии.

Если вы генерируете по картинке, исходное изображение в идеале должно быть во фронтальной плоскости, с лёгким возвышением камеры. Поле зрения (Field of view, FoV) и угол съёмки (Angle of View, AOV) камеры не должны быть экстремальными. Если любое из этих условий нарушено, например, исходный снимок сделан на fisheye-объектив или сверху, пропорции генерации могут исказиться. Ниже — пример генерации по изображению из фотостока.

В целом внедрение генеративных 3D-моделей ускоряет процесс производства ассетов и позволяет фокусироваться на инновационных задачах, а не на рутинной доработке геометрии.
Концепты, где не нужна высокая точность, для 3D-печати
Конкретно для декоративной 3D-печати, где требования к точности ниже. Если требуется высокая итоговая детализация, модели для 3D-печати имеет смысл генерировать с большим количеством полигонов, чем для нужд геймдева. Затем модель можно экспортировать в STL, импортировать в соответствующее программное обеспечение для 3D-принтера — Slicer, адаптировать под технологические параметры конкретного 3D-принтера и материала, распечатать. Ниже — примеры печати сгенерированных 3D-моделей пластиком по технологии FFF.


Напомним, что Kandinsky 3D генерирует 3D-модели с текстурой. А значит, можно печатать и полноцветные фигурки, например, методом порошковой 3D-печати. Либо наносить текстуру поверх напечатанной заготовки в рамках отдельного этапа.
Изделия для последующей доработки и оптимизации в САПР
Пока искусственный интеллект не способен на уровне человека генерировать граничные представления (B-rep) или деревья построения. Тем не менее, Kandinsky 3D и другие подобные модели вполне можно использовать в области малых серий, бионического дизайна и аддитивных технологий производства. Так, компания Autodesk внедряет подобные разработки в свои CAD-продукты. Генеративные технологии позволяют быстро прототипировать концепты, проводить последующую топологическую оптимизацию, генерировать сложные решётчатые структуры и экономить материалы за счёт анализа нагрузок.
Kandinsky 3D также можно использовать вместе с системами автоматизированного проектирования (САПР). Порой применение генеративной 3D-модели позволяет отказаться от дорогостоящего оборудования вроде 3D-сканеров и лидаров — их заменяет генерация по фото либо текстовому описанию. Например, для получения высококачественной CAD-модели из сгенерированного 3D-меша можно использовать следующий воркфлоу:
1. Когда модель сгенерирована в Kandinsky 3D и выгружена в формате .fbx, её следует сконвертировать в .stl для работы в приложении САПР. Это можно сделать как в самых популярных пакетах 3D-моделирования, так и в онлайн-сервисах.
2. Далее нужно запустить тулбокс для аппроксимации поверхностей в САПР, которую вы используете, и поправить вручную полученные неточности.
3. После чего можно оптимизировать модель, установив дополнительные ограничения по допускам в точке крепления и пересчитав её в модуле расчета прочности.

Как попробовать
Потестировать модель прямо сейчас можно двумя способами:
1. На портале developers.sber.ru на страничке сервиса. Здесь всё предельно просто: достаточно ввести промпт и нажать «Создать», и сервис начнет работу.

2. С использованием GigaChat API. Этот способ немного сложнее. Перед началом работы с GigaChat API необходимо обзавестись токеном доступа. Токен — это уникальный ключ, который идентифицирует вашу учётную запись и предоставляет права на использование API.
Токен можно получить на официальном портале разработчика developers.sber.ru. Далее получаем access_token.
Код
import requests
api_key = "Ваш Authorization key из https://developers.sber.ru/"
url = "https://ngw.devices.sberbank.ru:9443/api/v2/oauth"
payload={
'scope': 'GIGACHAT_API_PERS'
}
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json',
'RqUID': '111559b6-de06-473c-b641-826b8e69b623',
'Authorization': f'Basic {api_key}'
}
response = requests.request("POST", url, headers=headers, data=payload,verify = False)
access_token = response.json()['access_token']
После получения можно начинать генерировать.
Пример на Python
import requests
# URL эндпоинта API
url = "https://gigachat.devices.sberbank.ru/api/v1/chat/completions"
# Заголовки запроса
headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json",
}
# Тело запроса с параметрами генерации
payload = {
"model": "GigaChat-2-Max",
"messages": [
{
"role": "user",
"content": "Нарисуй 3D-модель ступицы Ford Transit"
}
],
"functions":[{"name":"text2model3d"}]
}
response = requests.post(url, headers=headers, json=payload, timeout=120,verify = False)
print(response)
После успешного выполнения запроса API возвращает ответ в формате JSON. В нашем примере после запроса на создание 3D-модели ступицы Ford Transit получен следующий ответ:
Ответ
{'choices': [{'message': {'content': '<div data-model-id="d1450e78-5c56-4d16-ade0-279f411d32c3" fuse="true"/> Успешно создал 3D-модель ступицы Ford Transit.',
'role': 'assistant',
'functions_state_id': '69e4de0f-bde9-483b-9ec3-2cc01473fb5b'},
'index': 0,
'finish_reason': 'stop'}],
'created': 1746004676,
'model': 'GigaChat-2-Max:2.0.28.2',
'object': 'chat.completion',
'usage': {'prompt_tokens': 644,
'completion_tokens': 49,
'total_tokens': 693,
'precached_prompt_tokens': 0}}
В нём содержатся:
идентификаторы созданной модели (data-model-id и data-vrmodel-id):
подтверждение успешного создания модели;
информация об использованных токенах;
метаданные запроса.
Следующий шаг после успешной генерации 3D-модели через GigaChat API — загрузка полученного объекта. Для него вам понадобятся:
API-токен (такой же, как для генерации);
ID модели, полученный в ответе на первый запрос;
эндпоинт для загрузки файлов.
Python-скрипт
import requests
import os
# ID модели из предыдущего ответа (data-model-id или data-vrmodel-id)
model_id = "d1450e78-5c56-4d16-ade0-279f411d32c3"
# Формируем URL для загрузки
url = f"https://gigachat.devices.sberbank.ru/api/v1/files/{model_id}/content"
# Заголовки запроса
headers = {
"Authorization": f"Bearer {access_token}"
}
# Скачиваем FBX
response = requests.get(url, headers=headers, stream=True,verify = False)
if response.status_code == 200:
with open("model.fbx", "wb") as f:
for chunk in response.iter_content(chunk_size=8192):
f.write(chunk)
print("FBX скачан!")
else:
print("Ошибка:", response.status_code, response.text)
Заключение
Релиз нашего сервиса — это только начало. В ближайших обновлениях мы планируем улушить качество геометрии и текстур, более детально проработать интеграцию с САПР, расширить поддержку русского культурного кода, реализовать расширенную поддержку необходимых сценариев, включая генерацию по multi-view и мультимодальным данным. Мы также готовим новый функционал для режима просмотра, который сделает взаимодействие с моделями удобнее и нагляднее, а таже конфигурируемый API для удобного практического использования.
Кроме того, мы работаем над редактором, который позволит совершенствовать сгенерированные объекты без их экспорта в сторонние инструменты. Появится возможность частично перегенерировать модель — например, заменить только отдельный элемент, не трогая всё остальное.
И это ещё не всё: в планах — разработка разных вариантов ретопологии (упрощения и оптимизации 3D-модели), расширенные настройки генерации и множество других улучшений, которые сделают инструмент максимально гибким, быстрым и удобным для разных сценариев использования — от геймдева до 3D-печати.
Также в рамках нашего совместного проекта c AIRI мы развиваем направление «Генеративное проектирование», где исследуем продвинутые решения для CAD в области промышленности и строительства. Планируем в ближайшее время рассказать об этом отдельно.
Следите за обновлениями — дальше будет ещё интереснее. А чтобы задать вопрос, внести свои предложения или предложить сотрудничество, пишите в Telegram @ipasechnik @charuyskaya.
Авторы: Михаил Мазуров, Наталья Соболева, Дарья Мусаткина, Фанзиль Набияров, Данил Ельцов, Игорь Пасечник, а также наши продуктовая и арт-команды — Борис Чуприн, Яна Чаруйская и Кирилл Храмков.