An open API service indexing awesome lists of open source software.

https://github.com/redik2/comfytg

ComfyUI + Telegram Bot usage
https://github.com/redik2/comfytg

comfy-ui comfyui python stable-diffusion telegram telegram-bot telegram-chat

Last synced: about 1 year ago
JSON representation

ComfyUI + Telegram Bot usage

Awesome Lists containing this project

README

          

Этот проект связывает ComfyUI и Telegram настолько, насколько это возможно и удобно для меня.

## Использование

### Установка

Для установки склонируйте репозиторий и установите необходимые библиотеки. Рекомендуется создать виртуальное окружение.

```bash
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`, указывающая на путь к параметру в модели.

Пример:

#### Модель

```json
"7": {
"inputs": {
"text": "some really cool prompt",
"clip": [
"1",
1
]
},
"class_type": "CLIPTextEncode",
"_meta": {
"title": "CLIP Text Encode (Prompt)"
}
}
```

#### Схема

```json
{
"positive_prompt": {
"type": "str",
"path": "7/inputs/text"
}
}
```

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

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

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