Как нейросеть подключить к игре

0
16

Нейросеть закачала игры. Искусственный интеллект предложили подключить к их мониторингу

⇡#Как художник художнику

Следующий шаг — оптимизация негативной подсказки. Стандартный набор отрицаний, который мы применяли до сих пор, хорош своей относительной универсальностью, но всё же он не охватывает всего возможного круга недочётов, могущих возникнуть при преобразовании текста в изображение — особенно в ходе рисования роботов. Более универсальное решение даёт так называемая текстовая инверсия (textual inversion), ещё одна, наряду с LoRA, разновидность частной доработки генеративной модели. С уже знакомого сайта Huggingface скачаем ставшим привычным способом текстуальную инверсию Bad prompt, поместим её в файл в папку Git\stable-diffusion-webui\embeddings. Обратите внимание: не в \stable-diffusion-webui\models, где располагаются каталоги для самих моделей и LoRA, а на одном уровне с \models.

Здесь подходит такой наглядный пример: студент за время обучения получает различные оценки (за сессионные экзамены и зачёты, за активность на коллоквиумах, лабораторные работы и т. п.), и в конце концов сдаёт госэкзамены. Так вот, итоги госэкзаменов можно рассматривать как финальные веса ИИ-модели на завершающем этапе её обучения. Однако на эти оценки может влиять огромное количество факторов: внезапное недомогание, чрезмерное волнение и пр. Поэтому о реальном прилежании студента и уровне накопленных им за период обучения знаний гораздо больше скажет EMA всех его прежних оценок вплоть до госэкзаменационных — с упором, конечно, на наиболее близкие к ним по времени. Потому что первая, к примеру, сессия была давно, и предметы, за которые на ней выставлялись оценки, для практической работы выпускника вуза, скорее всего, не будут иметь большого значения.

Для корректной работы системы по умолчанию требуется, чтобы базовый чекпойнт — тот, что будет сразу загружаться в память при запуске Stable Diffusion, — носил название «model», однако, помимо него, в этой папке может располагаться сколько угодно чекпойнтов. Поэтому следует либо переименовать «v-1-5-pruned-emaonly.safetensors» в «model.safetensors», либо сохранить прямо здесь же его копию с таким именем.

Как можно видеть, уже простейшая негативная подсказка сделала изображения более выразительными. Обратите внимание, как система именует их по умолчанию: сперва идёт сквозной номер генерации за текущую дату, далее через дефис — использованная для создания данной картинки затравка (seed). То есть здесь первому изображению в первом пакете (00000-3423357652) соответствует первое во втором (00008-3423357652) и т. д.

Как ни парадоксально, но генеративные модели, создающие привлекательные для человека изображения (Midjourney и подобные), требуют куда меньше вычислительных ресурсов, чем текстовые (такие как ChatGPT). Настолько, что подобный ИИ можно установить локально даже на не самом современном игровом ПК. В этой статье подробно рассказываем, как это сделать

Энтузиасты, что жаждали бы запустить на домашнем ПК большую языковую модель (large language model, LLM) современного уровня, сталкиваются с принципиальной проблемой: их машинам остро не хватает видеопамяти. Дело в том, что плотная многослойная нейронная сеть, к работе которой в конечном итоге сводится LLM, выдаёт некий результат в ходе взвешенного суммирования огромного количества — десятков и сотен миллиардов — операндов. Чтобы производить такие — сравнительно несложные, но чрезвычайно массированные — расчёты за разумное время, необходимо свести к минимуму задержки при передаче сигналов между вычислительными узлами и памятью, с которой те оперируют.

Имя Ханса «Рюди» Гигера известно немногим, однако стилистика его работ в жанре фантастического реализма знакома каждому, кто видел хотя бы пару кадров из культового фильма «Чужой», для которого именно этот художник разработал и образ ксеноморфа, и общий дизайн. Что же касается скобочек и цифр внутри, то это принятый в AUTOMATIC1111 способ изменения значимости (относительного веса) конкретной подсказки.

Добавим туда через запятую sd_vae, sd_hypernetwork, CLIP_stop_at_last_layers, sd_hypernetwork_strength (начиная с версии 1.2.0 AUTOMATIC1111 добавление это производится из выпадающего меню: достаточно начать набирать наименование желаемого параметра, и список предлагаемых опций будет автоматически сужаться).

ЧИТАТЬ ТАКЖЕ:  Как создать нейросеть для распознавания текста

⇡#…Но Git установить обязан

Как сообщает официальная документация, «модуль pickle имплементирует двоичные протоколы для сериализации и десериализации структуры объектов Python», т. е. устанавливает связи между различными объектами. В частности — позволяет при определённых условиях запускать сторонний код, написанный на Python, в том числе содержащий инструкции прямого исполнения — вроде eval или exec. Вот почему в среде энтузиастов машинного обучения в применении к моделям с открытым кодом всё большее распространение получает простейший формат сериализации .safetensors — безопасный, обеспечивающий ускоренную загрузку весов модели в память и более быстрое получение результата на системах с несколькими графическими процессорами.

Другой вариант, тоже онлайновый, — задействовать Google Colab, бесплатную платформу, что позволяет каждому обладателю учётной записи Google разворачивать в облаке корпорации так называемые блокноты (Python notebooks) для исполнения кода, написанного на языке Python. Поскольку локальная инсталляция Stable Diffusion тоже, по сути, сводится к установке на ПК среды Python и ряда специализированных скриптов на этом языке, практически всё, что возможно проделать с этой моделью на вашем компьютере, доступно и после развёртывания её в Colab. Соответствующих инструкций в Сети имеется в избытке, однако следует помнить: только платным пользователям Colab (10 долл. США в месяц и более — причём оплата картой, да) доступно исполнение блокнота на физическом серверном ГП NVIDIA A100 с его великолепной ИИ-производительностью. В противном же случае скорость генерации изображений вряд ли будет намного выше, чем на видавшем виды локальном игровом ПК.

И вот, собственно, волнительный момент: первый запуск Stable Diffusion 1.5 с базовым чекпойнтом на вашем локальном ПК! Для этого теперь, когда всё необходимое ПО закачано и подготовлено, в «Проводнике», где открыт каталог stable-duffusion-webui, нужно дважды щёлкнуть левой кнопкой мыши по файлу webui-user.bat. Откроется окно терминала, в котором будут появляться служебные сообщения о производимых системой операциях. Сперва ей потребуется произвести ряд донастроек программного окружения, так что первый запуск может потребовать 5-10 минут, — но в дальнейшем всё будет происходить значительно быстрее.

Обратите внимание на вкладку PNG Info в веб-интерфейсе: при переходе на неё появляется область для загрузки изображений. Поместим туда (просто перетащив мышкой) из окна «Проводника» Windows, в котором открыта папка txt2img-grids, последнюю из сгенерированных картинок в формате PNG — и справа появится вся информация, сохранённая в её метаданных. Теперь достаточно нажать на «Send to txt2img», чтобы все использованные для генерации данной картинки подсказки и параметры, вплоть до Seed, оказались на своих местах. Надо лишь только вернуть Batch size значение 8 — иначе будет сгенерирована не подборка, как всё время до сих пор, а только единичная картинка с исходной затравкой. В подборке же у каждой последующей картинки затравка (seed), напомним, отличается от предыдущей на единицу.

Да, и кстати: хорошо бы на всякий случай установить самые свежие из доступных драйверов для используемого графического адаптера, а заодно и CUDA Toolkit с сайта NVIDIA. Лишним не будет, поскольку обеспечиваемая этим пакетом поддержка инструкций xFormers позволяет Stable Diffusion и схожим text2image-моделям эффективнее использовать видеопамять. Чтобы узнать, имеется ли уже в системе CUDA Toolkit и какова текущая версия драйверов, следует выполнить из командной строки Windows команду

Почему среди прочих вариантов представления Stable Diffusion лучше выбирать именно этот? Первое соображение — размер: версия без «emaonly» тянет на 7,7 Гбайт, а выбранная нами — менее чем на 4,3 Гбайт. Для дальнейшей тренировки модели (натаскивания её на новых изображениях; тех, что не вошли в исходный пул обучения в 2,3 млрд аннотированных картинок) лучше подойдёт более полный и весомый вариант, но в ходе генерации по текстовым подсказкам разница между «pruned» и «pruned-emaonly» пренебрежимо мала. Но, может быть, более крупный файл модели позволит получать, исходя из той же самой текстовой подсказки, изображения лучшего качества? Не совсем так; но, чтобы обосновать этот тезис, придётся немного углубиться в технические детали.

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь