Датасет для обучения LoRA: изображения, разнообразие и проверка
В хорошем датасете меняется то, чем вы хотите управлять при генерации, а нужный объект или стиль остаётся узнаваемым. Пятьдесят почти одинаковых кропов дают меньше полезной информации, чем разные ракурсы и условия. Сначала одной фразой определите, чему должен научиться адаптер.
В примерах используется условная керамическая кружка ohwxmug. Изображения нужно подготовить самостоятельно: подписи описывают вымышленный пример, готового обучающего набора здесь нет.
Продумайте разнообразие
| Цель обучения | Что сохранять | Что менять | Типичная ошибка |
|---|---|---|---|
| Товар или предмет | Форму, материал, характерные детали | Ракурс, крупность, фон и освещение | Все фото на одном столе, и стол становится частью концепта |
| Персонаж | Узнаваемую внешность | Позу, расстояние до камеры, одежду и окружение, когда это уместно | Кадры из одного короткого видео вытесняют остальные ракурсы |
| Стиль иллюстраций | Визуальный язык и способ изображения | Предметы, композиции и сюжеты | Адаптер запоминает конкретный объект вместо переносимого стиля |
Для первого эксперимента удобно отобрать примерно 20–40 изображений. Это ориентир для подготовки, а не технический минимум и не гарантия качества. Если хороших кадров меньше, используйте их, но ожидайте более узкого результата. Добивать количество слабыми дублями не нужно.
Отделите обучение от проверки
Несколько отличающихся референсов положите в отдельную папку holdout. Не распределяйте почти одинаковые кадры по обеим частям. Отложенные изображения нужны для визуальной проверки новых ракурсов; готовый TOML не загружает папку holdout и не считает validation loss.
Для каждой семьи моделей создайте собственную плоскую папку обучения:
/workspace/lora/
sdxl/
images/
mug_001.png
mug_001.txt
mug_002.jpg
mug_002.txt
holdout/
flux1-dev/
images/
holdout/
Имена пар должны совпадать, включая регистр в Linux. Не оставляйте одновременно mug_001.png и mug_001.jpg: у них будет одна подпись, возможен и конфликт кэша. Давайте разные имена. Внутри images не должно быть вложенных папок и проверочных изображений.
Проверьте сами изображения
Откройте каждый файл в полном размере. Уберите повреждённые кадры, сильные артефакты сжатия, ненужные водяные знаки и изображения с неверными деталями объекта. Заранее разберитесь с EXIF-поворотом, прозрачностью и преобразованием цвета. Нетронутые оригиналы храните отдельно.
В стартовых конфигах включены buckets по пропорциям и отключён апскейл. Изображения близких форматов группируются, поэтому делать все файлы квадратными не обязательно. Однако отсутствие кропа не гарантируется. Проверьте, что в кадре остаются ручка кружки, лицо и другие важные детали; не растягивайте вертикальный снимок в квадрат.
В примере SDXL целевое разрешение — 1024 × 1024, в эксперименте FLUX — 768 × 768. Это параметры обучения, а не требование увеличить каждый исходник до такого размера. Апскейл не восстанавливает отсутствующие детали. Сохраните решения по кадрированию для следующих запусков.
Проверьте папку до долгого обучения
Скачайте check-dataset.py в /workspace/lora/config/. Запустите его в Python-окружении из руководства по обучению:
python /workspace/lora/config/check-dataset.py /workspace/lora/sdxl/images
Для FLUX укажите /workspace/lora/flux1-dev/images. Скрипт открывает изображения через Pillow и проверяет UTF-8-подписи. Отсутствующие или пустые подписи, повреждённые файлы, неоднозначные имена и вложенные папки приводят к коду завершения 1. Побайтовые дубликаты, малый размер, ориентация и цветовой режим выводятся как предупреждения для ручной проверки.
Скрипт ничего не отправляет, не масштабирует, не удаляет и не перезаписывает. Он не находит все похожие кадры, не оценивает точность подписей, права на данные или будущее качество модели. Успешная проверка означает только корректность структуры по этим правилам.
Кэш — часть конкретного эксперимента
Trainer может сохранять latent- и text-embedding-кэш рядом с изображениями. Держите копии SDXL и FLUX раздельно. Перед сменой базы, подписей, разрешения или обработки создайте новую папку из исходных пар изображение–подпись и обновите dataset config. Старые .npz туда не копируйте.
Зафиксируйте список изображений, их происхождение и обработку. Используйте данные, которые разрешено использовать для обучения; для узнаваемых людей получите соответствующее разрешение на предполагаемое использование.
Далее: подписи, затем обучение SDXL или FLUX.1 dev. Все руководства по LoRA.
Источник: конфигурация датасета sd-scripts.
Готовы запустить?
Запустить GPU-сервер