CFG Scale

classifier-free guidance — сила влияния текстового условия на генерацию

Раздел
Параметры
Сокращ.
Classifier-Free Guidance
Обновлено
11.08.26

CFG Scale управляет тем, насколько сильно диффузионная модель отталкивается от безусловного предсказания в сторону промпта. Слишком слабое влияние может дать свободную интерпретацию, слишком сильное — неестественные цвета и артефакты. Универсальной шкалы нет: архитектуры и дистиллированные модели используют guidance по-разному.

Коротко

Коротко. CFG Scale — регулятор влияния промпта в некоторых диффузионных моделях. При слабом guidance сцена может свободнее отклоняться от текста. При чрезмерном — модель слишком сильно подчёркивает признаки и создаёт жёсткие контуры, перенасыщенные цвета или пластиковые фактуры. Рабочее значение берут из документации точной модели и проверяют на фиксированном seed.

Что это такое

Classifier-Free Guidance появился как способ управлять условной генерацией без отдельного внешнего классификатора. На одном шаге модель оценивает два направления:

  • условное — с текстом, изображением или другим условием;
  • безусловное — без него либо со специальным отрицательным условием.

Разница между этими оценками показывает, куда нужно сдвинуть генерацию, чтобы она сильнее соответствовала промпту. CFG масштабирует этот сдвиг.

Важно слово «некоторые». Новые и дистиллированные пайплайны могут обучаться на малом guidance, использовать отдельный параметр или вообще не выполнять классическую пару предсказаний. Одинаковая цифра в двух интерфейсах не обязательно означает одинаковое влияние.

Как это работает

Классическую формулу часто записывают так:

guided = uncond + scale × (cond − uncond)

Здесь:

  • uncondпредсказание без положительного условия;
  • cond — предсказание с промптом;
  • scale — сила guidance.

При scale = 0 остаётся безусловное направление. При scale = 1 получается условное предсказание без дополнительного усиления. Значения выше единицы продолжают движение за пределы cond в сторону, заданную промптом.

Некоторые программы преобразуют пользовательский параметр перед формулой или используют другую реализацию. Поэтому математическая единица и подпись в интерфейсе иногда ведут себя не совсем одинаково.

Пример на практике

В кадре нужна ночная улица, дождь и человек в плаще. Для сравнения сохраняют модель, seed, sampler, steps и размер, а меняют только guidance.

  • при слабом влиянии атмосфера может быть живой, но человек или дождь окажутся почти незаметными;
  • при среднем влиянии основные элементы чаще удерживаются без лишней жёсткости;
  • при сильном влиянии неон, мокрые поверхности и контуры могут стать чрезмерно насыщенными;
  • при ещё большем значении композиция не обязательно станет точнее, зато возрастёт риск ореолов и ломкой фактуры.

Такой ряд показывает рабочую область именно для этой модели и сцены. На другой архитектуре те же числа могут дать совсем иной результат.

Почему высокий CFG портит изображение

Модель обучалась на распределении реальных или подготовленных изображений. Сильное усиление условного направления может увести предсказание в область, где естественных примеров мало. Отсюда появляются:

  • пережжённые цвета;
  • грубые контуры;
  • повторяющиеся текстуры;
  • неестественный локальный контраст;
  • ореолы вокруг объектов;
  • слишком буквальное повторение отдельных слов.

Эти признаки не доказывают, что виноват только CFG. Похожий эффект дают checkpoint, VAE, LoRA, sampler и последующая обработка. Проверка одного параметра при остальных фиксированных помогает не гадать.

Влияние на скорость

Классическая CFG требует условного и безусловного предсказаний. Реализация может объединить их в один batch, но объём вычислений и памяти всё равно растёт. Это не всегда означает ровно двукратное увеличение времени: итог зависит от batch, памяти, оптимизаций и того, использует ли pipeline обычную CFG вообще.

Дистиллированные модели часто рассчитаны на небольшое число шагов и слабое guidance. Если перенести к ним настройки из классического Stable Diffusion, результат и скорость будут непредсказуемыми.

CFG и negative prompt

В ряде пайплайнов отрицательный промпт занимает место безусловной ветви или участвует в ней как отдельное условие. Тогда CFG усиливает не только движение к положительному описанию, но и отталкивание от отрицательного.

Длинный negative prompt не превращает guidance в универсальный исправитель. Противоречивые запреты могут затянуть модель в нежелательные ассоциации, а архитектура без отрицательной ветви просто обработает их иначе.

С чем часто путают

  • CFG и steps. Steps задают число стадий денойзинга, CFG — влияние условия. Они связаны через конкретный sampler, но не заменяют друг друга.
  • CFG и denoise. Denoise определяет, насколько далеко img2img или inpainting уходит от исходного латента.
  • CFG и prompt weighting. Вес слова меняет отношения внутри текстового условия, а CFG масштабирует условное направление целиком.
  • CFG и качество модели. Guidance не улучшает базовые знания и анатомию модели.
  • CFG и температура LLM. Оба параметра могут менять свободу результата, но работают по разной математике.

Частые ошибки и заблуждения

«Для всех моделей есть одно безопасное значение». Нет. Архитектура, обучение и реализация guidance меняют шкалу.

«Больше CFG — больше деталей». Детали могут стать резче, но это часто усиление контраста и артефактов, а не новая полезная информация.

«Малый CFG означает, что промпт полностью выключен». Точная граница зависит от формулы и интерфейса. Иногда 1 означает обычное условное предсказание, а иногда пользовательский параметр преобразуется иначе.

«Рабочий CFG можно перенести вместе с одним prompt». Его стоит переносить вместе со всей версией workflow: моделью, sampler, scheduler, LoRA и настройкой отрицательной ветви.

«Дробные значения бессмысленны». Параметр обычно непрерывный, поэтому небольшое изменение может быть заметно. Практическая чувствительность различается у моделей.

Частые вопросы

С какого значения начать? С примера или workflow автора точной модели. Затем полезно сделать небольшой ряд при фиксированном seed и выбрать область, где сцена уже следует промпту, но ещё не выглядит пережатой.

Почему в одной модели CFG почти выключен? Она могла быть дистиллирована или обучена для работы с другим механизмом guidance. Это не ошибка и не признак слабого понимания текста.

Можно ли менять CFG по ходу генерации? Некоторые узлы и sampler позволяют задать расписание guidance по шагам. Польза зависит от модели, поэтому такой граф сравнивают с постоянным значением на одинаковых условиях.

Почему после смены LoRA рабочая точка сдвинулась? LoRA меняет реакцию модели на условие. Сильный адаптер и сильный CFG могут вместе переусилить один признак.

Главное

CFG Scale усиливает влияние условия на диффузионное предсказание. Это регулятор компромисса, а не шкала качества. Удачная настройка удерживает смысл промпта без пережатых цветов и фактур, а её значение имеет смысл только рядом с точной моделью и сохранённым workflow.