Skip to content

A-n-d-r-e-w-y/DLS_part_1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram bot for Style Transferring

Описание работы приложения

Бот позволяет переносить стиль с двух картинок на третью.
Список доступных команд:

  • /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

Если какие-то зависимости не установились, можно попробовать поставить их отдельной с другой версией.

P.S. по всем вопросам писать сюда:
https://t.me/Andrewyyy (могу и запустить бота)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages