Бот позволяет переносить стиль с двух картинок на третью.
Список доступных команд:
- /start (вывести стартовое приветствие)
- /cancel (отменить все предыдущие команды, кроме settings)
- /settings (настроить параметры: число итераций и вес стиля)
- /run (запустить перенос стиля)
- /info (подробное описание команд)
Программа может находится в следующих состояниях:
- null_state (начальное состояние)
- await_photo (ожидание получения фото)
- await_style_1 (ожидание получения первой стилевой картинки)
- await_style_2 (ожидание получения второй стилевой картинки)
- await_size (ожидание выбора размера картинки)
Изначально каждый чат находится в состоянии null_state. Юзер может изменять настройки в любой момент - это не влияет на состояния. После команды /run происходят последовательные переходы между состояниями как указано выше. Юзер может в любой момент вызвать /cancel, тогда это сбросит работу с фото, и снова состоянием будет null_state. После состояния await_size (когда выбран размер картинки), вызывается инференс модели и состояние переходит в null_state. Если юзер будет совершать действия, не относящиеся к состояниям (например, вместо отправки фото он будет что-то писать в чат, бот не будет менять состояние и выведет соответствующее сообщение).
Данные о юзерах хранятся в user_data (database.py): это состояние, параметры запуска, идентификаторы файлов. Каждый раз они обновляются (при соответствующих состояниях)
Почти весь код модели взят отсюда и адаптирован на случай двух стилей (можно добавить и больше): https://pytorch.org/tutorials/advanced/neural_style_tutorial.html
Бот работает в асинхронном режиме. Предполагается, что каждый юзер последовательно выбирает контент, затем первый стиль, затем - второй.
Нужна версия python 3.8
- python3 -m venv tel-env
- source tel-env/bin/activate
- git clone https://github.com/A-n-d-r-e-w-y/DLS_part_1.git
- cd DLS_part_1
- pip3 install --upgrade pip
- pip3 install -r requirements.txt
- python3 main.py
Если какие-то зависимости не установились, можно попробовать поставить их отдельной с другой версией.
P.S. по всем вопросам писать сюда:
https://t.me/Andrewyyy (могу и запустить бота)