KohyaSS/dreambooth_gui/caption_gui.py

71 lines
2.3 KiB
Python
Raw Normal View History

2022-12-16 16:04:06 +00:00
import gradio as gr
2022-12-16 18:16:23 +00:00
from easygui import msgbox
2022-12-16 16:04:06 +00:00
import subprocess
2022-12-16 18:16:23 +00:00
from .common_gui import get_folder_path
2022-12-16 16:04:06 +00:00
def caption_images(caption_text_input, images_dir_input, overwrite_input, caption_file_ext):
# Check for caption_text_input
if caption_text_input == "":
msgbox("Caption text is missing...")
return
# Check for images_dir_input
if images_dir_input == "":
msgbox("Image folder is missing...")
return
print(f"Captionning files in {images_dir_input} with {caption_text_input}...")
run_cmd = f'python "tools/caption.py"'
run_cmd += f' --caption_text="{caption_text_input}"'
if overwrite_input:
run_cmd += f' --overwrite'
if caption_file_ext != "":
run_cmd += f' --caption_file_ext="{caption_file_ext}"'
run_cmd += f' "{images_dir_input}"'
print(run_cmd)
# Run the command
subprocess.run(run_cmd)
print("...captionning done")
###
# Gradio UI
###
2022-12-16 18:16:23 +00:00
def gradio_caption_gui_tab():
2022-12-16 16:04:06 +00:00
with gr.Tab("Captionning"):
gr.Markdown(
"This utility will allow the creation of caption files for each images in a folder."
)
with gr.Row():
caption_text_input = gr.Textbox(
label="Caption text",
placeholder="Eg: , by some artist",
interactive=True,
)
overwrite_input = gr.Checkbox(
label="Overwrite existing captions in folder",
interactive=True,
value=False
)
caption_file_ext = gr.Textbox(
label="Caption file extension",
placeholder="(Optional) Default: .caption",
interactive=True,
)
with gr.Row():
images_dir_input = gr.Textbox(
label="Image forder to caption",
placeholder="Directory containing the images to caption",
interactive=True,
)
button_images_dir_input = gr.Button(
"📂", elem_id="open_folder_small")
button_images_dir_input.click(
get_folder_path, outputs=images_dir_input)
caption_button = gr.Button("Caption images")
caption_button.click(caption_images, inputs=[caption_text_input, images_dir_input, overwrite_input, caption_file_ext])