Skip to content

A Customizable Realistic Human Photos Generator via Telegram bot + FastApi backend server

Notifications You must be signed in to change notification settings

TeamSeshDeadBoy/StyleTransferSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StyleTransfer - Photomaker bot

StyleTransfer - Генерация изображений с помощью Telegram Bot и DL-модели Photomaker

image

Проект состоит из трех модулей, обернутых в 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

Установка:

Установка через самостоятельную сборку контейнеров:

  1. **Запулить основной python image для сборки контейнеров: docker pull ayyyoshii/base_python:style
  2. Переименовать python image: docker tag ayyyoshii/base_python:style base_python/1
  3. Клонировать репозиторий
  4. Создать .env файл по примеру .template_env 2
  5. Занести необходимую информацию в .env (токен Бота, настройки при необходимости)
  6. Собрать проект через docker compose build
  7. Запустить проект через docker compose up

Установка через docker-hub:

  1. **Запулить основной python image для сборки контейнеров: docker pull ayyyoshii/base_python:style
  2. Переименовать python image: docker tag ayyyoshii/base_python:style base_python/1
  3. Создать .env файл по примеру .template_env 2
  4. Скопировать compose.yaml 1 файл
  5. Изменить файл compose.yaml:
        services:
            consumer-fastapi:
                ...
                image:
                    - ayyyoshii/style-transfer-server:v1.1_optimized
                ...
            tg-bot:
                ...
                image:
                    - ayyyoshii/style-transfer-bot:v1.1
                ...
            ...
        ...
  6. Запустить контейнеры через docker compose up

Photomaker модель:

image

Модель является 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"

Footnotes

  1. compose.yaml 2

  2. .template_env 2