Image Metadata Remover: Удаление метаданных из изображений

Внимание: метаданные в изображениях могут испортить обучение LoRA!
Привет, друзья! Если вы занимаетесь тренировкой LoRA (Low-Rank Adaptation) для генеративных моделей, то эта заметка может оказаться полезной. Вчера я заметил интересный нюанс: метаданные, встроенные в изображения, иногда сильно влияют на результат обучения, даже если в описаниях (captions) ничего подобного не указано.
Что произошло?
Я провел небольшой эксперимент. Взял набор изображений, в метаданных которых были жестко усиленные теги (с весами) на тему "руки за спиной". При этом в самих описаниях картинок я ничего подобного не упоминал — они были нейтральными.
Затем я обучил две версии LoRA:
- С оригинальными изображениями (с метаданными, включая теги "руки за спиной").
- С очищенными изображениями (метаданные полностью удалены, теги обнулены), но с теми же самыми описаниями.
Результаты
В версии с неочищенными метаданными модель упорно генерировала "руки за спиной" в определенных сценариях. Причем это выглядело довольно топорно и неестественно — как будто тег навязчиво встраивался в вывод, даже без подсказки в промпте. В очищенной версии такого эффекта не наблюдалось: генерации были чистыми и соответствовали только описаниям.
Вывод
Метаданные — это скрытый фактор, который может "загрязнить" датасет и привести к нежелательным артефактам в LoRA. Рекомендую перед обучением всегда проверять и чистить метаданные изображений (например, с помощью моего инструмента на Python).