Skip to content

Redik2/ComfyTG

Repository files navigation

Этот проект связывает 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"
  }
}

Особые параметры

  1. chat_id
    Всегда передаётся ID чата, куда нужно отправить изображение. Этот параметр должен быть обязательно указан в схеме. Его тип — str, а путь должен указывать на Save Image/image_prefix в модели.

  2. rseed0 - rseed999
    Эти параметры используются для передачи случайного сида генерации. Они не обязательны, но если присутствуют, их тип должен быть int.