ComfyUI Extension
comfyui-pose-selector
ComfyUI module for selecting and managing text prompts (poses) from a modular JSON library with visual preview. (Description by CC)
AlexZHIMuk/comfyui-pose-selector
Nodes—
On cloudLocal install
Stars4
Updated4 days ago
Readme
Pose Selector for ComfyUI - Developer Guide
Этот модуль предназначен для выбора текстовых промптов (поз) из модульной JSON-библиотеки с визуальным превью и автоматической подстановкой в текст через тег {POSE}.
Архитектура модуля
1. Категории и Данные (js/categories/)
- Библиотека разделена на
.jsonфайлы, каждый из которых представляет отдельную категорию. - Стандарты именования (Strict Rules):
- Имя позы (
name): Должно начинаться с имени JSON-файла + порядковый номер (например, вClassic.jsonпозы называютсяClassic 01,Classic 02). - Изображение (
image): Имя файла изображения в папкеposes/должно строго соответствовать имени позы (например,Classic 01.jpg). - Исключение из рандома: Если имя JSON-файла начинается с подчеркивания (например,
_Hidden.json), категория будет доступна для ручного выбора, но не будет участвовать в глобальном рандоме (random_from_all).
- Имя позы (
2. Backend (pose_selector.py)
- Динамический импорт: При запуске сканирует JSON-файлы, сортирует их по алфавиту и формирует списки для валидации в ComfyUI.
- Входы:
text: Текст с тегом{POSE}.category&pose_name: Выбор категории и конкретной позы.random_from_category(BOOLEAN): Рандом внутри выбранной рубрики.random_from_all(BOOLEAN): Рандом по всей библиотеке (за исключением файлов с префиксом_).sequential_selection(BOOLEAN): Последовательный перебор поз. Использует формулуindex = seed % count. Работает как для отдельной категории, так и для всего списка (если включенrandom_from_all).seed(INT): Контроль случайности или индекс для последовательного выбора.
- Логика работы:
- IS_CHANGED: Возвращает
seed, если включен рандом или последовательный перебор, чтобы форсировать выполнение ноды. - Синхронизация: Через
PromptServerотправляет событиеpose_selector_updateдля мгновенного обновления UI при серверном рандоме. - Исключение из выборки: Если в
categoriesположить JSON с подчёркиванием первым символом (_Sample.json), то из этой категории промпты в выборку попадать не будут.
- IS_CHANGED: Возвращает
3. Frontend (js/pose_selector.js)
- Динамическая фильтрация: Обновляет список
pose_nameпри сменеcategory. - Кэширование: Все запросы к JSON-файлам дополняются временной меткой (
?t=...), что предотвращает использование устаревших закэшированных данных браузером после правок JSON. - Интерфейс:
- Превью: Отрисовывается в кастомном виджете
pose_preview. - Кнопки Random: Позволяют вручную перемешать позы прямо в интерфейсе без запуска генерации.
- Превью: Отрисовывается в кастомном виджете
Установка и Окружение
Скопировать папку comfyui-pose-selector в ComfyUI/custom_nodes/.