Собрал телеграм-бота с нейросетями на домашнем железе
Привет, Пикабу.
Читаю вас давно — и всё это время молча. Ни разу не было повода написать. Теперь вроде появился.
Я разработчик. Работа работой, но руки чешутся делать что-то своё, поэтому в свободное время я вожусь с железом и кодом просто в удовольствие. Так и получился бот: сначала он умел ровно одну вещь — каждый день разыгрывать в чате «приз дня» среди тех, кто хоть что-то написал. Приз по умолчанию — обыкновенное ничто, но его можно заменить на «сегодняшнее весёлое ничто» или на что угодно ещё.
Потом мне стало интересно, получится ли прикрутить к нему нейросети. Получилось.
РОЗЫГРЫШИ
С этого всё началось, и это до сих пор основное. Бота надо добавить в групповой чат — там он и живёт.
Каждый день в 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
Работает и в личке, и в группах. Бесплатно, никаких подписок — мне просто интересно этим заниматься.
ЧЕСТНОЕ ПРЕДУПРЕЖДЕНИЕ
Это домашний проект одного человека на железе, которое стоит у меня в комнате. Иногда бот будет падать. Иногда я буду что-то чинить или обновлять — и он ляжет уже по моей вине. Модели я, как видите, тоже меняю, а это каждый раз пересборка и простой.
Если не отвечает — просто подождите немного и попробуйте ещё раз. Готовые результаты должны переживать перезапуск, так что если вы успели что-то заказать до падения, оно, вероятно, не потеряется.
Если поймаете что-то странное — напишите в комментариях, мне правда интересно. Половину багов я нахожу именно так.
Как находить нужные ТГ каналы?
граждане, подскажите как находятся нужные каналы в ТГ. никогда им не пользовался, сейчас вот понадобилось, но ни хрена понять не могу.
сейчас например нужны ТГ каналы для взрослых в Стерлитамаке.
если кто подскажет, с меня пиво или что потяжелее.без закуски.
Как скачивать музыку из Suno AI без лимитов и быстро склеивать треки в плейлисты
Всем привет! Кто балуется или серьезно делает музыку в Suno AI (для себя, фона к видео, Lo-Fi стримов или просто в плейлист на пробежку), знает две главные боли сервиса:
С сайта жутко неудобно скачивать треки пачками — приходится тыкать каждую песню отдельно, ждать очередь и упираться в лимиты.
Если хочешь собрать часовой сет из своих треков под фон или видео, приходится лезть в аудиоредактор, вручную делать кроссфейды и высчитывать таймкоды.
Чтобы закрыть эту рутину, сделал удобного бесплатного Telegram-бота — @sunosaver_bot.
Что он делает: • Скачивает без лимитов: скидываешь ссылку на любой трек из Suno — бот моментально отдает MP3 с обложкой и тегами. • Пакетная загрузка: можно кинуть сразу до 5 ссылок в одном сообщении. • Студийный WAV: выкачивает чистый несжатый звук (кому нужно для монтажа или сведения). • Конструктор миксов: кидаешь треки, нажимаешь /mix — бот сам склеивает их в цельный DJ-микс с плавными переходами и присылает готовый список таймкодов (удобно для описания на YouTube).
Бот бесплатный, никакой рекламы и сторонних сайтов: @sunosaver_bot в Telegram. Буду рад обратной связи — какие еще фишки добавить для удобства?
Телеграмм бот для повторения прочитанного
Когда-то я читал нон-фикшн так: выделял в книге куски, потом делал из них карточки в Anki и гонял методом интервальных повторений. Правило простое: чем легче вспоминается ответ, тем реже карточка возвращается. Не вспомнил — алгоритм будет подсовывать её снова и снова, пока не запомнишь. Насколько было сложно, решает сам пользователь: жмёшь кнопку и идёшь дальше.
Потом я про все эти алгоритмы забыл. А недавно решил перечитать одну хорошую старую книгу по истории — и понял, что не помню из неё ровным счётом ничего. Захотелось нарезать из неё заметок и сделать телеграм-бота, чтобы карточки прилетали сами. В общем, сделал.
Работает просто: скидываешь боту файл со своими заметками, он сам режет его на карточки «вопрос — ответ» и потом эти вопросы задаёт. Не по одной карточке на цитату: если в абзаце три отдельные мысли, будет три вопроса.
Сам я гружу в него заметки из киндла. В файле My Clippings.txt у меня скопилось дофига подчёркнутых идей. Классика жанра: подчеркнул умную мысль, почувствовал себя молодцом, закрыл книгу и больше никогда к ней не вернулся. Но мне что-то это надоело.
Но не все ведут заметки в киндл, поэтому я решил сделать бота более универсальным: в него можно кидать заметки в формате txt, markdown, docx, rtf, html, csv, json.
Выкладываю просто потому, что хочется поделиться. О монетизации вообще пока не думаю — особо негде хостить, поэтому на карточки есть лимит: не больше 1000 карточек на человека. Если кому-то окажется полезно, буду рад донатам. Будут донаты — значит, штука нужная, и я её докручу.
Вопросы, жалобы на работу бота, замечания — пишите.
@intrepbot
Я делаю бота один. И иногда мне хочется сдохнуть
Это последний пост в серии про TG Notion. До этого я рассказывал, как в одного пилил блокнот для Telegram, как запилил общие доски, как учил его английскому. Если читали — вы в курсе всего этого ада. Если нет — почитайте, там весело.
А сейчас хочу рассказать, каково это — поддерживать проект, который ты сделал сам, в одного, без команды и без денег.
Когда я начинал, у меня не было ничего. Просто идея: сделать блокнот, который живёт прямо в Telegram. Казалось, пара недель — и готово. Ага, конечно.
Прошли месяцы. Я вставал в час ночи, потому что нашёл баг. Я откатывал обновления, которые ломали то, что вчера работало. Я просыпался в холодном поту от того, что хостинг отвалился, а я забыл продлить.
И вот теперь у меня есть бот. Им пользуются люди. Немного, но это реальные люди, которые ждут фичи, пишут баг-репорты, говорят «спасибо». И это держит сильнее, чем любой мотивационный пост.
Но одиночество — оно никуда не девается. Я и разработчик, и саппорт, и тестировщик, и маркетолог, и дизайнер. Иногда я туплю над кодом и понимаю, что спросить не у кого. Кроме пары человек в чате, которые реально помогают. Им отдельное спасибо.
Ошибки — только мои. Решения — тоже. И когда что-то идёт не так, винить некого. Только себя. Это выматывает.
Но бросать я не собираюсь. Потому что это уже не просто проект. Это часть меня. И пока хоть один человек открывает бота, чтобы записать мысль или галочку поставить, я буду продолжать.
Если интересно следить за тем, как я с этим живу — заходите в канал. Там я пощу обновления, мысли и иногда ору в голос. Но по-честному.
Написал бота для поиска локаций по теням и грунту: как устроен проект "TraceX" и почему соцсети вычищают не всё
Привет, Пикабу!
Пока все вокруг пилят очередных ботов с ChatGPT для гороскопов, я решил заморочиться по теме, которая мне реально интересна — цифровая криминалистика, геолокация и OSINT.
Все знают: если залить фотку в телегу или инсту, она сожмет качество и начисто сотрет EXIF-метаданные с GPS. Кажется, что концов не найти. Но на самом деле на любом снимке остается куча скрытых ориентиров: длина теней, угол падения света, породы деревьев, тип грунта и даже архитектурный стиль водосточных труб.
В общем, последние пару месяцев я пилил проект TraceX — бота, который пытается автоматизировать всю эту рутину криминалиста и выдать нормальный отчет с координатами.
Как это устроено под капотом:
Вместо того чтобы просто слать картинку в "Google Картинки", я собрал пайплайн из нескольких шагов:
1.ExifTool & ELA-анализ: смотрим бинарные заголовки (если они выжили) и проверяем артефакты сжатия на предмет монтажа / нейросетей.
2. Shadow Engine (расчет по теням): по направлению и длине теней алгоритм считает высоту солнца (Solar Elevation) и азимут. Это сужает время съемки буквально до пары часов и помогает отсечь не то полушарие.
3. Почвы и ботаника: сверка растений и типа грунта по классификатору WRB/ISRIC.
4. Сверка с архивами погоды: если известна дата, проверяем облачность и температуру.
5. Генерация PDF: на выходе собирается аккуратный PDF-документ с таблицей, анализом и QR-кодом прямо на карту.
Пример:
Взял обычную обзорную фотку города, прогнанную через мессенджер (никакого EXIF там нет):
Закидываем в бота и получаем на выходе скомпилированный PDF-отчет:
Что вытащил бот:
1. Вероятная точка съемки: южная башня собора Нотр-Дам де Пари (направление на запад/северо-запад).
2. Координаты: 48.8530, 2.3499 (QR-код сразу открывает точку на карте).
3. Время: тени падают на северо-северо-восток, угол солнца — съемка велась в районе 14:00–15:00 (UTC+2).
4. Растительность и почва: на набережной распознаны платаны и аллювиальный грунт бассейна Сены (Fluvisols).
С чем пришлось помучиться:
1.Верстка PDF на Python через ReportLab — это ад для перфекциониста (особенно подружить кириллические шрифты с таблицами и QR-кодами).
2. Лимиты и асинхронность: чтобы тяжелые запросы не клали бота, пришлось переписать очереди обработки.
3. Защита от спама: бот защищен от набегов ботов.
Кому интересно покрутить инструмент, проверить старые фотки из отпуска или попытаться запутать алгоритм сложным кадром — бот живет тут: @TraceeeX_bot.
Кидайте в комменты сложные фото или делитесь идеями, что еще полезного можно прикрутить.
Всех благ!








