Как стать автором
Обновить
163.26
SberDevices
Создаём умные устройства

Новая генеративная модель Kandinsky 3D для создания 3D-объектов. Как она работает и кому будет полезна

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров4.1K

Салют, Хабр! В прошлом году мы рассказали о наших исследованиях и разработках в сфере генеративных моделей для 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:

  1. Быстрая подмена whitebox на визуально соответствующие задумке дизайнера ассеты как по 2D-референсной картинке, так и по текстовому описанию.

  2. Интеграция Kandinsky 3D прямо в игровой движок (Unreal Engine, Unity) и генерация объектов прямо в движке через API (например, для пользовательского контента — UGC).

  3. Генерация разнообразных пропсов, то есть элементов игрового окружения, для ассетов; создание объектов с разной степенью детализации (LODs).

Так, для вариативности пропсов можно сгенерировать в Kandinsky 3D варианты, похожие на референс. Например, создать несколько деревьев на основе сделанной 3D-художником в стилистике проекта модели дерева, чтобы быстро собрать игровой лес.

Слева — объект в стилистике проекта, сделанный 3D-художником, далее — генерации
Слева — объект в стилистике проекта, сделанный 3D-художником, далее — генерации

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

На каждую модель суммарно ушло около 40 секунд с учётом экспорта
На каждую модель суммарно ушло около 40 секунд с учётом экспорта

Генерация 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.

 

Авторы: Михаил Мазуров, Наталья Соболева, Дарья Мусаткина, Фанзиль Набияров, Данил Ельцов, Игорь Пасечник, а также наши продуктовая и арт-команды — Борис Чуприн, Яна Чаруйская и Кирилл Храмков.

Теги:
Хабы:
+15
Комментарии5

Публикации

Информация

Сайт
sberdevices.ru
Дата регистрации
Дата основания
2019
Численность
501–1 000 человек
Местоположение
Россия