Снова 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 с локальным веб-сервером, и если оный упадёт — то сломается и генерация. Использование питоновской библиотеки упростит управление скриптом и позволит обрабатывать ошибки прямо в коде. Хотя конечно можно и бота научить контролировать работу веб-сервера и рестартовать его в случае ошибки. Плюс за эти две недели написания и тестирования веб-сервер со стаблой у меня не падал. А вот сам бот из-за тупняков телеги иногда падает, да...



+312
1 055

0 комментариев, по

85K 6 055 2 496
Наверх Вниз