telegram bot on aiogram python 3.10.6 to generate images using automatic1111 fast api
Go to file
Alex Borisov 6f124d5d5d
Some checks failed
Actions Build Docker Image / Explore-Gitea-Actions (push) Failing after 10s
Remove Docker image export step from build workflow
2024-01-29 21:07:03 +03:00
.gitea/workflows Remove Docker image export step from build workflow 2024-01-29 21:07:03 +03:00
.gitignore env, docker, requirements, custom server url, gradio auth 2024-01-15 10:21:55 +00:00
bot.py Debug option added to env 2024-01-29 09:47:19 +00:00
dockerfile dockerfile directory fix. (why do I use master???) 2024-01-23 14:19:18 +00:00
example.env Debug option added to env 2024-01-29 09:47:19 +00:00
LICENSE env, docker, requirements, custom server url, gradio auth 2024-01-15 10:21:55 +00:00
README.md env, docker, requirements, custom server url, gradio auth 2024-01-15 10:21:55 +00:00
requirements.txt env, docker, requirements, custom server url, gradio auth 2024-01-15 10:21:55 +00:00

sd_telegram

telegram bot on aiogram to generate images with automatic1111 fast api

cp sample.env .env

create bot from BotFather and use token in API_TOKEN variable. add vk and ok tokens to env file.

заходим в https://oauth.vk.com/authorize?client_id=51626357&scope=photos&redirect_uri=http%3A%2F%2Foauth.vk.com%2Fblank.html&display=page&response_type=token
где 51626357 - номер вашего включенного приложения, созданного в https://vk.com/apps?act=manage,
photos - зона доступа.
После перехода и подтверждения выцепляем access_token из адресной строки
TODO auto requests
OK https://ok.ru/vitrine/myuploaded
Добавить приложение - https://ok.ru/app/setup
дбавить платформу - OAUTH
VALUABLE_ACCESS = Обязательно
PHOTO_CONTENT = Обязательно \ Ссылка на страницу = https://apiok.ru/oauth_callback
Список разрешённых redirect_uri = https://apiok.ru/oauth_callback
сохранить, перезайти
Ищем ID приложения справа от "Основные настройки приложения" - ID 512002358821
Открываем в браузере https://connect.ok.ru/oauth/authorize?client_id=512002358821&scope=PHOTO_CONTENT;VALUABLE_ACCESS&response_type=token&redirect_uri=https://apiok.ru/oauth_callback
С адресной строки копируем token в access_token ниже
application_key = Публичный ключ справа от "Основные настройки приложения"
Вечный access_token - Получить новый
application_secret_key = Session_secret_key \

run bot with python

python -m venv venv
source venv/bin/activate
pip install -m requirements.txt 
python bot.py

run bot in docker

docker build -t soaska/sd_bot .
docker run soaska/sd_bot

use ; in prompt as delimiter to be divided into several separate parts, like cat;dog;car

Commands
start
_SD
__ = off, = on Stable Diffusion
_opt
__sttngs
___change_param
change JSON parameters
img_thumb/img_tg/img_real - little/original from tg/real size from doc
___reset_param
reset to default
___fast_param
reset to my default params
comp, mobile, no hr, big, inc, sdxl, w↔h
__scrpts
___get_lora
get list LORA`s from stable-diffusion-webui/models/Lora
___rnd_mdl
script for generating images for all models in random order, taking into account JSON settings
___rnd_smp
script for generating images for one models with all samplers
___inf
Endless script with random width, height, scale, model, sampler, steps, prompt(1. random-word-api.herokuapp.com/word?lang=en, 2.GPT2Tokenizer, 3. lexica.art/api/v1/search?q=2, 4 = 2 + 3)
If json_prompt = true then run random prompt from json
__mdl
change model from list
__smplr
change sampler from list
__hr
change hr_upscale from list
__prompt
___get
get settings in string
___random_prompt
get random prompt from GPT2Tokenizer FredZhang7 distilgpt2
___lxc_prompt
get random prompt from lexica.art (+ your prompt begin)
_gen
generate images
_skip
skip one or all generations
_help
help

If you send file, view 2 command:
_Lora
_Model

Uploading files to folders:
\models\Stable-diffusion \models\Lora

You upload a file to Telegram, choose what it is and the file automatically goes to the folder. A forwarded message with a file also works.

Please pay attention to the file size limit in Telegram API:
sending-files
senddocument

_Chat History
We go into any Telegram chat with prompts (individual messages), click three dots in the upper right corner, upload only text messages in json format. We get the result.json file, which we throw into the bot and select "Chat History". We get a random prompt, which we can save in data

If you chose /img_real = true, the document will be unloaded for you, and after it the social network VK and OK upload button. Before that, you need to set up a token and enter the ID of the album where the photo will be sent.

drawing

TODO

  1. use share link (not yet possible, because the API is running in the background)
  2. show error in tg
  3. Get all files/pictures from the computer for today (preview and seeds)
  4. Ability to send everything with one command with settings
  5. Preloading photos when waiting for a long time so that you can skip
  6. Progress in script (done with no HR)
  7. Translator capable of translating up to 4000 characters and detecting the language

TNX
AUTOMATIC1111
API
aiogram
And respect for Santa 🎅

Donations are not needed. Who wants to subscribe to my generations

Lifehack`s:
If Lora dont work, see this