CFG Scale
classifier-free guidance — сила влияния текстового условия на генерацию
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.