Стрим на «Грозе»
запись недавнего стрима
Что определяет валютный курс?
От чего зависит долгосрочная динамика курса?
Перекрёсток экономической политики
Что можно сказать под конец года о российской экономической политике? Она стала жёстче, или мягче, или осталась "нейтрально-сбалансированной"? Правда ли, что ЦБ и Минфин перестали двигаться в одном направлении, а взгляды на регулирование оказались пересмотрены? Пытаемся разобраться в этом в очередной публикации на сайте.
Новые теоретические видео на подходе, если что!
Как власти отреагировали на падение рубля?
Рубль, не падай!
Про рубль, ЦБ и всё такое
В очередной новости на сайте делимся полным вариантом ответа на вопросы Ведомостей о сами знаете чём. Кстати, очередной ролик будет посвящён как раз "курсовой" теме, так что можете считать затравочкой!
Как изменить подход к управлению инфляцией?
В очередной раз поучаствовали в большом материале Ведомостей. На этот раз почти все наши ответы вошли в финальную публикацию без изъятий, поэтому делимся ссылкой на полную версию публикации.
ЦБ против Минфина: провал координации?
Чем окончится противостояние?
Ослабление рубля и бюджетные доходы
Вдогонку к публикации Ведомостей на заданную тему можете посмотреть развёрнутую версию нашего комментария.
Всё не так уж и плохо?
Может, мы зря сгущаем краски?
Нужны ли ограничения на движение капитала?
Куда же мы без контроля?
Успехи власти на форуме Россия Зовёт! | ТЫ ПОСМОТРИ #103
Форум, подкаст, разбор... это становится почти традицией.
Навигация по курсу Stable Diffusion
0.1 Вступление
Часть 1. Что такое Stable Diffusion.
1.1. Обзор технологии
1.2 Как создавался Stable Diffusion
1.3 На чьих картинках учился Stable Diffusion?
Часть 2. Установка Stable Diffusion Automatic1111
2.1 Устанавливаем программу на ПК
2.2 Аренда сервера для запуска SD
Часть 3. Онтология промпта. Семантическая сеть и микросюжетный промпт
3.2 Влияние текстовой подсказки
3.3 ⭐ Домашнее задание. Сравниваем типы промптов
Часть 4. Prompt-инжиниринг
4.1 Промпт-инжиниринг базовый
4.2 Домашнее задание. Оцениваем эффективность видеокарты
Часть 5. Синтаксис в промпт-инжиниринге
5.1 Синтаксис промпта
5.2 ⭐ Домашнее задание. Упражняемся в синтаксисе
Часть 6. Чекпоинты (модели Stable Diffusion)
…
🚧🚧🚧
Список уроков будет обновляться по мере выхода нового материала…
5.2 | Домашнее задание. Синтаксис в промпте | Курс по Stable Diffusion Automatic
Закрепляем знание синтаксиса.
4.2 | Домашнее задание. Оцениваем эффективность видеокарты | Курс по Stable Diffusion Automatic
Пока вы только выбираете подходящий промпт, нет необходимости генерировать множество изображений и долго ожидать результата. Когда ваш промпт будет хорошо сформулирован и отредактирован, тогда используйте ресурсы видеокарты на полную мощность.
Из этого урока вы научитесь определять оптимальные настройки генерации для вашей видеокарты. В таблице ниже представлена эффективность видеокарты в зависимости от значения batch size.
Вот какие выводы можно сделать из этой таблицы:
- Чем больше batch size — тем меньше времени уходит на генерацию одной картинки.
- При batch size = 4 достигается оптимальное время генерации. Дальнейшее увеличение batch size незначительно сокращает время генерации (на одну картинку).
- После batch size = 6 сокращения не происходит совсем (значения колеблются в пределах погрешности).
Проведите такой же тест на своём компьютере.
Домашнее задание № 1. Оцените возможности своей видеокарты
Откройте таблицу и создайте её копию. Для этого в верхнем углу таблицы нажмите «Файл» -> «Создать копию». Копия этой таблицы сохранилась на вашем гугл-диске, теперь вы можете редактировать её.
Вернитесь к SD и выполните последовательность действий:
1. Выставьте batch size = 1;
2. Сгенерируйте картинку размером 512×512;
3. Запишите длительность генерации в таблицу. Длительность отображена под генерацией в строке Time taken;
4. Увеличьте значение batch size на +1 и повторите шаги 2 и 3. Продолжайте увеличивать bach size пока он не станет равен 8.
Чем больше объём VRAM у видеокарты, тем большее количество изображений можно генерировать одновременно. Сообщение «OutOfMemoryError: CUDA out of memory» указывает на то, что видеокарта достигла своего предела возможностей. Это поможет вам определить оптимальное число изображений для одновременной генерации картинок размером 512×512 пикселей.
Повторите эксперимент с чекпоинтом SDXL и разрешением 1024×1024 пикселей. Оптимальное значение batch size будет отличаться.
Далее: Домашнее задание + тестирование пройденного материала. Улучшаем эстетичность изображения в пару кликов.
4.1 | Промпт-инжиниринг базовый | Курс по Stable Diffusion Automatic
Сэмплеры
Из видео вы кое-что узнали про сэмплеры, теперь посмотрим какой из них самый лучший.
График показывает относительное время генерации при использовании разных сэмплеров. Чем меньше столбик на графике, тем быстрее будет генерация.
Посмотрите на ещё один пример того как картинка изменяется при изменении Seed и сэмплера.
Рекомендую использовать сэмплер DPM++ 2M. Он подходит для фотореалистичных и творческих генераций. С его помощью достаточно 20-30 шагов генерации для получения красивых картинок. Дальнейшее увеличение количества шагов увеличит время генерации, но не сделает картинку лучше.
В конце статьи вы найдёте ссылки на скачивание больших таблиц с примерами того как CFG и Step влияет на сэмплеры. Картинки слишком огромные и не вмещаются на сайт.
Негативный промпт
Примеры негативного промпта:
- cropped, lowres, poorly drawn face, out of frame, poorly drawn hands, blurry, bad art, blurred, text, watermark, disfigured, deformed, closed eyes
- deformed, blurry, bad anatomy, disfigured, poorly drawn face, mutation, mutated, extra_limb, ugly, poorly drawn hands, two heads, gross, mutilated, disgusting, horrible, scary, evil, old
- lowres, text, error, cropped, worst quality, low quality, jpeg artifacts, ugly, duplicate, morbid, mutilated, out of frame, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, mutation, deformed, blurry, dehydrated, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, malformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck
Не обязательно использовать все слова из этих примеров. Оставьте только только то, что требуется вам в данный момент.
Негативный промпт для фотореалистичных генераций:
- unrealistic, saturated, high contrast, big nose, painting, drawing, sketch, cartoon, anime, manga, render, CG, 3d, watermark, signature, label
Step (шаги генерации)
CFG
По умолчанию оставляйте CFG = 7. Для создания фотореалистичных картинок уменьшайте CFG до 3-4.
Пример влияния CFG на разных сэмплерах:
https://drive.google.com/file/d/1Yyf7A3UbXVWuAtkkPHc2Ya-fqr4lYkij/view?usp%3Dsharing
Ниже есть ссылки на полезные материалы: модификаторы, стили и различные примеры генераций при разных настройках.
Далее: Домашнее задание. Оцениваем оптимальные настройки для серийной генерации картинок.
3.3 | Домашнее задание. Сравниваем типы промптов | Курс по Stable Diffusion Automatic
Закрепляем пройденный материал
3.1 | Структура промпта | Курс по Stable Diffusion
(⓿_⓿) Внимание! Примеры на видео созданы в ранних версиях Stable Diffusion. Современные чекпоинты сгенерируют результат с более высокой эстетической оценкой. Общая суть промптинга при этом остаётся неименной. С видами чекпоинтов познакомимся в одном из следующих уроков.
Создание промптов для Stable Diffusion является ключевым этапом в работе с нейросетями и моделями text2image. Эффективные промпты позволяют добиться высококачественных результатов и реализовать творческие замыслы. Промпт — это текстовый запрос, который формулируется таким образом, чтобы нейросеть могла его понять и воплотить в изображение. В промпте указывается тип (фотография, иллюстрация, скетч и т.п), субъект (то, что должно быть изображено), его действия или окружение, а также ключевые слова, определяющие стиль и детали. Важно помнить, что расположение слов в промпте влияет на итоговую генерацию: чем ближе слово к началу, тем больше его влияние. Для создания эффективных промптов можно использовать различные подходы: самостоятельное написание, использование конструкторов промптов или оптимизационных инструментов.
📃 Сайты с ключевыми модификаторами:
Посмотрите как модификаторы влияют на генерируемое изображение.
- https://www.the-ai-art.com/modifiers
- https://rentry.org/artists_sd-v1-4
- https://www.urania.ai/top-sd-artists
- https://sgreens.notion.site/sgreens/4ca6f4e229e24da6845b6d49e6b08ae7?v=fdf861d1c65d456e98904fe3f3670bd3
📃 Переводчики
Переводчики помогут перевести промпт на английский языке.
- Deepl — рекомендую не только для использования в браузере, но и бесплатную версию программы для переводов текста прямо в Windows ⭐
- Google translate
- Яндекс translate
🖐На практике микросюжетные промпты не используются, поскольку современные нейросети плохо понимают контекст. В лучшем случае нейросеть проигнорирует слова, а в худшем — добавит в изображение нежелательные искажения. Подробности вы найдете в следующем уроке.
Далее: 3.2 Влияние текстовой подсказки
2.1 | Устанавливаем Stable Diffusion Automatic1111 на свой ПК | Курс по Stable Diffusion Automatic
Если программа у вас уже установлена — переходите к третьей части курса.
Есть два основных способа запуска Stable Diffusion Automatic1111: Запуск на своём компьютере и аренда мощного сервера. Выбор зависит от ваших потребностей и возможностей. Установка на собственный ПК обеспечивает больший контроль и гибкость, но требует мощного оборудования. Аренда сервера может быть более доступным вариантом, но менее гибким и часто платным.
1 способ. Установка на свой компьютер
Минимальные требования:
- Видеокарта с объемом видеопамяти не менее 4 ГБ (для комфортной работы рекомендуется 6 ГБ и более)
- Оперативная память: рекомендуется 16 ГБ
- Не менее 100 ГБ свободного места на диске для программы и сгенерированных изображений
- Желательно иметь твердотельную память (SSD). На устаревших HDD загрузка программы будет длиться дольше.
Плюсы:
- ✅ Бесплатное и безлимитное использование
- ✅ Гибкая настройка плагинов и моделей под свои нужды
Минусы:
- ❌ Необходим мощный ПК
- ❌ Производитель видеокарты имеет важное значение. Видеокарты NVIDIA лучше подходят для работы с нейросетями, так как большинство программ оптимизировано под них. Запуск Stable Diffusion на видеокартах других производителей сложнее, а генерация будет медленнее и функционал ограничен.
Начинаем установку
☝️Установите Stable Diffusion Automatic1111 одним из нескольких способов. Перед установкой SD обязательно нужно установить Git и Python версии 3.10.9. Если нужна помощь в установке git и python — смотрите youtube инструкцию.
- Портативная версия (стандартная). Скачайте архив «sd.webui.zip» и разархивируйте его. Удалите папку «venv». Далее запустите файл с названием «webui-user.bat». Дождитесь пока скачаются все необходимые файлы (займёт от 15 минут до нескольких часов). Всё. Программой можно пользоваться. Детальная инструкция есть здесь;
- Портативная версия (оптимизированная «Forge») — рекомендуемый способ для тех у кого слабая видеокарта (менее 8гб). Эта версия программы совместима не со всеми сторонними плагинами — такова цена оптимизации программного кода. Перейдите по ссылке и нажмите кнопку «>>> Click Here to Download One-Click Package<<<». Начнется скачивание архива. Извлеките файлы из скачанного архив в отдельную папку (в названии папки должны быть только английские буквы!). Файл «Update» запускайте время от времени для обновления программы. Файл «Run» для запуска программы.
- Обычная установка по youtube инструкции (чуть сложнее предыдущих вариантов);
- Есть множество автоматизированных установщиков. Например: Super installer или Stability Matrix. Через них можно установить разные нейронки в пару кликов. Иногда эти установщики глючат — использовать их не рекомендую. Лучше пользоваться проверенными способами.
📃 Полезные ссылки
- 7-Zip — бесплатный, универсальный архиватор для извлечения файлов из архивов.
- В Youtube инструкции показаны способы устранения основных ошибок установки. Рекомендую смотреть даже если вы устанавливаете портативную сборку Automatic1111.
- Проблемы при установке и пути решения (англ.)
💬 Дополнительная важная информация!
- Папка, в которую вы устанавливаете Stable Diffusion должна иметь в названии только английские буквы!
- В имени учетной записи пользователя windows должны быть только английские буквы. Иначе в процессе установки вы получите ошибку exit code 3.
- В процессе установки Stable Diffusion будут скачиваться файлы библиотек, если у вас медленный интернет, то установка займёт несколько часов.
- После установки программы очистите жёсткий диск от ненужных файлов. Они лежат в папке «c:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ\AppData\Local\pip\» (у меня папка весила 7гб).
- Одновременно можно установить сколько угодно версий программы.
Изменяем иконку программы
Программа запускается через файл webui-user.bat, который не имеет своей иконки, исправим это. Иконки для скачивания находятся внизу статьи
- Удерживая нажатой клавишу Alt, перетащите webui-user.bat на рабочий стол.
- Щелкните по файлу правой кнопкой мыши => свойства
- Ярлык, там есть «Сменить значок…», нажмите на него и выберите соответствующий файл значка, который вы скачали
Изменяем внешний вид программы
- Для изменения цветовой темы программы перейдите в настройки программы: «Settings» -> «User interface» -> «Gradio theme» -> выберите тему.
- Сохраните настройки и перезагрузите программу: Apply settings» -> «Reload UI».
УСТРАНЕНИЕ ОШИБОК И ОПТИМИЗАЦИЯ ПРОГРАММЫ
❗ Если ошибки возникнут в дальнейшем использовании программы — вернитесь к этому сообщению.
Добавление параметров поможет оптимизировать программу: ускорить генерации или избавиться от ошибок. Полный список параметров есть на официальной странице проекта. Далее я приведу список основных параметров.
Для добавления параметров откройте через блокнот файл «webui-user.bat». Параметры добавляются в конце строки «set COMMANDLINE_ARGS=». Все параметры перечисляются через пробел. Подробнее об этом я рассказывал в видео об установке программы.
➡️ Полезные параметры
--opt-sdp-attention
Уменьшает потребление памяти. Уменьшает время генерации картинки на 15-70%. Работает только на видеокартах Nvidia.
--xformers
После выхода torch 2.0.0 этот параметр считается устаревшим для современных. Вместо этого используйте параметр --opt-sdp-attention.
--autolaunch
Рекомендую использовать. Автоматически открывает веб-страницу в браузере после завершения загрузки программы.
--theme=dark
Включает тёмную тему интерфейса программы.
--api
Не включайте пока в этом нет необходимости. Требуется для некоторых сторонних расширений, которые требуют доступ к интернету.
➡️ Ускоряем генерацию в SDXL
- Nvidia (12gb+) --xformers
- Nvidia (8gb) --medvram-sdxl --xformers
- Nvidia (4gb) --lowvram --xformers
- AMD (4gb) --lowvram --opt-sub-quad-attention + TAESD в настройках
Читайте так же: Оптимальное использование SDXL · AUTOMATIC1111/stable-diffusion-webui Wiki · GitHub
➡️ Параметры для устранения ошибок
--medvram
Для генераций крупных картинок, либо для видеокарт с менее чем 6гб видеопамяти. Увеличивает время генерации! Используйте параметр только при острой необходимости.
--lowvram
Работает как предыдущая настройка, но еще сильнее увеличивает время генерации. Только для самых слабых видеокарт с менее чем 4гб видеопамяти
--no-half-vae
Если генерируются чёрные или коричневые квадраты. Сильно увеличивает использование памяти при генерации.
--no-half
Требуется, если у вас проблемы с любой генерацией, такое бывает на 16хх серии видеокарт, особенно с SD 2.x моделями.
⁉️ Вопросы и ответы
Что делать обладателям видеокарт с низким VRAM? (<=4 ГБ)
- Включите оптимизации с помощью аргументов командной строки, но в жертву придётся принести скорость генерации.
- Если у вас 6 ГБ видеопамяти и вы хотите создавать картинки с разрешением 512×512 пикселей или больше — используйте параметр --medvram.
- Если добавление параметра --medvram не помогло, используйте вместо него --lowvram --always-batch-cond-uncond.
Что делать если генерируется черный экран?
- Причина в том, что некоторые видеокарты не поддерживают «половинную точность»: вместо сгенерированных изображений может появиться зеленый или черный экран. Для решения проблемы используйте параметр --upcast-sampling.
- Если это не помогло — используйте аргументы --upcast-sampling --precision full --no-half. Эта настройка увеличит потребление VRAM. Для компенсации затраченной VRAM, потребуется включить --medvram.
- В некоторых случаях ошибка может быть связана с VAE, тогда добавьте параметр --no-half-vae.
Как переустановить программу?
- Удалите папки `venv` и `repositories`. Далее запустите программу через `webui-user.bat`. Необходимые модули будут скачаны заново.
Часто причиной ошибок становятся расширения программы. Расширения делают члены сообщества любителей Stable Diffusion и не всегда это опытные программисты. Закройте программу, переименуйте папку с расширениями `extensions` — так SD потеряет их и запустится без расширений. Если ошибка программы не повторяется, то начинайте поиск того расширения, которое сломало программу.
Следующая статья № 2.2 посвящена аренде Stable DIffusion на удаленных серверах. Если вы уже установили программу — переходите к уроку 3.1 Структура промпта.
1.3 | На чьих картинках учился Stable Diffusion? | Курс по Stable Diffusion Automatic
Датасет — это набор картинок, на которых обучается нейросеть. В видео я покажу как посмотреть на эти картинки и как среди них найти свои фотографии или рисунки.
📃 Ссылки
Тот самый пост с челленджем на генерацию Чебурашки.
Как корпорации и государства на нас наживаются
При обучении Stable Diffusion версии 1.5 использовался общедоступный датасет изображений. Однако большинство компаний, создающих нейросети, например, Midjourney, предпочитают не раскрывать источники данных, использованных для обучения их моделей. Государства тоже не стесняются использовать наши персональные данные для обучения надзирающего «Большого брата» 😈
Вы вряд ли сможете с уверенностью сказать, были ли ваши личные фотографии задействованы при обучении нейросети Midjourney. Тем не менее, многие социальные сети и интернет-платформы активно используют пользовательский контент, включая тексты, видео и изображения, для обучения своих нейронных сетей без ведома и согласия авторов.
Происходит ли это с вашим контентом в данный момент? Хотите ли вы, чтобы так было? К сожалению, пользователи зачастую не имеют выбора и возможности проконтролировать этот процесс 🕵️
Хотя использование персональных данных для обучения нейронок может вызывать беспокойство с точки зрения приватности, это одновременно является неотъемлемой частью развития технологий искусственного интеллекта. Нейросети обучаются на больших объемах разнообразных данных, и пользовательский контент является ценным источником такой информации.
Компаниям следует быть более прозрачными в отношении своих практик использования данных и предоставлять пользователям возможность сделать осознанный выбор о том, хотят ли они делиться своим контентом для этих целей.
Нейросети — наши суперсилы
Я обрисовал общую информацию о Stable Diffusion, теперь давайте взглянем на эту технологию в более широком контексте.
Согласно теории диффузии инноваций, процесс распространения новых идей и технологий проходит через пять этапов. Нейросети, несомненно, являются важной инновацией, которая затронет все сферы нашей жизни. В данный момент мы находимся на границе между ранними последователями и ранним большинством пользователей этой технологии.
Это одновременно наше преимущество и вызов. Чем раньше мы освоим нейросети, тем больше выгод сможем извлечь из их использования. Однако на ранних этапах порог входа выше, индустрия только формируется, а набор инструментов стремительно меняется. Вот в чем заключается сложность раннего вхождения в новую область.
Сейчас идет конкурентная борьба между разработчиками нейросетей, и мы, как пользователи, получаем многообразие продуктов. Пока на рынке не закрепились монополии, каждый разработчик стремится удовлетворить наши потребности и предоставить новые уникальные возможности.
Тот факт, что вы смотрите этот курс, говорит о том, что вы относитесь к числу тех, кто не хочет оставаться на месте и ищет новые горизонты. Я искренне рад, что вы работаете над собой и обогащаетесь знаниями.
Освоение нейросетей на этом раннем этапе требует усилий, но это также открывает перед нами огромные перспективы. Лет 20 назад в резюме было принято писать «Уверенный пользователь ПК». Сейчас это настолько базовая вещь что упоминать об этом в резюме так же нелепо как всерьез заявлять: «Обучен письму и арифметике».
«Уверенный пользователь нейросетей» — вот новый тренд на ближайшие годы! Вместе мы сможем стать частью этой революционной технологии и извлечь максимальную пользу из ее возможностей.
Далее: 2.1 Установка Stable Diffusion Automatic1111
1.2 | Как создавался Stable Diffusion? | Курс по Stable Diffusion Automatic
Как обучаются диффузионные модели
В основе работы Stable Diffusion лежит диффузионная модель машинного обучения. Процесс обучения этой модели начинается с того, что исследователи берут реальные изображения из интернета и искусственно добавляют к ним случайный шум, похожий на помехи на старом телевизоре. Затем нейросеть обучают убирать этот шум и восстанавливать исходное изображение.
На ранних этапах обучения шум добавляется в небольших количествах. Постепенно его уровень повышается, пока в конечном итоге изображение не будет полностью замаскировано случайными помехами. Несмотря на это, нейросеть учится находить в этом хаотичном шуме визуальные образы: людей, предметы, растения и другие объекты.
Наступает момент, когда нейросети показывают картинку, состоящую исключительно из случайного шума, и просят сгенерировать изображение цветка, кота или шаурмы. И удивительным образом нейросеть способна увидеть в этом беспорядочном наборе пикселей искомые объекты, какими бы они ни были. Этот процесс и называется «диффузионной моделью» машинного обучения.
Но на этом возможности нейросети не заканчиваются. Она не только находит образы в шуме, но и постепенно добавляет детали к изображению, шаг за шагом преобразуя хаотичные пиксели в привлекательную и реалистичную картинку.
Чем больше шагов удаления шума — тем лучше становится картинка, но только до некоторого предела, после которого картинка перестаёт улучшаться. Этот процесс занимает от 1 секунды до нескольких минут в зависимости от количества шагов удаления шума, размера картинки, мощности компьютера и других параметров.
В рамках этого курса мы сосредоточимся на практическом применении диффузионных моделей, таких как Stable Diffusion. Однако для тех, кто захочет углубиться в технические детали и узнать больше о том, как устроены эти модели, я предоставлю дополнительные материалы и ресурсы.
Секрет ёмкости нейросетей: информация, а не изображения
Задумывались ли вы, сколько изображений может храниться в нейросети весом всего 4 гигабайта? Для сравнения, обычный DVD-диск вмещает до 4,7 гигабайт данных. Представьте, что у вас на компьютере есть папка с фотографиями, занимающая гигабайты или даже десятки гигабайт. Сколько же реально фотографий может содержаться в такой папке? Тысячи или даже десятки тысяч?
Теперь вопрос: сколько изображений, по вашим предположениям, может быть «упаковано» в нейросеть объемом 4 гигабайта? Попробуйте угадать 🤔
Правильный ответ может вас удивить: 5 миллиардов изображений упаковано в SD1.5! 🤯Однако стоит уточнить, что это не полноценные изображения в привычном понимании, а скорее некая информация, описывающая характерные особенности людей, животных, предметов, стилей, художественных техник и многого другого.
Нейросеть не хранит готовые изображения как таковые. Вместо этого она содержит математические представления визуальных концепций, извлеченные из огромного количества обучающих данных. Благодаря этому нейросеть способна генерировать совершенно новые изображения, комбинируя и интерпретируя усвоенные закономерности и паттерны.
Таким образом, 4 гигабайта данных нейросети эквивалентны информации, содержащейся в миллиардах отдельных изображений, что позволяет создавать практически бесконечное разнообразие новых визуальных композиций. Именно эта способность к генерации уникального контента делает нейросети, такие как Stable Diffusion, столь мощным и революционным инструментом.
🧠 Статьи для самых любознательных с углубленным объяснением того, как устроен SD: [рус.] [english 1] [english 2]. Более сложные технические детали о диффузионных моделях: [english].
Далее. 1.3 На чьих картинках учился Stable Diffusion?