Обычное же использование довольно простое. Установка - скачал, распаковал… профит. Разве что, я бы сразу менеджер добавил
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 - получится растянутый вариант предыдущей. Значение подбирается опытным путём, но как правило между 0,4 и 0,6. Можно ещё раз подать, пока не надоест. Так получается разрешение картинки больше и деталей добавляется. Думаю что примерно так hires-fix в автоматике работает.
Работа с латентами позаоляет "клеить" рисунки друг на друга чтобы задавать композицию. Тут написано как
https://comfyanonymous.github.io/ComfyUI_examples/noisy_latent_composition/Опять же, каждую картинку можно генерировать своей моделью, своим промптом и лепить результат. Пример на третьей картинке. Тут разве что надо обратить внимание на то что тут уже adv. sampler, в нём делается только 3 первых шага и остаётся шум (return with leftover noise), а в последнем наоборот - начинается с 3 шага и шум не добавляется (add noise).
А ещё можно подгрузить вывод из одной модели в другую, например. А можно в апскейле задать число меньше единицы и будет уменьшение объекта. Например, маленький НЛО на горизонте - добиться его промптом сложно, а вот сгенерировать большой, уменьшить и вставить - уже проще.
Ну и загружать лоры и контролнеты вроде просто - подцепляем стак лор и в нём выбираем нужные лоры и их силу. С контролнетами так же - делаем стак, цепляем контролнет, цепляем картинку. Не забываем загрузить нужный контролнет - те которые рисуют по наброску не будут рисовать по openpose-манекенам.
Ну вот, для вката кажется достаточно. Дальше это надо потыкать и осознать, желательно не бездумно копипастя с рисунка. Ну а дальше можно уже всякие штуки наворачивать, типа допила рук и лиц, региональных семплеров когда когда обычных промптом уже недостаточно - таким вкатунов только пугать.