Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
37 KiB
Telegram Bot для генерации изображений через Stable Diffusion (Automatic1111)
Бот для генерации изображений через API Stable Diffusion WebUI (Automatic1111) с поддержкой профилей, управления хранением изображений и удобным интерфейсом.
Возможности
- 🎨 Генерация изображений (txt2img) — создание изображений по текстовому описанию
- ⚙️ Система профилей — сохранение настроек (размер, модель, LoRA, сэмплер и т.д.)
- 🗃️ Управление хранением — настройка времени хранения изображений (автоочистка)
- 📊 Мониторинг — проверка статуса подключения к SD API
- 🐳 Docker — простая установка и запуск в контейнере
- 🛡️ Админ-панель — управление пользователями, лимитами и доступом
Содержание
- Что умеет бот
- Требования
- Настройка Stable Diffusion WebUI
- Создание Telegram бота
- Установка бота
- Настройка конфигурации
- Запуск бота
- Использование бота
- Примеры промптов
- Структура проекта
- FAQ
- Устранение неполадок
Что умеет бот
🎨 Генерация изображений
Бот позволяет создавать изображения двумя способами:
txt2img (текст → изображение) — опишите словами, что хотите увидеть, и бот сгенерирует изображение. Вы вводите промпт (описание) и необязательный негативный промпт (чего НЕ должно быть на картинке), а бот передаёт запрос в Stable Diffusion и возвращает готовое изображение.
После генерации бот покажет все параметры: промпт, размер, количество шагов, CFG Scale, сэмплер, шедулер, seed, модель и время хранения изображения.
⚙️ Система профилей
Создавайте и сохраняйте профили с предустановленными настройками, чтобы не вводить их каждый раз заново:
| Параметр | Описание |
|---|---|
| Размер изображения | Предустановленные (512×512, 768×768, 512×768, 768×512, 1024×1024) или произвольный (64–2048 px) |
| Количество шагов | От 10 до 150. Больше шагов = выше качество, но дольше генерация |
| CFG Scale | От 1.0 до 30.0. Определяет, насколько строго модель следует промпту (стандарт: 7.0) |
| Сэмплер | Euler a, Euler, DPM++ 2M Karras, DPM++ SDE Karras, DDIM и другие — загружаются из SD API |
| Шедулер | Автоматически подбирается к сэмплеру |
| Модель | Выбор из всех доступных моделей в вашем SD WebUI |
| LoRA | Подключение LoRA с настраиваемой силой (0.0–1.0) |
| Негативный промпт | Описание того, чего НЕ должно быть на изображении |
Вы можете установить один профиль как профиль по умолчанию (⭐) — тогда при генерации будут автоматически применяться его настройки.
🛡️ Админ-панель
Администратор (указанный в ADMIN_ID) имеет доступ к панели управления:
- Добавление пользователей — выдача доступа по Telegram User ID
- Типы доступа:
- ♾️ Без ограничений — полный доступ навсегда
- ⏰ По времени — доступ на заданное количество дней (1–3650)
- 🎨 По количеству генераций — лимит на число сгенерированных изображений
- Список пользователей — просмотр, пагинация, управление
- Управление пользователями — блокировка, разблокировка, обновление доступа, удаление
- Очистка истёкших доступов — автоматическая деактивация пользователей с истёкшим сроком
Как узнать свой User ID? — Напишите боту @userinfobot в Telegram.
🗃️ Управление хранением
Каждый пользователь может настроить время хранения своих сгенерированных изображений:
- Предустановленные варианты: 12 ч, 24 ч (1 день), 48 ч (2 дня), 72 ч (3 дня), 168 ч (7 дней)
- Произвольное значение — от 1 часа до максимума (
MAX_IMAGE_TTL_HOURS) - Автоматическая очистка — фоновая задача удаляет просроченные изображения с заданным интервалом
📊 Мониторинг
Команда /status или кнопка «Статус SD API» покажет:
- Статус подключения к SD API
- Адрес API
- Текущую загруженную модель
🔐 Система доступа
Бот по умолчанию не допускает новых пользователей — только те, кого добавил администратор, могут пользоваться ботом. Это защищает от несанкционированного использования ваших ресурсов.
При попытке использования бота без доступа пользователь получит сообщение об ошибке.
📋 Команды бота
| Команда | Описание |
|---|---|
/start |
Запуск бота, приветствие и главное меню |
/menu |
Показать главное меню |
/status |
Проверка статуса SD API |
/cancel |
Отмена текущей операции |
/admin |
Админ-панель (только для администратора) |
Требования
Для сервера с ботом (Docker)
- Операционная система: Linux (Ubuntu 20.04+), Windows 10/11 с WSL2, macOS 12+
- Docker: версии 20.10+
- Docker Compose: версии 2.0+
- Свободное место: ~500 МБ для бота + место для изображений
- Оперативная память: минимум 256 МБ для контейнера бота
- Сеть: доступ к серверу Stable Diffusion по локальной сети
Для сервера со Stable Diffusion
- Stable Diffusion WebUI (Automatic1111) — запущенный и доступный по сети
- API режим — включён флагом
--api - Сетевой доступ — слушает не только localhost (флаг
--listen)
Настройка Stable Diffusion WebUI
1. Запуск с поддержкой API
На сервере, где установлен Stable Diffusion WebUI, запустите его со следующими флагами:
# Для Linux
./webui.sh --api --listen
# Для Windows
webui.bat --api --listen
Обязательные флаги:
| Флаг | Описание |
|---|---|
--api |
Включает программный API для бота |
--listen |
Позволяет подключаться не только с localhost |
Опциональные флаги:
| Флаг | Описание |
|---|---|
--port 7860 |
Указать порт (по умолчанию 7860) |
--nowatchdog |
Отключить watchdog (рекомендуется для серверов) |
--xformers |
Использовать xformers для ускорения (если поддерживается) |
Пример полной команды:
./webui.sh --api --listen --port 7860 --nowatchdog
2. Проверка доступности API
После запуска проверьте, что API доступен:
# С сервера с ботом (замените IP на ваш)
curl http://192.168.1.120:7860/sdapi/v1/options
Вы должны получить JSON-ответ с настройками API.
3. Настройка firewall (если необходимо)
Убедитесь, что порт 7860 открыт для подключения с сервера бота:
# Для Ubuntu/Debian (UFW)
sudo ufw allow 7860/tcp
# Для CentOS/RHEL (firewalld)
sudo firewall-cmd --permanent --add-port=7860/tcp
sudo firewall-cmd --reload
Создание Telegram бота
1. Получение токена бота
- Откройте Telegram и найдите бота @BotFather
- Отправьте команду
/newbot - Следуйте инструкциям:
- Введите отображаемое имя бота (например,
SD Generator) - Введите username бота (должен заканчиваться на
bot, напримерsd_gen_bot)
- Введите отображаемое имя бота (например,
- BotFather отправит вам токен вида
123456789:ABCdefGHIjklMNOpqrsTUVwxyz
2. Настройка описания бота (опционально)
В BotFather:
/setdescription — описание, которое видит пользователь до начала общения
/setabouttext — короткое описание для поиска ботов
/setuserpic — аватар бота
Установка бота
Способ 1: С помощью Docker Compose (рекомендуется)
1. Клонирование или копирование файлов
Скопируйте все файлы проекта на сервер, где будет работать бот:
tg-sd/
├── main.py
├── config.py
├── requirements.txt
├── Dockerfile
├── docker-compose.yml
├── .env
├── bot/
│ ├── __init__.py
│ ├── handlers_start.py
│ ├── handlers_generation.py
│ ├── handlers_profiles.py
│ └── handlers_settings.py
├── sd/
│ ├── __init__.py
│ └── sd_client.py
├── database/
│ ├── __init__.py
│ └── database.py
└── utils/
├── __init__.py
└── image_manager.py
2. Настройка переменных окружения
Откройте файл .env и укажите ваши значения:
nano .env
Обязательные параметры:
# Токен вашего бота (получите у @BotFather)
BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz
# Адрес Stable Diffusion API
SD_API_URL=http://192.168.1.120:7860
Опциональные параметры:
# Время хранения изображений по умолчанию (часы)
DEFAULT_IMAGE_TTL_HOURS=48
# Максимальное время хранения (часы)
MAX_IMAGE_TTL_HOURS=168
# Период автоматической очистки (минуты)
CLEANUP_INTERVAL_MINUTES=30
3. Создание необходимых директорий
mkdir -p images data
4. Запуск бота
# Сборка и запуск
docker compose up -d --build
# Проверка логов
docker compose logs -f tg-sd-bot
5. Остановка бота
# Остановка
docker compose down
# Остановка с удалением контейнера и volumes
docker compose down -v
Способ 2: Без Docker (прямой запуск)
1. Установка Python
Убедитесь, что установлен Python 3.10+:
python3 --version
2. Создание виртуального окружения
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# или
venv\Scripts\activate # Windows
3. Установка зависимостей
pip install -r requirements.txt
4. Настройка окружения
cp .env.example .env
nano .env # Укажите ваши значения
5. Запуск бота
python main.py
Настройка конфигурации
Файл .env
| Параметр | Описание | По умолчанию | Обязательно |
|---|---|---|---|
BOT_TOKEN |
Токен Telegram бота | — | ✅ Да |
SD_API_URL |
URL Stable Diffusion API | http://192.168.1.120:7860 |
✅ Да |
IMAGES_DIR |
Путь к папке изображений | /app/images |
Нет |
DEFAULT_IMAGE_TTL_HOURS |
Время хранения по умолчанию | 48 |
Нет |
MAX_IMAGE_TTL_HOURS |
Максимальное время хранения | 168 |
Нет |
CLEANUP_INTERVAL_MINUTES |
Интервал очистки | 30 |
Нет |
DB_PATH |
Путь к базе данных | /app/data/bot.db |
Нет |
Запуск бота
Docker Compose
# Запуск
docker compose up -d
# Просмотр логов
docker compose logs -f
# Перезапуск
docker compose restart
# Остановка
docker compose down
# Обновление (после изменений в коде)
docker compose up -d --build
Прямой запуск
# Активация окружения
source venv/bin/activate
# Запуск
python main.py
# Остановка: Ctrl+C
Запуск как сервис (systemd, Linux)
Создайте файл сервиса:
sudo nano /etc/systemd/system/tg-sd-bot.service
Содержимое:
[Unit]
Description=Telegram SD Bot
After=network.target
[Service]
Type=simple
User=your_user
WorkingDirectory=/path/to/tg-sd
ExecStart=/path/to/tg-sd/venv/bin/python main.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
Активация:
sudo systemctl daemon-reload
sudo systemctl enable tg-sd-bot
sudo systemctl start tg-sd-bot
# Проверка статуса
sudo systemctl status tg-sd-bot
# Просмотр логов
sudo journalctl -u tg-sd-bot -f
Использование бота
Команды
| Команда | Описание |
|---|---|
/start |
Запуск бота, главное меню |
/menu |
Показать главное меню |
/status |
Проверка статуса SD API |
/cancel |
Отмена текущей операции |
Генерация изображения (txt2img)
- Нажмите "🎨 Генерация (txt2img)"
- Введите описание изображения (промпт)
- Введите негативный промпт (или
-для пропуска) - Дождитесь результата
Пример промпта:
a beautiful sunset over mountains, golden hour, dramatic clouds, 4k, highly detailed
Пример негативного промпта:
blurry, low quality, watermark, text, deformed
Генерация на основе изображения (img2img)
- Нажмите "🖼️ Генерация (img2img)"
- Отправьте изображение
- Введите промпт
- Выберите силу изменений
Управление профилями
- Нажмите "⚙️ Профили"
- Создайте новый профиль
- Настройте параметры:
- Размер изображения (512x512, 768x768, и т.д.)
- Количество шагов
- CFG Scale
- Сэмплер
- Модель
- LoRA и его сила
- Негативный промпт
- Установите профиль по умолчанию (⭐)
Настройки хранения
- Нажмите "🗑️ Настройки хранения"
- Выберите время хранения:
- 12 часов
- 24 часа (1 день)
- 48 часов (2 дня)
- 72 часа (3 дня)
- 168 часов (7 дней)
- Пользовательское значение
Примеры промптов
📸 Фотореализм и портреты
professional portrait photograph of a young woman, natural lighting, soft focus, shallow depth of field, 85mm lens, film grain, highly detailed skin texture
elderly fisherman on a wooden boat at dawn, misty lake, warm golden light, cinematic composition, photorealistic, 4k
Негативный промпт:
blurry, low quality, watermark, text, deformed, extra fingers, bad anatomy, cartoon, illustration
🌄 Пейзажи и природа
majestic mountain range at sunset, snow-capped peaks, golden hour lighting, dramatic clouds reflected in a crystal clear alpine lake, wide angle, national geographic style
enchanted forest with bioluminescent mushrooms, fireflies, moonlight filtering through ancient trees, magical atmosphere, fantasy landscape, highly detailed
Негативный промпт:
urban, buildings, people, watermark, text, blurry, oversaturated
🏙️ Архитектура и города
futuristic cyberpunk city at night, neon lights, flying cars, towering skyscrapers with holographic advertisements, rain-soaked streets, cinematic lighting, blade runner style
ancient Greek temple ruins at sunrise, marble columns, overgrown with vines, peaceful atmosphere, warm morning light, archaeological photography style
Негативный промпт:
modern cars, people, watermark, text, low quality, distorted perspective
🐉 Фэнтези и фантастика
epic dragon perched on a volcanic cliff, iridescent scales, wings spread wide, stormy sky with lightning bolts, fantasy art, highly detailed, dramatic lighting, artstation trending
astronaut floating in a nebula, surrounded by cosmic dust and stars, surreal space scene, vivid colors, cinematic composition, digital art
Негативный промпт:
realistic, photograph, blurry, low resolution, watermark, text, bad anatomy
🎨 Художественные стили
oil painting of a Japanese garden in autumn, red maple trees, stone lantern, koi pond, impressionist style, visible brushstrokes, Monet inspired
watercolor illustration of a cozy cafe on a rainy day, warm interior light visible through windows, soft pastel colors, lo-fi aesthetic
pixel art of a medieval castle, 16-bit style, game sprite, clean pixels, side view
Негативный промпт:
photorealistic, 3d render, blurry, watermark, text
🍱 Аниме стили
anime girl with silver hair and blue eyes, wearing a school uniform, cherry blossom petals falling, soft lighting, Makoto Shinkai style, highly detailed anime art
anime scene of a samurai standing on a bridge at sunset, dramatic pose, katana drawn, wind blowing cloak, Studio Ghibli style, beautiful background art
Негативный промпт:
realistic, photograph, 3d, bad anatomy, extra limbs, watermark, text, low quality
🍔 Предметы и еда
professional food photography of a gourmet burger, melted cheese dripping, fresh ingredients, dark background, studio lighting, commercial photography style, 4k
luxury Swiss watch on a velvet cushion, macro photography, intricate details, dramatic side lighting, product photography, bokeh background
Негативный промпт:
amateur, blurry, watermark, text, bad lighting, distorted
💡 Советы по составлению промптов
- Используйте английский язык — модели лучше понимают английские описания
- Будьте конкретны — «sunset over mountains» лучше, чем просто «landscape»
- Добавляйте стиль — укажите «oil painting», «photograph», «anime style» и т.д.
- Описывайте освещение — «golden hour», «dramatic lighting», «soft morning light»
- Указывайте качество — «4k», «highly detailed», «professional photography»
- Добавляйте композицию — «close-up», «wide angle», «macro», «portrait»
- Используйте негативный промпт — это убирает нежелательные элементы
🔗 Полезные ресурсы для промптов
- PromptHero — база промптов с примерами изображений
- Lexica — поиск по Stable Diffusion изображениям и промптам
- OpenArt — галерея с промптами
- Civitai — модели, LoRA и примеры промптов
FAQ
Общие вопросы
❓ Что нужно для работы бота?
Вам понадобятся:
- Telegram Bot Token — получите у @BotFather
- Запущенный Stable Diffusion WebUI (Automatic1111) с флагами
--api --listen - Сервер для запуска бота (Docker или Python)
Бот и SD WebUI могут работать на разных машинах — главное, чтобы бот имел сетевой доступ к SD API.
❓ Можно ли использовать бота без своего GPU?
Да! Бот может работать на слабом сервере (даже на VPS с 256 МБ RAM), а Stable Diffusion — на мощной машине с GPU в вашей локальной сети. Бот лишь передаёт запросы и возвращает изображения.
❓ Какие модели поддерживаются?
Любые модели, загруженные в ваш SD WebUI:
- Stable Diffusion 1.5 / 2.1
- SDXL
- Кастомные модели (ckpt/safetensors) — любые, которые вы загрузили
Бот автоматически подтягивает список доступных моделей из API.
❓ Поддерживаются ли LoRA?
Да! При создании профиля вы можете выбрать LoRA из списка доступных и настроить его силу (0.0–1.0). Список LoRA загружается автоматически из SD WebUI.
❓ Бот поддерживает ControlNet?
В текущей версии ControlNet не поддерживается. Если вам нужна эта функция — вы можете реализовать её, расширив sd_client.py.
Генерация
❓ Сколько времени занимает генерация?
Зависит от:
- Количества шагов — 20 шагов ≈ 5–15 секунд на GPU среднего уровня
- Размера изображения — 512×512 быстрее, чем 1024×1024
- Модели — SDXL медленнее, чем SD 1.5
- Нагрузки на GPU — если кто-то ещё использует GPU
Обычно генерация занимает от 10 секунд до 2 минут.
❓ Почему генерация занимает слишком долго?
Возможные причины:
- Слишком много шагов (попробуйте 20–30 вместо 50+)
- Большой размер изображения (попробуйте 512×512 вместо 1024×1024)
- Медленная модель (SDXL тяжелее, чем SD 1.5)
- GPU загружен другими задачами
❓ Что такое CFG Scale?
CFG Scale (Classifier-Free Guidance) определяет, насколько строго модель следует вашему промпту:
- 5.0 — модель более свободна, может добавлять свои детали
- 7.0 — стандарт, хороший баланс
- 9.0+ — модель строго следует промпту, но может стать «перегруженной»
❓ Что такое сэмплер?
Сэмплер — алгоритм, который определяет, как модель «шаг за шагом» создаёт изображение из шума:
- Euler a — быстрый, хорошие результаты
- DPM++ 2M Karras — высокое качество, рекомендуемый
- DPM++ SDE Karras — ещё выше качество, но медленнее
- DDIM — быстрый, но менее детализированный
❓ Можно ли использовать seed из предыдущей генерации?
После генерации бот показывает использованный seed. Вы можете создать профиль с конкретным seed (в текущей версии seed генерируется автоматически). Для точного воспроизведения используйте SD WebUI напрямую.
Профили
❓ Зачем нужны профили?
Профили сохраняют ваши любимые настройки. Вместо того чтобы каждый раз выбирать размер, модель, сэмплер и т.д., вы создаёте профиль один раз и используете его в один клик.
❓ Сколько профилей можно создать?
Ограничений нет — создавайте столько, сколько нужно.
❓ Что делает «профиль по умолчанию»?
Если профиль установлен как по умолчанию (⭐), его настройки будут автоматически применяться при генерации. Вы можете быстро генерировать, вводя только промпт.
Доступ и администрирование
❓ Почему бот не отвечает мне?
Бот работает в закрытом режиме — только пользователи, добавленные администратором, могут его использовать. Обратитесь к администратору, чтобы он добавил вас через админ-панель.
❓ Как добавить пользователя?
- Узнайте Telegram User ID пользователя (через @userinfobot)
- В админ-панели нажмите «➕ Добавить пользователя»
- Введите User ID
- Выберите тип доступа (без ограничений, по времени, по количеству генераций)
❓ Как заблокировать пользователя?
В админ-панели: Список пользователей → выберите пользователя → 🚫 Заблокировать.
❓ Можно ли дать доступ всем?
В текущей версии бот работает только в закрытом режиме. Если вы хотите открыть доступ для всех, необходимо изменить код мидлвари AccessCheckMiddleware.
Хранение изображений
❓ Что происходит с изображениями по истечении срока?
Изображения автоматически удаляются с диска фоновой задачей. Записи в базе данных также очищаются.
❓ Можно ли увеличить время хранения?
Да! В настройках хранения выберите нужное время или введите своё значение (до MAX_IMAGE_TTL_HOURS).
❓ Где хранятся изображения?
В папке images/ проекта. При использовании Docker эта папка примонтирована как volume: ./images:/app/images.
❓ Как скачать изображение?
Просто нажмите на изображение в Telegram и сохраните его. Все изображения отправляются как файлы.
Технические вопросы
❓ Можно ли запустить несколько экземпляров бота?
Теоретически да, но они будут использовать одну базу данных и одну папку изображений, что может привести к конфликтам. Рекомендуется запускать один экземпляр.
❓ Как обновить бот?
docker compose down
# Скопируйте новые файлы
docker compose up -d --build
❓ Как сделать резервную копию?
# База данных
cp data/bot.db backup_$(date +%Y%m%d).db
# Изображения
tar -czf images_backup_$(date +%Y%m%d).tar.gz images/
❓ Как перенести бота на другой сервер?
- Скопируйте все файлы проекта
- Скопируйте
data/bot.db(база данных) - Скопируйте
images/(если нужны старые изображения) - Настройте
.envна новом сервере - Запустите бот
❓ Как ограничить доступ к SD API?
Используйте firewall, чтобы разрешить подключения только с IP сервера бота:
sudo ufw allow from <BOT_SERVER_IP> to any port 7860
Структура проекта
tg-sd/
├── main.py # Точка входа, запуск бота
├── config.py # Настройки и конфигурация
├── requirements.txt # Зависимости Python
├── Dockerfile # Образ Docker
├── docker-compose.yml # Docker Compose конфигурация
├── .env # Переменные окружения (не в Git!)
├── .env.example # Пример переменных окружения
├── .gitignore # Игнорирование файлов Git
│
├── bot/ # Обработчики команд бота
│ ├── __init__.py
│ ├── handlers_start.py # /start, главное меню
│ ├── handlers_generation.py # Генерация изображений
│ ├── handlers_profiles.py # Управление профилями
│ └── handlers_settings.py # Настройки хранения
│
├── sd/ # Модуль Stable Diffusion
│ ├── __init__.py
│ └── sd_client.py # Клиент для SD API
│
├── database/ # Модуль базы данных
│ ├── __init__.py
│ └── database.py # SQLite операции
│
├── utils/ # Утилиты
│ ├── __init__.py
│ └── image_manager.py # Управление изображениями
│
├── images/ # Сгенерированные изображения (создаётся автоматически)
└── data/ # База данных (создаётся автоматически)
Устранение неполадок
Бот не запускается
Проблема: BOT_TOKEN не установлен
Решение: Убедитесь, что в файле .env указан корректный токен:
BOT_TOKEN=ваш_реальный_токен_от_BotFather
Ошибка подключения к SD API
Проблема: SD API недоступно
Возможные причины и решения:
-
SD WebUI не запущен
- Запустите WebUI с флагами
--api --listen
- Запустите WebUI с флагами
-
Неправильный адрес
- Проверьте
SD_API_URLв.env - Убедитесь, что IP-адрес корректный
- Проверьте
-
Firewall блокирует порт
# Проверьте доступность curl http://192.168.1.120:7860/sdapi/v1/options # Откройте порт на сервере SD sudo ufw allow 7860/tcp -
WebUI слушает только localhost
- Убедитесь, что используется флаг
--listen
- Убедитесь, что используется флаг
Таймаут генерации
Проблема: Генерация занимает более 10 минут
Решения:
- Уменьшите количество шагов в профиле
- Уменьшите размер изображения
- Используйте более быструю модель
- Увеличьте таймаут в
sd_client.py(параметрtimeout)
Изображения не сохраняются
Проблема: Ошибка сохранения файлов
Решение: Проверьте права доступа к директории:
# Для Docker
docker compose exec tg-sd-bot ls -la /app/
# Для прямого запуска
chmod 755 images/
chmod 755 data/
Проблемы с базой данных
Проблема: Ошибки записи в БД
Решение: Убедитесь, что директория data/ существует и доступна для записи:
mkdir -p data
chmod 755 data
Логи бота
Docker:
docker compose logs -f tg-sd-bot
Прямой запуск:
Логи выводятся в консоль. Для записи в файл:
python main.py 2>&1 | tee bot.log
Безопасность
- Никогда не коммитьте
.envфайл в Git — он содержит токен бота - Используйте firewall — ограничьте доступ к порту SD API только для сервера бота
- Регулярно обновляйте зависимости — проверяйте обновления пакетов
- Ограничьте доступ к боту — при необходимости добавьте проверку
user_idв обработчиках
Обновление бота
# Остановка
docker compose down
# Копирование новых файлов
# Пересборка и запуск
docker compose up -d --build
Резервное копирование
Для резервного копирования сохраните:
# База данных (профили и настройки)
cp data/bot.db backup_$(date +%Y%m%d).db
# Изображения (если нужно)
tar -czf images_backup_$(date +%Y%m%d).tar.gz images/
Лицензия
Этот проект предоставляется "как есть" без каких-либо гарантий.
Поддержка
При возникновении проблем:
- Проверьте логи бота
- Убедитесь, что SD API доступен
- Проверьте корректность
.envфайла - Обратитесь к разделу Устранение неполадок