face2sticker - бот, который превратит ваше фото в комикс-стикер. С текстом!
Как неудачное приложение из конкурса telegram обрело вторую жизнь. В telegram.
Идея
Этим летом telegram устроил конкурс по разработке мобильного приложения для создания стикеров.
С мобильной разработкой до этого момента я вообще не сталкивался, но у меня уже был другой бот, который делал из фото комиксы. Переделав исходный комикс-алгоритм под новую задачу, я сваял на коленке приложение на react native. Оно просто стучалось на api и позволяло сохранить и пошерить результат.
Приложение это после торжественного запуска утонуло в минусах. Впрочем, сообщество оказалось беспристрастно и заминусовало вообще всех, судя по тому, что максимальный балл там сейчас -1, лол.
¯\_(ツ)_/¯
Не дожидаясь результатов конкурса, я решил завернуть новый алгоритм в бота. И не прогадал, так как результатов конкурса все еще нет, а на дворе уже конец октября. Прием работ, напомню, был завершен в начале июля 😂
face2sticker
В итоге получился telegram бот с одной функцией. Запустил я его еще летом, то есть до того, как это стало мейнстримом 😈
Работает просто:
- отправляете фото и текст @face2stickerbot
- получаете сами стикеры и их .png версии
- отправляете друзьям
Стикеры также можно добавить в стикерпак с помощью официального бота @stickers
.png файлы можно использовать как угодно, хоть в том же instagram - прозрачность там отлично работает.
Правда, это на самом деле не png, а webp, так как телеграм не дает отправить webp файлом :(
Детали
Расскажу немного о реализации.
Сам бот написан на TypeScript/telegraf.js, алгоритм обработки фото - на питоне.
Пример бота в связке с питоном. Ему уже пара лет, но если будет интерес, могу попробовать причесать код текущего бота и тоже выложить на гитхаб.
Под капотом алгоритма несколько нейросетей, каждая из которых выполняет свою роль.
u2net создает маску для отделения ключевых объектов от фона,
RetinaFace обнаруживает лица и их ключевые точки.
Лицо вырезается, улучшается с помощью GPEN, стилизуется unet и вклеивается на фон, который также предварительно улучшается и стилизуется.
Вместе с этим изображения немного блюрятся и шарпятся для большего комикс-эффекта.
По координатам лица определяем, в какой части фото оно находится, и, исходя из этого, рисуем баббл с текстом. Вуаля!
Что дальше
Уже было небольшое обновление, в котором была добавлена минималистичная обработка - улучшение и обводка контуров лица, без комикс-стиля.
Алгоритм постоянно совершенствуется и облегчается, чтобы в будущем запилить поддержку анимированных стикеров.
Также в планах добавить и стикер-менеджмент, чтобы можно было создавать стикерпаки не отходя о кассы.
Если у вас есть какие-то пожелания - не забудьте отписать в комментах.
На этом все, спасибо за ваше время и крутых вам стикеров!
Как говорится, го тыкать, я создал -> @face2stickerbot
Комментарий недоступен
круто то что ты на Гарри Поттера похож
Неплохо…
Вот и апдейт подъехал… чёт правда этот мульти стиль иногда выглядит оч крипово ))
Выглядит интересно!
Делитесь результатами)
Очень круто! А кошки криповые 🙈😀
Но какой-то такой вариант можно получить, хоть и не в этом боте)
Настя Настя - Класс Класс
Все нейронки обучались на лицах, поэтому да, животных не щадит)
Я пока оставил только прием фото, без документов, потому что делал по принципу из этого стикера :D
Класс! А *.webp на вход он не берет?)
Прикольно! Дай возможность делать стики без подписи за покупку подписки, вообще огонь будет.
Спасибо! Да, часто просят такую фичу. Думаю, смогу в ближайшее время запилить в ручном режиме (донат с указанием telegram id = подписка). Такой вариант подойдет?)
Добавил подписку внутри телеграм. Должно появиться в сообщении бота при отправке фото.
Очень крутое приложение !
Очень крутой бот. Серьезно, это действительно годная работа
Спасибо! Ради таких отзывов и хочется работать)
А на сколько ресурсоемка по нагрузке на проц эта обработка фото? И фильтр наложить, и лицо найти чтобы стрелочку в верном месте нарисовать
Всю основную нагрузку я вынес на серверлесс хостинг с GPU. В среднем создание стикеров занимает 2-3секунды, основная нагрузка из которых - улучшение фото и стилизация. Поиск лица и альфа-канала занимают 10-25%, в зависимости от размера исходника. А сам бот хостится на самой дешевой виртуалке за $5
Ты не подумай, но выходит всрато пока ))
У База Лайтера на теле белые области и блики вырезало к херам.
Обводка мыльная и местами рваная, не кошерно.
Формат на выходе какой? Визуально выглядит как залупа 100х100
Водяной знак много места сжирает, есть смысл лепить его на белой плашке на самой картинке (как генераторы мемов)
Но за старания аплодирую 👏🏼
За фидбек по статье спасибо, но вы и ботом воспользуйтесь ради интереса ;)
Пользовался еще летом (не знаю, откуда узнал про вас), клевый проект. Спасибо!)
Видимо, немножко сработал сарафан) Спасибо!
Затестил, классная штука)
Буду пользоваться)
Удачи в развитии 🔥
Благодарю!
а вот и пост :)
Еще раз спасибо за волшебный пинок)
А есть или будет возможность убрать водяной знак? Был бы готов и копеечку заплатить за такую фичу
Добавил возможность подписки, думаю сделать систему типа Яндекс.Плюса - позже внедрю премиум для других своих ботов по единой подписке)
Подойдет ли ручной вариант а-ля "донат с указанием telegram id = подписка"?
Спасибо за фидбек! Формат на выходе 512х512
Интересно, нужно попробовать. Судя по комментариям очень интересная штука.
Результаты по конкурсам они всегда затягивают
Когда я участвовал, чуть ли не через пол года выложили результаты, и еще через несколько месяцев призовые выплатили
Классно, мне понравилось! Молодец!
Какую-то телку из меня создал... Сексуальную, правда 😉😂
Да, порой выдает такие фейлы, что даже забавно)
Если честно, уже переизбыток этих стикеров какой-то, что еще новых создавать как-то нет желания)
Возможно, но если желание вдруг появится, вы знаете, куда идти)
Кто анонимно донатил больше $5, отпишитесь плиз с деталями доната, дам подписку!
Как раз 1 числа паспорт менять, буду настаивать на фотке из бота!)) Классно вышло.
Добавил еще один стиль! Отсюда - https://github.com/bryandlee/animegan2-pytorch
Комментарий удален модератором
Удобно, прикольно, но 400 руб в месяц, чтобы убрать подпись это перебор. У меня тариф мобильного столько стоит. Я заплачу, месяц попользуюсь и забуду.
Согласен! Отсутствие вотермарки - скорее приятный бонус поддержавшим мой канал и бота.
Комментарий удален модератором
Комментарий удален модератором
Комментарий удален модератором
Комментарий удален модератором
Комментарий удален модератором
Комментарий удален модератором
*misclick*
Спасибо, вы принесли много пользы
Есть сайты, которые дают картинки для дизайна, бесплатно
Это лучшее: https://freestockpng.net/ru/
Круто!!! Правда на днях почему-то перестал работать) но все равно круто!
Классная штука! Надо попробовать
Все написано умер бот
Что делать,если этот бот умер?
да, оч печально
Комментарий удален модератором