Compare commits

...

20 Commits

Author SHA1 Message Date
kls
ecb5284211 Merge branch 'master' of https://soaska.ru/kls/sd_telegram
Some checks failed
Actions Build Docker Image / Build-Docker (push) Failing after 10s
2024-02-11 19:58:45 +03:00
kls
924fa27370 testing runners 2024-02-11 19:55:17 +03:00
71dadc83f6 Separated pytorch image and sd_telegram docker image
Some checks failed
Actions Build Docker Image / Build-Docker (push) Failing after 10s
2024-02-11 17:52:34 +03:00
4ba3f3aef3 изменена нумерация версий контейнеров
Some checks failed
Actions Build Docker Image / Build-Docker (push) Failing after 10s
2024-02-11 14:42:11 +03:00
ac16c265f2 requirements fix, gpt2 prompt helper works now!
Some checks failed
Actions Build Docker Image / Build-Docker (push) Has been cancelled
+ actions stage renamed
2024-02-11 14:39:27 +03:00
kls
5921e18977 add some specificity
All checks were successful
Actions Build Docker Image / Explore-Gitea-Actions (push) Successful in 14s
2024-02-11 11:32:30 +03:00
vladus
1b934c4623 typos fix
All checks were successful
Actions Build Docker Image / Explore-Gitea-Actions (push) Successful in 13s
2024-02-11 11:02:13 +03:00
f3467e7060 ignore fix, requirements fix
All checks were successful
Actions Build Docker Image / Explore-Gitea-Actions (push) Successful in 9m24s
2024-02-10 23:19:50 +03:00
vladus
2e01f6fa86 add public access options and add docs to readme
All checks were successful
Actions Build Docker Image / Explore-Gitea-Actions (push) Successful in 18s
2024-02-10 23:18:31 +03:00
vladus
93e606f143 add public access options and add docs to readme 2024-02-10 23:03:34 +03:00
ec086f7555 Скобоньки
All checks were successful
Actions Build Docker Image / Explore-Gitea-Actions (push) Successful in 14s
2024-02-10 22:31:43 +03:00
e481f9cafe Замена метода загрузки переменной ALLOWED_USERS
All checks were successful
Actions Build Docker Image / Explore-Gitea-Actions (push) Successful in 13s
2024-02-10 22:29:51 +03:00
vladus
d1e37f9c4a changed urls in build.yaml
All checks were successful
Actions Build Docker Image / Explore-Gitea-Actions (push) Successful in 42s
2024-02-10 17:47:14 +03:00
vladus
6b3f4630c2 add some comments
Some checks failed
Actions Build Docker Image / Explore-Gitea-Actions (push) Has been cancelled
2024-02-09 22:31:41 +03:00
vladus
1de3659d22 some changes
Some checks failed
Actions Build Docker Image / Explore-Gitea-Actions (push) Has been cancelled
2024-02-09 20:33:38 +03:00
vladus
7f36164e69 change usernames in ALLOWED_USERS to ids: fixed negative prompts typo 2024-02-09 20:25:29 +03:00
vladus
4c887da2ee change usernames in ALLOWED_USERS to ids 2024-02-09 20:20:30 +03:00
vladus
853bc28caa fixed typos 2024-02-09 20:10:53 +03:00
vladus
e0f05384a2 update todo 2024-02-09 20:09:30 +03:00
vladus
ba2e25d066 add ALLOWED_USERS filter 2024-02-09 20:05:32 +03:00
8 changed files with 122 additions and 92 deletions

7
.dockerignore Normal file
View File

@ -0,0 +1,7 @@
venv
.venv
.env
.gitea
example.env
LICENSE
README.md

View File

@ -3,7 +3,7 @@ run-name: ${{ gitea.actor }} is building new image 🚀
on: [push] on: [push]
jobs: jobs:
Explore-Gitea-Actions: Build-Docker:
runs-on: soaska runs-on: soaska
steps: steps:
- run: echo "🎉 The job was automatically triggered by a ${{ gitea.event_name }} event." - run: echo "🎉 The job was automatically triggered by a ${{ gitea.event_name }} event."
@ -27,17 +27,13 @@ jobs:
- name: Build Dockerfile - name: Build Dockerfile
run: | run: |
docker build -t sd_telegram . docker build -t sd_telegram .
- name: Add new variables
run: |
package_name=$(basename ${{ github.repository }})
commit_date=$(git log -1 --format=%cd --date=format:'%Y%m%d%H%M%S')
echo "package_name=$package_name, commit_date=$commit_date"
- name: Upload Docker image to soaska.ru - name: Upload Docker image to soaska.ru
run: | run: |
package_name=$(basename ${{ github.repository }}) package_name=$(basename ${{ github.repository }})
commit_date=$(git log -1 --format=%cd --date=format:'%Y%m%d%H%M%S') branch_name=$(git rev-parse --abbrev-ref HEAD | tr '[:upper:]' '[:lower:]')
docker login -u ${{ secrets.username }} -p ${{ secrets.password }} soaska.ru docker login -u ${{ secrets.username }} -p ${{ secrets.password }} soaska.ru
docker tag sd_telegram soaska.ru/soaska/$package_name:$commit_date docker tag sd_telegram soaska.ru/${{ secrets.username }}/$package_name:$branch_name
docker tag sd_telegram soaska.ru/soaska/$package_name:latest docker tag sd_telegram soaska.ru/${{ secrets.username }}/$package_name:latest
docker push soaska.ru/soaska/$package_name:$commit_date docker push soaska.ru/${{ secrets.username }}/$package_name:$branch_name
docker push soaska.ru/soaska/$package_name:latest docker push soaska.ru/${{ secrets.username }}/$package_name:latest

3
.gitignore vendored
View File

@ -1,3 +1,4 @@
.vscode .vscode
.venv .venv
.env .env
venv

View File

@ -42,6 +42,7 @@ docker run -e VK_TOKEN='VK_TOKEN_HERE' \
-e SD_USERNAME='user' \ -e SD_USERNAME='user' \
-e SD_PASSWORD='1234' \ -e SD_PASSWORD='1234' \
-e DEBUG='no' \ -e DEBUG='no' \
-e ALLOWED_USERS='[id1, id2, id3]' # где id - id пользователей telegram в виде числа (пример: [1234, 5678]) без апострофов и тд, если хотите сделать бота общедоступным, то дайте значение '[]'
soaska.ru/soaska/sd_telegram:latest soaska.ru/soaska/sd_telegram:latest
``` ```

177
bot.py
View File

@ -61,13 +61,17 @@ OK_APPLICATION_KEY = os.getenv('OK_APPLICATION_KEY')
OK_APPLICATION_SECRET_KEY = os.getenv('OK_APPLICATION_SECRET_KEY') OK_APPLICATION_SECRET_KEY = os.getenv('OK_APPLICATION_SECRET_KEY')
OK_GROUP_ID = os.getenv('OK_GROUP_ID') OK_GROUP_ID = os.getenv('OK_GROUP_ID')
ARRAY_INLINE = [] ARRAY_INLINE = []
try:
ALLOWED_USERS = json.loads(os.getenv('ALLOWED_USERS'))
except json.decoder.JSONDecodeError:
print("Вы не ввели id в переменную ALLOWED_USERS, если вы хотите сделать бота общедоступным, то задайте ALLOWED_USERS='[]'")
bot = Bot(token=API_BOT_TOKEN) bot = Bot(token=API_BOT_TOKEN)
storage = MemoryStorage() storage = MemoryStorage()
dp = Dispatcher(bot, storage=storage) dp = Dispatcher(bot, storage=storage)
# /create_post_vk # /create_post_vk
@dp.message_handler(commands=['create_post_vk']) @dp.message_handler(lambda message: message.from_user.id or len(ALLOWED_USERS) == 0, commands=['create_post_vk'])
async def create_post_vk(message: types.Message) -> None: async def create_post_vk(message: types.Message) -> None:
result = subprocess.run( result = subprocess.run(
['C:\OSPanel\modules\php\PHP_7.3\php.exe', "C:/OSPanel/domains/localhost/vk/create_post.php"], stdout=subprocess.PIPE, stderr=subprocess.PIPE ['C:\OSPanel\modules\php\PHP_7.3\php.exe', "C:/OSPanel/domains/localhost/vk/create_post.php"], stdout=subprocess.PIPE, stderr=subprocess.PIPE
@ -278,12 +282,14 @@ async def getProgress(msgTime):
# TODO aiogram.utils.exceptions.MessageToEditNotFound: Message to edit not found # TODO aiogram.utils.exceptions.MessageToEditNotFound: Message to edit not found
proc = round(api.get_progress()['progress']*100) proc = round(api.get_progress()['progress']*100)
points = '.' * (proc % 9) points = '.' * (proc % 9)
await bot.edit_message_text( try:
chat_id=msgTime.chat.id, await bot.edit_message_text(
message_id=msgTime.message_id, chat_id=msgTime.chat.id,
text=str(proc)+'% ' + points message_id=msgTime.message_id,
) text=str(proc)+'% ' + points
await asyncio.sleep(1) )
finally:
await asyncio.sleep(1)
#TODO #TODO
async def getProgress2(msgTime): async def getProgress2(msgTime):
points = '.' points = '.'
@ -361,21 +367,24 @@ def getKeyboard(keysArr, returnAll):
# Стандартное меню # Стандартное меню
async def getKeyboardUnion(txt, message, keyboard, parse_mode = 'Markdown'): async def getKeyboardUnion(txt, message, keyboard, parse_mode = 'Markdown'):
# Если команда с слешем # Если команда с слешем
if hasattr(message, "content_type"): try:
await bot.send_message( if hasattr(message, "content_type"):
chat_id=message.from_user.id, await bot.send_message(
text=txt, chat_id=message.from_user.id,
reply_markup=keyboard, text=txt,
parse_mode=parse_mode reply_markup=keyboard,
) parse_mode=parse_mode
else: )
await bot.edit_message_text( else:
chat_id=message.message.chat.id, await bot.edit_message_text(
message_id=message.message.message_id, chat_id=message.message.chat.id,
text=txt, message_id=message.message.message_id,
reply_markup=keyboard, text=txt,
parse_mode=parse_mode reply_markup=keyboard,
) parse_mode=parse_mode
)
except:
pass
def getStart(returnAll = 1) -> InlineKeyboardMarkup: def getStart(returnAll = 1) -> InlineKeyboardMarkup:
keysArr = [ keysArr = [
@ -591,8 +600,8 @@ async def show_thumbs(chat_id, res):
# start или help # start или help
@dp.callback_query_handler(text="help") @dp.callback_query_handler(text="help")
@dp.message_handler(commands=["help"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["help"])
@dp.message_handler(commands=["start"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["start"])
async def cmd_start(message: Union[types.Message, types.CallbackQuery]) -> None: async def cmd_start(message: Union[types.Message, types.CallbackQuery]) -> None:
logging.info("cmd_start") logging.info("cmd_start")
txt = "Это бот для локального запуска SD\n" + getTxt() txt = "Это бот для локального запуска SD\n" + getTxt()
@ -600,7 +609,7 @@ async def cmd_start(message: Union[types.Message, types.CallbackQuery]) -> None:
# TODO optimize # TODO optimize
# Запуск/Остановка SD. Завязываемся на глобальную иконку sd # Запуск/Остановка SD. Завязываемся на глобальную иконку sd
@dp.message_handler(commands=["stop"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["stop"])
@dp.callback_query_handler(text="sd") @dp.callback_query_handler(text="sd")
async def inl_sd(message: Union[types.Message, types.CallbackQuery]) -> None: async def inl_sd(message: Union[types.Message, types.CallbackQuery]) -> None:
logging.info("inl_sd") logging.info("inl_sd")
@ -660,12 +669,15 @@ async def inl_save_prompt(callback: types.CallbackQuery) -> None:
global data, chatHistoryPrompt global data, chatHistoryPrompt
data['prompt'] = chatHistoryPrompt data['prompt'] = chatHistoryPrompt
keyboard = InlineKeyboardMarkup(inline_keyboard=[getPromptFromJson(0), getStart(0)]) keyboard = InlineKeyboardMarkup(inline_keyboard=[getPromptFromJson(0), getStart(0)])
await bot.edit_message_text( try:
chat_id=callback.message.chat.id, await bot.edit_message_text(
message_id=callback.message.message_id, chat_id=callback.message.chat.id,
text='Промпт сохранён: ' + chatHistoryPrompt, message_id=callback.message.message_id,
reply_markup=keyboard text='Промпт сохранён: ' + chatHistoryPrompt,
) reply_markup=keyboard
)
except:
pass
# upload result.json from chat history # upload result.json from chat history
@dp.callback_query_handler(text="uplchat") @dp.callback_query_handler(text="uplchat")
@ -687,13 +699,16 @@ async def inl_uplchat(callback: types.CallbackQuery) -> None:
chatHistoryPrompt = t#translateRuToEng(t) chatHistoryPrompt = t#translateRuToEng(t)
keyboard = InlineKeyboardMarkup(inline_keyboard=[getPromptFromJson(0), getStart(0)]) keyboard = InlineKeyboardMarkup(inline_keyboard=[getPromptFromJson(0), getStart(0)])
await bot.edit_message_text( try:
chat_id=callback.message.chat.id, await bot.edit_message_text(
message_id=callback.message.message_id, chat_id=callback.message.chat.id,
text=t.replace('<', '&lt;').replace('>', '&gt;'),#translateRuToEng(t).replace('<', '&lt;').replace('>', '&gt;'), message_id=callback.message.message_id,
reply_markup=keyboard, text=t.replace('<', '&lt;').replace('>', '&gt;'),#translateRuToEng(t).replace('<', '&lt;').replace('>', '&gt;'),
parse_mode = types.ParseMode.HTML reply_markup=keyboard,
) parse_mode = types.ParseMode.HTML
)
except:
pass
# upload Lora/Model # upload Lora/Model
@ -718,7 +733,7 @@ async def inl_uplora(callback: types.CallbackQuery) -> None:
await callback.message.reply(f"Файл '{file_name}' загружен в {folder_path}") await callback.message.reply(f"Файл '{file_name}' загружен в {folder_path}")
# Вызов reset_param, сброс JSON # Вызов reset_param, сброс JSON
@dp.message_handler(commands=["reset_param"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["reset_param"])
@dp.callback_query_handler(text="reset_param") @dp.callback_query_handler(text="reset_param")
async def inl_reset_param(message: Union[types.Message, types.CallbackQuery]) -> None: async def inl_reset_param(message: Union[types.Message, types.CallbackQuery]) -> None:
logging.info("inl_reset_param") logging.info("inl_reset_param")
@ -733,7 +748,7 @@ async def inl_reset_param(message: Union[types.Message, types.CallbackQuery]) ->
await getKeyboardUnion(txt, message, keyboard, '') await getKeyboardUnion(txt, message, keyboard, '')
# Вызов fast_param, быстрые настройки # Вызов fast_param, быстрые настройки
@dp.message_handler(commands=["fast_param"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["fast_param"])
@dp.callback_query_handler(text="fast_param") @dp.callback_query_handler(text="fast_param")
async def inl_fast_param(message: Union[types.Message, types.CallbackQuery]) -> None: async def inl_fast_param(message: Union[types.Message, types.CallbackQuery]) -> None:
logging.info("inl_fast_param") logging.info("inl_fast_param")
@ -741,13 +756,13 @@ async def inl_fast_param(message: Union[types.Message, types.CallbackQuery]) ->
await getKeyboardUnion('Выбери быстрые настройки', message, keyboard, '') await getKeyboardUnion('Выбери быстрые настройки', message, keyboard, '')
# Список быстрых настроек # Список быстрых настроек
@dp.message_handler(commands=["fp_comp"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["fp_comp"])
@dp.message_handler(commands=["fp_mobile"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["fp_mobile"])
@dp.message_handler(commands=["fp_no_hr"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["fp_no_hr"])
@dp.message_handler(commands=["fp_sdxl"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["fp_sdxl"])
@dp.message_handler(commands=["fp_big"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["fp_big"])
@dp.message_handler(commands=["fp_inc"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["fp_inc"])
@dp.message_handler(commands=["fp_wh"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["fp_wh"])
@dp.callback_query_handler(text="fp_comp") @dp.callback_query_handler(text="fp_comp")
@dp.callback_query_handler(text="fp_mobile") @dp.callback_query_handler(text="fp_mobile")
@dp.callback_query_handler(text="fp_no_hr") @dp.callback_query_handler(text="fp_no_hr")
@ -774,7 +789,7 @@ async def inl_fp(message: Union[types.Message, types.CallbackQuery]) -> None:
data['hr_second_pass_steps'] = '10' data['hr_second_pass_steps'] = '10'
data['cfg_scale'] = '6' data['cfg_scale'] = '6'
data['width'] = '512' data['width'] = '512'
data['height'] = '768' data['height'] = '512'
data['restore_faces'] = 'false' data['restore_faces'] = 'false'
data['do_not_save_grid'] = 'true' data['do_not_save_grid'] = 'true'
data['negative_prompt'] = 'easynegative, bad-hands-5, bad-picture-chill-75v, bad-artist, bad_prompt_version2, rmadanegative4_sd15-neg, bad-image-v2-39000, illustration, painting, cartoons, sketch, (worst quality:2), (low quality:2), (normal quality:2), lowres, bad anatomy, bad hands, ((monochrome)), ((grayscale)), collapsed eyeshadow, multiple eyeblows, vaginas in breasts, (cropped), oversaturated, extra limb, missing limbs, deformed hands, long neck, long body, imperfect, (bad hands), signature, watermark, username, artist name, conjoined fingers, deformed fingers, ugly eyes, imperfect eyes, skewed eyes, unnatural face, unnatural body, error, asian, obese, tatoo, stacked torsos, totem pole, watermark, black and white, close up, cartoon, 3d, denim, (disfigured), (deformed), (poorly drawn), (extra limbs), blurry, boring, sketch, lackluster, signature, letters' data['negative_prompt'] = 'easynegative, bad-hands-5, bad-picture-chill-75v, bad-artist, bad_prompt_version2, rmadanegative4_sd15-neg, bad-image-v2-39000, illustration, painting, cartoons, sketch, (worst quality:2), (low quality:2), (normal quality:2), lowres, bad anatomy, bad hands, ((monochrome)), ((grayscale)), collapsed eyeshadow, multiple eyeblows, vaginas in breasts, (cropped), oversaturated, extra limb, missing limbs, deformed hands, long neck, long body, imperfect, (bad hands), signature, watermark, username, artist name, conjoined fingers, deformed fingers, ugly eyes, imperfect eyes, skewed eyes, unnatural face, unnatural body, error, asian, obese, tatoo, stacked torsos, totem pole, watermark, black and white, close up, cartoon, 3d, denim, (disfigured), (deformed), (poorly drawn), (extra limbs), blurry, boring, sketch, lackluster, signature, letters'
@ -875,7 +890,7 @@ async def inl_fp(message: Union[types.Message, types.CallbackQuery]) -> None:
await getKeyboardUnion(txt, message, keyboard, '') await getKeyboardUnion(txt, message, keyboard, '')
# Обработчик команды /skip # Обработчик команды /skip
@dp.message_handler(commands=["skip"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["skip"])
@dp.callback_query_handler(text="skip") @dp.callback_query_handler(text="skip")
async def inl_skip(message: Union[types.Message, types.CallbackQuery]) -> None: async def inl_skip(message: Union[types.Message, types.CallbackQuery]) -> None:
logging.info('inl_skip') logging.info('inl_skip')
@ -888,14 +903,17 @@ async def inl_skip(message: Union[types.Message, types.CallbackQuery]) -> None:
if hasattr(message, "content_type"): if hasattr(message, "content_type"):
await message.answer("skip") await message.answer("skip")
else: else:
await bot.edit_message_text( try:
chat_id=message.message.chat.id, await bot.edit_message_text(
message_id=message.message.message_id, chat_id=message.message.chat.id,
text="Пропущено", message_id=message.message.message_id,
reply_markup=getStart(), text="Пропущено",
) reply_markup=getStart(),
)
except:
pass
@dp.message_handler(commands=["gen"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["gen"])
@dp.callback_query_handler(text="gen") @dp.callback_query_handler(text="gen")
async def inl_gen(message: Union[types.Message, types.CallbackQuery]) -> None: async def inl_gen(message: Union[types.Message, types.CallbackQuery]) -> None:
if hasattr(message, "content_type"): if hasattr(message, "content_type"):
@ -1044,7 +1062,7 @@ async def cmd_prompt(message: Union[types.Message, types.CallbackQuery]) -> None
await getKeyboardUnion("Опции", message, keyboard) await getKeyboardUnion("Опции", message, keyboard)
# Получить опции # Получить опции
@dp.message_handler(commands=["opt"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["opt"])
@dp.callback_query_handler(text="opt") @dp.callback_query_handler(text="opt")
async def cmd_opt(message: Union[types.Message, types.CallbackQuery]) -> None: async def cmd_opt(message: Union[types.Message, types.CallbackQuery]) -> None:
logging.info("cmd_opt") logging.info("cmd_opt")
@ -1052,7 +1070,7 @@ async def cmd_opt(message: Union[types.Message, types.CallbackQuery]) -> None:
await getKeyboardUnion("Опции", message, keyboard) await getKeyboardUnion("Опции", message, keyboard)
# Вызов sttngs # Вызов sttngs
@dp.message_handler(commands=["sttngs"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["sttngs"])
@dp.callback_query_handler(text="sttngs") @dp.callback_query_handler(text="sttngs")
async def inl_sttngs(message: Union[types.Message, types.CallbackQuery]) -> None: async def inl_sttngs(message: Union[types.Message, types.CallbackQuery]) -> None:
logging.info("inl_sttngs") logging.info("inl_sttngs")
@ -1060,7 +1078,7 @@ async def inl_sttngs(message: Union[types.Message, types.CallbackQuery]) -> None
await getKeyboardUnion("Настройки", message, keyboard) await getKeyboardUnion("Настройки", message, keyboard)
# Вызов script # Вызов script
@dp.message_handler(commands=["scrpts"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["scrpts"])
@dp.callback_query_handler(text="scrpts") @dp.callback_query_handler(text="scrpts")
async def inl_scrpts(message: Union[types.Message, types.CallbackQuery]) -> None: async def inl_scrpts(message: Union[types.Message, types.CallbackQuery]) -> None:
logging.info("inl_scrpts") logging.info("inl_scrpts")
@ -1068,7 +1086,7 @@ async def inl_scrpts(message: Union[types.Message, types.CallbackQuery]) -> None
await getKeyboardUnion("Скрипты", message, keyboard) await getKeyboardUnion("Скрипты", message, keyboard)
# Вызов get_models # Вызов get_models
@dp.message_handler(commands=["mdl"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["mdl"])
@dp.callback_query_handler(text="mdl") @dp.callback_query_handler(text="mdl")
async def inl_mdl(message: Union[types.Message, types.CallbackQuery]) -> None: async def inl_mdl(message: Union[types.Message, types.CallbackQuery]) -> None:
logging.info("inl_mdl") logging.info("inl_mdl")
@ -1083,8 +1101,8 @@ async def inl_mdl(message: Union[types.Message, types.CallbackQuery]) -> None:
await getKeyboardUnion("Turn on SD"+sd, message, keyboard) await getKeyboardUnion("Turn on SD"+sd, message, keyboard)
# Вызов get_samplers # Вызов get_samplers
@dp.message_handler(commands=["smplr"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["smplr"])
@dp.message_handler(commands=["sampler_name"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["sampler_name"])
@dp.callback_query_handler(text="smplr") @dp.callback_query_handler(text="smplr")
async def inl_smplr(message: Union[types.Message, types.CallbackQuery]) -> None: async def inl_smplr(message: Union[types.Message, types.CallbackQuery]) -> None:
logging.info("inl_smplr") logging.info("inl_smplr")
@ -1099,8 +1117,8 @@ async def inl_smplr(message: Union[types.Message, types.CallbackQuery]) -> None:
await getKeyboardUnion("Turn on SD"+sd, message, keyboard) await getKeyboardUnion("Turn on SD"+sd, message, keyboard)
# Вызов get_hr_list # Вызов get_hr_list
@dp.message_handler(commands=["hr"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["hr"])
@dp.message_handler(commands=["hr_upscaler"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["hr_upscaler"])
@dp.callback_query_handler(text="hr") @dp.callback_query_handler(text="hr")
async def inl_hr(message: Union[types.Message, types.CallbackQuery]) -> None: async def inl_hr(message: Union[types.Message, types.CallbackQuery]) -> None:
logging.info("inl_hr") logging.info("inl_hr")
@ -1128,14 +1146,14 @@ async def inl_change_param(callback: types.CallbackQuery) -> None:
) )
# script random gen from models # script random gen from models
@dp.message_handler(commands=["rnd_mdl"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["rnd_mdl"])
@dp.callback_query_handler(text='rnd_mdl') @dp.callback_query_handler(text='rnd_mdl')
async def inl_rnd_mdl(message: Union[types.Message, types.CallbackQuery]) -> None: async def inl_rnd_mdl(message: Union[types.Message, types.CallbackQuery]) -> None:
logging.info('inl_rnd_mdl') logging.info('inl_rnd_mdl')
await rnd_script(message, 'models') await rnd_script(message, 'models')
# script random gen from models # script random gen from models
@dp.message_handler(commands=["rnd_smp"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["rnd_smp"])
@dp.callback_query_handler(text='rnd_smp') @dp.callback_query_handler(text='rnd_smp')
async def inl_rnd_smp(message: Union[types.Message, types.CallbackQuery]) -> None: async def inl_rnd_smp(message: Union[types.Message, types.CallbackQuery]) -> None:
logging.info('inl_rnd_smp') logging.info('inl_rnd_smp')
@ -1189,7 +1207,7 @@ async def inf_func(chatId):
) )
# script random infinity gen from https://random-word-api.herokuapp.com/word?lang=en # script random infinity gen from https://random-word-api.herokuapp.com/word?lang=en
@dp.message_handler(commands=["inf"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["inf"])
@dp.callback_query_handler(text='inf') @dp.callback_query_handler(text='inf')
async def inl_rnd_inf(message: Union[types.Message, types.CallbackQuery]) -> None: async def inl_rnd_inf(message: Union[types.Message, types.CallbackQuery]) -> None:
logging.info('inl_rnd_inf') logging.info('inl_rnd_inf')
@ -1228,7 +1246,7 @@ async def inl_rnd_inf(message: Union[types.Message, types.CallbackQuery]) -> Non
await inf_func(chatId) await inf_func(chatId)
# Получить LORA # Получить LORA
@dp.message_handler(commands=["get_lora"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["get_lora"])
@dp.callback_query_handler(text="get_lora") @dp.callback_query_handler(text="get_lora")
async def getLora(message: Union[types.Message, types.CallbackQuery]) -> None: async def getLora(message: Union[types.Message, types.CallbackQuery]) -> None:
logging.info("getLora") logging.info("getLora")
@ -1252,7 +1270,7 @@ async def getLora(message: Union[types.Message, types.CallbackQuery]) -> None:
await getKeyboardUnion(arr, message, keyboard) await getKeyboardUnion(arr, message, keyboard)
# Рандомный промпт с lexica.art на основе data['prompt'] # Рандомный промпт с lexica.art на основе data['prompt']
@dp.message_handler(commands=["lxc_prompt"]) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, commands=["lxc_prompt"])
@dp.callback_query_handler(text="lxc_prompt") @dp.callback_query_handler(text="lxc_prompt")
async def get_lxc_prompt(message: Union[types.Message, types.CallbackQuery]) -> None: async def get_lxc_prompt(message: Union[types.Message, types.CallbackQuery]) -> None:
logging.info("get_lxc_prompt") logging.info("get_lxc_prompt")
@ -1328,12 +1346,15 @@ async def inl_yes_no(callback: types.CallbackQuery) -> None:
if callback.data[1:] in dataParams.keys(): if callback.data[1:] in dataParams.keys():
dataParams[callback.data[1:]] = 'False' dataParams[callback.data[1:]] = 'False'
#await bot.delete_message(chat_id=callback.message.chat.id, message_id=callback.message.message_id) #await bot.delete_message(chat_id=callback.message.chat.id, message_id=callback.message.message_id)
await bot.edit_message_text( try:
chat_id=callback.message.chat.id, await bot.edit_message_text(
message_id=callback.message.message_id, chat_id=callback.message.chat.id,
text=f"JSON параметры:\n{getJson()}\n{getJson(1)}", message_id=callback.message.message_id,
reply_markup=keyboard, text=f"JSON параметры:\n{getJson()}\n{getJson(1)}",
) reply_markup=keyboard,
)
except:
pass
# отлов поста с канала и мгновенная генерация если включен just_gen # отлов поста с канала и мгновенная генерация если включен just_gen
@dp.channel_post_handler() @dp.channel_post_handler()
@ -1352,7 +1373,7 @@ async def handle_channel_post(message: types.Message):
) )
# Ввели любой текст # Ввели любой текст
@dp.message_handler(lambda message: True) @dp.message_handler(lambda message: True and (message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0))
async def change_json(message: types.Message): async def change_json(message: types.Message):
logging.info("change_json") logging.info("change_json")
keyboard = InlineKeyboardMarkup(inline_keyboard=[getSet(0), getOpt(0), getStart(0)]) keyboard = InlineKeyboardMarkup(inline_keyboard=[getSet(0), getOpt(0), getStart(0)])
@ -1409,7 +1430,7 @@ async def change_json(message: types.Message):
) )
# Ввели ответ на change_json # Ввели ответ на change_json
@dp.message_handler(state=Form) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, state=Form)
async def answer_handler(message: types.Message, state: FSMContext): async def answer_handler(message: types.Message, state: FSMContext):
logging.info('answer_handler') logging.info('answer_handler')
keyboard = InlineKeyboardMarkup(inline_keyboard=[getSet(0), getOpt(0), getStart(0)]) keyboard = InlineKeyboardMarkup(inline_keyboard=[getSet(0), getOpt(0), getStart(0)])
@ -1432,7 +1453,7 @@ async def answer_handler(message: types.Message, state: FSMContext):
f"JSON параметры:\n{getJson()}\n{getJson(1)}", reply_markup=keyboard f"JSON параметры:\n{getJson()}\n{getJson(1)}", reply_markup=keyboard
) )
@dp.message_handler(content_types=['document']) @dp.message_handler(lambda message: message.from_user.id in ALLOWED_USERS or len(ALLOWED_USERS) == 0, content_types=['document'])
async def handle_file(message: types.Message): async def handle_file(message: types.Message):
logging.info('handle_file') logging.info('handle_file')

View File

@ -1,4 +1,4 @@
FROM python:3.11 FROM soaska.ru/soaska/pytorch:latest
LABEL maintainer="info@borisov-ab.ru" LABEL maintainer="info@borisov-ab.ru"
WORKDIR /bot WORKDIR /bot

View File

@ -9,4 +9,7 @@ SD_HOST = '127.0.0.1'
SD_PORT = '7861' SD_PORT = '7861'
SD_USERNAME = 'user' SD_USERNAME = 'user'
SD_PASSWORD = '1234' SD_PASSWORD = '1234'
DEBUG = 'no' # 'yes' to debug DEBUG = 'no' # 'yes' to debug
# ids are type int
#ALLOWED_USERS = '[id1, id2, idN]'
ALLOWED_USERS = '[]' # for public access

View File

@ -1,6 +1,7 @@
aiogram==2.22.2 aiogram==2.22.2
webuiapi webuiapi
translate translate
torch
transformers transformers
vk_api vk_api
ok_api ok_api