Определенная автоматизация творческого труда в GenAI возможна! Само собой на этот счет существует масса скриптов или расширений для Forge/Automatic1111 которые позволяет выполнять пакетную генерацию или апскейлинг.
Вот одно из них - замечательное расширение которое предназначено для пакетного распознавания и генерации описаний (их можно использовать как промпт) по картинке с помощью популярной модели Florence-2. В принципе автор расширения просто добавил то чего не хватает в штатном Florence-спейсе самого Forge.
Итак, переходим в Forge и устанавливаем по ссылке расширение Forge Space Batch Florence-2: https://github.com/Haoming02/forge-space-batch-florence-2.git
Разумеется расширение устанавливается на вкладку "SPACE", поэтому переходим на эту вкладку и жмем напротив BATCH - Florence-2: Image Captioning and Object Detection кнопку "LAUNCH".
После чего в соседней вкладке web-браузера запустится новое окно:
Переходим в нашу папку с исходными изображениями и копируем ее полный путь. Вставляем путь в поле Working Directory (вверху справа) и жмем кнопку Run, после чего начнется автоматическое распознавание картинок, а рядом с картинками станут появляться TXT-файлики с описаниями.
ВНИМАНИЕ: если в рабочей папке картинки разных размеров то процесс может и стопорнуться (ловим ошибку в консоли ValueError: Unable to infer channel dimension format).
По умолчанию будет выбрана задача (Task) - More Detailed Caption как более подробное описание, для будущих промптов без правки советую использовать именно ее, можно еще выбрать Caption и Detailed Caption, но деталей будет меньше. Справа, если убрать галочку - Recursive то кроме промптов будут сохраняться копии файлов с отметками на каких местах на картинках был фокус модели при анализе. Возможно вам это будет интересно. Если отметить радиобатон - Cascased Tasks, то вместо текстовых файлов, промпты будут сохраняться в файлах формата json. Куда их можно после применить - пока ответить не берусь.
Единственный минус у этого расширения это то что файлы не сохраняются в один файл и обьединять их нужно будет вручную. Проще всего сделать из них новую wildcard. Например TXT-файлы объединяем в один файл и ложим его в папку для:
- Forge в webui\extensions\sd-dynamic-prompts\wildcards\
- Fooocus в Fooocus\wildcards\
- в ComfyUI custom нод которые пользуют wildcards несколько, каждая имеет свою папку (как решил себе разработчик пакета), поэтому увы, единого местоположения для них там нет.
Далее в Forge нужно перейти во вкладку Wildcards Manager и выбрать ваш файл, затем скопировать его название с двумя подчеркиваниями __имяфайла__ и вставить в свой промпт. Чтобы картинки были по списку следует убрать галочку для "Shuffle wildcards before use for more random outputs". Затем ставим количество "Batch count" равное количеству строк в файле и идем заниматься своими делами. Если они у вас еще есть)).
Или еще проще с помощью скрипта - Prompts from file or textbox. Переходим к скриптам на панели расширений и выбираем внизу - Prompts from file or textbox. Затем закидываем файл с промптами в поле загрузки и жмем Generate. Теперь все промпты, которые есть в вашем файле будут обработаны.
В Fooocus wildcards доступны всегда. Поэтому просто вставляете в поле промпта имя файла как __имяфайла__, указываете количество генераций на равное количеству строк в файле и вперед Generate. Чтобы картинки были по списку, не забудьте выбрать галочку "Read wildcards in order" в Developer mode.
Удачи.


5 comments:
JSON тот самый формат который отдает штатная Florence2.
Сейчас наблюдаю четкий тренд - свежие гуру от комфи каждый раз любят подчеркнуть что они снесли у себя фукус или автоматик, хотя советы продолжают раздавать как и раньше.))
В меню «Dynamic Prompts» ставим галочку в позиции «Combinatorial generation» и в settings "Disable sortings of wildcards". Тогда будет последовательная генерация.
А можно свои webui\extensions\sd-dynamic-prompts\wildcards\ перенести в другое место диска?
Только через symlink, штатно автор не предусмотрел замену пути.
Post a Comment
А что вы думаете по этому поводу?