Соображения по поводу универсальной схемы ComfyUI для генерации картинок
Самой схемы в материале не будет, сразу предупреждаю. Однако материал будет полезен тем, кто задумывался над данной темой.
Минусы
Почему не будет схемы, потому что схема:
- СЛОЖНАЯ для понимания, первоначального запуска и последующего использования. Для простой генерации нужно не просто держать логику работы всей схемы, но и перепроверять каждый раз несколько переключаторов и все используемые дополнительные файлы моделей в соответствии с основной моделью генерации. Добавим сюда необходимость установки недостающих нод и моделей - которыми не факт что будите пользоваться, но для запуска схемы они нужны. Кроме того всё это может в один прекрасный момент обновиться и сломаться :)
- ДОЛГАЯ. Ввиду универсальности в ней присутствуют различные ноды которые в определённых процессах не нужны, а отключать их либо нельзя, либо надо переместиться в область переключателя для её деактивации - что увеличивает время не только на генерацию, но и предварительную настройку.
- ОБЪЁМНАЯ. Объём касается не только размеров схемы, но и размеров рабочего процесса встраиваемого в генерируемое изображение. Если у Вас тысячи изображений на хостинге - этот фактор становится критичным, а сохранение картинок без рабочего процесса - "не по Феншую".
Плюсы
Тем не менее, есть и плюсы такой схемы, которые заставляют задуматься о целесообразности её применения:
- УНИВЕРСАЛЬНОСТЬ. Одна схема на 90+% всех возможных сценариев использования для генерации картинок (а в будущем может и видео/звука).
- РАСШИРЯЕМОСТЬ. Готовые схемы можно предельно быстро встроить в текущую схему. Например, Вы нашли схему с обработкой изображения, то процесс интеграции будет заключаться в замене нод с подключением моделей, составления подсказок и последующим выводом результата на соответствующие ноды входящих и исходящих данных. В целом готовая схема может встроится в универсальную схему занимая пространство в несколько раз меньше своего изначального размера, при этом на порядок выше расширив свои изначальные возможности.
- УДОБСТВО экспериментов. Для этого ненужно открывать кучу схем и переключаться между ними. Можно сразу вносить изменения в одну единственную схему, например в подсказки к схеме, а не переделывать все созданные до этого обычные схемы. Схему можно сделать так, что бы она была построена из свободно перемещаемых групп с входящими (левый верхний угол) и выходящими (правый нижний угол) данными, в единой цветовой схеме для групп и нод.
В целом схемка будет выглядеть вот так (рабочий, но незавершённый проект):
Для примера увеличим блок подсказки:
В нём есть возможность получения данных (левый верхний угол) от 3-х автоописалок изображений и триггерных слов для Lora с возможностью замены токенов или символов, автопереводом с любого языка и встраиванием готовых стилей. На выходе получаем чистую или объединённую подсказки в различных форматах (правый нижний угол). Наличие выходов разных типов данных - нужно для некоторых сценариев работы. Эти выходы будут являться входами в универсальные блоки обработки, которые требовательны к определённому типу данных.
Группа подсказки для генерации - это лишь пример группы, что бы показать как можно реализовать входы, выходы, а так же объединение текста полученного различными способами (из другой группы Florence2, из нод путём ручного ввода и из заранее готовых наборов стилей). Точно таким же образом можно реализовать загрузку изображений, моделей, обработчиков и генераторов изображений - добавив переключатели и выключатели групп.
Сами группы можно без проблем перемещать в пространстве подстраивая их положение под себя, связи при этом не нарушатся и не будут мешаться. А после получения нужного результата - всегда можно упростить схему просто удалив лишнее и переместив покомпактнее оставшиеся группы.
В целом материал посвящён неким промежуточным выводам, и больше нужен для собственного осознания и понимания необходимости движения в этом направлении.
Если будет интерес, выложу другие группы и саму схему - но только после понимания в целесообразности такой необходимости. Потому что, как не крути, но нужно будет доработать и подробно описывать все группы с прикладыванием примеров работы и настроек, а это трудозатратно по времени.