43 изображения. Около 18 минут обучения — и персонаж появляется по одному слову: hakuinoko. Результат описал автор японской заметки о своей LoRA для SD1.5. Он обучал её на RTX 5060 Ti, а потом сравнил сохранённые версии. Ещё проверил, как меняются поза, фон и одежда.
18 минут — время самой тренировки. Изображения и подписи автор подготовил заранее. По его словам, на эту часть ушло больше времени, чем на запуск обучения.
Как автор обучал SD1.5 LoRA на 43 изображениях
Для обучения автор выбрал sd-scripts — набор скриптов для Stable Diffusion и других моделей генерации изображений. В статье он указывает версию v0.12.0 и Python 3.10. В репозитории проекта на GitHub лежат скрипты и документация. Параметры нужно задать вручную, а обучение запустить командами.
Первый затык случился ещё при установке. PyTorch не установился с первой попытки: в виртуальном окружении стоял pip версии 23.0.1. Автор обновил pip и повторил команду — тогда установка прошла. По его замерам, PyTorch устанавливался около 7 минут, остальные библиотеки — ещё примерно полторы. Готовое виртуальное окружение занимало 7,6 ГБ.
Для RTX 5060 Ti автор сверялся с README sd-scripts. В заметке он пишет, что документация рекомендовала для RTX 50 серии PyTorch 2.8.0 и CUDA 12.8 или 12.9. Версии зависимостей со временем меняются. Перед установкой лучше проверить актуальные требования в README, а не копировать эту комбинацию вслепую.
Исходной моделью был Hassaku (SD1.5) v1.3 — тот же checkpoint, который автор использовал для генераций. В датасет вошли 43 изображения с подписями. Он выставил 10 повторов на изображение и 10 эпох. Тренировочные примеры проходили много раз, а после каждой эпохи сохранялась отдельная LoRA.
Остальные настройки: batch size 2, разрешение 512×768 с bucket для изображений разных размеров, network dim 16 и alpha 8. На эпоху приходилось 215 шагов, за всё обучение — 2 150. Это параметры одного эксперимента, а не готовый пресет для любого персонажа и видеокарты.
Одно слово вместо описания волос и глаз
Первый тест был на генерациях, а не на графике loss. Автор убрал из промпта теги волос, глаз и одежды, оставив триггер hakuinoko и описание позы с фоном. Затем сравнил результат с LoRA и без неё. По его наблюдениям, во всех пяти генерациях с LoRA появились серые волосы, коса и чёрная лента — хотя в промпте этих деталей не было.
Такой результат связан с тем, как автор подготовил подписи: он убрал из тегов уникальные черты внешности, а в начало поставил hakuinoko. Теги перемешивались, поэтому первое слово автор закрепил настройкой keep_tokens=1. Триггер стал коротким ключом к выученным особенностям персонажа.
Одного слова не хватило, чтобы стабильно повторять весь образ. Одежда менялась: футболка могла стать белой, халат — серым, а длинные белые носки появлялись не всегда. Персонаж узнавался, но отдельные детали гуляли.
Когда автор добавил к триггеру прежние теги, прищур стал заметнее. Зато кадры чаще приближались к лицу, а ноги реже попадали в кадр: в исходных тегах не было full body. Состав промпта влияет и на детали, и на то, какую часть персонажа увидите.
18 минут — это не вся работа
После каждой эпохи сохранялся отдельный файл. Всего получилось десять файлов примерно по 36 МБ. Автор не стал выбирать лучший только по loss: после четвёртой эпохи значение перестало устойчиво снижаться, но само по себе не показывало, какая версия лучше выглядит. Для сравнения он взял шесть чекпоинтов и использовал одинаковые промпт и силу LoRA.
Серые волосы и коса проявились уже на первой эпохе. Сначала одежда часто напоминала кимоно, к четвёртой эпохе стало больше вариантов, похожих на халат. После шестой изменения были небольшими. На пяти примерах автор не заметил ни развала изображений, ни повторения одного и того же кадра. Для дальнейшей работы он выбрал десятую эпоху.
Потом автор менял только силу LoRA в ComfyUI. При значении 0,4 сходство было слабым: появлялись тёмные волосы, а одежда оставалась ближе к варианту без LoRA. При 0,7 и 1,0 персонаж сохранялся. На 1,3 халат во всех пяти изображениях стал серым. В этом тесте автору подошли значения 0,7–1,0.
Что LoRA запомнила вместе с персонажем
Все 43 изображения были на белом фоне. Персонаж нигде не сидел на стуле. Автор проверил, получится ли изменить эти условия промптом. Заменил standing на sitting, on chair — и во всех пяти вариантах персонаж сидел. Затем вернул позу стоя и поменял белый фон на outdoors, park. Фон тоже сменился.
LoRA не обязательно привязывает персонажа к позе и фону из датасета. Но в сидячих кадрах камера всё равно чаще приближалась к лицу, и ноги не попадали в кадр. Парк получался приглушённым по цвету по сравнению с генерацией без LoRA. Автор связывает это с тем, что в обучающих изображениях преобладали белый, чёрный и серый.
На результат влияют и повторяющиеся детали датасета. Если нужны разные ракурсы, одежда или цветные сцены, стоит заранее проверить, есть ли они в обучающих изображениях. Автор планирует пересобрать набор и обучить LoRA ещё раз.
Как повторить эксперимент у себя
Для теста персонажа можно использовать подход автора: подготовить изображения с подписями, выбрать базовый checkpoint, установить sd-scripts по актуальной документации и сохранить несколько эпох для сравнения. В ComfyUI автор поставил Load LoRA после Load Checkpoint. Сначала оставил силу 1,0, потом проверил соседние значения.
При оценке меняйте по одной вещи. Сначала сравните один и тот же промпт с LoRA и без неё. Затем проверьте разные эпохи, не трогая силу и описание. После этого подбирайте вес. Так проще понять, что именно повлияло на результат, вместо привычного «поменял всё — вроде стало лучше».
Чтобы проверить сходство, уберите из промпта черты, которые LoRA должна вызывать сама, а позу и фон оставьте. Гибкость проверьте заменой одной характеристики — как автор менял позу и окружение. Если важно видеть персонажа целиком, отдельно задайте full body.
18 минут — результат конкретного запуска: RTX 5060 Ti, SD1.5, датасет из 43 изображений и выбранные настройки. В этом случае сама тренировка заняла меньше времени, чем подготовка набора. Думаю, главное здесь — тщательно подготовить изображения и подписи, а потом сравнить сохранённые эпохи.
Автор считает эту LoRA самым близким попаданием в образ из проверенных им способов. До полного совпадения ещё далеко. Одно слово хорошо запускает нужного персонажа, но аккуратный датасет и проверку генераций оно не заменяет.
Источники
Источникnote.com
