CFG Scale
classifier-free guidance — насколько модель прижимается к промпту
CFG Scale (Classifier-Free Guidance) — параметр, который управляет тем, насколько строго диффузионная модель следует промпту. Низкие значения (1–3) дают свободную интерпретацию, высокие (12+) — буквальное следование с пластиковыми текстурами и выгоревшими цветами. Рабочий диапазон зависит от модели: 4–9 для классических SD 1.5 и SDXL, 2–5 для Flux Dev, 1–2 для Schnell и Turbo-сборок.
Коротко
Коротко. CFG Scale управляет тем, насколько строго модель следует промпту. Низкие значения (1–3) — свободно и мягко: модель почти не слышит текст. Высокие (12+) — буквально и резко: цвета насыщенные до отказа, формы преувеличенные, текстуры пластиковые. Безопасный диапазон — 4–9 для классических моделей (SD 1.5/SDXL), 2–5 для Flux Dev и turbo-сборок.
Что это такое
Промпт «кот на подоконнике». CFG=2 — модель показывает абстрактный пейзаж с чем-то отдалённо похожим на животное. CFG=20 — картинка с гипертрофированным котом, ламинированной шерстью и кислотным закатом. Где-то между ними находится та точка, где промпт и эстетика сходятся.
Эта точка и регулируется параметром CFG Scale.
Classifier-Free Guidance — техника, придуманная в 2021 году Джонатаном Хо. До неё для управления генерацией использовали отдельную модель-классификатор: она оценивала, насколько картинка соответствует тексту. Это было медленно и требовало двух моделей. Хо предложил решение проще: одна и та же модель делает два предсказания на каждом шаге — со «своим» промптом и с пустым. Разница между ними и есть направление к промпту.
CFG-параметр определяет, насколько сильно усилить эту разницу. По смыслу это «громкость» промпта: 1 — почти выключен, 15 — выкручен до ограничителя.
На разных моделях рабочий диапазон отличается:
- Stable Diffusion 1.5 / SDXL базовый — 5–9, оптимум 7.
- Flux Dev — 3–5, выше начинаются артефакты.
- Flux Schnell, SDXL Turbo, LCM — 1–2, специально натренированы на низкий CFG.
- Старые модели (SD 1.4) — 7–12, требовали более жёсткой привязки.
Это не «новые модели хуже понимают промпт». Наоборот, они стали достаточно умными, чтобы не нуждаться в сильной коррекции — поэтому высокий CFG только портит результат.
Как это работает
На каждом шаге диффузии модель делает два предсказания: что бы получилось без промпта (uncond, unconditional) и что должно получиться с промптом (cond, conditional). Финальное направление шага — это смесь этих двух, контролируемая CFG:
direction = uncond + cfg × (cond − uncond)
Разберём по точкам:
- CFG=1 → второе слагаемое исчезает:
direction = uncond + 0 = uncond. Шаг делается, как будто промпта нет. - CFG=2 →
direction = uncond + (cond − uncond) = cond. Шаг делается ровно в направлении промпта, без усиления. - CFG=7 →
direction = uncond + 7·(cond − uncond). Шаг в 7 раз сильнее в сторону промпта, чем без CFG. - CFG=15 →
direction = uncond + 15·(cond − uncond). Шаг в 15 раз сильнее. Модель «давит» в сторону промпта так агрессивно, что покидает естественное распределение картинок: цвета вылезают за нормальный диапазон, текстуры теряют плавность.
Каждый шаг с CFG требует двух прогонов модели вместо одного — поэтому генерация с CFG в два раза медленнее, чем без него. Это плата за управляемость.
Пример на практике
Видеомонтажёр генерирует кадр для рекламного ролика: «киберпанк-улица ночью, неон, дождь, человек в плаще, вид сзади». Бюджет — пять часов на серию, кадр должен попасть в раскадровку, времени на эксперименты нет.
Подбирает CFG и видит четыре разных мира:
- CFG=3. Получается атмосферная улица, но человека почти нет — модель свободно интерпретирует промпт и решает, что важнее общая сцена. Стиль красивый, но не то.
- CFG=7 (стандарт). Человек в плаще на месте, дождь и неон видны, общая сцена сбалансирована. Это рабочий результат.
- CFG=12. Каждая деталь промпта подчёркнута: дождь льёт жёстко, неон выкручен, плащ блестит как ламинированный. Картинка выглядит «перебитой» — пластиковый эффект, неестественный.
- CFG=20. Цвета выгорели, формы преувеличены до гротеска. Модель вышла за пределы своего обычного распределения, и результат буквально некрасивый.
Останавливается на CFG=7. Через двадцать минут серия готова.
Для большинства финальных рендеров — CFG=7. Для эксперимента — попробуйте 4 и 9 и сравните, какой ощущается живее.
С чем часто путают
- CFG и Steps — CFG это сила промпта, steps это количество шагов денойзинга. Это два разных параметра, но они влияют друг на друга. Высокий CFG требует больше шагов, чтобы модель «успокоилась». Низкий CFG прощает мало шагов.
- CFG и температура (LLM) — внешне похоже: и там, и там «свобода модели». Но это разные механизмы. Температура в LLM управляет случайностью выбора токена. CFG в диффузии — это математический рычаг между двумя предсказаниями. Терминология случайно похожа, реализация разная.
- CFG и качество модели — высокий CFG не делает картинку красивее. Он только сильнее давит на промпт. Если базовая модель плохо знает «китайский фонарь в стиле акварели», никакой CFG не поможет — просто получится более выкрученная плохая версия.
- CFG=1 и нулевой промпт — формально это разные ситуации. CFG=1 значит «промпт игнорируется». Пустой промпт значит «промпта нет в принципе». Результаты могут отличаться, особенно на моделях с natural language conditioning.
Частые ошибки и заблуждения
- Хочу больше деталей — поднимаю CFG. Не работает. CFG не «добавляет детали», он усиливает следование промпту. Если в промпте нет деталей — высокий CFG их не создаст. Для деталей нужны более конкретные слова в промпте или LoRA.
- CFG=10 на Flux даёт лучше качество. Наоборот. Flux натренирован на CFG 3–5; выше — модель ломается, появляются артефакты и выгорание.
- CFG = «жирность» картинки. Косвенно — да, высокий CFG делает цвета насыщеннее. Но это не «больше красок», а выход за нормальное распределение — пластиковый эффект, который выглядит дёшево.
- Главный параметр — CFG, остальное не важно. Нет, CFG важен, но он работает в паре с сэмплером, шедулером и количеством шагов. Высокий CFG + мало шагов = недодетализированная карикатура. Низкий CFG + много шагов = размытое «по мотивам».
- Negative prompt можно выкрутить так же, как обычный. Negative prompt тоже использует CFG-механизм: чем выше CFG, тем сильнее модель отталкивается от плохого. Слишком сильное отталкивание вызывает обратные артефакты.
Связанные термины
- Prompt — текстовое описание, к которому модель прижимается через CFG.
- Negative prompt — описание того, чего НЕ должно быть, тоже работает через CFG.
- Sampler — алгоритм шумоподавления, параллельный CFG.
- Steps — количество шагов; на низком CFG их можно меньше.
- Stable Diffusion / Flux / SDXL — у каждой модели свой оптимум CFG.
Частые вопросы
Какой CFG поставить новичку? Для SD 1.5 / SDXL — 7. Для Flux Dev — 3.5. Для Schnell / Turbo — 1.5. Это стартовые значения; дальше пробуете ±2 и смотрите, что лучше.
Почему генерация с CFG занимает в два раза больше времени? Потому что модель делает два прогона на каждом шаге: с промптом и без. Соответственно, и времени тратится в два раза больше. На отдельных пайплайнах (Flux Schnell, LCM) этого нет — там CFG практически выключен.
Что такое «выгорание цветов» при высоком CFG? Когда CFG > 12, модель выходит за пределы естественного распределения цветов, которые видела при тренировке. Получаются неестественно насыщенные оттенки, ламинированные текстуры, «химические» отблески — то, чего в реальной фотографии или в датасете обучения не бывает.
Может ли CFG быть дробным? Да. CFG=3.5 — рабочее значение. На некоторых моделях есть смысл в дробях, на других разница незаметна.
Можно ли менять CFG посреди генерации? Да, в продвинутых пайплайнах (ComfyUI, Forge) можно задать график CFG: высокий вначале, низкий в конце. Полезный приём, чтобы получить чёткий силуэт с естественной детализацией.
Главное
CFG Scale — это громкость промпта, не качество картинки. Низкий — модель свободна, высокий — модель строго следует тексту. Оптимум зависит от модели: 7 для классических, 3.5 для Flux Dev, 1.5 для Schnell. Если цвета выгорают и текстуры стали пластиковыми — это сигнал перебора, опускайте CFG. Если детали из промпта теряются — поднимайте, но в пределах рабочего диапазона своей модели.