{"id":14276,"url":"\/distributions\/14276\/click?bit=1&hash=721b78297d313f451e61a17537482715c74771bae8c8ce438ed30c5ac3bb4196","title":"\u0418\u043d\u0432\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0439 \u0442\u043e\u0432\u0430\u0440 \u0438\u043b\u0438 \u0443\u0441\u043b\u0443\u0433\u0443 \u0431\u0435\u0437 \u0431\u0438\u0440\u0436\u0438","buttonText":"","imageUuid":""}

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

0
78 комментариев
Написать комментарий...
Аккаунт удален

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

Ответить
Развернуть ветку
Андрей Иванов

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

Ответить
Развернуть ветку
4 комментария
Кирилл Вечкасов - Маркетолог

Неплохо…

Ответить
Развернуть ветку
Кирилл Вечкасов - Маркетолог

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

Ответить
Развернуть ветку
2 комментария
Dmitry

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

Ответить
Развернуть ветку
Александр Спирин
Автор

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

Ответить
Развернуть ветку
1 комментарий
Настя Настя

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

Ответить
Развернуть ветку
Александр Спирин
Автор

Но какой-то такой вариант можно получить, хоть и не в этом боте)

Ответить
Развернуть ветку
Canis Majoris

Настя Настя - Класс Класс

Ответить
Развернуть ветку
Александр Спирин
Автор

Все нейронки обучались на лицах, поэтому да, животных не щадит)

Ответить
Развернуть ветку
Александр Спирин
Автор

Я пока оставил только прием фото, без документов, потому что делал по принципу из этого стикера :D

Ответить
Развернуть ветку
Zoringer
Ответить
Развернуть ветку
Zoringer

Класс! А *.webp на вход он не берет?)

Ответить
Развернуть ветку
Vadim Vitkovski

Прикольно! Дай возможность делать стики без подписи за покупку подписки, вообще огонь будет.

Ответить
Развернуть ветку
Александр Спирин
Автор

Спасибо! Да, часто просят такую фичу. Думаю, смогу в ближайшее время запилить в ручном режиме (донат с указанием telegram id = подписка). Такой вариант подойдет?)

Ответить
Развернуть ветку
Александр Спирин
Автор

Добавил подписку внутри телеграм. Должно появиться в сообщении бота при отправке фото.

Ответить
Развернуть ветку
Валерий Росоловский

Очень крутое приложение !

Ответить
Развернуть ветку
Александр Спирин
Автор
Ответить
Развернуть ветку
1 комментарий
hawr /

Очень крутой бот. Серьезно, это действительно годная работа

Ответить
Развернуть ветку
Александр Спирин
Автор

Спасибо! Ради таких отзывов и хочется работать)

Ответить
Развернуть ветку
2 комментария
Ол Б
Ответить
Развернуть ветку
Александр Спирин
Автор
Ответить
Развернуть ветку
Denis

А на сколько ресурсоемка по нагрузке на проц эта обработка фото? И фильтр наложить, и лицо найти чтобы стрелочку в верном месте нарисовать

Ответить
Развернуть ветку
Александр Спирин
Автор

Всю основную нагрузку я вынес на серверлесс хостинг с GPU. В среднем создание стикеров занимает 2-3секунды, основная нагрузка из которых - улучшение фото и стилизация. Поиск лица и альфа-канала занимают 10-25%, в зависимости от размера исходника. А сам бот хостится на самой дешевой виртуалке за $5

Ответить
Развернуть ветку
3 комментария
Невероятный Блондин

Ты не подумай, но выходит всрато пока ))

У База Лайтера на теле белые области и блики вырезало к херам.
Обводка мыльная и местами рваная, не кошерно.

Формат на выходе какой? Визуально выглядит как залупа 100х100

Водяной знак много места сжирает, есть смысл лепить его на белой плашке на самой картинке (как генераторы мемов)

Но за старания аплодирую 👏🏼

Ответить
Развернуть ветку
Александр Спирин
Автор

За фидбек по статье спасибо, но вы и ботом воспользуйтесь ради интереса ;)

Ответить
Развернуть ветку
3 комментария
Nathan Zachary
Ответить
Развернуть ветку
Александр Спирин
Автор
Ответить
Развернуть ветку
Sergei Zotov

Пользовался еще летом (не знаю, откуда узнал про вас), клевый проект. Спасибо!)

Ответить
Развернуть ветку
Александр Спирин
Автор

Видимо, немножко сработал сарафан) Спасибо!

Ответить
Развернуть ветку
2 комментария
Игорь Александров

Затестил, классная штука)
Буду пользоваться)
Удачи в развитии 🔥

Ответить
Развернуть ветку
Александр Спирин
Автор

Благодарю!

Ответить
Развернуть ветку
Vyacheslav Azarenko

а вот и пост :)

Ответить
Развернуть ветку
Александр Спирин
Автор

Еще раз спасибо за волшебный пинок)

Ответить
Развернуть ветку
Роман Пуртов

А есть или будет возможность убрать водяной знак? Был бы готов и копеечку заплатить за такую фичу

Ответить
Развернуть ветку
Александр Спирин
Автор

Добавил возможность подписки, думаю сделать систему типа Яндекс.Плюса - позже внедрю премиум для других своих ботов по единой подписке)

Ответить
Развернуть ветку
Александр Спирин
Автор

Подойдет ли ручной вариант а-ля "донат с указанием telegram id = подписка"?

Ответить
Развернуть ветку
Александр Спирин
Автор

Спасибо за фидбек! Формат на выходе 512х512

Ответить
Развернуть ветку
Светлана Завацкая

Интересно, нужно попробовать. Судя по комментариям очень интересная штука.

Ответить
Развернуть ветку
Александр Антонов

Результаты по конкурсам они всегда затягивают
Когда я участвовал, чуть ли не через пол года выложили результаты, и еще через несколько месяцев призовые выплатили

Ответить
Развернуть ветку
Mister X

Классно, мне понравилось! Молодец!

Ответить
Развернуть ветку
Ленин-гриб

Какую-то телку из меня создал... Сексуальную, правда 😉😂

Ответить
Развернуть ветку
Александр Спирин
Автор

Да, порой выдает такие фейлы, что даже забавно)

Ответить
Развернуть ветку
Григорий Сазонов

Если честно, уже переизбыток этих стикеров какой-то, что еще новых создавать как-то нет желания)

Ответить
Развернуть ветку
Александр Спирин
Автор

Возможно, но если желание вдруг появится, вы знаете, куда идти)

Ответить
Развернуть ветку
Александр Спирин
Автор

Кто анонимно донатил больше $5, отпишитесь плиз с деталями доната, дам подписку!

Ответить
Развернуть ветку
Руслан Лысенко

Как раз 1 числа паспорт менять, буду настаивать на фотке из бота!)) Классно вышло.

Ответить
Развернуть ветку
Александр Спирин
Автор

Добавил еще один стиль! Отсюда - https://github.com/bryandlee/animegan2-pytorch

Ответить
Развернуть ветку

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

Развернуть ветку
Huntt Ext

Удобно, прикольно, но 400 руб в месяц, чтобы убрать подпись это перебор. У меня тариф мобильного столько стоит. Я заплачу, месяц попользуюсь и забуду.

Ответить
Развернуть ветку
Александр Спирин
Автор

Согласен! Отсутствие вотермарки - скорее приятный бонус поддержавшим мой канал и бота.

Ответить
Развернуть ветку
3 комментария

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

Развернуть ветку

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

Развернуть ветку

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

Развернуть ветку

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

Развернуть ветку

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

Развернуть ветку

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

Развернуть ветку
Александр Спирин
Автор

*misclick*

Ответить
Развернуть ветку
Happy Men

Спасибо, вы принесли много пользы
Есть сайты, которые дают картинки для дизайна, бесплатно
Это лучшее: https://freestockpng.net/ru/

Ответить
Развернуть ветку
Ilya Prigunov

Круто!!! Правда на днях почему-то перестал работать) но все равно круто!

Ответить
Развернуть ветку
Кирилл Копытин

Классная штука! Надо попробовать

Ответить
Развернуть ветку
Сергей Колпаков

Все написано умер бот

Ответить
Развернуть ветку
Maks Play

Что делать,если этот бот умер?

Ответить
Развернуть ветку
Юлия Маркевич

да, оч печально

Ответить
Развернуть ветку

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

Развернуть ветку
75 комментариев
Раскрывать всегда