Style-Transfer телеграмм бот создает новые изображения с помощью глубоких нейронных сетей, используя как классический алгоритм Гатиса на базе предобученной VGG19, так и CycleGAN. Бот написан с помощью актуальной библиотеки aiogram 3.x для построения асинхронной архитектуры.
Основной код находится в handlers/bot_messages.py
. Бот упакован в Docker контейнер и задеплоен на арендованный сервер. Логи собираются логгером в stdout. Бот оснащен антифлудом.
- Необходимо отправить боту сначала фотографию, стиль которой хотим изменить, а затем фотографию, с которой хотим пересонить стиль.
- Принцип прост: определяется два расстояния, до исходной картинки и до стилевой, и третье изображение преобразуется по градиентному спуску, минимизируя вышеупомянутые расстояния
- Необходимо отправить боту изображение и получить в ответ "картину Ван Гога"
- Здесь принцип работы сложней, используется два генератора и два дискриминатора, работающие над переводами из одного домена в другой, а так же
cycle consistency losses
для сохранения структуры изображений. Благодаря данной реализации модели можно работать с непарными данными. Подробнее в статье
- Возьмите файл
docker-compose.yml
из репозитория; - Возьмите файл
env_example
там же, переименуйте как.env
, откройте и заполните переменные; - Запустите бота:
docker compose up -d
(илиdocker-compose up -d
на старых версиях Docker); - Проверьте, что контейнер поднялся:
docker compose ps
- Клонируйте репозиторий;
- Скопируйте
env_example
под именем.env
, откройте его и заполните переменные; - Установите соответвующие модули из файла
requirements.txt
; - Переместите файл main.py из директории
bot
в корень проекта; - Запустите бота командой
python __main__.py
;