Batch size - число картинок, которые одновременно генерируются видеокартой. Зависит от разрешения и объема VRAM. Если у вас 8 гигабайт, можно поставить штуки 4. На 4090 я могу поднимать это число до 40. Кстати, изменить максимально допустимое число можно поправив файл ui-config, в нем есть параметр Batch count/maximum. Как понять, что памяти не хватает? Если у вас генерация прервалась, загляните в консоль. Скорее всего там ругается на память. В этом случае уменьшайте батчи.
Batch count - это число батчей, которые запустятся последовательно. То есть Batch size * Batch count - это и будет число картинок после генерации.
Seed - это сид для генератора шума, из которого создается картинка. Если в нем стоит -1, то сид будет случайным. Когда вы генерируется несколько картинок с одним и тем же сидом, результат будет практически идентичным. Вы можете нажать на иконку с зелеными стрелками по кругу, чтобы использовать сид из последней генерации, когда вам понравилась картинка и вы хотите продолжать над ней работать.
В img2img появляется еще несколько параметров, из которых самый главный это Denoising Strength. В нем задается, как сильно результат будет отличаться от исходной картинки. При нуле - отличий не будет, при единице - результат будет полностью новый. Про img2img и другие его параметры будет отдельный пост.
Как разобраться, какие параметры на что влияют? В выпадающем списке Scripts выберите X/Y/Z plot. Этот скрипт позволяет рендерить картинки с разными установками и делать из них красивые таблицы. Например выбирайте в X type CFG Scale, а в X values запишите через запятую 2,3,5,7,14 Теперь у вас будет сравнительная таблица с пятью разными значениями скейла, очень удобно. Не забудьте поставить 1 в батчах.
Все параметры генерации, включая сид, модель и промпты, сохраняются по умолчанию в метадату PNG-файлов. Вы всегда можете засунуть PNG в поле во вкладке PNG Info и восстановить все настройки.
https://preview.redd.it/ud12agb7goj91.jpg?width=640&crop=smart&auto=webp&s=e2324e756b4629441cfd204b1715d252767a0f91
#основы
Batch count - это число батчей, которые запустятся последовательно. То есть Batch size * Batch count - это и будет число картинок после генерации.
Seed - это сид для генератора шума, из которого создается картинка. Если в нем стоит -1, то сид будет случайным. Когда вы генерируется несколько картинок с одним и тем же сидом, результат будет практически идентичным. Вы можете нажать на иконку с зелеными стрелками по кругу, чтобы использовать сид из последней генерации, когда вам понравилась картинка и вы хотите продолжать над ней работать.
В img2img появляется еще несколько параметров, из которых самый главный это Denoising Strength. В нем задается, как сильно результат будет отличаться от исходной картинки. При нуле - отличий не будет, при единице - результат будет полностью новый. Про img2img и другие его параметры будет отдельный пост.
Как разобраться, какие параметры на что влияют? В выпадающем списке Scripts выберите X/Y/Z plot. Этот скрипт позволяет рендерить картинки с разными установками и делать из них красивые таблицы. Например выбирайте в X type CFG Scale, а в X values запишите через запятую 2,3,5,7,14 Теперь у вас будет сравнительная таблица с пятью разными значениями скейла, очень удобно. Не забудьте поставить 1 в батчах.
Все параметры генерации, включая сид, модель и промпты, сохраняются по умолчанию в метадату PNG-файлов. Вы всегда можете засунуть PNG в поле во вкладке PNG Info и восстановить все настройки.
https://preview.redd.it/ud12agb7goj91.jpg?width=640&crop=smart&auto=webp&s=e2324e756b4629441cfd204b1715d252767a0f91
#основы
👍23🔥2
Что же делать, если вы хотите получить сочную, детальную хайрезную картинку, а не эти жалкие почтовые марки в 512 пикслей? Вам поможет опция Hires. fix.
Когда вы ее включаете, сначала проходит генерация в исходном размере. Потом результат апскейлится и прогоняется через img2img с тем же промптом. Таким образом у вас сохраняется композиция исходной генерации, но при этом добавляются детали.
Ставьте в width и height 960 и 544. И ширина, и высота, должны делиться на 8.
Включайте Hires.fix
Upscaler. Не думая выбирайте R-ESRGAN 4x+. Я проводил тесты, он работает лучше всех. SwinIR дает чуть больше деталей, но они не очень качественные, а работает он медленнее.
Hires steps - это сколько шагов будет использовано для img2img. При нуле берется исходное значение, можете его и оставить.
Denoising strength - сила img2img. Ставьте 0.3-0.4, иначе ваша исходная картинка сильно поменяется.
Upscale by: 2 или можете поставить разрешение в Resize width/height to.
Это всё. Нажимайте Generate, ждите и получайте отличную FullHD картинку. Точнее по вертикали будет на 1080, а 1088 из-за ограничений на разрешение, так что не забудьте обрезать лишние пиксели.
Это же поможет, если вы слишком изменили пропорции картинки и теперь у вас персонаж двоится, или у него выросла вторая голова. Уменьшайте исходное разрешение и добавляйте деталей в хайрез фиксе.
#основы
Когда вы ее включаете, сначала проходит генерация в исходном размере. Потом результат апскейлится и прогоняется через img2img с тем же промптом. Таким образом у вас сохраняется композиция исходной генерации, но при этом добавляются детали.
Ставьте в width и height 960 и 544. И ширина, и высота, должны делиться на 8.
Включайте Hires.fix
Upscaler. Не думая выбирайте R-ESRGAN 4x+. Я проводил тесты, он работает лучше всех. SwinIR дает чуть больше деталей, но они не очень качественные, а работает он медленнее.
Hires steps - это сколько шагов будет использовано для img2img. При нуле берется исходное значение, можете его и оставить.
Denoising strength - сила img2img. Ставьте 0.3-0.4, иначе ваша исходная картинка сильно поменяется.
Upscale by: 2 или можете поставить разрешение в Resize width/height to.
Это всё. Нажимайте Generate, ждите и получайте отличную FullHD картинку. Точнее по вертикали будет на 1080, а 1088 из-за ограничений на разрешение, так что не забудьте обрезать лишние пиксели.
Это же поможет, если вы слишком изменили пропорции картинки и теперь у вас персонаж двоится, или у него выросла вторая голова. Уменьшайте исходное разрешение и добавляйте деталей в хайрез фиксе.
#основы
👍20
Промпты - это самая интересная часть процесса генерации. Это больше искусство, чем наука, хотя, конечно, можно найти некоторые закономерности.
Для начала почитайте вот это: https://openart.ai/promptbook
1. Общая структура: Медиум (Painting, photo, drawing, sketch) of Объект (dog, cat, starship Enterprise), детали (highly detailed, trending on artstation), стиль (by Greg Rutkowski, in style of impressionism). Эта схема не отлита в камне, экспериментируйте!
2. Слова, которые находятся ближе к началу, имеют больший вес
3. Используйте (усилители) и [ослаблятели] весов. Для точной настройки пользуйтесь (вот таким форматом:1.2)
4. Если что-то вас не устраивает в изображении, подумайте над использованием негативного промпта
5. Заведите себе базу данных промптов и записывайте интересные находки
Ресурсы для поиска промптов:
https://openart.ai/
https://prompthero.com/stable-diffusion-prompts
Список стилей:
https://docs.google.com/spreadsheets/d/1BA8EMidpQsQbSDc7s3k-hA9CyijQ7X3pSACNhAuzut8/edit#gid=2051882840
Конструктор промптов:
https://promptomania.com/stable-diffusion-prompt-builder/
Когда у вас получилась хорошая картинка, заморозьте сид и начинайте немного видоизменять промпт. Меняйте веса отдельных слов - это приведет к мелким изменениям. Именно так, кстати, и делается самая плавная анимация, когда ключевыми кадрами меняется сила определенных слов запроса.
Иногда добавление одного слова или даже символа или перестановка слов местами может привести к интересным результатам, пробуйте!
Хорошей практикой является начать с чужого промпта и начать его менять, наблюдая за результатом.
Чужие промпты можно посмотреть, например, вот тут:
https://www.reddit.com/r/StableDiffusion/?f=flair_name%3A%22Workflow%20Included%22
https://yangx.top/text2image/84671
#основы
Для начала почитайте вот это: https://openart.ai/promptbook
1. Общая структура: Медиум (Painting, photo, drawing, sketch) of Объект (dog, cat, starship Enterprise), детали (highly detailed, trending on artstation), стиль (by Greg Rutkowski, in style of impressionism). Эта схема не отлита в камне, экспериментируйте!
2. Слова, которые находятся ближе к началу, имеют больший вес
3. Используйте (усилители) и [ослаблятели] весов. Для точной настройки пользуйтесь (вот таким форматом:1.2)
4. Если что-то вас не устраивает в изображении, подумайте над использованием негативного промпта
5. Заведите себе базу данных промптов и записывайте интересные находки
Ресурсы для поиска промптов:
https://openart.ai/
https://prompthero.com/stable-diffusion-prompts
Список стилей:
https://docs.google.com/spreadsheets/d/1BA8EMidpQsQbSDc7s3k-hA9CyijQ7X3pSACNhAuzut8/edit#gid=2051882840
Конструктор промптов:
https://promptomania.com/stable-diffusion-prompt-builder/
Когда у вас получилась хорошая картинка, заморозьте сид и начинайте немного видоизменять промпт. Меняйте веса отдельных слов - это приведет к мелким изменениям. Именно так, кстати, и делается самая плавная анимация, когда ключевыми кадрами меняется сила определенных слов запроса.
Иногда добавление одного слова или даже символа или перестановка слов местами может привести к интересным результатам, пробуйте!
Хорошей практикой является начать с чужого промпта и начать его менять, наблюдая за результатом.
Чужие промпты можно посмотреть, например, вот тут:
https://www.reddit.com/r/StableDiffusion/?f=flair_name%3A%22Workflow%20Included%22
https://yangx.top/text2image/84671
#основы
OpenArt
Stable Diffusion Prompt Book | OpenArt
Free AI image generator. Free AI art generator. Free AI video generator. 100+ models and styles to choose from. Train your personalized model. Most popular AI apps: sketch to image, image to video, inpainting, outpainting, model fine-tuning, real-time drawing…
👍26❤1
Существует много разных способов тюнинга модели и генерации. Поговорим про четыре самых популярных. Это Dreambooth, Lora, Hypernet и Embedding (textual inversion).
Можно как тренировать их самостоятельно на ваших собственных материалах, так и скачивать готовые на https://civitai.com
Что же это такое?
Dreambooth-чекпойнты.
Это файнтюнинг модели, когда уже готовую модель доучивают на небольшом датасете, чтобы добавить какой-то стиль или объект. Это большие файлы, от трех гигабайт, которые включают в себя как данные исходной модели, так и новые изученные веса. Именно такие чекпойнты и можно найти на Civitai.
Использование: Файл .ckpt или .safetensor кладется в папку Models/Stable-Diffusion и выбирается в выпадающем списке чекпойнтов.
Плюсы: можно обучить новой концепции, которой еще не было в модели.
Минусы: большой вес файла, нельзя использовать несколько моделей одновременно.
Lora
Это набирающий популярность формат, который объединяет возможности обучения Dreambooth с гибкостью других подходов. Это маленькие файлы размером в десятки мегабайт.
Использование: Положить в папку Models/Lora. Использовать в промпте вида
Плюсы: Хорошее и быстрое обучение, можно извлечь веса Lora из обычного чекпойнта DreamBooth, чтобы уменьшить его вес. Можно использовать несколько Лор в одном запросе.
Embedding
Когда вы делаете запрос, его слова превращаются в токены, а они - в цифровое представление, многомерные векторы. Это представление называется Embedding. Так вот, вместо изменения весов самой модели можно изменить веса этого эмбеддинга, чтобы более точно найти нужный стиль. Процесс обучения эмбеддинга называется Textual Inversion, потому что обучение как бы проходит наоборот. Мы подбираем промпт, чтобы он более точно соответствовал картинке. Потом результат записывается в очень маленький файл (десятки килобайт).
Использование: поместить файл .pt или .bin в папку Embeddings. В промпте написать название файла без расширения. Или выбрать через красную иконку, как и Лору. Можно менять силу эмбеддинга стандартными скобками.
Плюсы: Крошечный вес, можно использовать несколько эмбеддингов в одном запросе, обучение на маленьком датасете.
Минусы: Нельзя обучить новой для нейросети концепции.
Hypernetwork
Это еще один способ тюнинга модели путем добавления новых слоев в нейросеть. Отлично подходит для обучения стилю. Размер файлов от четырех до нескольких сотен мегабайт.
Использование: поместить файл .pt в Models/Hypernetworks. В промпте написать
Плюсы: очень быстрое обучение. Хорошо улавливает стиль. Можно использовать несколько гипернетворков одновременно.
Для начала я рекомендую накачать себе разных чекпойнтов, лор, гипернетов и эмбеддингов и поэкспериментировать с ними, чтобы разобраться, как они вообще работают.
Самостоятельно их обучение - это отдельная большая тема, к которой мы еще не раз вернемся.
#основы
Можно как тренировать их самостоятельно на ваших собственных материалах, так и скачивать готовые на https://civitai.com
Что же это такое?
Dreambooth-чекпойнты.
Это файнтюнинг модели, когда уже готовую модель доучивают на небольшом датасете, чтобы добавить какой-то стиль или объект. Это большие файлы, от трех гигабайт, которые включают в себя как данные исходной модели, так и новые изученные веса. Именно такие чекпойнты и можно найти на Civitai.
Использование: Файл .ckpt или .safetensor кладется в папку Models/Stable-Diffusion и выбирается в выпадающем списке чекпойнтов.
Плюсы: можно обучить новой концепции, которой еще не было в модели.
Минусы: большой вес файла, нельзя использовать несколько моделей одновременно.
Lora
Это набирающий популярность формат, который объединяет возможности обучения Dreambooth с гибкостью других подходов. Это маленькие файлы размером в десятки мегабайт.
Использование: Положить в папку Models/Lora. Использовать в промпте вида
<Lora:НАЗВАНИЕ ФАЙЛА БЕЗ РАСШИРЕНИЯ:ВЕС>
. Или нажать на красную иконку с книжкой под кнопкой Generate и выбрать там нужную Лору. В одном запросе можно использовать несколько Лор. При этом можно с помощью веса менять их силу. Значения от нуля до одного, хотя можно ставить и больше единицы, иногда это дает интересный результат.Плюсы: Хорошее и быстрое обучение, можно извлечь веса Lora из обычного чекпойнта DreamBooth, чтобы уменьшить его вес. Можно использовать несколько Лор в одном запросе.
Embedding
Когда вы делаете запрос, его слова превращаются в токены, а они - в цифровое представление, многомерные векторы. Это представление называется Embedding. Так вот, вместо изменения весов самой модели можно изменить веса этого эмбеддинга, чтобы более точно найти нужный стиль. Процесс обучения эмбеддинга называется Textual Inversion, потому что обучение как бы проходит наоборот. Мы подбираем промпт, чтобы он более точно соответствовал картинке. Потом результат записывается в очень маленький файл (десятки килобайт).
Использование: поместить файл .pt или .bin в папку Embeddings. В промпте написать название файла без расширения. Или выбрать через красную иконку, как и Лору. Можно менять силу эмбеддинга стандартными скобками.
Плюсы: Крошечный вес, можно использовать несколько эмбеддингов в одном запросе, обучение на маленьком датасете.
Минусы: Нельзя обучить новой для нейросети концепции.
Hypernetwork
Это еще один способ тюнинга модели путем добавления новых слоев в нейросеть. Отлично подходит для обучения стилю. Размер файлов от четырех до нескольких сотен мегабайт.
Использование: поместить файл .pt в Models/Hypernetworks. В промпте написать
<hypernet:НАЗВАНИЕ ФАЙЛА БЕЗ РАСШИРЕНИЯ:ВЕС>
или воспользоваться красной иконкой для выбора из имеющихся. Логика использования такая же, как у Lora. Плюсы: очень быстрое обучение. Хорошо улавливает стиль. Можно использовать несколько гипернетворков одновременно.
Для начала я рекомендую накачать себе разных чекпойнтов, лор, гипернетов и эмбеддингов и поэкспериментировать с ними, чтобы разобраться, как они вообще работают.
Самостоятельно их обучение - это отдельная большая тема, к которой мы еще не раз вернемся.
#основы
Civitai
Civitai: The Home of Open-Source Generative AI
Explore thousands of high-quality Stable Diffusion & Flux models, share your AI-generated art, and engage with a vibrant community of creators
👍24❤1
Пожалуй, на этом можно заканчивать серию постов про основы. Надеюсь, эти статьи дадут вам прививку против инфоцыган, которые будут примерно все то же самое, только менее структурированное, впаривать вам за 16 тысяч.
В будущем, конечно, будут обучающие посты на более продвинутые темы, так что пишите в комментариях, о чем ещё вам хотелось бы услышать. Да. комментарии у нас тут есть, даже чат целый.
Всем удачного творчества!
В будущем, конечно, будут обучающие посты на более продвинутые темы, так что пишите в комментариях, о чем ещё вам хотелось бы услышать. Да. комментарии у нас тут есть, даже чат целый.
Всем удачного творчества!
🔥52❤6👍4
This media is not supported in your browser
VIEW IN TELEGRAM
С помощью молотка, молитв и двухметрового костыля я сделал API для ControlNet. Теперь можно работать с ним из Гудини, делать батч-процессинг и прочие прикольные вещи.
Погружение в глубины исходников Автоматика стоило мне пары лет жизни. По возможности избегайте этого.
Погружение в глубины исходников Автоматика стоило мне пары лет жизни. По возможности избегайте этого.
🔥108❤7⚡7👍1
Я сформулировал свои мысли о ChatGPT! Она мне напоминает того самого чувака, который никогда не скажет "я не знаю" или "я не умею", а просто возьмется за задачу, прошляпит сроки и подведёт всю команду.
В какой-то момент я полюбил обучаться с GPT. Иногда я прошу её объяснить разные сложные концепции простым языком, задаю уточняющие вопросы. Это действительно очень крутой способ узнать что-то новое, чем-то похожий на общение с настоящим ментором, у которого можно уточнить любой нюанс.
Но иногда, примерно через полчаса, ты натыкаешься на очевидно ложное утверждение. Нейросеть начинает "вести" и вместо того, чтобы сказать "я не знаю", она придумывает очень странные и далёкие от реальности истории. Начинаются те самые знаменитые "галлюцинации". В результате вся сессия обучения идет прахом, потому что сложно понять в какой момент начался дрифт, и она перестала говорить правду. Ведь тональность и убедительность рассказа не поменялись.
GPT - это просто языковая модель, которая сказав "А" обязана сказать и "Б". Она не умеет признаваться, что чего-то не знает, она просто не запрограммирована не знать. Добавим это в копилку слабостей ИИ, которую мы откроем, когда он начнет порабощать человечество.
Любопытно, что если общаться с GPT на русском, то как будто становится хуже. Возможно, где-то в модели произошло семантическое смешивание слов "расскажи", "опиши" и "перескажи", иначе я это объяснить не могу . Я попросил GPT пересказать сюжеты советских фильмов и не разочаровался.
В какой-то момент я полюбил обучаться с GPT. Иногда я прошу её объяснить разные сложные концепции простым языком, задаю уточняющие вопросы. Это действительно очень крутой способ узнать что-то новое, чем-то похожий на общение с настоящим ментором, у которого можно уточнить любой нюанс.
Но иногда, примерно через полчаса, ты натыкаешься на очевидно ложное утверждение. Нейросеть начинает "вести" и вместо того, чтобы сказать "я не знаю", она придумывает очень странные и далёкие от реальности истории. Начинаются те самые знаменитые "галлюцинации". В результате вся сессия обучения идет прахом, потому что сложно понять в какой момент начался дрифт, и она перестала говорить правду. Ведь тональность и убедительность рассказа не поменялись.
GPT - это просто языковая модель, которая сказав "А" обязана сказать и "Б". Она не умеет признаваться, что чего-то не знает, она просто не запрограммирована не знать. Добавим это в копилку слабостей ИИ, которую мы откроем, когда он начнет порабощать человечество.
Любопытно, что если общаться с GPT на русском, то как будто становится хуже. Возможно, где-то в модели произошло семантическое смешивание слов "расскажи", "опиши" и "перескажи", иначе я это объяснить не могу . Я попросил GPT пересказать сюжеты советских фильмов и не разочаровался.
👍28😁7❤2🥰1💩1
This media is not supported in your browser
VIEW IN TELEGRAM
Нашёл косяк в коде расширения для ControlNet, который сломал мне весь api. Починил и снова балуюсь, на сей раз с интерьерами. Накидал кубиков, и норм. Такая нынче визуализация.
🔥65👍8😱6❤2❤🔥1
Если вы когда-нибудь занимались 3D, у вас наверняка скопилась коллекция текстур потеков краски, непонятных пятен, потертостей, царапин и прочих таких штук.
Вы можете использовать их для генерации интересных абстрактных картин. Помещаете такую текстуру в img2img, подбираете промпт типа 'Abstract paiting of a girl' и играете со слайдером Denoising strength, пока не получите подходящий результат.
Пользуйтесь!
#совет
Вы можете использовать их для генерации интересных абстрактных картин. Помещаете такую текстуру в img2img, подбираете промпт типа 'Abstract paiting of a girl' и играете со слайдером Denoising strength, пока не получите подходящий результат.
Пользуйтесь!
#совет
🔥36👍7