
3
Проект смотритель. Часть 2. Дизайн
За неимением развитых художественных качеств здесь обратимся к внешней помощи. Благо простор для выбора велик.
Определяемся с требованиями
Собственно, идею создания некоего устройства я вынашивал давно, требований было немного - камера впереди, гусеницы, wifi антенна и интересный дизайн (минимализм, футуризм, киберпанк, etc).
Идем с этими идеями в ChatGpt и буквально просим описание внешнего вида нашего устройства по этому запросу, да побольше. Заранее говорим, что описание будет использоваться для генерации изображений, так что не нужно в него вкладывать никакой информации, которая будет лишней для картинок (функциональное назначение, логику работы, алгоритмы управления и прочее).
Я хочу сделать гусеничного робота с поворотной камерой и wifi-антенной.
Напиши 10 вариантов промптов для генерации изображения дизайна моего робота на английском, промпты должны быть максимально вариативны
По ходу дела я корректировал требования - например, в какой то момент отказался от поворотной камеры, т.к. широкоугольная, да и обычная ov2640 имеют достаточный угол обзора, чтобы необходимость в поворотах пропала. Также просил наделить генерации антропоморфностью, добавить эмоций, использовать различные стили.
В конечном итоге было получено и использовано 150 промптов.
Если интересно - можно ознакомиться с диалогом в chatGpt. Все полученные промпты можно найти в проекте на github.
txt2image
Я еще во времена ажиотажа вокруг Flux развернул локально forge с flux.dev - упоминал об этом в статье про тренировку flux lora на civitai (которую дальше можно скачать и использовать локально). Моя 3060Ti с 8Gb видеопамяти на борту позволяет получать изображение 1024х1024 примерно за минуту.
По каждому из 150 промптов было сгенерировано 10 разных изображений, так что суммарное количество, из которого я выбирал вышло в 1500.
Т.к. не все промпты я даже читал, некоторые серии генераций получились далекими от реальности и моих хотелок. Вот пример случайных 100 изображений из всех:
Больша́я часть генераций была похожа на военную технику (логично, это один из самых распространенных типов гусеничной техники). Часть выглядела как принтеры или мфу на колесах (в левом нижнем углу) - эдакие здоровенные гладкие коробки. Часть получилось совсем нереалистична или с избытком деталей, а часть походила на космолет, который смоделировать у меня никак бы не вышло.
Именно поэтому потребовалось столько генераций. Тем не менее, претендентов на выбор было 10, можно посмотреть на них в github, остановился на следующем:
Какой-то он харизматичный, надеюсь, под его надзором все будут вести себя порядочно.
Что дальше с этим делать? Форма все еще сложная, смоделировать в CAD (Fusion360/SolidWorks/etc) с нуля такое я бы затруднился или потратил кучу времени. С Blender или другими средствами моделирования я не так тесно знаком, чтобы смоделировать все с нуля по одной картинке.
Но раз уж мы начали импользовать ИИ - то зачем останавливаться? Ищем в гугле image 2 model online
и берем несколько понравившихся (о части я к этому моменту уже слышал и даже пробовал в одном из постов).
image2model
Все описанные ниже генераторы могут генерировать как модель по тексту, так и по изображению, поддерживают разные фичи, имеют разные тарифы, но везде можно бесплатно по картинке сгенерировать модель, скачать её stl или fbx факт, а также они пытаются её даже затекстурировать.
meshy
Meshy дает в процессе выбрать одну из 4 моделей, которая впоследствии будет более детально проработана. Я выбрал верхнюю правую, она как будто больше похожа на референс.
Дальше он какое-то время думает, детализирует, текстурирует и вот это все. В конечном итоге выдает какой то ад:
Как будто слепили из пластелина и потом он на жаре поплыл или был смят - сразу идет в мусорку, идем дальше.
Hyper3d aka Rodin
Схема генерации та же, грузим картинку, ждем, проходим по нескольким этапам (структура, текстурирование) - здесь как будто больше возможностей. Также судя по чатам и отзывам в ИИ-сообществе Rodin один из топовых сервисов для генерации моделей.
Полученный результат уже выглядит супер похоже на референс, давайте скачаем файл модели и покрутим его в редакторе (у меня это orcaSlicer, что было открыто под рукой, в том и открыл):
Куда лучше, на морде есть небольшой шум, гусеницы и колеса ровные и проработанные, днище и крепления шасси тоже выглядит почти адекватным и рабочим. Но сам корпус, "лицевая часть" - потеряла детали, нет некоторых прорезей и зазоров, которые придают референсу выразительности. Блок с камерой тоже какой-то рубленный. Пока примем к сведению, но посмотрим, что у нас еще есть.
Tripo3d
Работает по аналогичной схеме, грузим картинку, ждем дольше чем у всех остальных, подтверждаем предварительный вариант и получаем на выходе текстурированную модель:
Выглядит очень похоже на референс, харизма сохранена, давайте еще посмотрим на саму модель:
Модель кстати публична, можно посмотреть и покрутить на сайте tripo3d.
Дно, конечно, ничего общего с реальностью не имеет, но это не так чтобы важно, гусеницы кривые, ролики даже не подходят вплотную к гусеницам. Но гусеницы - это то, что можно достаточно просто смоделировать в CAD, это параметрически измеримая деталь, как и все шасси целиком.
Раз уж мы сгенерировали 1500 изображений, что нам мешает повторить тот же кейс с моделями? Мешают лимиты, в рамках демо дают только определенный лимит местных кредитов. Также процесс занимает продолжительное время и требует внимания. Но еще один вариант от tripo3d я вам все же покажу для демонстрации вариативности:
Водно что изменений не так много, идеальную модель мы все равно не получим, так что я остановился на правом варианте.
Также очевидно, что эти модели не получится использовать как есть - мелкие модели зашумлены, сетку я даже показывать не буду - это все придется перемоделировать, но как основа очень неплохо. По одной картинке смоделировать все у меня все равно бы не вышло.
О том, как проходил процесс моделирования и в целом разработки проекта - читайте в следующих статьях.
Комментариев пока нет
-
Проект смотритель. Часть 2. Дизайн
За неимением развитых художественных качеств здесь обратимся к внешней помощи.… -
Проект смотритель. Часть 1. Начало
Проект смотритель - удаленно управляемый робот на гусеничной платформе с трансл… -
Калькулятор сечения провода
В процессе работы над разными DIY-проектами я каждый раз ищу какое сечение пров… -
Подарочный бокс с ИИ
Пришло то время, когда AI может не только отвечать в чатиках и применяться в di… -
Делаем картинки на сайте кликабельными
Я часто вставляю картинки в хорошем качестве, но до сих пор их нельзя было удоб… -
Включаем функции сбора статистики в ESP32-arduino
Речь пойдет о функциях FreeRTOS vTaskGetRunTimeStats / vTaskList, но таким же…