Снова Stable-Diffusion-бот. На этот раз - младшенький (плюс эльфийки 18+)
Автор: SangoМой основной бот для управления стаблой на компе (см. посты этот и вот этот) до сих пор юзается, до сих пор упрощает мне жизнь. Я его ещё чутка доработал, а именно:
— добавил режимы mode4 и mode6 (для генерации по 4 и по шесть картинок по выбранным моделям)
— добавил 20 стилей (но честно говоря они нормально работают только для простых немногословных запросов, на сложных могут и не дать заметных изменений)
— сделал сохранение в jpg (разницы в результате не видно, а вес картинок уменьшился в 4 раза)
— добавил ещё немного рефакторинга
— записал десяток мелких доработок в бэклог (то бишь сделаю когда не заленюсь… то бишь никогда)
В общем проект немного замедлился в развитии, так как пока удовлетворяет основным моим потребностям, но стабильно работает)
А что же тогда за младшенький бот такой?
Основной бот хорош в первую очередь для массовой генерации по найденным в интернете промтам. Подбираешь запрос, докидываешь детали, флаги и стили, настраиваешь шаги и скалирование — и вперёд! Сгенерить 100 картинок, или сгенерить по 10 картинок на каждой модели, или вариации в количестве и моделях.
А вот для одиночных творческих генераций по подбору запроса...
Для одиночных генераций в основной бот я добавил команду /gen <запрос>, но через некоторое время понял что удобнее будет если я вынесу этот функционал в отдельного бота, с уменьшенным количеством фишек, заточенным именно под ручной подбор запросов. Так вот и получился «младшенький милаш»
Что же умеет младший бот?
— если ему ввести что-то, некоторую произвольную строку, бот воспринимает её как параметры генерации и тут же запускает создание изображения по введенному запросу. Например, ввожу в бота строку:
эльфийка с большой грудью посреди поля
...и через 20-30 секунд получаю результат:
Неплохо, правда? Прямо как Кандинский или многие другие нейросети, где без какого-либо шаманства с параметрами получаешь результат!
Само собой через некоторое время бот обзавёлся несколькими дополнительными командами:
— repeat — повторение генерации по ранее введенному запросу
— repeat all — повторение генерации по ранее введенному запросу по всем доступным моделям
— ping — проверить что бот жив и доступен
— get model list — список всех доступных моделей
— get work model — название активной модели (на которой будет происходить генерация)
— set model <номер модели> — выбор активной модели по номеру (номер смотреть в get model list)
— флаги portrait, nsfw, topless...
Рассмотрим в примерах. Берём промпт выше и докидываем ему флаг add topless...
...добавляем флаг add portrait...
...а затем командой repeat all получаем...
...была ещё версия сгенерированная на realistic-модели, но там по классике слепилось два тела, и в общем этого гомункула я не рискнул вам показывать...
Из приятного — младший бот более чем в 4 раза меньше основного. Если основной содержит 900 строк кода, то младший всего 230. И это еще со всякими форматированиями, пустыми строками, комментариями, закомменченным кодом… да и на самом деле похрен сколько строк, файл то всё-равно один. Но мне нравятся мини-проекты, так что младший бот меня радует. И главное — он работает!
Пара слов про дальнейшие планы. Их почти нет, но из того что есть, самое глобальное — попробовать заменить stable-diffusion-webui библиотекой diffusers. Сейчас бот взаимодействует через API с локальным веб-сервером, и если оный упадёт — то сломается и генерация. Использование питоновской библиотеки упростит управление скриптом и позволит обрабатывать ошибки прямо в коде. Хотя конечно можно и бота научить контролировать работу веб-сервера и рестартовать его в случае ошибки. Плюс за эти две недели написания и тестирования веб-сервер со стаблой у меня не падал. А вот сам бот из-за тупняков телеги иногда падает, да...
Еще немного эльфиек)