Большой разбор

VAE в ComfyUI: почему картинка стала серой и как вернуть цвет

VAE в ComfyUI — это модель-переводчик между пикселями и latent space. VAE Encode превращает изображение в latent для img2img и inpainting, а VAE Decode возвращает результат KSampler в видимую картинку. Если VAE выбран неправильно или подключён не туда, результат может стать серым, блеклым, мыльным или странным по цвету.

Чтение
15 мин
Уровень
Начинающий и средний уровень
Обновлено
04.07.26

Ошибка, которая выглядит как плохой prompt

Серая картинка в ComfyUI действует обидно. Всё вроде на месте: модель выбрана, prompt аккуратный, KSampler отработал, файл сохранился. Но результат выглядит так, будто из него вытащили жизнь. Цвета бледные, контраст странный, лица мыльные, тени грязные. Рука уже тянется переписать prompt: «more vibrant colors, cinematic light, rich contrast».

Иногда prompt действительно слабый. Но если картинка внезапно стала серой после смены workflow, checkpoint или чужого файла из интернета, первым подозреваемым часто оказывается VAE.

VAE не отвечает за сюжет. Он не придумывает лицо и не решает, где будет лампа. Его работа проще и тоньше: переводить изображение между обычными пикселями и внутренним latent space модели. Когда переводчик подходит, результат выглядит естественно. Когда нет — смысл вроде сохранился, но язык цвета ломается.

VAE как мост между latent и пикселями Схема объясняет роль VAE в ComfyUI: VAE Encode переводит картинку в latent, VAE Decode возвращает latent в пиксели. neurosaver.ru Neurosaver · ComfyUI VAE — переводчикмежду latent и пикселями Он не делает картинку умнее,но может сделать её живой или серой Пиксели то, что видитчеловек VAE Encodeили Decode Latent внутреннеепространствомодели Кадр готовыйрезультат VAE не «улучшает prompt».Он переводит изображение между мирами. Если переводчик не тот, цвета и тональность могут развалиться.
VAE переводит изображение между видимыми пикселями и latent space: Decode показывает результат, Encode готовит исходник для img2img.

Что делает VAE в ComfyUI

В text-to-image обычный маршрут такой: Empty Latent Image создаёт latent, KSampler снимает шум, VAE Decode превращает latent в картинку. До VAE Decode результата как привычного изображения ещё нет. Есть внутреннее представление, удобное для модели.

В img2img и inpainting появляется обратная операция. Load Image даёт обычную картинку, VAE Encode переводит её в latent, KSampler переписывает этот latent с нужным denoise, а VAE Decode возвращает результат обратно в пиксели.

В коде ComfyUI это видно очень буквально: VAEDecode принимает samples и vae, а возвращает IMAGE; VAEEncode принимает pixels и vae, а возвращает LATENT. То есть VAE — не декоративная нода и не фильтр. Это мост.

Если мост не тот, маршрут всё равно может формально пройти. Но на выходе появляются странности: цветовой сдвиг, мыло, серость, неестественная контрастность, иногда почти испорченная картинка.

Встроенный VAE и внешний VAE

Многие checkpoint уже содержат VAE внутри. Load Checkpoint в ComfyUI часто отдаёт сразу три выхода: model, clip и vae. Для нормального workflow этого достаточно: vae из checkpoint идёт в VAE Decode, и картинка собирается без лишних узлов.

Но в старых Stable Diffusion 1.5 workflow часто использовали внешний VAE. Он мог улучшать цвета и детали у конкретных моделей. Поэтому в чужих схемах иногда встречается отдельная нода Load VAE. Она не всегда ошибка. Но она и не всегда нужна.

Опасность начинается, когда workflow скачан под одну модель, а вы подставили другую. Например, автор использовал SD 1.5 checkpoint и внешний VAE, а вы загрузили SDXL. Или workflow был собран под конкретную модель с отдельным VAE, а теперь этот VAE остался в схеме как забытая деталь. ComfyUI честно соединяет провода, но результат получается бледным или странным.

Практическое правило: если checkpoint уже отдаёт рабочий VAE, не добавляйте отдельный Load VAE «на всякий случай». Отдельный VAE нужен только тогда, когда вы понимаете, какую проблему он решает.

Диагностика серой картинки

Сначала не переписывайте prompt. Проверьте цепочку.

  1. VAE Decode вообще подключён к правильному vae-входу?
  2. VAE приходит из Load Checkpoint или из отдельного Load VAE?
  3. Если есть Load VAE, точно ли он подходит к этой модели?
  4. Не остался ли внешний VAE из чужого workflow?
  5. В img2img есть ли VAE Encode перед KSampler?
  6. Один и тот же seed с разными VAE даёт драматически разный цвет?
Диагностика VAE в ComfyUI Инфографика показывает типовые симптомы неправильного VAE: серую картинку, блеклые цвета, мыло и ошибки входов. neurosaver.ru Neurosaver · ComfyUI Серая картинкаредко начинается в prompt Чаще всего проблема живётна входе или выходе VAE Серая картинка проверьте VAE Decode Мыло и блеклость сравните встроенный и внешний VAE Странные цвета не смешивайте SDXL и чужой VAE Пустой результат проверьте samples и vae-вход img2img не похож проверьте VAE Encode до KSampler workflow из сети уберите Load VAE, если он лишний Диагностика честная: один seed, один prompt, два прогона.Сначала встроенный VAE, потом внешний. Смотрите на цвет и фактуру.
Серая или блеклая картинка часто указывает не на prompt, а на неправильный VAE Decode, лишний Load VAE или неверную связку с моделью.

Самый быстрый тест — два прогона на одном seed и одном prompt. Первый: VAE из Load Checkpoint идёт напрямую в VAE Decode. Второй: внешний VAE, если вы считаете его нужным. Смотрите на цвет, контраст, фактуру кожи, тени, мелкие детали. Если внешний VAE делает хуже, он не нужен. Если делает лучше, оставляйте, но подпишите workflow так, чтобы через месяц было понятно почему.

Где VAE стоит в workflow

В text-to-image VAE чаще всего находится ближе к концу. KSampler выдаёт samples, VAE Decode превращает их в IMAGE, Save Image сохраняет результат. Это короткая и понятная цепочка.

В img2img VAE нужен ещё и в начале: Load Image → VAE Encode → KSampler → VAE Decode → Save Image. Если VAE Encode пропущен или подключён странно, KSampler может получить не тот тип данных или не тот latent. Если VAE Decode получает чужой VAE, финальный цвет может развалиться.

Маршрут VAE в text-to-image и img2img workflow Схема показывает, где подключать VAE Decode и VAE Encode в ComfyUI. neurosaver.ru Neurosaver · ComfyUI Где VAE стоитв workflow В text-to-image он чаще всего на выходе,в img2img нужен ещё и на входе Load Checkpoint часто отдаётmodel + clip + vae VAE Decode latentв картинку Save Image если здесь серо, проверьте,какой VAE пришёл в Decode Load Image img2img начинаетсяс обычных пикселей VAE Encode картинка уходитв latent KSampler denoise решает, насколькосильно переписать исходник Если checkpoint уже отдаёт VAE, не добавляйте Load VAE «для красоты».Отдельный VAE нужен только когда вы понимаете, зачем он здесь.
В text-to-image VAE Decode стоит на выходе, а в img2img нужен ещё и VAE Encode, чтобы превратить исходную картинку в latent.

Удобно держать в голове простую схему: Encode — вход для картинки, Decode — выход для результата. Если в workflow нет исходной картинки, Encode обычно не нужен. Если есть img2img или inpainting, Encode почти наверняка нужен. Decode нужен всегда, когда latent должен стать видимым изображением.

SD 1.5, SDXL и FLUX

С VAE нельзя обращаться как с универсальным косметическим фильтром. Модели разных семейств могут требовать разные связки.

У SD 1.5 много старых checkpoint, где внешний VAE действительно может заметно улучшить цвет. У SDXL чаще безопаснее начинать со встроенного VAE из checkpoint или с VAE, явно рекомендованного автором модели. У FLUX workflow и устройство могут отличаться, поэтому переносить старые привычки из SD 1.5 особенно опасно.

Если статья или карточка модели говорит «используйте такой-то VAE», это полезная подсказка. Если такой рекомендации нет, начинайте со встроенного. Лишний внешний VAE в ComfyUI часто создаёт не улучшение, а тихий источник странностей.

Когда внешний VAE всё-таки нужен

Внешний VAE нужен, если он решает конкретную видимую задачу: исправляет блеклость у модели, улучшает тон кожи, убирает характерное мыло, соответствует инструкции автора checkpoint или нужен для старого workflow, который без него явно хуже.

Хорошая проверка выглядит так:

Проверка Как делать Что считать сигналом
Один seed не менять seed и prompt разница идёт от VAE, а не случайности
Два варианта встроенный VAE и внешний VAE внешний явно лучше по цвету и фактуре
Крупный просмотр открыть результат не только в превью нет мыла, грязи, цветового сдвига
Подпись workflow сохранить причину выбора через месяц понятно, зачем Load VAE

Если внешний VAE «может быть когда-нибудь пригодится», он не нужен в базовой схеме. Чем меньше лишних узлов, тем проще чинить workflow.

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

  • VAE и CLIPCLIP читает текст и создаёт conditioning. VAE переводит изображение между пикселями и latent.
  • VAE и KSampler — KSampler меняет latent, VAE показывает latent как картинку или кодирует картинку обратно в latent.
  • VAE и upscale — VAE не увеличивает разрешение. Он не заменяет апскейлер.
  • VAE и color correction — иногда VAE меняет восприятие цвета, но это не обычная цветокоррекция.
  • VAE и checkpoint — checkpoint может содержать VAE, но внешний VAE может быть отдельным файлом. Это разные источники.

Частые ошибки

Оставлять Load VAE из чужого workflow. Автору он был нужен под его модель. В вашей схеме он может ломать цвет.

Считать VAE украшением. Это не «улучшайзер», а обязательный переводчик. Неправильный переводчик даёт неправильный результат.

Менять prompt вместо диагностики. Если картинка стала серой после смены VAE или checkpoint, prompt может быть ни при чём.

Смешивать семейства моделей. SD 1.5, SDXL и FLUX не стоит лечить одним и тем же внешним VAE без проверки.

Не подписывать workflow. Через месяц невозможно вспомнить, почему в схеме стоит отдельный VAE. Подпишите в названии файла или заметке.

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

Почему картинка стала серой в ComfyUI? Проверьте VAE Decode. Возможно, в него приходит неподходящий VAE, внешний Load VAE остался из чужого workflow или checkpoint не тот, под который собиралась схема.

Нужен ли отдельный Load VAE? Не всегда. Если Load Checkpoint уже отдаёт нормальный VAE и цвет выглядит правильно, отдельный Load VAE лучше не добавлять.

Как понять, что VAE подходит? Сравните два прогона на одном seed: встроенный VAE и внешний. Если внешний явно улучшает цвет и фактуру без побочных эффектов, он подходит для этой модели.

Можно ли использовать VAE от SD 1.5 с SDXL? Без явной рекомендации автора модели лучше не надо. Смешивание VAE между семействами часто даёт странный цвет или мыло.

Почему img2img не работает как ожидалось? Проверьте VAE Encode, denoise и вход KSampler. Исходная картинка должна быть корректно переведена в latent, иначе KSampler работает не с тем материалом.

Источники

Главное

VAE в ComfyUI — это мост между latent и пикселями. В text-to-image он нужен на выходе как VAE Decode. В img2img и inpainting он нужен ещё и на входе как VAE Encode. Если картинка стала серой, блеклой или мыльной, не спешите переписывать prompt: сначала проверьте, какой VAE подключён, не остался ли лишний Load VAE из чужого workflow и подходит ли он к вашей модели.

Карта дальше — термины из словаря

Если хотите идти глубже — вот все термины, упомянутые в этом гиде. Можно открыть в новой вкладке и читать параллельно.