get models

set model
This commit is contained in:
Mikhail Guseletov 2023-06-20 12:32:04 +07:00
parent 83a1289794
commit 0265ccda64

65
bot.py
View File

@ -201,14 +201,14 @@ def getKeyboard(keysArr, returnAll):
return keys return keys
# Стандартное меню # Стандартное меню
async def getKeyboardUnion(txt, message, keyboard): async def getKeyboardUnion(txt, message, keyboard, parse_mode = 'Markdown'):
# Если команда /settings # Если команда /settings
if hasattr(message, "content_type"): if hasattr(message, "content_type"):
await bot.send_message( await bot.send_message(
chat_id=message.from_user.id, chat_id=message.from_user.id,
text=txt, text=txt,
reply_markup=keyboard, reply_markup=keyboard,
parse_mode="Markdown" parse_mode=parse_mode
) )
else: else:
await bot.edit_message_text( await bot.edit_message_text(
@ -216,7 +216,7 @@ async def getKeyboardUnion(txt, message, keyboard):
message_id=message.message.message_id, message_id=message.message.message_id,
text=txt, text=txt,
reply_markup=keyboard, reply_markup=keyboard,
parse_mode="Markdown" parse_mode=parse_mode
) )
def getStart(returnAll=1) -> InlineKeyboardMarkup: def getStart(returnAll=1) -> InlineKeyboardMarkup:
@ -233,8 +233,9 @@ def getStart(returnAll=1) -> InlineKeyboardMarkup:
def getOpt(returnAll=1) -> InlineKeyboardMarkup: def getOpt(returnAll=1) -> InlineKeyboardMarkup:
keysArr = [ keysArr = [
InlineKeyboardButton("settings", callback_data="settings"), InlineKeyboardButton("settings", callback_data="settings"),
InlineKeyboardButton("scripts", callback_data="scripts"), InlineKeyboardButton("scripts", callback_data="scripts"),
InlineKeyboardButton("prompt", callback_data="prompt"), InlineKeyboardButton("mdl", callback_data="mdl"),
InlineKeyboardButton("prompt", callback_data="prompt"),
] ]
return (getKeyboard(keysArr, returnAll)) return (getKeyboard(keysArr, returnAll))
@ -243,8 +244,8 @@ def getOpt(returnAll=1) -> InlineKeyboardMarkup:
def getScripts(returnAll=1) -> InlineKeyboardMarkup: def getScripts(returnAll=1) -> InlineKeyboardMarkup:
keysArr = [ keysArr = [
InlineKeyboardButton("get_lora", callback_data="get_lora"), InlineKeyboardButton("get_lora", callback_data="get_lora"),
InlineKeyboardButton("rnd_mdl", callback_data="rnd_mdl"), InlineKeyboardButton("rnd_mdl", callback_data="rnd_mdl"),
InlineKeyboardButton("rnd_smp", callback_data="rnd_smp"), InlineKeyboardButton("rnd_smp", callback_data="rnd_smp"),
] ]
return (getKeyboard(keysArr, returnAll)) return (getKeyboard(keysArr, returnAll))
@ -253,7 +254,7 @@ def getScripts(returnAll=1) -> InlineKeyboardMarkup:
def getSet(returnAll=1) -> InlineKeyboardMarkup: def getSet(returnAll=1) -> InlineKeyboardMarkup:
keysArr = [ keysArr = [
InlineKeyboardButton("change_param", callback_data="change_param"), InlineKeyboardButton("change_param", callback_data="change_param"),
InlineKeyboardButton("reset_param", callback_data="reset_param"), InlineKeyboardButton("reset_param", callback_data="reset_param"),
] ]
return (getKeyboard(keysArr, returnAll)) return (getKeyboard(keysArr, returnAll))
@ -267,6 +268,23 @@ def getPrompt(returnAll=1) -> InlineKeyboardMarkup:
def getTxt(): def getTxt():
return "/start /opt /gen /skip /help" return "/start /opt /gen /skip /help"
# get all models from stable-diffusion-webui\models\Stable-diffusion
def get_models():
models = api.get_sd_models()
arr = []
arr2 = []
i = 1
for item in models:
arr.append(InlineKeyboardButton(item['model_name'], callback_data='models|'+item['model_name']))
if i % 3 == 0:
arr2.append(arr)
arr = []
i += 1
if arr != []:
arr2.append(arr)
print(arr2)
return arr2
# -------- COMMANDS ---------- # -------- COMMANDS ----------
# start или help # start или help
@ -424,6 +442,21 @@ async def inl_scripts(message: Union[types.Message, types.CallbackQuery]) -> Non
keyboard = InlineKeyboardMarkup(inline_keyboard=[getScripts(0), getOpt(0), getStart(0)]) keyboard = InlineKeyboardMarkup(inline_keyboard=[getScripts(0), getOpt(0), getStart(0)])
await getKeyboardUnion("Скрипты", message, keyboard) await getKeyboardUnion("Скрипты", message, keyboard)
# Вызов get_models
@dp.message_handler(commands=["mdl"])
@dp.callback_query_handler(text="mdl")
async def inl_mdl(message: Union[types.Message, types.CallbackQuery]) -> None:
print("inl_mdl")
global sd
if sd == '':
menu = get_models()
menu.append(getOpt(0))
menu.append(getStart(0))
await getKeyboardUnion("Скрипты", message, InlineKeyboardMarkup(inline_keyboard=menu))
else:
keyboard = InlineKeyboardMarkup(inline_keyboard=[getOpt(0), getStart(0)])
await getKeyboardUnion("Turn on SD"+sd, message, keyboard)
# Вызов change_param # Вызов change_param
@dp.callback_query_handler(text="change_param") @dp.callback_query_handler(text="change_param")
async def inl_change_param(callback: types.CallbackQuery) -> None: async def inl_change_param(callback: types.CallbackQuery) -> None:
@ -453,7 +486,7 @@ async def rnd_mdl(message: Union[types.Message, types.CallbackQuery]) -> None:
# Включаем асинхрон, чтоб заработал await api.txt2img # Включаем асинхрон, чтоб заработал await api.txt2img
await bot.send_message( await bot.send_message(
chat_id=chatId, chat_id=chatId,
text='Цикл по '+str(len(models)) + ' моделям' # data["prompt"] + "\n" + str(res.info["all_seeds"]) + models[number], text='Цикл по '+str(len(models)) + ' моделям'
) )
data["use_async"] = "True" data["use_async"] = "True"
for i, number in enumerate(numbers): for i, number in enumerate(numbers):
@ -479,7 +512,7 @@ async def rnd_mdl(message: Union[types.Message, types.CallbackQuery]) -> None:
) )
await bot.send_message( await bot.send_message(
chat_id=chatId, chat_id=chatId,
text=models[number] #data["prompt"] + "\n" + str(res.info["all_seeds"]) + models[number], text=models[number]
) )
# Удаляем сообщение с прогрессом # Удаляем сообщение с прогрессом
@ -534,6 +567,18 @@ async def random_prompt(callback: types.CallbackQuery) -> None:
keyboard = InlineKeyboardMarkup(inline_keyboard=[getPrompt(0), getOpt(0), getStart(0)]) keyboard = InlineKeyboardMarkup(inline_keyboard=[getPrompt(0), getOpt(0), getStart(0)])
await getKeyboardUnion(get_random_prompt(), callback, keyboard) await getKeyboardUnion(get_random_prompt(), callback, keyboard)
# тыкнули на модельку
@dp.callback_query_handler(text_startswith="models")
async def inl_models(callback: types.CallbackQuery) -> None:
print('inl_models')
mdl = callback.data.split("|")[1]
api.util_set_model(mdl)
api.util_wait_for_ready()
menu = get_models()
menu.append(getOpt(0))
menu.append(getStart(0))
await getKeyboardUnion('Теперь модель = ' + str(mdl), callback, InlineKeyboardMarkup(inline_keyboard=menu), '')
# Ввели любой текст # Ввели любой текст
@dp.message_handler(lambda message: True) @dp.message_handler(lambda message: True)
async def change_json(message: types.Message): async def change_json(message: types.Message):