1.9Kпросмотров
9 апреля 2025 г.
📷 ФотоScore: 2.1K
Гайденс в диффузионных моделях В этом посте начнем разбираться с техникой гайденса, без которой не работают все современные диффузионки, такие как Flux, SD 3.5 и т.д. Все, кто на практике использовал диффузионки, знают, что для более качественной генерации необходимо использовать высокий гайденс скейл. Без этого генерация будет совсем плохой - будет страдать общее качество и соответствие текстовому промпту (первая картинка - генерация с высоким гайденс скейлом, вторая - с низким). Хотя техника гайденса является критичной для работы современных диффузионок, она все еще малоизучена. Непонятно, почему без гайденса не получаются хорошие генерации, как подбирать оптимальный гайденс скейл, почему гайденс улучшает не только соответствие промпту, но и общее качество генерации? Мы коснемся этих вопросов в следующих постах, а пока я напомню, как выглядит формула гайденса и в чем ее идея. Гайденс в диффузионках работает так: выход на шаге t = eps(x_t, text) + g_scale * (eps(x_t, text) - eps(x_t, null)), где eps(x_t, text) - предсказание нашей диффузии eps на шаге t для зашумленного объекта x_t и входного промпта text;
null - это пустой промпт, то есть это безусловная генерация. То есть, основная идея этой техники - это добавить к предсказанию диффузии направление eps(x_t, text) - eps(x_t, null) с высоким гайденс скейлом g_scale, которое уводит генерацию в области пространства, где сгенерированные картинки хорошо соответствуют промпту text. На практике это удивительным образом улучшает еще и само качество генерации. Основной минус - это может сильно снизить разнообразие картинок. И если сильно повышать скейл g_scale, могут появиться артефакты сильной контрастности картинки. Вывод: техника гайденса в диффузионках очень важна, но есть еще много вопросов, которые остаются открытыми и о которых мы еще поговорим. Основные статьи, чтобы лучше разобраться в этой технике:
Diffusion Models Beat GANs on Image Synthesis
Classifier-Free Diffusion Guidance