face2sticker - бот, который превратит ваше фото в комикс-стикер. С текстом!

Как неудачное приложение из конкурса telegram обрело вторую жизнь. В telegram.

Идея

face2sticker - бот, который превратит ваше фото в комикс-стикер. С текстом!

Этим летом telegram устроил конкурс по разработке мобильного приложения для создания стикеров.

С мобильной разработкой до этого момента я вообще не сталкивался, но у меня уже был другой бот, который делал из фото комиксы. Переделав исходный комикс-алгоритм под новую задачу, я сваял на коленке приложение на react native. Оно просто стучалось на api и позволяло сохранить и пошерить результат.

Приложение это после торжественного запуска утонуло в минусах. Впрочем, сообщество оказалось беспристрастно и заминусовало вообще всех, судя по тому, что максимальный балл там сейчас -1, лол.

¯\_(ツ)_/¯

Не дожидаясь результатов конкурса, я решил завернуть новый алгоритм в бота. И не прогадал, так как результатов конкурса все еще нет, а на дворе уже конец октября. Прием работ, напомню, был завершен в начале июля 😂

face2sticker

face2sticker - бот, который превратит ваше фото в комикс-стикер. С текстом!

В итоге получился telegram бот с одной функцией. Запустил я его еще летом, то есть до того, как это стало мейнстримом 😈

Работает просто:

- отправляете фото и текст @face2stickerbot
- получаете сами стикеры и их .png версии
- отправляете друзьям

Стикеры также можно добавить в стикерпак с помощью официального бота @stickers

.png файлы можно использовать как угодно, хоть в том же instagram - прозрачность там отлично работает.
Правда, это на самом деле не png, а webp, так как телеграм не дает отправить webp файлом :(

Детали

face2sticker - бот, который превратит ваше фото в комикс-стикер. С текстом!

Расскажу немного о реализации.

Сам бот написан на TypeScript/telegraf.js, алгоритм обработки фото - на питоне.
Пример бота в связке с питоном. Ему уже пара лет, но если будет интерес, могу попробовать причесать код текущего бота и тоже выложить на гитхаб.

Под капотом алгоритма несколько нейросетей, каждая из которых выполняет свою роль.

u2net создает маску для отделения ключевых объектов от фона,

RetinaFace обнаруживает лица и их ключевые точки.

Лицо вырезается, улучшается с помощью GPEN, стилизуется unet и вклеивается на фон, который также предварительно улучшается и стилизуется.

Вместе с этим изображения немного блюрятся и шарпятся для большего комикс-эффекта.

По координатам лица определяем, в какой части фото оно находится, и, исходя из этого, рисуем баббл с текстом. Вуаля!

Что дальше

face2sticker - бот, который превратит ваше фото в комикс-стикер. С текстом!

Уже было небольшое обновление, в котором была добавлена минималистичная обработка - улучшение и обводка контуров лица, без комикс-стиля.
Алгоритм постоянно совершенствуется и облегчается, чтобы в будущем запилить поддержку анимированных стикеров.

Также в планах добавить и стикер-менеджмент, чтобы можно было создавать стикерпаки не отходя о кассы.

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

На этом все, спасибо за ваше время и крутых вам стикеров!
Как говорится, го тыкать, я создал -> @face2stickerbot

124124
78 комментариев

Комментарий недоступен

10

круто то что ты на Гарри Поттера похож

30

Вот и апдейт подъехал… чёт правда этот мульти стиль иногда выглядит оч крипово ))

5

Выглядит интересно!

5

Делитесь результатами)

Очень круто! А кошки криповые 🙈😀

3