Stable Diffusion
Цитата: Mikhail от 07.03.2023, 10:59Переносишь папку и все.
Переносишь папку и все.
Цитата: Сергей от 07.03.2023, 11:16Цитата: see3 от 07.03.2023, 06:55
Сергей, Замечания по процессу:
[spoiler title=""]
Важно качество сэмлов, обработать их вначале гигапикселом, аккуратно обрезать (если на единичных фото сильно расставлены руки, то можно и их обрезать, для лучшей композиции), убрать шум и тп. Обрезать до 512, квадрат не нужно. Но и >3000 нужно понизить.
В аннотациях к семплам лучше дописать, приближение, угол, детализацию кожи (если она заметна - detailed skin).Если в аннотациях много тэгов через запятые и первая часть не ключевая, то shuffle_caption хорошо.
Learning rate можно поднять (не более x10) для лучшего запоминания лица и т.д. - но возможна перетренировка сети, симптомы - например появляются отчётливые лица на всём фоновом (см. архив который я раньше выкладывал). Лёгкая перетренировка нормально.
Для начала можно включить автоподбор Learning rate, два варианта: DAdaptation, learning_rate: 1, constant, "text_encoder_lr": "0.5", "unet_lr": "1"
Или "optimizer": "Adafactor", "lr_scheduler": "adafactor", "text_encoder_lr": "0.5", "unet_lr": "1", "optimizer_args": "scale_parameter=True relative_step=True warmup_init=False weight_decay=2"
И посмотреть какие LR они будут ставить, потом плясать от них (автоподбор замедляет и не панацея от подбора).
В новых версиях параметр Adam 8 bit убрали - он не нужен, всё определяется "optimizer": "AdamW" / AdamW8bit (AdamW лучше качество, намного больше памяти)
BF16 / FP16 определяется видеокартой, 3ххх серия поддерживает BF16 (поточнее).
В новой версии kohya gui добавили вызов графиков tenzorboard - по ним в какой-то степени можно наблюдать за процессом, смотреть текущие параметры (lr).
train_batch_size если сэмплов много (>30) можно и 3,4 (больше памяти) с одновременным понижением повторов (вместо 100).
Корзины (bucket) хорошо, шаг корзин 16/32/64 (сравнить по графикам). random_crop хорошо (когда разнообразие по приближению семплов/их размерам), bucket_no_upscale тоже хорошо, игнорирует настройки макс разрешения, больше памяти.
Если на графике с какого-то момента подъём (в среднем), то либо где-то косяк, либо попробовать поставить на это место stop_text_encoder_training (в %)
Реальных людей лучше тренировать на 1.5 / f222 (поустойчивее геометрия/анатомия).
Для реальных людей clip_skip 1
caption_dropout_rate борется с перетренировкой, хорошо (0.1)
noise_offset лучше баланс света/тени, убивает перетренировку, убивает узнаваемость, убивает геометрию лица, убивает анатомию. Хз что с ним, можно подобрать (в пред. архиве он как раз менялся, 0 / 1e-3 / 1e-2 / 0.013 и тд до 0.1)
Насчёт lora - ещё появляется LoCon (в 2 раза больше параметров чем lora), посмотрим.
Есть подробное руководство по подготовке/параметрам, на японском, https://github.com/kohya-ss/sd-scripts/blob/main/train_README-ja.md[/spoiler]
Не все понял, к сожалению =(. Я пока что пришел к варианту использования двух версий Lora - одна обучена на портретных фото, другая на более общих планах. Я так понимаю при Вашем варианте тренировки в этом нет необходимости (в том смысле что исходный датасет не режется на 512x512, вот эти все "корзины" и тд?). Насколько важны/критичны аннотации к сэмплам? Если, например, при генерации с Lora у меня проблема поменять прическу/цвет волос - значит ли это что цвет волос/прическу нужно описывать в аннотации? Понятно, что в аннотации нужно прописать цвет одежды/задний фон и тд, а вот например эмоции (смеется/улыбается) надо прописывать? Заметил что при попытке генерации эмоции (допустим смех), при отсутствии таких изображений в исходном датасете - лицо жутко меняется, вплоть до зубов в 4 ряда, короче дичь полная. И все таки, какой размер датасета возможен/оптимален? 30 фото? 70 фото? 300 фото? Хотелось бы внятный гайд по подготовке правильного датасета со всеми тонкостями на нормальном русском языке =)
Цитата: see3 от 07.03.2023, 06:55
Сергей, Замечания по процессу:
Спойлер
Важно качество сэмлов, обработать их вначале гигапикселом, аккуратно обрезать (если на единичных фото сильно расставлены руки, то можно и их обрезать, для лучшей композиции), убрать шум и тп. Обрезать до 512, квадрат не нужно. Но и >3000 нужно понизить.
В аннотациях к семплам лучше дописать, приближение, угол, детализацию кожи (если она заметна - detailed skin).Если в аннотациях много тэгов через запятые и первая часть не ключевая, то shuffle_caption хорошо.
Learning rate можно поднять (не более x10) для лучшего запоминания лица и т.д. - но возможна перетренировка сети, симптомы - например появляются отчётливые лица на всём фоновом (см. архив который я раньше выкладывал). Лёгкая перетренировка нормально.
Для начала можно включить автоподбор Learning rate, два варианта: DAdaptation, learning_rate: 1, constant, "text_encoder_lr": "0.5", "unet_lr": "1"
Или "optimizer": "Adafactor", "lr_scheduler": "adafactor", "text_encoder_lr": "0.5", "unet_lr": "1", "optimizer_args": "scale_parameter=True relative_step=True warmup_init=False weight_decay=2"
И посмотреть какие LR они будут ставить, потом плясать от них (автоподбор замедляет и не панацея от подбора).
В новых версиях параметр Adam 8 bit убрали - он не нужен, всё определяется "optimizer": "AdamW" / AdamW8bit (AdamW лучше качество, намного больше памяти)
BF16 / FP16 определяется видеокартой, 3ххх серия поддерживает BF16 (поточнее).
В новой версии kohya gui добавили вызов графиков tenzorboard - по ним в какой-то степени можно наблюдать за процессом, смотреть текущие параметры (lr).
train_batch_size если сэмплов много (>30) можно и 3,4 (больше памяти) с одновременным понижением повторов (вместо 100).
Корзины (bucket) хорошо, шаг корзин 16/32/64 (сравнить по графикам). random_crop хорошо (когда разнообразие по приближению семплов/их размерам), bucket_no_upscale тоже хорошо, игнорирует настройки макс разрешения, больше памяти.
Если на графике с какого-то момента подъём (в среднем), то либо где-то косяк, либо попробовать поставить на это место stop_text_encoder_training (в %)
Реальных людей лучше тренировать на 1.5 / f222 (поустойчивее геометрия/анатомия).
Для реальных людей clip_skip 1
caption_dropout_rate борется с перетренировкой, хорошо (0.1)
noise_offset лучше баланс света/тени, убивает перетренировку, убивает узнаваемость, убивает геометрию лица, убивает анатомию. Хз что с ним, можно подобрать (в пред. архиве он как раз менялся, 0 / 1e-3 / 1e-2 / 0.013 и тд до 0.1)
Насчёт lora - ещё появляется LoCon (в 2 раза больше параметров чем lora), посмотрим.
Есть подробное руководство по подготовке/параметрам, на японском, https://github.com/kohya-ss/sd-scripts/blob/main/train_README-ja.md
Не все понял, к сожалению =(. Я пока что пришел к варианту использования двух версий Lora - одна обучена на портретных фото, другая на более общих планах. Я так понимаю при Вашем варианте тренировки в этом нет необходимости (в том смысле что исходный датасет не режется на 512x512, вот эти все "корзины" и тд?). Насколько важны/критичны аннотации к сэмплам? Если, например, при генерации с Lora у меня проблема поменять прическу/цвет волос - значит ли это что цвет волос/прическу нужно описывать в аннотации? Понятно, что в аннотации нужно прописать цвет одежды/задний фон и тд, а вот например эмоции (смеется/улыбается) надо прописывать? Заметил что при попытке генерации эмоции (допустим смех), при отсутствии таких изображений в исходном датасете - лицо жутко меняется, вплоть до зубов в 4 ряда, короче дичь полная. И все таки, какой размер датасета возможен/оптимален? 30 фото? 70 фото? 300 фото? Хотелось бы внятный гайд по подготовке правильного датасета со всеми тонкостями на нормальном русском языке =)
Цитата: Roma от 07.03.2023, 11:32По горячим следам, после просмотра ролика Stable Diffusion – ControlNet, устанавливаю все расширения, модели и т.д., сталкиваюсь с нюансами на 1050Ti 4Gb...
Сразу скажу, до работы с ControlNet, SD медленно, но работал, ошибки по памяти возникали редко.1. Openpose - пусть медленно, через раз, но работает. Ошибку транслирует по нехватке памяти:
[spoiler title=""]OutOfMemoryError: CUDA out of memory. Tried to allocate 128.00 MiB (GPU 0; 4.00 GiB total capacity; 3.20 GiB already allocated; 0 bytes free; 3.45 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF[/spoiler]
2. Depth и Canny - сразу ошибка, ни разу не сделал модель.Есть вариант справится с этой задачей пока едет новая карточка? ))
По горячим следам, после просмотра ролика Stable Diffusion – ControlNet, устанавливаю все расширения, модели и т.д., сталкиваюсь с нюансами на 1050Ti 4Gb...
Сразу скажу, до работы с ControlNet, SD медленно, но работал, ошибки по памяти возникали редко.
1. Openpose - пусть медленно, через раз, но работает. Ошибку транслирует по нехватке памяти:
2. Depth и Canny - сразу ошибка, ни разу не сделал модель.
Есть вариант справится с этой задачей пока едет новая карточка? ))
Цитата: see3 от 07.03.2023, 11:39Сергей,
Посмотрите его следующее видео, https://www.youtube.com/watch?v=etEo6Lf7QIc
Да, приводить к 512 не нужно, просто нарезать поточнее, всё лишнее убрать.Аннотации важны, но не нужно переусердствовать, эмоции сеть сама должна определять ) Как в его первой части видео, через blip, в конце добавить уточнение.
пример:
msm woman wearing a dress and posing for a picture in a field with a building in the background, medium close up, high detailed skinВ основном в датасете конечно нужны портретные фото, с вариантами.
30-70 фото не больше. Но когда >30 нужно разнообразие - medium close up, medium много, medium full штук 5-10
Мне бы тоже хотелось. Тот японский надо прочитать, там много инфы, перевести через хром (я ещё не читал, мельком только).
Сергей,
Посмотрите его следующее видео, https://www.youtube.com/watch?v=etEo6Lf7QIc
Да, приводить к 512 не нужно, просто нарезать поточнее, всё лишнее убрать.
Аннотации важны, но не нужно переусердствовать, эмоции сеть сама должна определять ) Как в его первой части видео, через blip, в конце добавить уточнение.
пример:
msm woman wearing a dress and posing for a picture in a field with a building in the background, medium close up, high detailed skin
В основном в датасете конечно нужны портретные фото, с вариантами.
30-70 фото не больше. Но когда >30 нужно разнообразие - medium close up, medium много, medium full штук 5-10
Мне бы тоже хотелось. Тот японский надо прочитать, там много инфы, перевести через хром (я ещё не читал, мельком только).
Цитата: Roma от 07.03.2023, 11:53Цитата: see3 от 07.03.2023, 11:48Roma, в controlnet есть опция low vram
Первое, к чему прибегнул... Не помогает(
Цитата: see3 от 07.03.2023, 11:48Roma, в controlnet есть опция low vram
Первое, к чему прибегнул... Не помогает(
Цитата: see3 от 07.03.2023, 11:53Ну и для хардкорного 3d позирования есть например виртамэйт ) (он хоть попроще блендера, но экспорта там вроде нет).
Ну и для хардкорного 3d позирования есть например виртамэйт ) (он хоть попроще блендера, но экспорта там вроде нет).
Цитата: Сергей от 07.03.2023, 12:05see3,
"Да, приводить к 512 не нужно, просто нарезать поточнее, всё лишнее убрать." - это понятно, но ведет ли это к оптимизации модели и повышению "узнаваемости" - или просто облегчение процесса подготовки датасета?"пример:
msm woman wearing a dress and posing for a picture in a field with a building in the background, medium close up, high detailed skin" - в одном из гайдов видел, что длинные описания - ошибка (msm woman wearing a dress and posing for a picture in a field with a building in the background), советуют писать примерно так:
(msm woman, wearing a green dress, posing for a picture, a field with a building in the background) - то есть делить на токены, причем первый токен это обьект обучения, а дальше описываешь то - что НЕ должно тянуться в генерации."...эмоции сеть сама должна определять" - наверно должна, но хотелось бы "естественности" и "узнаваемости" - пока что она лепит уродов, а вот если прописать токены эмоций в аннотации - поможет ли это выбирать ей правильные отображения эмоций из исходного датасета?
Короче вопросов пока больше чем ответов ...
see3,
"Да, приводить к 512 не нужно, просто нарезать поточнее, всё лишнее убрать." - это понятно, но ведет ли это к оптимизации модели и повышению "узнаваемости" - или просто облегчение процесса подготовки датасета?
"пример:
msm woman wearing a dress and posing for a picture in a field with a building in the background, medium close up, high detailed skin" - в одном из гайдов видел, что длинные описания - ошибка (msm woman wearing a dress and posing for a picture in a field with a building in the background), советуют писать примерно так:
(msm woman, wearing a green dress, posing for a picture, a field with a building in the background) - то есть делить на токены, причем первый токен это обьект обучения, а дальше описываешь то - что НЕ должно тянуться в генерации.
"...эмоции сеть сама должна определять" - наверно должна, но хотелось бы "естественности" и "узнаваемости" - пока что она лепит уродов, а вот если прописать токены эмоций в аннотации - поможет ли это выбирать ей правильные отображения эмоций из исходного датасета?
Короче вопросов пока больше чем ответов ...
Цитата: see3 от 07.03.2023, 12:12Сергей, Да, ведёт, т.к. датасет условно делится на длинные вертикальные полные/средние фото и квадратные портретные. И в кажой части лучшее наполнение входной информацией (больше разрешение). Частей больше чем 2. Получается универсальнее по форматам/приближению.
Угу, только пробовать...
Сергей, Да, ведёт, т.к. датасет условно делится на длинные вертикальные полные/средние фото и квадратные портретные. И в кажой части лучшее наполнение входной информацией (больше разрешение). Частей больше чем 2. Получается универсальнее по форматам/приближению.
Угу, только пробовать...
Цитата: Roman от 07.03.2023, 12:21Здравствуйте!
Извините что не по теме!
Не могу подписаться на бусте, написано (что то пошло не так), в прошлый раз донат не мог Хачатуру отправить.
Я уже и карту отвязал, по новой хотел сделать, и все равно тоже самое(Как решить эту проблему?
Здравствуйте!
Извините что не по теме!
Не могу подписаться на бусте, написано (что то пошло не так), в прошлый раз донат не мог Хачатуру отправить.
Я уже и карту отвязал, по новой хотел сделать, и все равно тоже самое(
Цитата: Сергей от 07.03.2023, 12:32see3, посмотрел видео - https://www.youtube.com/watch?v=etEo6Lf7QIc, к сожалению его генерации с одного промта тоже далеки от желаемого, он все равно инпаинтит лицо заново... ну и потом, пример не очень удачный, тут он Лору делает на "полный образ", те не только лицо, но и прическа, цвет волос, макияж, даже одежда - все идет в генерацию...у меня задача другая, нужно что бы все вышеперечисленное можно было менять, поэтому обучать (делать аннотации???) нужно на порядок тщательнее...
see3, посмотрел видео - https://www.youtube.com/watch?v=etEo6Lf7QIc, к сожалению его генерации с одного промта тоже далеки от желаемого, он все равно инпаинтит лицо заново... ну и потом, пример не очень удачный, тут он Лору делает на "полный образ", те не только лицо, но и прическа, цвет волос, макияж, даже одежда - все идет в генерацию...у меня задача другая, нужно что бы все вышеперечисленное можно было менять, поэтому обучать (делать аннотации???) нужно на порядок тщательнее...
Цитата: see3 от 07.03.2023, 12:35Сергей, инпаинтит лицо заново - угу, у меня тоже без этого никак.
Поэтому я и написал в первом своём сообщении что лора что-то не очень, dreambooth тут заметно лучше. Попробуйте.
Ждём дальнейшего развития... (LoCon мб)
Сергей, инпаинтит лицо заново - угу, у меня тоже без этого никак.
Поэтому я и написал в первом своём сообщении что лора что-то не очень, dreambooth тут заметно лучше. Попробуйте.
Ждём дальнейшего развития... (LoCon мб)
Цитата: tikhon от 07.03.2023, 12:37Цитата: Mikhail от 07.03.2023, 07:27Привет. Спасибо большое. Подскажи, мне оба файла нужно скачать (я использую Stable Diffusion от AUTOMATIC1111 в Google Collab)?
f222.ckpt
f222.safetensors
Цитата: Mikhail от 07.03.2023, 07:27
Привет. Спасибо большое. Подскажи, мне оба файла нужно скачать (я использую Stable Diffusion от AUTOMATIC1111 в Google Collab)?
-
f222.ckpt
-
f222.safetensors
Цитата: Roman от 07.03.2023, 12:37Цитата: Roman от 07.03.2023, 12:21Здравствуйте!
Извините что не по теме!
Не могу подписаться на бусте, написано (что то пошло не так), в прошлый раз донат не мог Хачатуру отправить.
Я уже и карту отвязал, по новой хотел сделать, и все равно тоже самое(Как решить эту проблему?Кое как оплатил подписку, деньги ушли а подписки нет)))
Хз, может позже разглючит этот буст)
Цитата: Roman от 07.03.2023, 12:21Здравствуйте!
Извините что не по теме!
Не могу подписаться на бусте, написано (что то пошло не так), в прошлый раз донат не мог Хачатуру отправить.
Я уже и карту отвязал, по новой хотел сделать, и все равно тоже самое(Как решить эту проблему?
Кое как оплатил подписку, деньги ушли а подписки нет)))
Хз, может позже разглючит этот буст)