upload from chat history and save prompt

change print from logging
readme
This commit is contained in:
Mikhail Guseletov 2023-07-11 23:18:55 +07:00
parent 51b8eca33c
commit 33685e3cde
2 changed files with 155 additions and 74 deletions

View File

@ -59,8 +59,8 @@ _**help**
help help
If you send file, view 2 command: If you send file, view 2 command:
_**uplora** _**Lora**
_**uplmodel** _**Model**
Uploading files to folders: Uploading files to folders:
\models\Stable-diffusion \models\Stable-diffusion
@ -73,20 +73,19 @@ Please pay attention to the file size limit in Telegram API:
[sending-files](https://core.telegram.org/bots/api#sending-files) [sending-files](https://core.telegram.org/bots/api#sending-files)
[senddocument](https://core.telegram.org/bots/api#senddocument) [senddocument](https://core.telegram.org/bots/api#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
<img src="https://raw.githubusercontent.com/partyfind/sd_bot/master/trash/photo_2023-06-22_15-29-24.jpg" alt="drawing" width="400"/> <img src="https://raw.githubusercontent.com/partyfind/sd_bot/master/trash/photo_2023-06-22_15-29-24.jpg" alt="drawing" width="400"/>
<img src="https://raw.githubusercontent.com/partyfind/sd_bot/master/trash/photo_2023-06-22_15-29-27.jpg" width="350"/> <img src="https://raw.githubusercontent.com/partyfind/sd_bot/master/trash/photo_2023-06-22_15-29-27.jpg" width="350"/>
**TODO** **TODO**
1. use share link (not yet possible, because the API is running in the background) 1. use share link (not yet possible, because the API is running in the background)
2. Logging 2. show error in tg
3. show error in tg 3. Get all files/pictures from the computer for today (preview and seeds)
4. translate 4. Ability to send everything with one command with settings
5. Get all files/pictures from the computer for today (preview and seeds) 5. Preloading photos when waiting for a long time so that you can skip
6. Ability to send everything with one command with settings 6. Progress in script
7. Preloading photos when waiting for a long time so that you can skip
8. Uploading random.json from export TG channel
9. Progress in script
**TNX** **TNX**
[AUTOMATIC1111](https://github.com/AUTOMATIC1111/stable-diffusion-webui) [AUTOMATIC1111](https://github.com/AUTOMATIC1111/stable-diffusion-webui)

176
bot.py
View File

@ -67,6 +67,8 @@ local = "http://" + host + ":" + port
process = None process = None
sd = "" sd = ""
doc = '' doc = ''
chatHistory = ''
chatHistoryPrompt = ''
data = getAttrtxt2img() data = getAttrtxt2img()
data['prompt'] = 'cat in space' # Ý data['prompt'] = 'cat in space' # Ý
@ -100,14 +102,14 @@ Form = type("Form", (StatesGroup,), state_classes)
def start_sd(): def start_sd():
global process, sd global process, sd
if not process: if not process:
print('start_process start_sd') logging.info('start_process start_sd')
process = subprocess.Popen(["python", "../../launch.py", "--nowebui", "--xformers", "--disable-nan-check"]) process = subprocess.Popen(["python", "../../launch.py", "--nowebui", "--xformers", "--disable-nan-check"])
sd = "" sd = ""
async def stop_sd(): async def stop_sd():
global process, sd global process, sd
if process: if process:
print('stop_process stop_sd') logging.info('stop_process stop_sd')
process.terminate() process.terminate()
process = None process = None
sd = "" sd = ""
@ -221,7 +223,6 @@ def translateRuToEng(text):
async def getProgress(msgTime): async def getProgress(msgTime):
while True: while True:
# TODO aiogram.utils.exceptions.MessageToEditNotFound: Message to edit not found # TODO aiogram.utils.exceptions.MessageToEditNotFound: Message to edit not found
await asyncio.sleep(1)
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( await bot.edit_message_text(
@ -229,6 +230,7 @@ async def getProgress(msgTime):
message_id=msgTime.message_id, message_id=msgTime.message_id,
text=str(proc)+'% ' + points text=str(proc)+'% ' + points
) )
await asyncio.sleep(1)
#TODO #TODO
async def getProgress2(msgTime): async def getProgress2(msgTime):
points = '.' points = '.'
@ -375,9 +377,23 @@ def getYesNo(returnAll = 1, nam = '') -> InlineKeyboardMarkup:
# Меню промпта # Меню промпта
def getPrompt(returnAll = 1) -> InlineKeyboardMarkup: def getPrompt(returnAll = 1) -> InlineKeyboardMarkup:
global chatHistory
if chatHistory != '':
keysArr = [InlineKeyboardButton("get", callback_data="get"), keysArr = [InlineKeyboardButton("get", callback_data="get"),
InlineKeyboardButton("random_prompt", callback_data="random_prompt"), InlineKeyboardButton("random", callback_data="random_prompt"),
InlineKeyboardButton("lxc_prompt", callback_data="lxc_prompt"),] InlineKeyboardButton("lxc", callback_data="lxc_prompt"),
InlineKeyboardButton("json", callback_data="next")]
else:
keysArr = [InlineKeyboardButton("get", callback_data="get"),
InlineKeyboardButton("random", callback_data="random_prompt"),
InlineKeyboardButton("lxc", callback_data="lxc_prompt")]
return (getKeyboard(keysArr, returnAll))
# Меню промпта из JSON
def getPromptFromJson(returnAll = 1) -> InlineKeyboardMarkup:
keysArr = [InlineKeyboardButton("Next prompt", callback_data="next"),
InlineKeyboardButton("Save", callback_data="save_prompt")]
return (getKeyboard(keysArr, returnAll)) return (getKeyboard(keysArr, returnAll))
# Меню текста # Меню текста
@ -385,8 +401,7 @@ def getTxt():
return "/start /opt /gen /skip /stop /help" return "/start /opt /gen /skip /stop /help"
def set_array(arrAll, itemArr, callback_data, useIn = 1): def set_array(arrAll, itemArr, callback_data, useIn = 1):
print('set_array') logging.info('set_array')
print(arrAll)
arr = [] arr = []
arr2 = [] arr2 = []
i = 1 i = 1
@ -451,12 +466,18 @@ async def rnd_script(message, typeScript):
data['sampler_name'] = elements[number]['name'] # Ý data['sampler_name'] = elements[number]['name'] # Ý
data["use_async"] = "False" data["use_async"] = "False"
data['prompt'] = itemTxt data['prompt'] = itemTxt
try:
res = await api.txt2img(**data) res = await api.txt2img(**data)
await show_thumbs(chatId, res) await show_thumbs(chatId, res)
await bot.send_message( await bot.send_message(
chat_id=chatId, chat_id=chatId,
text=elements[number] if typeScript == 'models' else elements[number]['name'] text=elements[number] if typeScript == 'models' else elements[number]['name']
) )
except Exception as e:
await bot.send_message(
chat_id=chatId,
text=e
)
data['prompt'] = dataPromptOld data['prompt'] = dataPromptOld
await bot.send_message( await bot.send_message(
chat_id=chatId, chat_id=chatId,
@ -495,7 +516,6 @@ async def show_thumbs(chat_id, res):
@dp.message_handler(commands=["start"]) @dp.message_handler(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")
#print("cmd_start")
txt = "Это бот для локального запуска SD\n" + getTxt() txt = "Это бот для локального запуска SD\n" + getTxt()
await getKeyboardUnion(txt, message, getStart()) await getKeyboardUnion(txt, message, getStart())
@ -504,7 +524,7 @@ async def cmd_start(message: Union[types.Message, types.CallbackQuery]) -> None:
@dp.message_handler(commands=["stop"]) @dp.message_handler(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:
print("inl_sd") logging.info("inl_sd")
global sd global sd
if hasattr(message, "content_type"): if hasattr(message, "content_type"):
if message.text == '/stop': if message.text == '/stop':
@ -540,25 +560,68 @@ async def inl_sd(message: Union[types.Message, types.CallbackQuery]) -> None:
r = requests.get(url, timeout=3) r = requests.get(url, timeout=3)
r.raise_for_status() r.raise_for_status()
n = r.status_code n = r.status_code
print(r.status_code) logging.info(r.status_code)
except requests.exceptions.HTTPError as errh: except requests.exceptions.HTTPError as errh:
print("Http Error:", errh) logging.info("Http Error:", errh)
except requests.exceptions.ConnectionError as errc: except requests.exceptions.ConnectionError as errc:
print("Error Connecting:", errc) logging.info("Error Connecting:", errc)
except requests.exceptions.Timeout as errt: except requests.exceptions.Timeout as errt:
print("Timeout Error:", errt) logging.info("Timeout Error:", errt)
except requests.exceptions.RequestException as err: except requests.exceptions.RequestException as err:
print("OOps: Something Else", err) logging.info("OOps: Something Else", err)
sd = "" sd = ""
await message.message.edit_text( await message.message.edit_text(
"SD запущена\n" + getTxt(), reply_markup=getStart() "SD запущена\n" + getTxt(), reply_markup=getStart()
) )
# upload Lora # save prompt
@dp.callback_query_handler(text="save_prompt")
async def inl_save_prompt(callback: types.CallbackQuery) -> None:
logging.info("inl_save_prompt")
global data, chatHistoryPrompt
data['prompt'] = chatHistoryPrompt
keyboard = InlineKeyboardMarkup(inline_keyboard=[getPromptFromJson(0), getStart(0)])
await bot.edit_message_text(
chat_id=callback.message.chat.id,
message_id=callback.message.message_id,
text='Промпт сохранён: ' + chatHistoryPrompt,
reply_markup=keyboard
)
# upload result.json from chat history
@dp.callback_query_handler(text="uplchat")
@dp.callback_query_handler(text="next")
async def inl_uplchat(callback: types.CallbackQuery) -> None:
logging.info("inl_uplchat")
# TODO cache chatHistory
global chatHistory, chatHistoryPrompt
file = await chatHistory.download()
with open(file.name, 'r', encoding='utf-8') as f:
data = json.load(f)
t = random.choice(data['messages'])['text']
if t == '':
while True:
t2 = random.choice(data['messages'])['text']
if t2 != '':
t = t2
break
chatHistoryPrompt = translateRuToEng(t)
keyboard = InlineKeyboardMarkup(inline_keyboard=[getPromptFromJson(0), getStart(0)])
await bot.edit_message_text(
chat_id=callback.message.chat.id,
message_id=callback.message.message_id,
text=translateRuToEng(t).replace('<', '&lt;').replace('>', '&gt;'),
reply_markup=keyboard,
parse_mode = types.ParseMode.HTML
)
# upload Lora/Model
@dp.callback_query_handler(text="uplora") @dp.callback_query_handler(text="uplora")
@dp.callback_query_handler(text="uplmodel") @dp.callback_query_handler(text="uplmodel")
async def inl_uplora(callback: types.CallbackQuery) -> None: async def inl_uplora(callback: types.CallbackQuery) -> None:
print("inl_uplora") logging.info("inl_uplora")
global doc global doc
if callback.data == 'uplora': if callback.data == 'uplora':
folder_path = Path('../../models/Lora') folder_path = Path('../../models/Lora')
@ -579,7 +642,7 @@ async def inl_uplora(callback: types.CallbackQuery) -> None:
@dp.message_handler(commands=["reset_param"]) @dp.message_handler(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:
print("inl_reset_param") logging.info("inl_reset_param")
global data global data
global dataParams global dataParams
global dataOld global dataOld
@ -594,7 +657,7 @@ async def inl_reset_param(message: Union[types.Message, types.CallbackQuery]) ->
@dp.message_handler(commands=["fast_param"]) @dp.message_handler(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:
print("inl_fast_param") logging.info("inl_fast_param")
global data global data
global dataParams global dataParams
data['steps'] = 35 data['steps'] = 35
@ -623,7 +686,7 @@ async def inl_fast_param(message: Union[types.Message, types.CallbackQuery]) ->
@dp.message_handler(commands=["skip"]) @dp.message_handler(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:
print('inl_skip') logging.info('inl_skip')
# Создаем сессию # Создаем сессию
async with aiohttp.ClientSession() as session: async with aiohttp.ClientSession() as session:
# Отправляем POST-запрос ко второму сервису # Отправляем POST-запрос ко второму сервису
@ -647,6 +710,7 @@ async def inl_gen(message: Union[types.Message, types.CallbackQuery]) -> None:
chatId = message.chat.id chatId = message.chat.id
else: else:
chatId = message.message.chat.id chatId = message.message.chat.id
keyboard = InlineKeyboardMarkup(inline_keyboard=[getSet(0), getOpt(0), getStart(0)])
global sd global sd
dataPromptOld = data['prompt'] dataPromptOld = data['prompt']
if sd == '': if sd == '':
@ -683,8 +747,12 @@ async def inl_gen(message: Union[types.Message, types.CallbackQuery]) -> None:
await bot.delete_message(chat_id=msgTime.chat.id, message_id=msgTime.message_id) await bot.delete_message(chat_id=msgTime.chat.id, message_id=msgTime.message_id)
except Exception as e: except Exception as e:
logging.error(f"gen error: {e}") logging.error(f"gen error: {e}")
await bot.send_message(
keyboard = InlineKeyboardMarkup(inline_keyboard=[getSet(0), getOpt(0), getStart(0)]) chat_id=chatId,
text=e,
reply_markup=keyboard,
parse_mode="Markdown",
)
await bot.send_message( await bot.send_message(
chat_id=chatId, chat_id=chatId,
text=f"`{dataPromptOld}`", text=f"`{dataPromptOld}`",
@ -698,7 +766,7 @@ async def inl_gen(message: Union[types.Message, types.CallbackQuery]) -> None:
# Получить меню действий с промптами # Получить меню действий с промптами
@dp.callback_query_handler(text="prompt") @dp.callback_query_handler(text="prompt")
async def cmd_prompt(message: Union[types.Message, types.CallbackQuery]) -> None: async def cmd_prompt(message: Union[types.Message, types.CallbackQuery]) -> None:
print("cmd_prompt") logging.info("cmd_prompt")
keyboard = InlineKeyboardMarkup(inline_keyboard=[getPrompt(0), getOpt(0), getStart(0)]) keyboard = InlineKeyboardMarkup(inline_keyboard=[getPrompt(0), getOpt(0), getStart(0)])
await getKeyboardUnion("Опции", message, keyboard) await getKeyboardUnion("Опции", message, keyboard)
@ -706,7 +774,7 @@ async def cmd_prompt(message: Union[types.Message, types.CallbackQuery]) -> None
@dp.message_handler(commands=["opt"]) @dp.message_handler(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:
print("cmd_opt") logging.info("cmd_opt")
keyboard = InlineKeyboardMarkup(inline_keyboard=[getOpt(0), getStart(0)]) keyboard = InlineKeyboardMarkup(inline_keyboard=[getOpt(0), getStart(0)])
await getKeyboardUnion("Опции", message, keyboard) await getKeyboardUnion("Опции", message, keyboard)
@ -714,7 +782,7 @@ async def cmd_opt(message: Union[types.Message, types.CallbackQuery]) -> None:
@dp.message_handler(commands=["sttngs"]) @dp.message_handler(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:
print("inl_sttngs") logging.info("inl_sttngs")
keyboard = InlineKeyboardMarkup(inline_keyboard=[getSet(0), getOpt(0), getStart(0)]) keyboard = InlineKeyboardMarkup(inline_keyboard=[getSet(0), getOpt(0), getStart(0)])
await getKeyboardUnion("Настройки", message, keyboard) await getKeyboardUnion("Настройки", message, keyboard)
@ -722,7 +790,7 @@ async def inl_sttngs(message: Union[types.Message, types.CallbackQuery]) -> None
@dp.message_handler(commands=["scrpts"]) @dp.message_handler(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:
print("inl_scrpts") logging.info("inl_scrpts")
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)
@ -730,7 +798,7 @@ async def inl_scrpts(message: Union[types.Message, types.CallbackQuery]) -> None
@dp.message_handler(commands=["mdl"]) @dp.message_handler(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:
print("inl_mdl") logging.info("inl_mdl")
global sd global sd
if sd == '': if sd == '':
menu = get_models() menu = get_models()
@ -746,7 +814,7 @@ async def inl_mdl(message: Union[types.Message, types.CallbackQuery]) -> None:
@dp.message_handler(commands=["sampler_name"]) @dp.message_handler(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:
print("inl_smplr") logging.info("inl_smplr")
global sd global sd
if sd == '': if sd == '':
menu = get_samplers_list() menu = get_samplers_list()
@ -762,7 +830,7 @@ async def inl_smplr(message: Union[types.Message, types.CallbackQuery]) -> None:
@dp.message_handler(commands=["hr_upscaler"]) @dp.message_handler(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:
print("inl_hr") logging.info("inl_hr")
global sd global sd
if sd == '': if sd == '':
menu = get_hr_list() menu = get_hr_list()
@ -776,7 +844,7 @@ async def inl_hr(message: Union[types.Message, types.CallbackQuery]) -> None:
# Вызов 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:
print("inl_change_param") logging.info("inl_change_param")
keyboard = InlineKeyboardMarkup(inline_keyboard=[getSet(0), getOpt(0), getStart(0)]) keyboard = InlineKeyboardMarkup(inline_keyboard=[getSet(0), getOpt(0), getStart(0)])
json_list = [f"/{key} = {value}" for key, value in data.items()] json_list = [f"/{key} = {value}" for key, value in data.items()]
json_list_params = [f"/{key} = {value}" for key, value in dataParams.items()] json_list_params = [f"/{key} = {value}" for key, value in dataParams.items()]
@ -790,19 +858,19 @@ async def inl_change_param(callback: types.CallbackQuery) -> None:
@dp.message_handler(commands=["rnd_mdl"]) @dp.message_handler(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:
print('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(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:
print('inl_rnd_smp') logging.info('inl_rnd_smp')
await rnd_script(message, 'samplers') await rnd_script(message, 'samplers')
# inf function # inf function
async def inf_func(chatId): async def inf_func(chatId):
print('inf_func') logging.info('inf_func')
# SCALE # SCALE
data['cfg_scale'] = round(random.uniform(4.7, 15), 1) data['cfg_scale'] = round(random.uniform(4.7, 15), 1)
# STEPS # STEPS
@ -832,6 +900,7 @@ async def inf_func(chatId):
data["use_async"] = False data["use_async"] = False
# GEN # GEN
try:
res = api.txt2img(**data) res = api.txt2img(**data)
await show_thumbs(chatId, res) await show_thumbs(chatId, res)
await bot.send_message( await bot.send_message(
@ -839,12 +908,18 @@ async def inf_func(chatId):
text=get_prompt_settings(), text=get_prompt_settings(),
parse_mode=types.ParseMode.HTML parse_mode=types.ParseMode.HTML
) )
except Exception as e:
await bot.send_message(
chat_id=chatId,
text=e,
parse_mode=types.ParseMode.HTML
)
# 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(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:
print('inl_rnd_inf') logging.info('inl_rnd_inf')
global dataParams # ? global dataParams # ?
if hasattr(message, "content_type"): if hasattr(message, "content_type"):
chatId = message.chat.id chatId = message.chat.id
@ -875,7 +950,7 @@ async def inl_rnd_inf(message: Union[types.Message, types.CallbackQuery]) -> Non
@dp.message_handler(commands=["get_lora"]) @dp.message_handler(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:
print("getLora") logging.info("getLora")
keyboard = InlineKeyboardMarkup(inline_keyboard=[getScripts(0), getOpt(0), getStart(0)]) keyboard = InlineKeyboardMarkup(inline_keyboard=[getScripts(0), getOpt(0), getStart(0)])
# Путь к папке "Lora" # Путь к папке "Lora"
path = "../../models/Lora" path = "../../models/Lora"
@ -899,7 +974,7 @@ async def getLora(message: Union[types.Message, types.CallbackQuery]) -> None:
@dp.message_handler(commands=["lxc_prompt"]) @dp.message_handler(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:
print("get_lxc_prompt") logging.info("get_lxc_prompt")
keyboard = InlineKeyboardMarkup(inline_keyboard=[getPrompt(0), getOpt(0), getStart(0)]) keyboard = InlineKeyboardMarkup(inline_keyboard=[getPrompt(0), getOpt(0), getStart(0)])
txt = rnd_prmt_lxc() txt = rnd_prmt_lxc()
await getKeyboardUnion(txt, message, keyboard) await getKeyboardUnion(txt, message, keyboard)
@ -917,7 +992,7 @@ async def get_prompt(message: Union[types.Message, types.CallbackQuery]) -> None
# тыкнули на модельку # тыкнули на модельку
@dp.callback_query_handler(text_startswith="models") @dp.callback_query_handler(text_startswith="models")
async def inl_models(callback: types.CallbackQuery) -> None: async def inl_models(callback: types.CallbackQuery) -> None:
print('inl_models') logging.info('inl_models')
menu = get_models() menu = get_models()
menu.append(getOpt(0)) menu.append(getOpt(0))
menu.append(getStart(0)) menu.append(getStart(0))
@ -930,7 +1005,7 @@ async def inl_models(callback: types.CallbackQuery) -> None:
# тыкнули на сэмплер # тыкнули на сэмплер
@dp.callback_query_handler(text_startswith="samplers") @dp.callback_query_handler(text_startswith="samplers")
async def inl_samplers(callback: types.CallbackQuery) -> None: async def inl_samplers(callback: types.CallbackQuery) -> None:
print('inl_samplers') logging.info('inl_samplers')
smplr = callback.data.split("|")[1] smplr = callback.data.split("|")[1]
options = {} options = {}
options['sampler_name'] = smplr options['sampler_name'] = smplr
@ -944,7 +1019,7 @@ async def inl_samplers(callback: types.CallbackQuery) -> None:
# тыкнули на hr_upscaler # тыкнули на hr_upscaler
@dp.callback_query_handler(text_startswith="hrs") @dp.callback_query_handler(text_startswith="hrs")
async def inl_hrs(callback: types.CallbackQuery) -> None: async def inl_hrs(callback: types.CallbackQuery) -> None:
print('inl_hrs') logging.info('inl_hrs')
hrs = callback.data.split("|")[1] hrs = callback.data.split("|")[1]
options = {} options = {}
options['hr_upscaler'] = hrs options['hr_upscaler'] = hrs
@ -959,7 +1034,7 @@ async def inl_hrs(callback: types.CallbackQuery) -> None:
@dp.callback_query_handler(text_startswith="") @dp.callback_query_handler(text_startswith="")
@dp.callback_query_handler(text_startswith="") @dp.callback_query_handler(text_startswith="")
async def inl_yes_no(callback: types.CallbackQuery) -> None: async def inl_yes_no(callback: types.CallbackQuery) -> None:
print('inl_yes_no') logging.info('inl_yes_no')
keyboard = InlineKeyboardMarkup(inline_keyboard=[getSet(0), getStart(0)]) keyboard = InlineKeyboardMarkup(inline_keyboard=[getSet(0), getStart(0)])
if callback.data[:1] == "": if callback.data[:1] == "":
if callback.data[1:] in data.keys(): if callback.data[1:] in data.keys():
@ -982,7 +1057,7 @@ async def inl_yes_no(callback: types.CallbackQuery) -> None:
# Ввели любой текст # Ввели любой текст
@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):
print("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)])
text = message.text text = message.text
nam = text.split()[0][1:] # txt из /txt 321 nam = text.split()[0][1:] # txt из /txt 321
@ -1002,7 +1077,7 @@ async def change_json(message: types.Message):
if nam in state_names: if nam in state_names:
await getattr(Form, nam).set() await getattr(Form, nam).set()
else: else:
print("Ошибка какая-то") logging.info("Ошибка какая-то")
if nam in dataParams.keys(): if nam in dataParams.keys():
if str(dataParams[nam]).lower() in ['true', 'false']: if str(dataParams[nam]).lower() in ['true', 'false']:
await message.answer( await message.answer(
@ -1015,7 +1090,7 @@ async def change_json(message: types.Message):
if nam in state_names: if nam in state_names:
await getattr(Form, nam).set() await getattr(Form, nam).set()
else: else:
print("Ошибка какая-то") logging.info("Ошибка какая-то")
else: else:
# /txt 321 пишем 321 в data['txt'] # /txt 321 пишем 321 в data['txt']
# Ý 0,1 into 0.1 # Ý 0,1 into 0.1
@ -1023,14 +1098,13 @@ async def change_json(message: types.Message):
if str(args[1:2]) == ",": if str(args[1:2]) == ",":
newArgs = args.replace(',','.') newArgs = args.replace(',','.')
data[nam] = newArgs data[nam] = newArgs
print(args)
# TODO answer поменять на edit_text # TODO answer поменять на edit_text
await bot.delete_message(chat_id=message.chat.id, message_id=message.message_id) await bot.delete_message(chat_id=message.chat.id, message_id=message.message_id)
await message.answer( await message.answer(
f"JSON параметры:\n{getJson()}\n{getJson(1)}", reply_markup=keyboard f"JSON параметры:\n{getJson()}\n{getJson(1)}", reply_markup=keyboard
) )
else: else:
data["prompt"] = message.text data["prompt"] = translateRuToEng(message.text)
await bot.delete_message(chat_id=message.chat.id, message_id=message.message_id) await bot.delete_message(chat_id=message.chat.id, message_id=message.message_id)
await message.answer( await message.answer(
f"Записали промпт. JSON параметры:\n{getJson()}\n{getJson(1)}", f"Записали промпт. JSON параметры:\n{getJson()}\n{getJson(1)}",
@ -1040,7 +1114,7 @@ async def change_json(message: types.Message):
# Ввели ответ на change_json # Ввели ответ на change_json
@dp.message_handler(state=Form) @dp.message_handler(state=Form)
async def answer_handler(message: types.Message, state: FSMContext): async def answer_handler(message: types.Message, state: FSMContext):
print('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)])
current_state = await state.get_state() # Form:команда current_state = await state.get_state() # Form:команда
txt = message.text txt = message.text
@ -1063,11 +1137,19 @@ async def answer_handler(message: types.Message, state: FSMContext):
@dp.message_handler(content_types=['document']) @dp.message_handler(content_types=['document'])
async def handle_file(message: types.Message): async def handle_file(message: types.Message):
print('handle_file') logging.info('handle_file')
#
if message.document.file_name == 'result.json':
global chatHistory
if chatHistory == '':
chatHistory = message.document
else:
global doc global doc
doc = message.document doc = message.document
keysArr = [InlineKeyboardButton("Lora", callback_data="uplora"), keysArr = [InlineKeyboardButton("Lora", callback_data="uplora"),
InlineKeyboardButton("Model", callback_data="uplmodel"),] InlineKeyboardButton("Model", callback_data="uplmodel"),
InlineKeyboardButton("Chat History", callback_data="uplchat"),]
await bot.send_message( await bot.send_message(
chat_id=message.chat.id, chat_id=message.chat.id,
text="Что грузим?", text="Что грузим?",