Обычное же использование довольно простое. Установка - скачал, распаковал… профит. Разве что, я бы сразу менеджер добавил
https://github.com/ltdrdata/ComfyUI-Manager и костылей любимых им поставил:
Efficiency Nodes - чтобы проще модели грузить
ControlNet Auxiliary Preprocessors - препроцессоры для контролнетов (это те которые из картинок делают наброски или openpose-человечков. Их можно сохранять и использовать потом вторично, а можно сразу на вход подавать)
ComfyUI-Custom-Scripts - по желанию, добавляет всякие удобности типа информации о лоре, сохранения workflow,
и модели TAESD Decoder, TAESD Encoder (для SD1.5), TAESDXL Decoder, TAESDXL Encoder (если XL использовать будешь) - это для быстрого предпросмотра во время генерации,
ControlNet - те которыми пользоваться будешь, если будешь (на SDXL свои контролнеты, что важно)
там ещё есть модельки разные, vae, sdxl и его рефайнер - можно что-то скачать не отходя от кассы.
Можно переименовать extra_model_paths.yaml.example в extra_model_paths.yaml и в нём указать пути до автоматика и его моделей, чтобы не разводить бардак на диске.
В общем-то готово, можно брать и генерировать. Есть шаблон по умолчанию чтобы генерировать картинку по промпту.
На самом деле, чтобы пользоваться нормально, надо понимать что latent - это внутреннее представление картинки для модели, vae - это сетка которая превращает пиксельную картинку в latent и наоброт - latent в пиксели, clip - это та часть, которая строит соответствие текст-картинка. Ну и вроде понятно становится что происходит там - грузится модель, из неё в clip подгружаются слова промпта и всё это добро идет в семплер. В него же подаётся пустое latent-изображение - фактические - просто шум, из которого семплер за step шагов модель делает картинку, пока всё ещё latent. Дальше VAE превращает её в бутылку на экране.
И тут надо заметить, что если есть Efficiency Nodes, то можно сделать ещё проще и лаконичнее - как на первом пике. С ним же можно легко подгрузить лоры и контролнеты. Я дальше с ним буду делать, но можно и обычными нодами соединять.
А можно этот latent растянуть через ноду LatenUpscaleBy и подать на вход следующему семплеру вместо пустой шума. Тут важно снизить denoise примерно до 0,5 - это то насколько сильно убирается "шум" из входящей картинки. Если там будет 1, то он сгенерирует новую картинку, если 0 - получится растя
Пост слишком длинный. Нажмите вот сюда чтобы просмотреть полностью.