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

Checkpoints & Debugging — как находить последний доказуемо корректный этап

Большой workflow нельзя диагностировать по финальной картинке. Надёжная отладка строится как лестница checkpoints: после каждого смыслового модуля должен существовать наблюдаемый результат, позволяющий доказать, где именно pipeline перестал быть корректным.

CONFIRMEDМетод соответствует уже документированным probes Hansen: preprocessors, SDXL, masks, PEOPLE, main FLUX и output имеют промежуточные preview/comparer точки.
FIVE-PROBE TEST

Последний правильный preview задаёт следующую проверку

1
409Generateraw PPL decode
2
113DetectFlorence2 preview
3
507 / 508Cropsource + mask
4
480CompositeMASK / PPL
5
730Current finaldecode 53

Если этап N корректен, не возвращайся к prompt: проверяй соединение и параметры этапа N+1.

01 · OBSERVABILITY

Если модуль нельзя наблюдать отдельно, его трудно отлаживать

PreviewImage, MaskPreview, comparer, text/json preview и save probes — это не декоративные элементы. Они создают observability: возможность проверить состояние данных до того, как они смешались со следующей системой.

Чем длиннее цепочка без checkpoint, тем больше потенциальных причин одной и той же финальной ошибки.

02 · LAST GOOD STAGE

Главный вопрос отладки: где последний правильный результат?

Не начинай с вопроса «почему финал плохой?». Начинай с конца и двигайся upstream до последнего checkpoint, который выглядит и структурно ведёт себя правильно.

Следующий после него stage становится первым подозреваемым. Так search space сокращается с сотен нод до одной ветки.

03 · CHECKPOINT TYPES

Разным типам данных нужны разные probes

DataCheckpointЧто проверяем
IMAGEPreviewImage / comparerpixels, composition, color, geometry
MASKMaskPreviewsilhouette, polarity, holes, bounds
BBOX / JSONtext/json previewcoordinates, count, labels
STRINGtext previewсобранный prompt / control text
LATENTобычно decode-only debug pathвизуальный результат после VAE Decode
OUTPUT FILESaveImage + actual file checkдействительно ли delivery path сработал
04 · DEBUG LADDER

Проверять нужно в порядке зависимостей

05 · MINIMAL REPRODUCTION

Для ошибки включай минимальный набор модулей

BASE CONFIG должен позволять выключить всё, что не требуется для воспроизведения проблемы. Если тестируется SAM2 mask, не нужно одновременно считать main FLUX и upscale.

Минимальный runtime ускоряет iteration и снижает вероятность, что побочный branch скрывает настоящий источник проблемы.

06 · ERROR CLASSIFICATION

Сначала классифицируй ошибку, потом меняй параметры

КлассПримерыПервое действие
Dependencymissing node / model / loaderПроверить manifest и paths
Type contractIMAGE vs LATENT / missing CONDITIONINGПроверить socket types
Spatial contractmask shift / bbox mismatchПроверить W×H и coordinate space
Batch contractindex out of bounds / cardinality mismatchПроверить batch counts
Routingне тот source / ветка не влияетПроверить selector + bypass
Generation qualityанатомия / материал / prompt mismatchТолько после технического preflight менять AI parameters
07 · ANTI-PATTERN

Не лечить topology параметрами генерации

Если маска смещена из-за resize, изменение denoise не поможет. Если selector выбрал другой source, prompt не исправит маршрут. Если CLIP input отсутствует, CFG не имеет значения.

Production debugging начинается с architecture/data contracts и только после этого переходит к generation tuning.

08 · DEBUG RECORD

Для повторяемой диагностики сохраняй состояние теста

  • Какой input использован.
  • Какие modules включены в BASE CONFIG.
  • Effective selector values.
  • Seed и sampling parameters.
  • Размеры и batch на проблемном участке.
  • Последний корректный checkpoint.
  • Точный error message / node ID.
09 · PRACTICE

Практика: сломать ветку специально и локализовать ошибку

Возьми небольшой standalone workflow с тремя checkpoints. Осознанно измени один contract — например, selector source или mask size. Не исправляй сразу. Пройди debug ladder и зафиксируй, на каком checkpoint впервые появляется расхождение.

INFERRED

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

Ученик освоил debugging, когда может назвать последний корректный stage и класс ошибки до того, как начинает менять prompt или sampler.