Не сколько, а куда: что я выяснил про шум в SDE-сэмплерах flow-matching моделей
Генераторы изображений на flow matching можно запускать со стохастическим сэмплером: на каждом шаге он подмешивает свежий шум. Сила этого шума (параметр eta) обычно подбирается руками один раз и остаётся константой. Я хотел понять, может ли сэмплер выбирать её сам, шаг за шагом, из информации, которая у него уже есть бесплатно.
Идея. Многошаговый решатель на каждом шаге может посчитать, насколько резко изгибается траектория (кривизна), и насколько расходятся его предсказание и поправка (оценка ошибки). Если шум вредит там, где поле «жёсткое», и полезен там, где оно гладкое, то фиксированный бюджет шума, распределённый по кривизне, должен обыгрывать константу без единого лишнего вызова сети.
Что сделано. Нода для ComfyUI, проверка на трёх открытых моделях (Anima, Flux 3 Klein, MOSS-Image) на 6–15 шагах. Главное в методике: каждый адаптивный запуск сравнивается с запуском с постоянной eta и точно таким же суммарным бюджетом шума. Без этого «адаптивный» результат чаще всего оказывается просто «меньше шума» (в моей прошлой работе так и вышло).
Результаты
Кривизна не сработала. Ни на одной модели стабильного выигрыша нет; знак эффекта меняется с числом шагов.
Оценка ошибки самого решателя сработала немного. Если шума больше там, где ошибка мала, на Flux 3 Klein выигрыш около 1–2 % от значения текстуры. Он подтвердился на новых seed по критериям, записанным до запуска. На MOSS-Image эффект односторонний, на Anima я его не обнаружил.
Адаптация оказалась не нужна. Фиксированный график, усреднённый по независимым запускам и применённый ко всем картинкам, даёт тот же результат. Шум на краях окна шума помогает, в середине важен меньше. Важно, куда попадает шум, а не что видит сэмплер.
Люди разницы не увидели. В опросе на 39 человек (какая из двух картинок «больше похожа на ИИ») большую разницу между слабым и сильным шумом люди заметили, а новое распределение от обычного шума отличить не смогли.
Ограничения. Метрики считаются в латентном пространстве, а не по глазам; по умолчанию 16 пар картинок на бюджет; на Krea 2 вышел неубедительный результат из-за недостатка мощности; на Anima использована другая версия ComfyUI, чем на остальных; опрос неформальный, без отбора.
Это в основном отрицательный результат, и я считаю, что о таком стоит рассказывать. Код, числа по каждой картинке и разбор опроса открыты: https://github.com/YakovSava/flow-sde-research. Препринт: https://doi.org/10.5281/zenodo.23857361.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.