Как установить нейросеть

0
22

HOWTO: как установить и настроить собственный ИИ на игровом ПК

⇡#Комбинируя комбинатора

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

Оставим поле Negative prompt пустым, не будем трогать другие параметры, только ползунок Batch size (размер пакета) передвинем вправо до упора — чтобы получать сразу восемь картинок с различными затравками (seed) одновременно: так проще будет выбирать достойную дальнейшей обработки заготовку. Дальше следует нажать на огромную оранжевую кнопку Generate — и, если всё было сделано должным образом, через некоторое время Stable Diffusion визуализирует полученную подсказку.

Процесс установки не очень быстрый, так что налейте себе чаю с печенькой и ждите. В конце установки не забудьте поставить галочку Create Desktop Shortcut, чтобы установщик создал ярлык для быстрого запуска. А вот запускать нейросеть пока рано, так что галочку Run Easy Diffusion стоит снять.

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

Не раз уже мы называли используемый с AUTOMATIC1111 чекпойнт «v-1-5-pruned-emaonly.safetensors» (переименованный, напомним, в «model.safetensors») базовым. Значит, должны быть и какие-то не-базовые, производные? Так и есть: на основе изначальной модели Stable Diffusion 1.5 (только в версии pruned, без emaonly) энтузиасты производят дотренировку, прогоняя через систему — тем же путём, что пропутешествовали исходные миллиарды картинок, — ещё несколько сотен, или тысяч, или на сколько у них хватит терпения и вычислительных мощностей. Картинки эти, соответствующим образом подобранные и аннотированные, расширяют горизонты восприятия, если так можно выразиться, модели: она начинает значительно чаще выдавать изображения в стимпанковской стилистике без дополнительных подсказок, или лучше начинает рисовать фэнтезийных эльфов (базовый чекпойнт в ответ на подсказку «elf» c большой вероятностью изобразит помощника Санты в зелёном колпачке, а не горделивого обитателя зачарованных лесов), или ещё каким-то образом модифицирует результаты своей генерации.

Загруженный файл модели v-1-5-pruned-emaonly.safetensors надо поместить в специально предназначенную для моделей папку внутри установочного каталога Stable Diffusion: /models/Stable-diffusion. Изначально она пуста, если не считать текстового файла нулевой длины с говорящим наименованием «Put Stable Diffusion checkpoints here» — «чекпойнтами» как раз и называют файлы с натренированными на определённым наборе картинок весами для данной нейросети.

Где скачать Stable Diffusion

В ходе установки Python 3.10.6 на самом первом экране инсталляции потребуется поставить галочку напротив строки «Add Python 3.10 to PATH» — чтобы у Windows не возникало проблем с поиском соответствующих исполняемых файлов. Прочие опции в последующих окнах можно оставить нетронутыми.

Нажимаем и ждём, пока Stable Diffusion увеличит нашу картинку. На компьютерах со слабой видеокартой возможны ошибки. На нашем подопытном с GTX 960 4 Гб увеличение работает через раз. Но тут ничего не поделаешь: либо пробовать раз за разом, либо менять железо.

Наши котики имеют размер 1024х768 пикс, что не так много. Для инстаграма хватит, а вот на большом мониторе особо не порассматриваешь, да и для печати маловато. Поэтому попробуем увеличить размер изображения. Делается с помощью тех же кнопок справа вверху (наводим мышь на картинку, чтобы кнопки появились).

Теперь нужно выбрать и скачать модель. У нейросетей для генерации картинок существуют разные модели, натренированные для создания изображений в разных стилях. Например, у Midjourney есть стандартная модель Midjourney v4, более свежая Midjourney v5, создающая более фотореалистичные изображения, и модель niji•journey, генерирующая картинки в стиле аниме и манга.

Ещё один важный момент: рекомендуется всегда — особенно если интересная модель попадётся вам на, скажем так, не самых заслуживающих доверия сайтах — отдавать предпочтение версии с расширением .safetensors. Дело в том, что стандартный формат, в котором хранятся веса натренированной модели, pickle (расширения .ckpt, .pkl и пр.), небезопасен, поскольку допускает исполнение стороннего — потенциально вредоносного — кода. Это, по сути, машиночитаемый бинарный файл; набор инструкций, указывающих, с каким перцептроном в каком слое нейросети какие веса использовать при обработке входящего сигнала, — а не таблица с самими этими весами и соответствующими связями: та вышла бы чрезмерно громоздкой).

ЧИТАТЬ ТАКЖЕ:  Нейросети которые рисуют картины

А вот то, каким именно образом модель решает, сколько шума и на каких именно участках надо оставить на картинке на каждом этапе, и определяется методом сэмплинга; говоря математическим языком — тем или иным методом градиентного спуска. Наиболее простой и быстрый (но и дающий менее выразительные с художественной точки зрения результаты) — это уже использованный нами Euler (см. схема Эйлера). Другие сэмплеры могут давать более интересные и/или более сложные результаты с бóльшим или меньшим учётом различных фрагментов подсказки — здесь нет ни единого рецепта, ни общего правила, что считать более предпочтительным. Однако, поменяв Euler на более «продвинутый», хотя и требующий большего времени на исполнение сэмплер DPM++ SDE Karras (Каррас — фамилия одного из авторов оригинальной статьи, где описан целый ряд таких методов), мы ровно с теми же самыми позитивной и негативной подсказками и с той же затравкой (seed) получим в целом более живописные изображения.

Как скачать и установить Stable Diffusion

Чекпойнт в формате файла сериализации для структуры объектов Python есть — а как же сам язык программирования Python? В Windows 10 его исходно, разумеется, нет, но он свободно доступен для загрузки с официального сайта. Главное — обращать пристальное внимание на выбираемую версию, а именно 3.10.6: следует загружать файл установщика для 64-битных систем — python-3.10.6-amd64.exe (проще всего найти «3.10.6» на странице через Ctrl+F). Дело в том, что разработка Stable Diffusion 1.5 (и, в меньшей степени, AUTOMATIC1111) велась именно на этой версии языка с поддержкой PyTorch — фреймворка, специально созданного для ускорения расчётов по части задач машинного обучения на современных графических адаптерах. И в целом следует помнить, что программы на Python не лучшим образом исполняются на любых иных (включая более свежие) его версиях, чем те, которыми пользовались их разработчики.

Что касается результата увеличения, то тут он не так впечатляет, как в том же Midjourney. Если Midjourney во время увеличение продолжает дорисовывать изображение, добавляя и изменяя детали, то Stable Diffusion просто физически увеличивает картинку, увеличивая резкость и сохраняя плавность линий. В целом, результат увеличения в Stable Diffusion очень похож на работу Topaz Gigapixel.

Составим такое описание: a cat made out of metal, ((cyborg)), (intricate details), hdr, ((intricate details, hyperdetailed)), sitting on the table, steampunk, books on the table, medieval windows behind, lancet windows, old library, victorian room, table lamps, stone walls, sun rays, soft light, photorealistic, perfect composition, cinematic shot / кот из металла, ((киборг)), (сложные детали), hdr, ((сложные детали, гипердетализация)), сидит на столе, стимпанк, книги на столе, средневековые окна сзади, стрельчатые окна, старая библиотека , викторианская комната, настольные лампы, каменные стены, солнечные лучи, мягкий свет, фотореалистичный, идеальная композиция, кинематографический кадр.

Существует немало разных сборок Stable Diffusion, отличающихся друг от друга интерфейсом и степенью сложностей, с которыми придётся столкнуться при установке. Самыми удобным для начинающего пользователя можно считать Easy Stable Diffusion. Скачать сборки можно с github.com: вот ссылка на Easy Stable Diffusion.

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

Продолжим изучать органы управления AUTOMATIC1111, обратив внимание на выпадающее меню Sampling method, где по умолчанию выбрано «Euler a». Как уже упоминалось, работа диффузионной генеративной модели заключается в поэтапном вычитании из исходного образа (квадрата или прямоугольника, заполненного «белым шумом») другого шума, уже упорядоченного (predicted noise), — специальным образом сгенерированного на основе текстовой подсказки. Непосредственно процесс снижения уровня шума (denoising) называется также сэмплингом (sampling), поскольку на каждом этапе последовательного снижения зашумлённости картинки получается новый её образчик (sample) — и, собственно, сколько именно шагов на этом пути будет пройдено, контролирует параметр Sampling steps. Для большинства чекпойнтов достаточно 20-30 шагов.

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

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