Китайцы нашли эмпиричесикй способ улучшить качество генерации SD - простая модификация FreeU позволяет избавиться от артефактов без ретрейна модели.
Как?
Итак, SD использует архитектуру UNet под капотом, где проброшены skip-соединения между блоками энкодера и декодера. Фичи, получаемые на выходе блоков декодера ("backbone" фичи) и фичи приходящие из skip-соединения конкатенируются и посылаюстя в следующий блок декодера. Авторы заметили, что backbone фичи вносят больший вклад именно в денойзинг и в низкочастотные детали (это грубая структура объекта), а skip фичи дополняют генерацию высокочастотной информацией, помогая восстанавливать мелкие детали картинки.
Авторы взвесили вклад backbone фичей и skip фичей во время инференса, умножением их на два скаляра b > 1 и s < 1 соответственно. То есть увеличили вес backbone фичей, чтобы сделать упор на глобальную структуру и уменьшили вклад skip фичей, чтобы уменьшить high-freq артифакты. И это сработало как для картинок, так и для видео!
Сайт проекта
Код
@ai_newz
Как?
Итак, SD использует архитектуру UNet под капотом, где проброшены skip-соединения между блоками энкодера и декодера. Фичи, получаемые на выходе блоков декодера ("backbone" фичи) и фичи приходящие из skip-соединения конкатенируются и посылаюстя в следующий блок декодера. Авторы заметили, что backbone фичи вносят больший вклад именно в денойзинг и в низкочастотные детали (это грубая структура объекта), а skip фичи дополняют генерацию высокочастотной информацией, помогая восстанавливать мелкие детали картинки.
Авторы взвесили вклад backbone фичей и skip фичей во время инференса, умножением их на два скаляра b > 1 и s < 1 соответственно. То есть увеличили вес backbone фичей, чтобы сделать упор на глобальную структуру и уменьшили вклад skip фичей, чтобы уменьшить high-freq артифакты. И это сработало как для картинок, так и для видео!
Сайт проекта
Код
@ai_newz
🔥121👍14❤12🤔5
Вот так перевзвешивают backbone фичи и skip фичи в декодере UNet. Если посмотрите на картинку, то увидите, что skip фичи взвешивают в спектральном домене после FFT преобразования. Причем выставляют вес s < 1 только для низкочастотных сигналов, чтобы не перебивать более качественные низкочастотные сигналы приходящие из backbone фичей, которые были усилены.
Короче, это капут какая эмпирическая работа. Без теоретических обоснований, почему это вообще должно что-то улучшать. Но вроде работает для Stable Diffusion.
Однако, я заметил что:
- метод хоть и решает структурные артефакты, за которые отвечают high-frequence сигналы (например, тело медведя становится правильным, или у кота отрастает недостающая лапа)
- но на генерациях становится гораздо меньше мелких деталей. Все же There is No Free Lunch, несмотря на то что статья называется FreeU: Free Lunch in Diffusion U-Net. Маркетинг 💁
@ai_newz
Короче, это капут какая эмпирическая работа. Без теоретических обоснований, почему это вообще должно что-то улучшать. Но вроде работает для Stable Diffusion.
Однако, я заметил что:
- метод хоть и решает структурные артефакты, за которые отвечают high-frequence сигналы (например, тело медведя становится правильным, или у кота отрастает недостающая лапа)
- но на генерациях становится гораздо меньше мелких деталей. Все же There is No Free Lunch, несмотря на то что статья называется FreeU: Free Lunch in Diffusion U-Net. Маркетинг 💁
@ai_newz
❤42👍20🤯1
Небольшой throwback с CVPR23.
Кстати, я планирую поехать на ICCV2023 в Париже, которая начинается 2 Октября.
Так что, почтенные господа и дамы с тг-премиумом, накидайте любимому каналу бустов ❤️. Взамен обещаю вести прямую трансляцию с конфы и рассказывать вам все самое интересное.
Кинуть буст можно по ссылке (не забудьте обновить приложение) https://xn--r1a.website/ai_newz?boost
@ai_newz
Кстати, я планирую поехать на ICCV2023 в Париже, которая начинается 2 Октября.
Так что, почтенные господа и дамы с тг-премиумом, накидайте любимому каналу бустов ❤️. Взамен обещаю вести прямую трансляцию с конфы и рассказывать вам все самое интересное.
Кинуть буст можно по ссылке (не забудьте обновить приложение) https://xn--r1a.website/ai_newz?boost
@ai_newz
❤🔥47❤6💯2
В комментах, подписчик (спасибо @p0lygon) провел тест FreeU, и его наблюдения подтвердили мою гипотезу, о том что метод "режет" детали, когда смягчает артефакты.
«Смягчает детализацию, иногда артефакты убирает.
Первая - без freeu
Вторая - коэффициенты b=1,1 и s=0,95, меньше чем в у них в репе. Этот вариант мне нравится.
Третья - как у них, 1,2 и 0,9. Слишком разглаживается.
Ну хз, может и пригодится. надо глубже поиграться."
@ai_newz
«Смягчает детализацию, иногда артефакты убирает.
Первая - без freeu
Вторая - коэффициенты b=1,1 и s=0,95, меньше чем в у них в репе. Этот вариант мне нравится.
Третья - как у них, 1,2 и 0,9. Слишком разглаживается.
Ну хз, может и пригодится. надо глубже поиграться."
@ai_newz
🔥60⚡6❤5🐳1
DiffBIR: Towards Blind Image Restoration with Generative Diffusion Prior
Тут китайцы (тоже они, да) подвезли СОТУ по ресторации изображений и апскейлу.
Stable Diffusion знает как создавать реалистичные изображения. Осталось только как-то дообучить ее принимать low-qulity изображение как условие. В этом и суть работы.
Авторы берут и тренируют модуль, похожий на ControlNet, который принимаетна вход latent code испорченного изображения. Кроме того на вход этому контролнету еще дополнительно конкатенируют код
Еще до диффузии испорченную картинку прогоняют через более простой метод ресторации SwinIR (Stage 1), который убирает шум и артифакты, но не умеет генерить high-freq детали. Это позволяет диффузи концентрироваться в основном на мелких деталях, которые и придают реализм.
Работает, конечно медленнее чем ESRGAN, но лучше.
Сайт проекта
Колаб
Код демки
@ai_newz
Тут китайцы (тоже они, да) подвезли СОТУ по ресторации изображений и апскейлу.
Stable Diffusion знает как создавать реалистичные изображения. Осталось только как-то дообучить ее принимать low-qulity изображение как условие. В этом и суть работы.
Авторы берут и тренируют модуль, похожий на ControlNet, который принимаетна вход latent code испорченного изображения. Кроме того на вход этому контролнету еще дополнительно конкатенируют код
z_t
(z_T - это шум), я думаю это для того, чтобы условный сигнал адаптировался под текущий уровень шума, а не всегда был одинаковым. Еще до диффузии испорченную картинку прогоняют через более простой метод ресторации SwinIR (Stage 1), который убирает шум и артифакты, но не умеет генерить high-freq детали. Это позволяет диффузи концентрироваться в основном на мелких деталях, которые и придают реализм.
Работает, конечно медленнее чем ESRGAN, но лучше.
Сайт проекта
Колаб
Код демки
@ai_newz
🔥65❤14🤯2👍1😱1🤬1
Я тут пересобрал для вас новый колаб для DiffBIR на базе последних коммитов из оф. репы: можете попробовать тут.
Нужен Colab Pro, т.к. в 12 GB оперативки не вместится.
Метод действительно работает, но не на всех видах деформаций. Опять начерепикали в статье...🌚 Но все же лучше чем real-ESRGAN.
Попугая нормально восстановило. А вот мем "смекалочка" не хотел восстанавливаться в нормальное лицо, пока я вручную не добавил промпт и CFG.
Пикселизованное 8-битное лицо, например, вообще отказалось превращаться в нормальное - видимо, метод не считает это за corruption, и думает что это часть композиции.
Боюсь, что многие универсальные восстановители изображений (а BirDIFF заявлялся одним из таких) будут страдать от того, что некоторые поврежедния будут считать частью оригинальной картинки.
Специализированные же методы, конечно, будут давать лучшие результаты если применять их в том же домене, на котором они и были обучены.
@ai_newz
Нужен Colab Pro, т.к. в 12 GB оперативки не вместится.
Метод действительно работает, но не на всех видах деформаций. Опять начерепикали в статье...🌚 Но все же лучше чем real-ESRGAN.
Попугая нормально восстановило. А вот мем "смекалочка" не хотел восстанавливаться в нормальное лицо, пока я вручную не добавил промпт и CFG.
Пикселизованное 8-битное лицо, например, вообще отказалось превращаться в нормальное - видимо, метод не считает это за corruption, и думает что это часть композиции.
Боюсь, что многие универсальные восстановители изображений (а BirDIFF заявлялся одним из таких) будут страдать от того, что некоторые поврежедния будут считать частью оригинальной картинки.
Специализированные же методы, конечно, будут давать лучшие результаты если применять их в том же домене, на котором они и были обучены.
@ai_newz
🔥66❤13❤🔥3⚡1🤬1🌚1