forked from soaska/sd_telegram
get models
set model
This commit is contained in:
parent
83a1289794
commit
0265ccda64
65
bot.py
65
bot.py
@ -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):
|
||||||
|
Loading…
Reference in New Issue
Block a user