Этот проект связывает ComfyUI и Telegram настолько, насколько это возможно и удобно для меня.
Для установки склонируйте репозиторий и установите необходимые библиотеки. Рекомендуется создать виртуальное окружение.
git clone https://github.com/Redik2/ComfyTG.git
cd ComfyTG
python -m venv venv
source venv/bin/activate # Для Linux/macOS
venv\Scripts\activate # Для Windows
pip install -r requirements.txt
В проекте есть файл config.json
, в который нужно записать токен бота и указать абсолютный путь к папке, куда сохраняются изображения из ComfyUI (в JSON на Windows может потребоваться использовать \\
вместо /
).
Для запуска необходимо открыть main.py
с помощью интерпретатора Python, в который установлены зависимости.
Чтобы создать новый промпт, нужно добавить модель в /models
и схему для этой модели в /schemas
.
Пример структуры:
/models
example.json
cool_model_123.json
/schemas
example.json
cool_model_123.json
Для нового промпта экспортируйте модель из ComfyUI в формате API. После экспорта модель не должна изменяться.
Схемы — это JSON-файлы, представляющие собой словарь формата "параметр": {"type": "тип параметра", "path": "путь"}
. Они предназначены для удобного доступа к параметрам модели.
- Параметр — название параметра (без пробелов), которое может не совпадать с названием параметра в модели. Его можно указывать и изменять через интерфейс бота.
- Тип параметра — допустимые типы:
str
,int
,float
,bool
. - Путь — строка вида
path/to/parameter
, указывающая на путь к параметру в модели.
Пример:
"7": {
"inputs": {
"text": "some really cool prompt",
"clip": [
"1",
1
]
},
"class_type": "CLIPTextEncode",
"_meta": {
"title": "CLIP Text Encode (Prompt)"
}
}
{
"positive_prompt": {
"type": "str",
"path": "7/inputs/text"
}
}
-
chat_id
Всегда передаётся ID чата, куда нужно отправить изображение. Этот параметр должен быть обязательно указан в схеме. Его тип —str
, а путь должен указывать наSave Image/image_prefix
в модели. -
rseed0
-rseed999
Эти параметры используются для передачи случайного сида генерации. Они не обязательны, но если присутствуют, их тип должен бытьint
.