Prompt Weighting

prompt weighting — усиление и ослабление слов в промпте

Раздел
Промпты
Обновлено
18.05.26

Prompt Weighting — техника локального управления силой отдельных слов в промпте. Синтаксис `(красная роза:1.4)` усиливает слово в 1.4 раза, `[жёлтый:0.7]` ослабляет в 0.7. Помогает выделить главное (мейн-объект), ослабить мешающее (фон), сбалансировать сложные сцены. Реализация отличается между AUTOMATIC1111 (круглые скобки) и ComfyUI (прямые числа). В FLUX почти не работает — модель использует другой текстовый энкодер.

Коротко

Коротко. Prompt Weighting — это указание модели, какие слова важнее, а какие менее. Базовый синтаксис AUTOMATIC1111: (word:1.5) усиливает в 1.5 раза, (word:0.5) ослабляет в 0.5. Сокращение (word) = (word:1.1), [word] = (word:0.9). В ComfyUI используется через ноды CLIPTextEncode или specialized Conditioning Concat. Полезно для балансирования промптов и выделения главного объекта. С FLUX работает плохо или не работает вообще.

Что это такое

Иллюстратор пишет промпт young woman in red dress, golden curly hair, vintage cafe interior, warm lighting. Модель рисует — но кафе получается эпическим, занимает 70% кадра, а женщина — крошечной фигурой в углу. Хочется наоборот: героиня крупно, кафе на заднем плане.

Простое решение — переставить слова, поставить young woman в начало. Помогает чуть-чуть.

Решение через weighting: (young woman in red dress:1.4), golden curly hair, (vintage cafe interior:0.7), warm lighting. Модель «слышит» женщину в 2 раза громче, чем кафе. Героиня выходит на передний план, кафе уходит в фон.

Это и есть prompt weighting. Вместо равноправия всех слов промпта — локальное усиление и ослабление через синтаксис скобок и чисел.

К 2026-му это базовый инструмент промпт-инжиниринга в SD-семействе:

  • SD 1.5 / SDXL — полная поддержка через () и [].
  • FLUX — почти не работает, FLUX использует Т5-энкодер, который игнорирует weighting-синтаксис.
  • DALL-E / Midjourney — свой синтаксис (::1.5 в Midjourney).
  • ComfyUI — числа задаются напрямую в нодах или через Concat.

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

В Stable Diffusion промпт превращается в последовательность токенов через CLIP. Каждый токен получает эмбеддинг (вектор смысла), и эти эмбеддинги усредняются с весами при cross-attention.

Синтаксис AUTOMATIC1111:

  • word — стандартный вес 1.0.
  • (word) — вес 1.1 (умножается).
  • ((word)) — вес 1.21 (1.1 × 1.1).
  • (word:1.5) — явный вес 1.5.
  • [word] — вес 0.91.
  • [[word]] — вес 0.83.
  • (word:0.5) — явный вес 0.5.

Под капотом — модификация эмбеддинга токена: умножение на вес перед усреднением. Высокий вес = модель «громче слышит» это слово, посвящает ему больше attention при сампинге.

В ComfyUI weighting реализован проще: можно задавать веса напрямую в нодах CLIPTextEncode через тот же синтаксис (word:1.5). Также есть Conditioning Concat для смешивания нескольких разных промптов с разными весами.

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

Дизайнер делает обложку для книги: главный герой — рыцарь, фон — горящий замок. Стандартный промпт даёт горящий замок крупно, рыцаря маленьким.

Промпт без weighting:

medieval knight in armor, burning castle in background, dramatic sunset, cinematic

Результат: пейзаж 80% кадра, рыцарь 20%.

Промпт с weighting:

(medieval knight in shining armor:1.5), close-up portrait, 
(burning castle in distance:0.7), dramatic sunset, cinematic

Результат: рыцарь 70% кадра, замок 25% на фоне.

Дополнительно с прицельным выделением деталей:

(medieval knight:1.5), (intricate armor details:1.3), 
(weathered face with battle scars:1.2), close-up portrait,
(burning castle in distance:0.7), (dramatic sunset:0.9), cinematic

Каждое усиление — на 0.1–0.5. Не больше +50% для одного фрагмента.

В ComfyUI можно использовать ноду Conditioning (Combine) или Conditioning Concat для более сложных балансов: например, разные веса для текста, который описывает heroя, и для текста, который описывает обстановку.

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

  • Prompt Weighting и CFG Scale — CFG это сила всего промпта целиком. Weighting — сила отдельных слов внутри. Перпендикулярные оси.
  • Weighting и Negative Prompt — Negative исключает слова из результата. Weighting усиливает или ослабляет их в positive промпте. Разные механизмы.
  • (word:1.5) и (word) три раза(word:1.5) это один токен с весом 1.5. word word word — три токена. Результаты разные: первое усиливает, второе создаёт повторение в attention.
  • Weighting и Prompt Order — порядок слов тоже влияет (первые слова важнее), но weighting — отдельный механизм. Они складываются.
  • Weighting в SD и в Midjourney — Midjourney использует ::1.5 и --weight. Не совместимо с SD-синтаксисом.

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

  • «Больше веса = лучше». До определённого предела. Веса выше 1.5–1.7 часто ломают композицию: цвета пересатурированы, объекты гипертрофированы.
  • «Weighting заменяет Negative Prompt». Не заменяет. (red:0.0) не означает «не рисуй красный» — означает «игнорируй слово в attention». Для исключения нужен negative prompt.
  • «В FLUX работают те же скобки». Не работают. FLUX использует T5 как текстовый энкодер вместо CLIP. T5 игнорирует SD-weighting-синтаксис.
  • «Ослабление слова на 0.5 уберёт его». Не уберёт, только ослабит. Если хотите убрать — просто удалите из промпта.
  • «Промпт ((cat:1.5)) усилен ещё больше». Нет. Скобки и явный вес дают только 1.5, не 1.5 × 1.21.

Связанные термины

  • Prompt — основа, на которую накладывается weighting.
  • Negative Prompt — отдельный механизм исключения.
  • CFG Scale — глобальная сила всего промпта.
  • CLIP — текстовый энкодер SD, через который weighting работает.
  • T5 (FLUX) — энкодер FLUX, который игнорирует weighting.
  • Attention — механизм cross-attention, на который weighting влияет.
  • Regional Prompting — другой способ локального контроля промпта.

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

Какой максимальный вес можно использовать? Безопасно — до 1.5. До 1.7 — экспериментально (часто артефакты). Выше 2.0 — почти всегда ломает картинку.

Работает ли weighting в FLUX? Почти нет. FLUX использует T5-энкодер, который не реагирует на SD-синтаксис скобок. Есть экспериментальные ноды FluxAttentionMod, но они нестабильны.

Какой синтаксис в ComfyUI? Тот же, что в AUTOMATIC1111: (word:1.5), (word:0.5). Работает в любой ноде CLIPTextEncode. Есть отдельные ноды для более сложных операций.

Можно ли использовать веса в негативном промпте? Да. Например (blurry:1.4), (jpeg artifacts:1.2), (lowres:1.3). Это усиливает «нежелание» этих эффектов.

Что делать, если объект всё равно маленький в кадре? Кроме weighting, помогают: 1) переставить слово в начало промпта, 2) добавить «close-up», «portrait shot», «full frame», 3) использовать ControlNet для жёсткого контроля композиции.

Можно ли весом 0 «удалить» слово? Технически да, но проще удалить слово из промпта. Вес 0 умножает эмбеддинг на 0, но токен всё равно занимает место в context window.

Главное

Prompt Weighting — это локальный «громкость-микшер» для слов в промпте. Синтаксис AUTOMATIC1111 и ComfyUI: (word:1.5) усиливает, (word:0.5) ослабляет. Безопасный диапазон — 0.5–1.5. Главные применения: выделить героя, ослабить фон, сбалансировать многосоставные сцены, усилить негативные слова. Главные ограничения: не работает в FLUX (другой энкодер), может ломать картинку при экстремальных значениях, не заменяет negative prompt. Хороший рецепт — главный объект 1.3–1.5, фон 0.7–0.9, негативные слова 1.2–1.4. Это базовый инструмент любого, кто работает с Stable Diffusion серьёзнее, чем «один промпт — одна картинка».