EPS Technical Manual
02 / 64
Файлы
02
PART I · WORKFLOW ENGINEERING FOR COMFYUI

Node Literacy — алфавит ComfyUI

Прежде чем читать большой workflow, нужно понимать базовые типы данных, входы и выходы нод. Эта глава учит видеть не название ноды, а то, какой объект она принимает, что делает с ним и что возвращает дальше.

CONFIRMEDГлава описывает базовую модель чтения ComfyUI-графа и опирается на типы данных, которые реально встречаются в текущем Hansen workflow.
01 · NODE ANATOMY

У каждой ноды есть три вопроса: что входит, что происходит, что выходит

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

Профессиональная привычка: прежде чем менять параметр, сначала определить тип входа и тип выхода. Это защищает от бессмысленных попыток соединить несовместимые части графа.

02 · CORE DATA TYPES

Главные «буквы» ComfyUI

ТипЧто это означаетТипичный пример
IMAGEПиксельное изображение или batch изображенийLoadImage → PreviewImage
MASKОдноканальная карта области действияSAM2 mask → composite / inpaint
LATENTСкрытое представление изображения для diffusion samplerVAE Encode → KSampler
MODELОбъект генеративной модели после loader / patchCheckpoint / UNet loader → sampler
CLIPТекстовый encoder / text-model interfaceLoader → CLIP Text Encode
CONDITIONINGЗакодированная текстовая или control-информацияCLIP Text Encode → sampler / guider
VAEEncoder/decoder между IMAGE и LATENTIMAGE → VAE Encode → LATENT
STRINGТекстPrompt field → text encoder
INTЦелое числоsteps, width, height, seed selector
FLOATЧисло с плавающей точкойdenoise, strength, CFG, weight
03 · IMAGE VS LATENT

IMAGE и LATENT — это не одно и то же

IMAGE существует в пиксельном пространстве: его можно показать PreviewImage, сохранить, обработать маской или передать в preprocessor. LATENT существует в скрытом пространстве diffusion-модели и используется sampler-ом.

Поэтому IMAGE нельзя напрямую подключать туда, где ожидается LATENT. Между ними нужен VAE Encode. В обратную сторону нужен VAE Decode.

INFERRED

Debug rule

Если нода «не принимает картинку», сначала проверь, не ожидает ли она LATENT, MASK или CONDITIONING вместо IMAGE.

04 · MASK

MASK отвечает за область действия, а не за само изображение

Маска описывает, где операция разрешена, запрещена или должна быть смешана. Белое и чёрное значения получают смысл только в контексте конкретной downstream-ноды, поэтому polarity нельзя угадывать по привычке.

В production-графе всегда нужно проверять три вещи: размер mask, её polarity и совпадение coordinate space с изображением, к которому она применяется.

05 · MODEL / CLIP / CONDITIONING

Model object и prompt — разные части системы

MODEL отвечает за генеративную сеть. CLIP или другой text encoder превращает STRING prompt в CONDITIONING. Sampler затем получает модель, conditioning и latent как разные входы.

Это важная ментальная модель: prompt не «лежит внутри sampler». Он заранее кодируется и передаётся как отдельный объект.

06 · STRING / INT / FLOAT

Маленькие типы часто управляют огромными ветками

STRING, INT и FLOAT выглядят проще IMAGE или MODEL, но именно они часто формируют control plane. Один INT может выбирать source в нескольких selectors, а один FLOAT одновременно задавать denoise или weight для целой ветки.

Поэтому связанный control input важнее локального widget value: если input подключён, реальное значение может приходить извне.

07 · SOCKET COMPATIBILITY

Провод можно читать как утверждение о совместимости данных

Каждый link говорит: output одной ноды совместим с input другой. Если ComfyUI не даёт соединить sockets, проблема обычно не в UI, а в несовместимости типов или в том, что между ними пропущен преобразующий шаг.

Нужно получитьЕсть сейчасЧто обычно требуется между ними
LATENTIMAGEVAE Encode
IMAGELATENTVAE Decode
CONDITIONINGSTRINGText Encode
MASKIMAGE / detection resultImageToMask или segmentation stage
CONTROL signalIMAGEPreprocessor + ControlNet/apply stage
08 · READING ORDER

Как читать незнакомую ноду за 20 секунд

  • Посмотреть тип каждого входа.
  • Посмотреть тип каждого выхода.
  • Определить, меняет ли нода данные или только маршрутизирует их.
  • Отделить linked inputs от локальных widget values.
  • Найти один upstream source и один downstream consumer.
  • Только после этого изучать название модели и параметры.
09 · PRACTICE

Практика: перевести маленький workflow с языка нод на обычный язык

Возьми любой граф из 5–15 нод. Для каждой ноды подпиши один входной тип, операцию и выходной тип. Затем одной фразой опиши весь маршрут без названий моделей.

INFERRED

Критерий готовности

Ученик готов переходить к Graph Literacy, когда может объяснить маршрут по типам данных, не опираясь только на названия конкретных моделей.