![promt: кнопка enter с клавиатуры, черный цвет, белый фон, светящаяся надпись promt: кнопка enter с клавиатуры, черный цвет, белый фон, светящаяся надпись](https://habrastorage.org/getpro/habr/upload_files/8ba/9cf/0b6/8ba9cf0b6e8998d00b08ad337149ce46.png)
Привет Хабр! Хочу поделиться своим опытом взаимодействия с нейросетками. В последнее время они наделали много шума, в сети есть огромное количество примеров сгенерированных изображений очень приличного качества и хорошей проработки. Меня вдохновили эти примеры, и я решил на боевом проекте протестировать Midjourney, Stable Diffusion и Kandinsky, чтобы выявить их сильные и слабые стороны, и понять — какая нейронка больше всего подойдёт для моей дальнейшей работы. Основной целью было сгенерировать на лендинг кнопку, которая по форме была бы как классическая кнопка Enter, но визуально выглядела бы чуть более интересно: подсветка, неон, футуризм. Ниже опишу свой процесс и результаты генераций нейросеток.
Первая попытка
Пошел по простому пути, написал топорный promt, перечислил все характеристики, которые хотел бы увидеть на изображении. Но результат оказался сильно далек от задумки, кнопка получилась совершенно не похожа на Enter.
![Promt MJ и SD: enter button black color, luminous inscription, white background, strongly detailed, top viewPromt KS: кнопка enter черного цвета, светящаяся надпись, белый фон, высокая детализация, вид сверху Promt MJ и SD: enter button black color, luminous inscription, white background, strongly detailed, top viewPromt KS: кнопка enter черного цвета, светящаяся надпись, белый фон, высокая детализация, вид сверху](https://habrastorage.org/getpro/habr/upload_files/676/c95/431/676c9543160351f075cd6f69622b12c3.png)
Promt KS: кнопка enter черного цвета, светящаяся надпись, белый фон, высокая детализация, вид сверху
![тот же promt тот же promt](https://habrastorage.org/getpro/habr/upload_files/439/090/bb7/439090bb7caf72656c14469c2441e42e.png)
Я много раз прогонял генерацию этого promt, но результат никак не менялся в лучшую сторону. Midjourney и Kandinsky выдавали красивую кнопку с множеством деталей, но совершенно далекую от задумки. Stable Diffusion вообще лепил всё что угодно, но ничего похожего на кнопки клавиатуры я не получал. Я понял что количеством генераций тут ничего не изменить, и решил попробовать сменить тактику.
Картинка референс
![](https://habrastorage.org/getpro/habr/upload_files/7d9/08b/f00/7d908bf00a7abb4e1462ba797203cfe8.png)
Так как ни одна из нейросеток видимо не понимала, что такое классическая кнопка Enter, решил показать им как она выглядит с помощью картинки. Нагуглил изображение, которое соответствовало моим пожеланиям, и скормил его каждой нейронке: для Midjourney указал ссылку на изображение и promt, для Kandinsky закинул фотографию через режим «Вариация картинки», для Stable Diffusion воспользовался расширением ControlNet. И принялся ждать.
![Promt MJ и SD: https://s.mj.run/OOlHZhpTXNg, black enter button, luminous inscription, white background, strongly detailed, top view Promt SD: black enter button, luminous inscription, white background, strongly detailed, top view + картинка через ControlNet, preprocessor и model cannyKS: в режиме "вариация картинки" загрузил референс Promt MJ и SD: https://s.mj.run/OOlHZhpTXNg, black enter button, luminous inscription, white background, strongly detailed, top view Promt SD: black enter button, luminous inscription, white background, strongly detailed, top view + картинка через ControlNet, preprocessor и model cannyKS: в режиме "вариация картинки" загрузил референс](https://habrastorage.org/getpro/habr/upload_files/80b/94b/1a5/80b94b1a5c697521511c3f33e6f4a9a1.png)
Promt SD: black enter button, luminous inscription, white background, strongly detailed, top view + картинка через ControlNet, preprocessor и model canny
KS: в режиме "вариация картинки" загрузил референс
Midjourney был конечно далёк от нужной формы, но уже выдал некую угловатую кнопку с надписями. Stable Diffusion сделал максимально похожую на референс, но сам вариант оказался очень скучный. Kandinsky выдал что‑то своё абстрактное, с ним нужно было еще поэкспериментировать.
Убедившись, что к каждой нейронке нужен свой подход, чтобы добиться более качественного результата, я начал экспериментировать с каждой из них в отдельности, надеясь найти идеальный метод.
Midjourney
С ней я продолжил использовать исходную референсную картинку и слегка изменил promt. На некоторые из хороших результатов я запрашивал дополнительные варианты, в надежде получить что‑то более интересное. Из огромного количества вариантов лишь единицы были близки к моей задумке. Над ними еще предстояло поработать.
![Promt MJ: https://s.mj.run/OOlHZhpTXNg, black enter button, irregular shape, white background, super detailed, top view Promt MJ: https://s.mj.run/OOlHZhpTXNg, black enter button, irregular shape, white background, super detailed, top view](https://habrastorage.org/getpro/habr/upload_files/6b0/8d1/da2/6b08d1da24152b6ba8ced0b2bd409367.png)
Stable Diffusion
Поскольку на предыдущем этапе нейросеть показала хороший результат при работе через ControlNet, я повторил загрузку референсного изображения кнопки и упростил promt до black button, luminous inscription, white background, strongly detailed, top view
. Пришлось начать экспериментировать с режимами Preprocessor в ControlNet: где‑то нейронка видела очертание кнопки, где‑то могла воспроизвести объем, а где‑то рисовала кнопку в простых прямых линиях (для наглядности слева вывел изображение). Было смешно, что несмотря на референс, она добавляла какие‑то новые несуразные объекты: портрет, пуговицу, символы и т. д.
Мне понравились высокая скорость работы и регулировка количества результатов, но много что Stable Diffusion генерировала невпопад.
![Preprocessor, Model: normal_map Preprocessor, Model: normal_map](https://habrastorage.org/getpro/habr/upload_files/5c1/5c6/928/5c15c6928c1df03b579f37559089d258.png)
![Preprocessor, Model: canny Preprocessor, Model: canny](https://habrastorage.org/getpro/habr/upload_files/75e/dae/6b9/75edae6b92b2812913fa2e5d65413c66.png)
![Preprocessor, Model: depth Preprocessor, Model: depth](https://habrastorage.org/getpro/habr/upload_files/280/e91/e14/280e91e14b84a7ccc48aac2896d90f2b.png)
![Preprocessor, Model: hed Preprocessor, Model: hed](https://habrastorage.org/getpro/habr/upload_files/657/b9f/745/657b9f745c8276ca59451042b013b1cd.png)
![Preprocessor, Model: mlsd Preprocessor, Model: mlsd](https://habrastorage.org/getpro/habr/upload_files/217/cc0/a42/217cc0a423de0861972461f486c2cdf5.png)
![Preprocessor, Model: segmentation Preprocessor, Model: segmentation](https://habrastorage.org/getpro/habr/upload_files/fd3/b5d/0e4/fd3b5d0e4ab41f67c6e32f5e9a5d8e30.png)
Kandinsky
Сначала попробовал неоднократно скормить ей референсное изображение и посмотреть что получится. По всей видимости из‑за отсутствия в этом режиме возможности добавить promt, генерировала она всё что захочет, но не то что хочу я.
![](https://habrastorage.org/getpro/habr/upload_files/641/4db/65c/6414db65c02bd4c25e2c4609403c5df5.png)
У меня получилось несколько изображений, который визуально выглядят неплохо, но сильно далеки от моей задумки. Тогда я переключился на обычный метод генерации изображения через promt, всячески менял и упрощал его, чтобы выявить хоть какую‑то закономерность, но так я её и не нашёл.
![promt: черная кнопка энтер со светящейся надписью promt: черная кнопка энтер со светящейся надписью](https://habrastorage.org/getpro/habr/upload_files/87b/cc3/230/87bcc3230e41f36c1561fc8cd0f356bf.png)
![promt: черная кнопка enter со светящейся надписью promt: черная кнопка enter со светящейся надписью](https://habrastorage.org/getpro/habr/upload_files/1ac/3a5/657/1ac3a56575bb93761f0e66a0df2deb76.png)
![promt: кнопка enter с клавиатуры, черный цвет, белый фон, светящаяся надпись promt: кнопка enter с клавиатуры, черный цвет, белый фон, светящаяся надпись](https://habrastorage.org/getpro/habr/upload_files/32b/70a/d7b/32b70ad7b88966c53bc283815970120f.png)
![promt: форма кнопки enter, черный цвет, белый фон, светящаяся надпись promt: форма кнопки enter, черный цвет, белый фон, светящаяся надпись](https://habrastorage.org/getpro/habr/upload_files/148/5b3/203/1485b320382b4b6d28da688852e9fdab.png)
![promt: кнопка ввода черного цвета promt: кнопка ввода черного цвета](https://habrastorage.org/getpro/habr/upload_files/99c/823/621/99c8236213fe9a2eff6a17d3bc90aa1c.png)
Что в итоге
Изначально я задумывал конкретную форму кнопки Enter с небольшим добавлением элементов и символов, но после всех генераций в разных нейросетях я пришёл к выводу, что возьму результат Midjorney за основу и буду дорабатывать его в Figma.
Весь процесс отрисовки пришлось начать с нуля: собрали форму и объём, изменили цвет кнопки с черного на серый, добавили блики, тени, светящиеся иконки и подходящий тематический текст.
![](https://habrastorage.org/getpro/habr/upload_files/605/4ed/373/6054ed3732f4fe7f85a51d93a5fa6f04.png)
Вывод
Нет плохих или хороших нейросеток. Из личного опыта я понял, что у каждой своё назначение. Midjourney и Kandinsky очень хорошо подходят для создания какого‑то креативного изображения, обложки, или для поиска идей. У Midjourney есть несомненно хорошее преимущество сгенерировать новые варианты на основе предыдущего результата. Что касается Stable Diffusion — в связке с ControlNet можно получить более предсказуемый результат, а форму для референса можно нарисовать за 1 минуту в любом графическом редакторе, чем мы и воспользовались в дальнейшем.