Оглавление
Сообщество машинного обучения продолжает исследовать возможности модели FLUX Kontext, и очередной интересный эксперимент провели специалисты из Finegrain. Они обучили LoRA-адаптер для точного размещения продуктов в изображениях и открыли исходный код своего решения.
Проблема множественных референсных изображений
С момента релиза FLUX Kontext несколько месяцев назад, сообщество активно экспериментировало с поддержкой множественных reference-изображений. Попытки были разной степени успешности — от частично рабочих решений до полных провалов.
Подход Finegrain
Используя собственный высококачественный датасет EditNet, команда обучила LoRA для размещения продуктов поверх FLUX Kontext. Результаты включают как веса модели, так и HF Space для демонстрации.
Данные для обучения
Для обучения требовались специально подготовленные образцы:
- Reference-изображение: снимок продукта для вставки
- Исходное изображение: сцена, куда нужно поместить продукт
- Целевое изображение: та же сцена с уже размещенным продуктом

Каждый образец также содержал аннотации:
- Bounding box для размещения продукта
- Segmentation mask для удаления объектов
Сбор тысяч таких примеров вручную был бы непрактичным. Вместо этого команда использовала синтетическую генерацию изображений «до» путем удаления целевого продукта из сцены.
Дополнительные фильтры
Анализ сэмплов для валидации и выводов с потерями показал необходимость дополнительных аннотаций:
- Occlusion: отсеивание изображений с частично скрытыми объектами
- Viewpoint: фильтрация пар с экстремальным несоответствием ракурсов
- Same state: исключение пар с разным состоянием продукта
В итоге было отобрано около 40 тысяч обучающих сэмплов с тщательно подобранным валидирующим сплитом.
Техническая реализация
Хотя FLUX Kontext изначально разрабатывался с учетом расширяемости для множественных изображений, официальная поддержка пока ограничена вводом одного изображения.
Команда реализовала поддержку дополнительного примера изображения через конкатенацию последовательностей:
- Добавление скрытых токенов примера изображения в конец последовательности
- Создание правильных индексов положения для референсного изображения с 3D RoPE
Эволюция подхода к размещению
Первоначальные попытки использовали текстовые промпты для указания местоположения объектов. С помощью o4-mini автоматически аннотировались изображения, но около 15% промптов оказались неточными или слишком сложными.
Второй подход использовал визуальные подсказки FLUX Kontext — bounding boxes, что дало прямой контроль над размещением и масштабом:

Результаты обучения
Интересное открытие: LoRA с rank-8 показала сравнимые, если не лучшие результаты по сравнению с rank-16 на evaluation-наборе.
Технические детали обучения
- Аппаратное обеспечение: NVIDIA H100 x 8
- Программное обеспечение: кастомный training loop на основе diffusers
- Использование DeepSpeed и gradient checkpointing
- LoRA rank: 8 с target modules из ostris’ ai-toolkit
- Learning rate: 1e-4 с linear warmup
- Effective batch size: 256
- Поддержка multiple resolutions: от 256 до 1024 пикселей
Эксперимент Finegrain демонстрирует элегантный обходной путь для ограничений текущей реализации FLUX Kontext. Что особенно интересно — меньший rank LoRA (8) показал сравнимую или даже лучшую производительность, чем более крупные варианты. Это подтверждает тенденцию в сообществе: иногда меньше значит больше, особенно когда речь идет о тонкой настройке специализированных задач. Открытый доступ к весам и демо позволяет сообществу сразу же начать экспериментировать с технологией, что ускоряет коллективное образование.
По материалам Hugging Face.
Оставить комментарий