Умная графика

Oksana Mandryka

красота
Совокупность качеств объекта, доставляющих наблюдателю эстетическое наслаждение.

Что будет, если научить машину создавать красоту? Очевидно, нас ждет новый виток в развитии компьютерной генерации графики.

В JetBrains автогенерация графики используется для создания заставок, баннеров, оформления релизов. Мы хотим, чтобы индивидуальный дизайн каждого из продуктов приносил свою красоту на ваши экраны.

Генератор графики JetBrains v4

Что нового

В этой версии генератора статичной и анимированной графики мы задействовали нейронную сеть.

Создаваемые нашим генератором изображения — это не что иное, как ландшафты, спроецированные функциями нейронных сетей. Мы добавляем им немного красоты, однако результат напрямую зависит от тех данных, которые были переданы сети.

Для генерации изображений используется режим Mixer. Он берет выбранные вами изображения и, совмещая их, получает новые. Это обычный генетический алгоритм: мы смешиваем параметры имеющихся изображений, чтобы получить нечто новое. Следя за тем, какие изображения пользователь выбирает в качестве исходных (соответственно, считая их красивыми), мы получаем возможность обучать бинарную модель классификации понятию красоты, позволяя ей все лучше справляться с подбором изображений для смешивания.

Таким образом, мы используем нейронные сети не только в процессе генерации изображений, но и для поиска оптимального набора исходных данных, способного дать наиболее интересный результат.

Теперь вы можете стать настоящим дизайнером и создавать обои для рабочего стола, которые будут вашим личным произведением искусства. Чтобы приступить к созданию графики, переходите на наш сайт либо напрямую к ресурсу code2art.jetbrains.com. Подробнее о том, как устроена нейронная сеть, мы рассказываем в блокноте Datalore.

Галерея обоев

Перед вами несколько примеров обоев, созданных нашим генератором.

Ēage

Kubrik
Kubrik

Venus
Venus

Как работает GUI

Графический интерфейс позволяет легко работать с режимом Mixer, а также с контроллерами режима Solo, предназначенными для детального редактирования результата. Постоянно обновляя генератор, мы продолжаем работать с одним и тем же кодом фронтенда и поэтому улучшаем его с каждой новой версией. Также на этот раз мы доработали функциональность слоев — отдельных настраиваемых компонентов, способных производить статичную и анимированную графику. Кроме того, мы отделили логику пользовательского интерфейса от визуализации и теперь можем переиспользовать ее для любых слайдеров, кнопок и полей, которые захотим реализовать.

Как пользоваться новым инструментом

В меню справа выберите ваш продукт (например, IntelliJ IDEA или MPS) и нажмите кнопку Prescribed. Перед вами во всей красе предстанут созданные генератором анимированные обои в стиле выбранного продукта.

Режим Mixer

Исходно вам будет предложено девять изображений, подобранных нейронной сетью. Смело смешивайте идеи! Мы не случайно назвали режим «Mixer» (в переводе с английского — «мешалка»). Вы можете создавать целые ансамбли из различных идей и, выбирая лучшие, получать настоящие произведения искусства.

Venus

Если вам не нравится исходная подборка изображений, нажмите кнопку Regenerate и вы получите новую. Помните также, что вместо действия Regenerate, вы всегда можете доработать любое из предложенных вам изображений — об этом мы поговорим чуть позже. Если же вам понравилась часть изображений, кликните по каждому из них, а затем нажмите кнопку Cross-breed — выбранные вами изображения останутся, а вместо остальных будут сгенерированы новые (с учетом ваших предпочтений). Вы можете повторять процедуру сколько угодно, пока не найдете идеальный вариант.

Подбирая таким образом изображения, вы одновременно помогаете нейронной сети обучаться — своего рода «краудсорсинг». Человеческий глаз хорошо видит, что красиво, а что нет. Накапливая знания, нейронная сеть тоже постепенно учится видеть красоту. По умолчанию к режиму Mixer подключена нейронная сеть, обученная на предпочтениях сотрудников JetBrains. Если вам не нравятся предлагаемые изображения, вы можете отключить эту сеть, выставив для параметра Trained by значение wild.

Редактирование в режиме Solo

Кликнув дважды по любому из изображений, вы перейдете из режима Mixer в режим Solo и сможете детально поработать с настройками данного изображения. В меню справа вам доступно множество параметров настройки, открывающих безграничное поле для экспериментов.

Чтобы вернуться в режим Mixer, кликнете дважды по изображению.

Сохранение работы

Если вы хотите прерваться и продолжить работу над обоями позднее, нажмите кнопку Get URL. Используя созданную в адресной строке URL, вы сможете в любой момент вернуться к вашей работе или поделиться ею с друзьями.

Анимация изображения

Находясь в режиме Solo, нажмите кнопку Animate. Вероятно, вам придется подождать какое-то время. В случае образования очереди мы сообщим вам вашу позицию в ней. Вы можете закрыть вкладку и вернуться в редактор позднее — не забудьте при этом сохранить работу, а возвратившись, нажмите кнопку Animate повторно, чтобы узнать текущий статус процесса. В конечном счете вы получите анимацию, созданную на основе вашего изображения, — зацикленную и бесконечную, как лента Мебиуса. Чтобы вернуться к статичной версии изображения, нажмите кнопку Back to static.
Вы можете сгенерировать URL для анимированного изображения и поделиться им с миром.

Экспорт видео

Также вы можете создать файл .mp4. Это конечно непросто, но пожалуй, результат того стоит. Шутим, конечно же. Все, что вам нужно сделать для создания файла .mp4, это нажать кнопку Export Video. 😉

Точно так же выглядит генерация и для анимации: ваш запрос попадает в очередь, вы отслеживаете статус с помощью индикатора выполнения и при желании генерируете URL, чтобы сохранить происходящее и иметь возможность продолжить работу позже (вы можете спокойно закрыть вкладку, если выполнили сохранение).

Попытайте удачу

Если вы чувствуете, что удача на вашей стороне, нажмите кнопку I feel lucky. Неискусственный неинтеллект случайным образом выставит вам настройки. Ведь даже случайные настройки рождают красоту. Иногда, конечно, они рождают ерунду… но чаще — красоту!

Технические детали

Серверная часть решения состоит из нескольких компонентов:

  • Процессор для генерации изображений с использованием нейронной сети*, созданный при помощи библиотеки TensorFlow.
  • Процессор для рендеринга видео на основе набора изображений.
  • Хранилище для рабочих сессий пользователей.
  • Очередь, распределяющая задачи для центрального и графического процессоров между серверными компонентами.
  • Режим Mixer – инструмент для генерации изображений при помощи генетических алгоритмов.
    • Поверх режима Mixer и процессора для генерации изображений также работает еще одна нейронная сеть. Она собирает предпочтения пользователей и постепенно обучается выявлению наиболее красивых изображений.

*Сама нейронная сеть была разработана командой JetBrains Datalore – создателями онлайн-инструмента для анализа данных. Более подробно об архитектуре нейронной сети мы рассказываем в блокноте Datalore. Создав копию сети, вы можете самостоятельно поэкспериментировать с параметрами модели.

Надеемся, вы с удовольствием поиграете с нашим генератором обоев. Не забывайте делиться результатами в социальных сетях с тегами #code2art и @JetBrains. Нам интересно увидеть ваши произведения!

Ваша команда JetBrains
The Drive to Develop