7b5639cff5
This is a massive WIP and should not be trusted or used right now. However, major milestones have been crossed. Both message boxes and file dialogs are now properly subprocessed and work on macOS. I think by extension, it may work on runpod environments as well, but that remains to be tested.
102 lines
2.6 KiB
Python
102 lines
2.6 KiB
Python
import os
|
|
import subprocess
|
|
|
|
import gradio as gr
|
|
|
|
from .common_gui import (
|
|
get_file_path,
|
|
)
|
|
|
|
PYTHON = 'python3' if os.name == 'posix' else './venv/Scripts/python.exe'
|
|
folder_symbol = '\U0001f4c2' # 📂
|
|
refresh_symbol = '\U0001f504' # 🔄
|
|
save_style_symbol = '\U0001f4be' # 💾
|
|
document_symbol = '\U0001F4C4' # 📄
|
|
|
|
|
|
def verify_lora(
|
|
lora_model,
|
|
):
|
|
# verify for caption_text_input
|
|
if lora_model == '':
|
|
show_message_box('Invalid model A file')
|
|
return
|
|
|
|
# verify if source model exist
|
|
if not os.path.isfile(lora_model):
|
|
show_message_box('The provided model A is not a file')
|
|
return
|
|
|
|
run_cmd = [
|
|
PYTHON,
|
|
os.path.join('networks', 'check_lora_weights.py'),
|
|
f'{lora_model}',
|
|
]
|
|
|
|
print(' '.join(run_cmd))
|
|
|
|
# Run the command
|
|
process = subprocess.Popen(
|
|
run_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE
|
|
)
|
|
output, error = process.communicate()
|
|
|
|
return (output.decode(), error.decode())
|
|
|
|
|
|
###
|
|
# Gradio UI
|
|
###
|
|
|
|
|
|
def gradio_verify_lora_tab():
|
|
with gr.Tab('Verify LoRA'):
|
|
gr.Markdown(
|
|
'This utility can verify a LoRA network to make sure it is properly trained.'
|
|
)
|
|
|
|
lora_ext = gr.Textbox(value='*.pt *.safetensors', visible=False)
|
|
lora_ext_name = gr.Textbox(value='LoRA model types', visible=False)
|
|
|
|
with gr.Row():
|
|
lora_model = gr.Textbox(
|
|
label='LoRA model',
|
|
placeholder='Path to the LoRA model to verify',
|
|
interactive=True,
|
|
)
|
|
button_lora_model_file = gr.Button(
|
|
folder_symbol, elem_id='open_folder_small'
|
|
)
|
|
button_lora_model_file.click(
|
|
get_file_path,
|
|
inputs=[lora_model, lora_ext, lora_ext_name],
|
|
outputs=lora_model,
|
|
show_progress=False,
|
|
)
|
|
verify_button = gr.Button('Verify', variant='primary')
|
|
|
|
lora_model_verif_output = gr.Textbox(
|
|
label='Output',
|
|
placeholder='Verification output',
|
|
interactive=False,
|
|
lines=1,
|
|
max_lines=10,
|
|
)
|
|
|
|
lora_model_verif_error = gr.Textbox(
|
|
label='Error',
|
|
placeholder='Verification error',
|
|
interactive=False,
|
|
lines=1,
|
|
max_lines=10,
|
|
)
|
|
|
|
verify_button.click(
|
|
verify_lora,
|
|
inputs=[
|
|
lora_model,
|
|
],
|
|
outputs=[lora_model_verif_output, lora_model_verif_error],
|
|
show_progress=False,
|
|
)
|