чтобы найти такое «шумное» изображение, процесс генерации можно обратить. мы по-прежнему спрашиваем сеть «какой шум мне здесь удалить?», но вместо того, чтобы удалить шум, мы добавляем копию этого шума и затем снова запрашиваем модель с теперь уже более шумным изображением. эта базовая линия иногда работает, но она действительно нестабильна, как показано ниже.
принимать точно такое же решение в немного разных точках. эти ошибки распространяются, вызывая довольно большие ошибки, как мы видим выше.
этот процесс можно стабилизировать, не давая тексту модели декодироваться (это называется безусловной инверсией), однако мы теряем много деталей, поскольку у модели есть много свободы для принятия новых решений с учетом новой подсказки. обратите внимание, что узоры на доске для серфинга и спасательном жилете исчезли, как и текстура волны:
в edict мы делаем условную (текстовую) инверсию точной. мы Магазин делаем это , создавая две копии изображения и поочередно обновляя каждую из них информацией из другой обратимым образом. мы описываем это как точную диффузионную инверсию через связанные преобразования , откуда и произошло название edict .
вы можете думать об этом как об игре в чехарду — x перепрыгивает через y, двигаясь вперед, но если x хочет пойти назад, он может обернуться и посмотреть, где находится y, таким образом выяснив, где он (x) должен был быть ранее.
и вот результат!
мы видим, что реконструкция работает идеально в верхнем ряду, а в нижнем ряду мы получаем редактирование, которое сохраняет некошачьи детали. успех!