empty.null

empty.null

На Пикабу
Дата рождения: 2 января
93 рейтинг 0 подписчиков 2 подписки 1 пост 0 в горячем
Награды:
Пикабу 17 лет!

Собрал телеграм-бота с нейросетями на домашнем железе⁠⁠

Привет, Пикабу.

Читаю вас давно — и всё это время молча. Ни разу не было повода написать. Теперь вроде появился.

Я разработчик. Работа работой, но руки чешутся делать что-то своё, поэтому в свободное время я вожусь с железом и кодом просто в удовольствие. Так и получился бот: сначала он умел ровно одну вещь — каждый день разыгрывать в чате «приз дня» среди тех, кто хоть что-то написал. Приз по умолчанию — обыкновенное ничто, но его можно заменить на «сегодняшнее весёлое ничто» или на что угодно ещё.

Потом мне стало интересно, получится ли прикрутить к нему нейросети. Получилось.

РОЗЫГРЫШИ

С этого всё началось, и это до сих пор основное. Бота надо добавить в групповой чат — там он и живёт.

Каждый день в 12:00 UTC он выбирает случайного победителя. Участвуют все, кто написал в чат хотя бы одно сообщение за предыдущие двенадцать часов — то есть с полуночи UTC и до самого розыгрыша. Если желающих меньше двух, розыгрыш не проводится: скучно.

По умолчанию разыгрывается обыденное ничего. Приз можно назначить свой — пишешь в чат «Сегодня развесёлое ничего» или «Завтра волшебное ничего», и он запомнит. Сегодняшний меняется только до розыгрыша, после поезд ушёл. Есть статистика победителей за год и за всё время.

Распоряжаются призом суперадмины — владелец чата и его админы, бот находит их сам. Они же могут выдать права кому-то ещё.

Отдельно стоит команда /censorship. Она переключает не то, что бот рисует, а то, какими словами он сам разговаривает: у него два набора фраз на все случаи — приличный и не очень. Включается на каждый чат отдельно и тоже только суперадминами.

НЕЙРОСЕТИ

Пишешь в чат «нарисуй кота в скафандре» — рисует. Прикрепляешь к той же команде картинку — переделывает её по описанию. «Анимируй» в ответ на картинку — оживляет её в короткий ролик. «Расшифруй» на голосовое — присылает текст. Ну и просто спросить, что происходит на картинке, тоже можно.

ИНЛАЙН-РЕЖИМ

А вот для этого добавлять бота никуда не нужно. Набираете в любом чате его имя с собачкой, следом запрос — и Telegram прямо в поле ввода покажет, что с этим можно сделать: нарисовать или анимировать. Выбираете, и результат уходит в тот чат, где вы это набрали.

В том же списке лежат картинки, которые вы раньше скидывали боту в личку. Любую можно оживить, а текст, набранный в строке, станет описанием того, как именно.

Запрос был "подводная лодка в небе". Небо есть, но лодка так себе

КАКИЕ МОДЕЛИ

Картинки рисует Qwen-Image 2.1. Ролики — MiniMax-H3: пять секунд, причём звук она генерит сама, в том же проходе. Голосовые расшифровывает WhisperX, он же различает, кто где говорит. А надо всем этим стоит языковая модель Qwen3.8 на 27 миллиардов параметров, ужатая до четырёх бит: она переводит запросы, приводит их к виду, который рисовалка понимает, и умеет смотреть на картинки.

Модели я время от времени меняю. Выходит что-то новое — пробую, и если лучше, переезжаю. Начинал вообще с Fooocus, потом была Z-Image. После неё успел пожить на Chroma и вернуться обратно: она хорошо рисует людей, но что ей ни закажи, всё превращает в живопись — просишь фотографию, получаешь картину маслом. А теперь вот Qwen-Image.

Последний переезд случился буквально на днях. Z-Image рисовал красивее, но делает картинку немного более пластиковой. Qwen-Image 2.1 в этом плане более реалистичен, точнее соблюдает промт, лучше пишет текст, но, с другой стороны, может начудить с анатомией или объекатми. На подводной лодке выше это было видно. Возможно, решу вернуться опять на Z-Image. Время покажет.

Та же «подводная лодка в небе» на старой модели. Красиво, но под водой. Ещё одна причина переехать.

ЧТО ВНУТРИ

Всё крутится дома, никаких облаков и подписок. Два системника, четыре RTX 3090 на двоих.

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

Картинка выходит секунд за тридцать, ролик — минуты за две-три. Расшифровка голосового — считанные секунды.

Снаружи стоит реверс-прокси, он же держит сертификаты. Рядом живёт третья, совсем маленькая виртуалка со сбором статистики: сколько чего посчитали, сколько ждали в очереди, какая карта чем занята. Без этого непонятно, что чинить, когда что-то идёт не так.

КАК УСТРОЕНА ОЧЕРЕДЬ

Вот это, по-моему, самое интересное.

Очередь одна, карт три, и наивная схема «кто первый пришёл, того и считаем» разваливается сразу. Приходит человек, заказывает десять роликов — и весь чат стоит за ним полчаса. Поэтому планировщик раздаёт время не задачам, а людям: по кругу, по паре задач на человека. Пришёл один с десятью роликами и второй с одной картинкой — картинка не будет ждать все десять.

Дальше начинаются нюансы.

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

Если после нескольких роликов подряд в очереди висит картинка или расшифровка — её пропускают вперёд. Они дешёвые, и мариновать их за десятью видео бессмысленно.

И на всякий случай есть защита от забывания: задача, провисевшая слишком долго, проталкивается вперёд независимо от всего остального.

ССЫЛКА

Найти бота можно в поиске по имени @pukechbot

Работает и в личке, и в группах. Бесплатно, никаких подписок — мне просто интересно этим заниматься.

ЧЕСТНОЕ ПРЕДУПРЕЖДЕНИЕ

Это домашний проект одного человека на железе, которое стоит у меня в комнате. Иногда бот будет падать. Иногда я буду что-то чинить или обновлять — и он ляжет уже по моей вине. Модели я, как видите, тоже меняю, а это каждый раз пересборка и простой.

Если не отвечает — просто подождите немного и попробуйте ещё раз. Готовые результаты должны переживать перезапуск, так что если вы успели что-то заказать до падения, оно, вероятно, не потеряется.

Если поймаете что-то странное — напишите в комментариях, мне правда интересно. Половину багов я нахожу именно так.

Показать полностью 2
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества