StyleTransfer - Генерация изображений с помощью Telegram Bot и DL-модели Photomaker
Проект состоит из трех модулей, обернутых в docker-container:
- Telegram bot (PytelegramBotApi)
- Backend (FastAPI + Torch + CUDA)
- Redis (Redis Queue)
Все модули собраны в одну композицию через docker-compose 1
Использование модели происходит через встроенный интерфейс Telegram через создаваемого Телеграм бота. Пользователь настраивает свой
конфигурационный файл, затем присутпает к генерации. Фотографии пользователя, промпт и настройки передаются на FastAPI бэкэнд, где задача генерации
добавляется в очередь через RedisQueue. Очередь задач запускает 'воркеров' на выполнение задач, на А10 генерация картинки занимает 17 секунд,
занимает до 22гб видеопамяти на оптимизированной (с VAE slicing) и до 35гб на неоптимизированной (out-of-the-box) модели.
Для использования необходима NVidia GPU c 20+ гигабайтами видеопамяти и установленные CUDA драйвера. Вывод картинки происходит через telegram bot.
- CUDA NVIDIA GPU drivers (v 11.6)
- 21gb + GPU MEM
- **Запулить основной python image для сборки контейнеров:
docker pull ayyyoshii/base_python:style
- Переименовать python image:
docker tag ayyyoshii/base_python:style base_python/1
- Клонировать репозиторий
- Создать .env файл по примеру .template_env 2
- Занести необходимую информацию в .env (токен Бота, настройки при необходимости)
- Собрать проект через
docker compose build
- Запустить проект через
docker compose up
- **Запулить основной python image для сборки контейнеров:
docker pull ayyyoshii/base_python:style
- Переименовать python image:
docker tag ayyyoshii/base_python:style base_python/1
- Создать .env файл по примеру .template_env 2
- Скопировать compose.yaml 1 файл
- Изменить файл compose.yaml:
services: consumer-fastapi: ... image: - ayyyoshii/style-transfer-server:v1.1_optimized ... tg-bot: ... image: - ayyyoshii/style-transfer-bot:v1.1 ... ... ...
- Запустить контейнеры через
docker compose up
Модель является One-shot генеративной моделью, выпущена 15.01.2024 командой TencentARC, в моей имплементации требует 20 гб видеопамяти.
Модель имеет возможности стилизации и реалистичной генерации, я имплементировал реалистичную генерацию.
id: "[@li2023photomaker]"
- authors:
- Li Zhen
- Cao Mingdeng
- Wang Xintao
- Qi Zhongang
- Cheng Ming-Ming
- Shan Ying
- issued: 2024
- title: "PhotoMaker: Customizing realistic human photos via stacked ID embedding"