Содержание статьи
Нейросеть закачала игры. Искусственный интеллект предложили подключить к их мониторингу
⇡#Как художник художнику
Скорее всего, это вина не чекпойнта Deliberate, а узкотематической LoRA, так что, поиграв с её значимостью (поменяв «:1» внутри треугольных скобок на «:0.7» для начала), можно было бы сгладить негативный эффект. Но мы поступим иначе, задав Clip skip = 2, т. е. заставив систему прерывать формирование структуры инструкций для диффузионной модели за шаг до исходно намеченного финала. Это словно бы несколько собьёт генератор токенов с толку — и во множестве случаев как раз предпоследний, а не финально вылизанный набор инструкций для ИИ-рисования и породит подлинно привлекательную на человеческий взгляд картинку. В качестве самостоятельного упражнения попробуйте и другие варианты Clip skip, вплоть до максимально возможного, — результат вас не на шутку удивит.
Вот, к примеру, на сайте Civitai.com, открытом репозитории множества ресурсов для энтузиастов text2image-генераций, имеется LoRA под названием SteampunkAI. Она создана на основе чекпойнта, специально дообученного для рисования в соответствующем стиле, и может применяться с любым другим чекпойнтом, обеспечивая вполне узнаваемую и зрелищную стилистику. Чтобы скачать соответствующий файл в формате .safetensors, достаточно нажать на длинную синюю кнопку на правой стороне веб-страницы.
Активное внедрение технологий ИИ подтверждает актуальность исследования ГРЧЦ, считают в Роскомнадзоре. При этом этика требует, чтобы алгоритмы находились под контролем и надзором человека, чтобы их использование не приводило к нарушению прав и свобод граждан, отметили в ведомстве. Ранее глава Роскомнадзора Андрей Липов рассказал в интервью “Ъ”, что искусственный интеллект может повысить эффективность мониторинга телеэфира, радио и сети (см. “Ъ” от 25 мая).
Следующий шаг — оптимизация негативной подсказки. Стандартный набор отрицаний, который мы применяли до сих пор, хорош своей относительной универсальностью, но всё же он не охватывает всего возможного круга недочётов, могущих возникнуть при преобразовании текста в изображение — особенно в ходе рисования роботов. Более универсальное решение даёт так называемая текстовая инверсия (textual inversion), ещё одна, наряду с LoRA, разновидность частной доработки генеративной модели. С уже знакомого сайта Huggingface скачаем ставшим привычным способом текстуальную инверсию Bad prompt, поместим её в файл в папку Git\stable-diffusion-webui\embeddings. Обратите внимание: не в \stable-diffusion-webui\models, где располагаются каталоги для самих моделей и LoRA, а на одном уровне с \models.
Можно и даже нужно: вся прелесть ИИ-преобразования текста в картинки заключается как раз не в самом рисовании роботом неких образов по заданной подсказке, а в том, насколько разнообразными и порой неожиданными могут быть плоды его трудов — в зависимости от приложенных оператором мыслительных усилий. Для начала задействуем поле Negative prompt, вписав туда то, чего не хочется видеть в итоговой картинке, а именно — low quality. Далее нажмём на зелёный треугольник из стрелочек, напоминающий условное обозначение вторичной переработки: это позволит зафиксировать случайно подобранную системой затравку (seed; в данном случае — 3423357652) для последующих генераций, что сделает оценку влияния вводимых нами параметров на итоговую картинку более наглядным.
Практическое отступление: после перезагрузки интерфейса пропали все наши подсказки и настройки во вкладке txt2img. Можно, конечно, восстановить их вручную по предыдущим записям — но зачем, если AUTOMATIC1111 помещает все важнейшие данные прямо в генерируемые картинки; в поля текстовых комментариев, предусмотренные стандартами PNG и JPEG?
Попробуем для начала переставить стили (указание на художника и сайт) в конец, а заодно убрать «ретрофутуризм» как термин из подсказок — слишком уж невнятно определён, может сбивать модель с толку, — и добавим больше подразумеваемых им деталей: янтарно светящиеся лампы, бронзовые трубки, медные зубчатые колёса, хромированные цепи, циферблаты слоновой кости, вентили эбенового дерева:
Для начала на локальном ПК необходимо развернуть клиент Git. Git — это распределённая система контроля версий (version control system, VCS); платформа не безусловно необходимая, но до чрезвычайности полезная для множества независимых программистов, совместно и исключительно добровольно трудящихся над многочисленными проектами ПО с открытым кодом. Главное достоинство VCS — в том, что никакая информация из неё бесследно не исчезает (если не прикладывать к тому особых усилий), т. е. любое внесённое в код исправление не затирает прежнего состояния соответствующего фрагмента листинга программы. Более того, Git не отслеживает такие изменения и не ведёт им тщательный учёт по отдельности (в отличие от других популярных VCS, таких как Subversion, Bazaar, CVS и пр.), но после каждого коммита (отправки пользователем со своего локального ПК исправленной версии кода в облако Git) создаёт моментальную копию — снэпшот (snapshot) — всех файлов данного проекта.
⇡#Предварительные замечания
В понимании рядового пользователя установка ПО на компьютер сводится к скачиванию и запуску инсталляционного файла — после чего в системе оказывается развёрнута вожделенная программа или целая платформа; как правило, уже в виде исполняемого бинарного файла (часто с рядом дополнительных файлов — служебных библиотек, конфигурационных и пр.). У программистов, особенно ориентированных на ПО с открытым исходным кодом, подход иной: если есть программа, написанная на некоем языке, и свободно доступная среда для исполнения кода на этом же языке, к чему городить огород с бинарниками? Проще запускать программы в этой же самой среде и горя не знать. Как раз такому принципу в целом и следует логика установки Stable Diffusion.
И вот, собственно, волнительный момент: первый запуск Stable Diffusion 1.5 с базовым чекпойнтом на вашем локальном ПК! Для этого теперь, когда всё необходимое ПО закачано и подготовлено, в «Проводнике», где открыт каталог stable-duffusion-webui, нужно дважды щёлкнуть левой кнопкой мыши по файлу webui-user.bat. Откроется окно терминала, в котором будут появляться служебные сообщения о производимых системой операциях. Сперва ей потребуется произвести ряд донастроек программного окружения, так что первый запуск может потребовать 5-10 минут, — но в дальнейшем всё будет происходить значительно быстрее.
Чтобы загрузить эту модель, следует перейти на вкладку Files в веб-интерфейсе её странички на репозитории, чуть прокрутить вниз — и нажать на не самую приметную стрелочку с подчёркиванием, стоящую справа от букв «LFS» в строке, что начинается с «v-1-5-pruned-emaonly.safetensor». Как только при наведении на стрелочку всплывёт окошко с мелкой надписью «Download file» — можно нажимать и запасаться терпением: файл занимает несколько гигабайтов.
Ту же оценку можно видеть на фоне ползущей вправо синей полоски прогресса и в графическом веб-интерфейсе. Там же — для справки — система демонстрирует некоторые промежуточные результаты процесса диффузии: как из исходного «белого щума» постепенно проявляется ожидаемое изображение.
Энтузиасты, что жаждали бы запустить на домашнем ПК большую языковую модель (large language model, LLM) современного уровня, сталкиваются с принципиальной проблемой: их машинам остро не хватает видеопамяти. Дело в том, что плотная многослойная нейронная сеть, к работе которой в конечном итоге сводится LLM, выдаёт некий результат в ходе взвешенного суммирования огромного количества — десятков и сотен миллиардов — операндов. Чтобы производить такие — сравнительно несложные, но чрезвычайно массированные — расчёты за разумное время, необходимо свести к минимуму задержки при передаче сигналов между вычислительными узлами и памятью, с которой те оперируют.
А как насчёт видеокарт AMD — годятся ли они для запуска Stable Diffusion? Практика показывает, что да, вполне, — однако придётся совершить несколько дополнительных шагов в ходе установки и настройки системы, да и в целом производительность при переводе текста в изображения тут будет ниже, чем у сопоставимых по классу графических адаптеров NVIDIA. Основная причина — в том, что сама система преобразования текстовых подсказок в картинку при написании опиралась на ряд проприетарных возможностей, реализованных в ядрах CUDA как на уровне «железа», так и в созданных для него ИИ-ориентированных программных библиотеках.