DALL-E 2 — нейросеть, которая рисует картинки по текстовому запросу. Гулявшие в этом году примеры работы с ней просто поражают: иногда она рисует, как настоящий художник, и еще и предлагает варианты на выбор! С августа этого года мы периодически использовали DALL-E 2, чтобы генерировать заглавные картинки к статьям «Хакера», и сегодня я покажу, как это было.
«Хакер» — легендарный журнал об информационной безопасности. Оформив подписку на Xakep.ru, ты сможешь скачать любой вышедший номер в виде PDF и получишь доступ к огромной базе материалов о пентестинге, защите данных и компьютерных трюках. Каждая подписка помогает поддержать команду авторов и редакторов.
Проблема иллюстраций к статьям у нас стоит давно: изображения с фотостоков обычно скучные, а по теме информационной безопасности вообще тоска смертная — бесконечные хакеры в капюшонах и летающие полупрозрачные буквы. Нанимать иллюстратора, который выдавал бы по картинке в день, — слишком накладно. В итоге выкручиваемся как можем.
Мысль генерировать картинки при помощи нейросети меня сразу же захватила: это быстро, можно (в теории!) изобразить именно то, что хотел, а если результат будет несовершенным, то пускай это будет фирменной фичей, этаким признаком того, что мы тут уже живем в будущем.
Как только я увидел картинки, сгенерированные нейросетью DALL-E 2, я открыл рабочий чат и объявил, что нам срочно нужна эта штука. В июле доступ раздали миллиону ждущих в очереди, и одному из наших сотрудников повезло (спасибо ему огромное, что поделился доступом!).
С того момента я два месяца упражнялся в создании картинок при помощи нейросети и снабжал ими статьи «Хакера». Перебор вариантов стал в редакции регулярным увеселением, которым я хочу поделиться и с читателями.
Статья: Уроки форензики. Исследуем дампы и ищем следы взлома в системе
Идея: пускай Шерлок Холмс или человек, похожий на него, изучает жесткий диск.
sherlock holmes inspecting a hard drive

Увы, у DALL-E 2 плоховато и с лицами, и с точным изображением устройств. Ничего не подходит.
С реалистичными людьми связываться не хочется, тогда пускай это будет детектив Пикачу!
detective pikachu inspecting a hard drive in a hi-tech room

Ах да, DALL-E 2, скорее всего, ничего не знает про детектива Пикачу, потому что не видела коммерческих картинок с рекламой фильма. Зато видела мягкие игрушки Пикачу, поэтому у нас есть мягкая игрушка, но без шапки Шерлока. В любом случае на всех картинках он делает что-то странное. На расследование не тянет.
Возвращаемся к идее с Шерлоком, но попробуем сделать его мультяшным.
cartoon sherlock holmes inspecting a hard drive in a tech room

Последний вроде бы симпатичный, но превратить это в горизонтальную картинку будет сложно. Остальные держат очень странные предметы.
А что, если сделать фото, но из старой газеты? Это поможет скрыть недостатки, да и детектив будет более узнаваемым.
old newspaper photo of sherlock holmes inspecting a hard drive

Последнего берем! Разве что бровь странноватая, но идеала все равно не добиться.
Мучения
Говорят, чтобы нарисовать приличную картинку при помощи DALL-E 2, нужно сделать в среднем 30–50 запросов, а если требуется что-то действительно выдающееся, то счет может пойти на сотни. Мы обычно ограничивались двумя-тремя запросами, хотя в некоторых случаях поиски растягивались до пяти-восьми. Главное — вовремя отказаться от слишком смелой идеи.
Статья: Сканим на Python. Как написать и улучшить собственный сканер портов
Идея: сканер, сканер... Первая ассоциация — сканер штрих-кодов на кассе. А кассира для смеха попробуем сделать змеей в парике.
cashier is a snake in a wig holding a barcode scanner in its tail

Что просил, то, в целом, и получил. Кажется, идея слишком сложная, поэтому сделаем попрямолинейнее. Пусть питон будет инспектировать сервер. Скажем, держать в хвосте увеличительное стекло.
digital art of a python with a magnifying glass in its tail in a server room inspecting a server

Рука-хвост — ого-го! Все остальное тоже не годится. Попробуем сделать питона мультяшным.
cartoon illustration of a python inspecting a server with a lens in a server room

Стиль неплох, но очень уж рукастые питоны! Попробуем снова уточнить про хвост.
cartoon illustration of a python with a magnifying glass in its tail in a server room inspecting a server

Кажется, руки неизбежны. Что ж, возьмем первого. В конце концов, для мультфильма питон с рукой — это почти нормально.
Статья: Время паять! Подбираем инструменты и осваиваем искусство пайки
Идея: нужно нарисовать паяльник. Пускай вздымается в небо в лучах солнца.
soldering iron shining brightly in a ray of light against the sky

Это... не паяльники. Пробую еще раз, заменив солнце звездным небом и добавив «реализм» и «высокое качество».
high quality realistic soldering iron shining brightly in the night sky

Вышли какие-то космические корабли. И у пришельцев явно дурные намерения.
Пробую сделать «картину» и добавить руку и печатную плату в качестве фона.
realistic painting of a hand with a soldering iron soldering a computer chip to a pcb

А вот это почти хорошо! Берем третий, несмотря на то что человек тычет жалом куда-то в процессор.
Статья: Винда на айфоне. Используем виртуалку UTM для установки Windows на iOS
Идея: первая мысль очень прямолинейная — попросим нарисовать айфон с Windows на экране и посмотрим, что выйдет.
phone on the table with microsoft windows on screen

Да, это определенно какие-то айфоны. Но дизайнил их не Джонни Айв. Да и винды нету.
Пробую тогда попросить знаменитый зеленый холм из Windows XP.
iphone laying on the table with windows xp green hill on screen

Зеленый экран есть! Зеленого холма нет.
Пожалуй, заставлять DALL-E рисовать реалистичную технику просто бесполезно. Попробуем вместо этого что-нибудь абстрактное. Намекнем на вложенность операционных систем, а чтобы было красиво, сделаем в стиле Сальвадора Дали.
screens within screens endless loops in style of salvador dali

Тут я усвоил важный урок: если попросить у DALL-E безумную чертовщину, то все получится! Я взял третью картинку из-за того, что она немного напоминает логотип программы UTM, о которой идет речь в статье.
Удачи
Хорошо придуманный запрос, немного везения, и DALL-E способна выдать картинку не хуже, чем с фотостока, а иногда и лучше.
Статья: Микроконтроллер не нужен! Делаем радиоприемник на копеечном китайском чипе
Идея: почему-то сразу вспомнился старый мем про троллейбус из буханки хлеба. DALL-E к бою!
stock photo of a radio made out of a loaf of bread

Все картинки мне очень нравятся, выбираю первую. Радио в наушниках — немного странно, но будем считать, что у него просто такая ручка.
Статья: Privesc as a Service. Повышаем привилегии через Active Directory Certification Services
Идея: статья у нас про поддельные сертификаты. Подделку изобразить сложно, поэтому пускай горят, это всегда хорошо выглядит!
Начнем с совсем краткого запроса, посмотрим, что выйдет:
burning diplomas

Вышло не очень — фотореализм не удался. Наугад пробую добавить «medievel painting» — «средневековая картина».

Отлично! Все хороши, берем второй.
Статья: Мастерская хакера. 13 утилит для Linux, которые пригодятся админу
Идея: сделаем крутого пингвина, который едет на гоночной машине. В стиле ретровейв для дополнительной крутости.
a penguin in cool looking shades driving a ferrari f40 convertible in miami neonwave illustration

У предпоследнего потрясающая носовая фигура, но последний почти идеален. Только руль не задался и второе сиденье — с пингвиньим клювом. Но его будет легко замазать в редакторе.
Вдохновившись, запрашиваю еще таких же пингвинов, убрав точную марку машины — DALL-E все равно в них плохо разбирается.
a penguin in cool looking shades driving a ferrari convertible in miami neonwave

Три результата похуже, но последний просто отличный. Только погляди, как пингвин держит лапкой руль!
Статья: Инфильтрация и эксфильтрация. Изучаем методы передачи данных при пентестах
Идея: долго ломаю голову над инфильтрацией и эксфильтрацией и в итоге придумываю кота, который ворует рыбу у рыбака. Делаю для пробы слегка абстрактный запрос. Добавляю слово «картина», чтобы скрыть возможные огрехи.
painting of a cat stealing a fish from a fisherman

Кроме последнего, результаты симпатичные, хотя DALL-E почему-то решила, что и рыбак тоже вполне может быть котом. Берем первого, самого душевного, хотя худи (или скафандр?) из шкуры все же вызывает вопросы.
Статья: Вперед в прошлое! Как выжить в Windows 2000 в 2022 году
Идея: Windows 2000? Это было давно. Пишу: «пещерные люди охотятся на доисторические компьютеры, наскальная живопись». Да простит меня автор!
cave painting of people hunting a laptop

Охоты на ноутбук не происходит, но результаты тем не менее хороши. Мне особенно понравился первый, где кто-то все же несет топор.
Статья: Ядовитые гифки. Как работает уязвимость GIFShell
Идея: гифки у меня ассоциируются с пиксель-артом и с летящей Nyan Cat. И попросим одеть кошку в плащ из кислоты.
nyan cat in a cape of green acidic fluid pixel art

У DALL-E удивительным образом получается почти настоящий пиксель-арт. Да и коты тоже отличные. Мне больше всего понравился первый, но редакционным голосованием выбрали последнего.
Статья: Картошка-0. Повышаем привилегии в AD при помощи RemotePotato0
Идея: вспомнив Мистера Картошку из «Истории игрушек», пытаюсь создать похожего персонажа. Чтобы было совсем как у Pixar, добавим, что нужен высококачественный рендер.
high quality rendering of a happy potato with a face in a room

Класс! Все картошки прекрасны, некоторые хочется сразу же поставить себе на аватарку. Вторая особенно проникновенная. Берем ее!
Статья: Летние исследования для чемпионов Security. Колонка Дениса Макрушина
Идея: чемпион на подиуме с книгой в руках.
a painting of a champion standing on a podium with a book in his hand with dramatic backlight

Повезло с первого раза. Беру третьего, дорисовываю фон, и готово.

Статья: Суровая жаба. Изучаем защиту Excelsior JET для программ на Java
Идея: будем рисовать жабу. Большую сердитую жабу, сидящую в болоте.
big angry toad staring in dramatic light in a swamp

Невероятно, но у нас четыре почти фотореалистичные жабы. Годится любая, я выбрал первую.
Статья: Лето в стиле ретро. Заметки главреда, затерянного в пространстве и времени
Идея: это моя предыдущая колонка — о том, как я все лето угорал по ретрогеймингу и ретрокомпьютингу и разъезжал на мотороллере (тоже довольно винтажном). Его и изобразим в лучах заката.
retrowave summer yamaha scooter trees against sunset cyberspace

Красота какая! Вторая картинка почти идеальна, но придется выправлять или замазывать в редакторе поломанное внизу солнце. Берем четвертую, где кривизна сойдет за стилизацию.
Неудачи
Далеко не все запросы удивляют способностью DALL-E творить шедевры. Я здесь постарался не заниматься черри-пикингом и показать, как работа с нейросетью выглядит в реальности. Обычно мне удавалось в итоге добиться от DALL-E толка, но за два месяца было несколько случаев, когда приходилось оставлять попытки и брать готовую картинку из интернета.
Статья: Уроки форензики. Расследуем заражение машины с Windows шпионским трояном
Идея: шпионские трояны... Что, если попытаться изобразить тест Войта — Кампфа из «Бегущего по лезвию»?
Voight Kampff Test

DALL-E 2 уловила идею, но не до конца. Я в итоге пошел вспоминать, как выглядело приспособление, и взял картинку из фильма.

Другие подобные случаи я опущу, ничего занимательного в них нет.
Хохмы
Открывать DALL-E, придумывать запрос и ждать результата для меня, несмотря на все сложности, стало одной из приятнейших частей работы. Не в последнюю очередь потому, что результаты часто выходят веселыми — настолько, что можно поржать, как говорится, всем офисом.
Статья: Бан Kiwi Farms. Почему Cloudflare отказалась защищать сайт, где собираются тролли и сталкеры
Идея: к владельцам форума Kiwi Farms буквально вломилась бригада SWAT. Попробуем это изобразить! Я давно хотел попросить у DALL-E сделать что-нибудь в стиле комиксов Мебиуса, который считается одним из создателей киберпанка как визуального стиля.
SWAT team seen through the door in style of mobius comic books

Картинки вышли красивые, но, увы, совершенно непонятно, что здесь происходит. Хотелось бы к тому же вид из открытой двери, а не из-за спин. Пробую исправить это.
SWAT team looking at you through the open door in style of mobius comics

Смотрю на результаты круглыми глазами, потом потихоньку начинаю выть. Продолжаю смотреть, и вой постепенно переходит в ор. На второй картинке, кажется, изображена полиция мемов. Скидываю картинки автору статьи — Маше Нефедовой, она проходит через ту же череду эмоций.
Кажется, нужно менять подход. Я уже выяснил, что у DALL-E отлично получаются забавные овощи и фрукты с глазами. Грех этим не воспользоваться. А киви-пираты вообще будут хитом! Пробуем.
a painting of three kiwis with evil faces dressed as pirates dramatic light

На мой взгляд, результат великолепный. Однако Маша, критично оглядев наш с DALL-E шедевр, говорит, что, во-первых, киви на вид так себе, во-вторых, владельцы форума имели в виду птичку, а не плоды. Упс!
Ладно, птица так птица. Нарядим ее в черную худи и посадим за ноутбук.
evil kiwi bird in a black hoodie in front of a laptop

Они все просто прекрасны, и на этот раз Маша не в силах спорить. Второй потрясает нас своей шубой и своим злым «лицом». Но выбираем того, который что-то печатает клювиком.
Правда, Маша к этому моменту уже сама сделала более серьезную иллюстрацию при помощи Midjourney, так что птица отправляется только в соцсети.

Статья: Облака под угрозой. Как пентестить инфру в AWS
Идея: летящий в облаках черный воздушный шар с черепом и костями. Для красоты просим подсветить лучами солнца.
black hot air balloon with skull and bones in the sky with clouds backlit by the sun

Хуже всего получились череп и кости, но это легко исправить. Беру первый, замазываю в редакторе странную полосу слева, накладываю картинку с Веселым Роджером.
Но чтобы получить достаточную ширину по горизонтали, нужно больше неба. Не попробовать ли функцию дорисовывания? Отрезаю кусочек неба и прошу DALL-E дополнить его. Ответ совершенно недвусмысленный!

Однако облака — субстанция очень гибкая, можно редактировать как угодно. Без проблем замазываю безобразие и прилаживаю облака к картинке.

Статья: Фундаментальные основы хакерства. Боремся с дизассемблерами и затрудняем реверс программ
Идея: цикл «Фундаментальные основы хакерства» мы всю дорогу иллюстрировали каким-то стоковым типом в черной худи. Но в честь последнего выпуска, выход которого еще и (почти) совпал с днем рождения Юры Язева, хотелось разнообразия. Что, если вручить хакеру в руки тортик?
photo of a hacker in a black hoodie holding a birthday cake dark background backlit

Почти хорошо! Но в лица лучше не вглядываться, конечно.
Статья: Перехват VK. Как хакеры используют кликджекинг для деанонимизации
Идея: кликджекинг — перехват кликов мышью. Мышей перехватывают кошки, так что попробуем нарисовать кошку, которая ловит компьютерную мышь.
Для начала возьмем мультяшный стиль.
cartoon illustration of a cat holding a computer mouse in its mouth

В целом не так плохо, и коты забавные, но везде разные изъяны. То мышь не видно, то мышь изуродована до неузнаваемости, то коты слишком кривые.
Решаю попробовать попросить подделку под рендер.
high quality octane render of a cat holding a computer mouse in its mouth

Коты страшноватые, и белый фон не годится. Делаю еще один заход и прошу добавить желтый фон.
high quality octane render of a cat holding a computer mouse in its mouth on a yellow background

От души веселюсь, разглядывая результаты. Готового по-прежнему нет, но первому коту хотя бы легко добавить недостающий зрачок. Рисуя, немного умираю внутри от того, какой кот круглый и какие у него пальцы.
Статья: Даня снова с нами! Выясняем у Дани Шеповалова, где он пропадал 20 лет и при чем тут гуси
Идея: нужен Даня, ослик и гуси. Сразу мысли о каких-то старинных картинах. Скиталец едет на осле и ведет за собой стаю гусей. Попробуем стилизовать под средневековую икону.
a man with a goose and a donkey medieval icon high quality

Последняя картинка хороша, но у нашего пророка что-то не то с лицом. Пробую еще раз, подкрепив религиозные мотивы.
a man with a goose and a donkey ancient religious painting

Картинки отличные, однако нимбы, пожалуй, не к месту. Даня, конечно, легенда, но далеко не святой. Выбираем первую. К тому же эти гуси с ногами (руками?) абсолютно невозможные.
Кошмары
Если нужно нарисовать что-нибудь пугающее, нейросети здесь могут оказать неоценимую помощь. Увы, ограничить крипоту очень сложно, и она вылезает тут и там совершенно непроизвольно.
Статья: Атака Базарова. Evil Twin поверх динамической маршрутизации
Идея: изобразим злого двойника. Скажем, человек стоит перед зеркалом, а отражение — его злая версия. С красными глазами и клыками!
illustration of a man in the room looking in the mirror and seeing his angry evil twin with fangs and red eyes

Кошмар! Двойники, может, и ничего, но у нас и оригиналы не очень-то добрые вышли.
Если нам нужны клыки, то пускай в зеркале будет орк. В крови!
a man looking in the mirror and seeing an orc covered in blood

Мне понравилось, что одно из отражений еще и держит в руках зеркало. Может быть, третий вариант чуть лучше других, но в целом все это никуда не годится.
Пробуем слегка другой подход. Пускай человек видит себя демоном из ада.
illustration of a man in the room looking in the mirror and seeing himself as a demon in hell

Первый вроде бы ничего! Но тут я решил дать выбор самому автору статьи. А тот сразу сказал, что вторая картинка из первого запроса идеальна. Попросил добавить на грудь его любимую руну, я, конечно же, добавил.

Позднее, когда мы назначили эту статью темой сентябрьского номера, художник перерисовал для обложки картинку заново. Результат, конечно, совершенно другого уровня.
Статья: Анатомия эльфов 2. Разбираем устройство ELF-файлов в подробностях
Идея: попробуем нарисовать что-то вроде анатомического атласа, но для эльфа и с подписями на эльфийском. Подписи — большой риск, любые буквы DALL-E даются очень плохо.
anatomic picture of an elf

В принципе, неплохо, кроме того, что эльфы не те — слишком сказочные. Попробуем еще разок, добавив упоминание эльфийских рун. Возможно, это как раз наведет DALL-E на мысль о толкиеновских эльфах.
anatomic picture of an elf annotated with elven runes

Эльфы стали более фэнтезийными, но все страшноватые. Пробую еще раз.
anatomic diagram of an elf annotated with elven runes

Эльфы все страшнее и страшнее. Это уже не Толкиен и даже не Перумов. Впрочем, первая картинка хотя бы достаточно абстрактная. Отправляю запрос еще раз, на удачу поменяв синоним для диаграммы в надежде, что эльфы будут в разрезе.
cross-section anatomic diagram of an elf annotated with elven runes

Ну все, дело сделано, теперь это настоящее топливо для кошмаров, особенно этот ELL без лица и с роскошными рогами (и потрясающей диаграммой).
Советы
За эти два месяца я неплохо натренировался в обращении с DALL-E. Попробую поделиться некоторыми советами.
-
Лучше всего у DALL-E получается подделываться под сюрреализм — недаром название намекает на Сальвадора Дали.
-
Другие известные художественные стили тоже срабатывают. Смело добавляй к запросу имя любимого художника.
-
Фотореалистичные изображения иногда получается хорошо (как в примере с жабой), но если тебе нужно нарисовать лицо человека или какое-то устройство, то добиться правдоподобия будет очень тяжело.
-
Рендеры, карандашные наброски и карикатуры иногда получаются неплохо, но это чистой воды удача. Вообще, чем меньше в целом деталей, тем скорее DALL-E нарисует что-то лишнее.
-
Не забывай указывать, где происходит действие, иначе есть шанс получить белый фон.
-
Просить «высокое качество» не помешает, но это не волшебные слова, которые автоматически улучшат любую картинку.
-
Нужно обращать внимание на освещение. «Драматичный свет» и «закат» часто улучшают результат.
-
Чтобы получить изображение без кривизны, нужно делать очень много запросов, причем лучше всего прорабатывать несколько идей, пока не нащупаешь ту, которая у нейросети получается лучше всего.
Также рекомендую почитать Ultimate guide to DALL·E 2: how to use it & how to get access — подробное руководство по использованию DALL-E 2. И полистать презентацию The DALL·E 2 Prompt Book, в которой есть множество примеров запросов.
Выводы
Работая с DALL-E, я поначалу чувствовал себя пещерным человеком, которому дали немного поиграть с кремнем и повысекать искры. У нейросетей есть огромный потенциал, и сейчас их развитие — чуть ли не самое интересное, что происходит в области вычислительной техники.
Вопрос о том, лишат ли нейросети работы художников, для меня пока открыт. На мой взгляд, если и лишат, то нескоро, а пока что работы может стать даже больше.
Очень часто картинки нужно дорабатывать, к тому же сами запросы составлять не так-то просто, и познания в истории искусства дают преимущества. В идеале нужно аккуратно направлять нейросеть в сторону задумки — причем не только словами, но и своими набросками.
Недавно мне встретился очень интересный пример того, как при помощи локально развернутой нейросети Stable Diffusion и графического редактора можно нарисовать в точности то, что задумано. Предполагаю, скоро появятся и «облачные» редакторы с подобными (и гораздо более продвинутыми) инструментами. И кто-то должен будет учиться ими пользоваться.
Наш пример показывает, что раньше мы не могли позволить себе рисовать картинки для каждой статьи и были вынуждены выбирать из того, что есть на фотостоках, а с DALL-E можем позволить себе гораздо больше иллюстраций. С помощью нейросетей рисовать по картинке в день намного легче, и, естественно, это должен делать специальный человек, а не развлекающийся главный редактор.
Бонус
На сладкое покажу запрос, который я использовал, чтобы сделать обложку к этой статье. Я попробовал образно представить нашу редакцию.
office in style of Hieronymus Bosch

Поразительное сходство! На первой я работаю за айпадом с клавиатурой. На второй Валентин Холмогоров оживляет винтажный компьютер. На третьей кто-то из наших авторов начал писать статью и исчез (типично). Ну а на последней Дима Агарунов редактирует какой-то важный бизнес-документ, а вокруг… Кажется, кипит работа.
Автор: Андрей Письменный