Spaces:
				
			
			
	
			
			
		Build error
		
	
	
	
			
			
	
	
	
	
		
		
		Build error
		
	| import gradio as gr | |
| from easygui import msgbox | |
| import subprocess | |
| from .common_gui import get_folder_path, add_pre_postfix, find_replace | |
| import os | |
| def caption_images( | |
| caption_text, | |
| images_dir, | |
| overwrite, | |
| caption_ext, | |
| prefix, | |
| postfix, | |
| find_text, | |
| replace_text, | |
| ): | |
| # Check for images_dir | |
| if not images_dir: | |
| msgbox('Image folder is missing...') | |
| return | |
| if not caption_ext: | |
| msgbox('Please provide an extension for the caption files.') | |
| return | |
| if caption_text: | |
| print(f'Captioning files in {images_dir} with {caption_text}...') | |
| run_cmd = f'python "tools/caption.py"' | |
| run_cmd += f' --caption_text="{caption_text}"' | |
| if overwrite: | |
| run_cmd += f' --overwrite' | |
| if caption_ext: | |
| run_cmd += f' --caption_file_ext="{caption_ext}"' | |
| run_cmd += f' "{images_dir}"' | |
| print(run_cmd) | |
| # Run the command | |
| if os.name == 'posix': | |
| os.system(run_cmd) | |
| else: | |
| subprocess.run(run_cmd) | |
| if overwrite: | |
| if prefix or postfix: | |
| # Add prefix and postfix | |
| add_pre_postfix( | |
| folder=images_dir, | |
| caption_file_ext=caption_ext, | |
| prefix=prefix, | |
| postfix=postfix, | |
| ) | |
| if find_text: | |
| find_replace( | |
| folder_path=images_dir, | |
| caption_file_ext=caption_ext, | |
| search_text=find_text, | |
| replace_text=replace_text, | |
| ) | |
| else: | |
| if prefix or postfix: | |
| msgbox( | |
| 'Could not modify caption files with requested change because the "Overwrite existing captions in folder" option is not selected...' | |
| ) | |
| print('...captioning done') | |
| # Gradio UI | |
| def gradio_basic_caption_gui_tab(): | |
| with gr.Tab('Basic Captioning'): | |
| gr.Markdown( | |
| 'This utility will allow the creation of simple caption files for each image in a folder.' | |
| ) | |
| with gr.Row(): | |
| images_dir = gr.Textbox( | |
| label='Image folder to caption', | |
| placeholder='Directory containing the images to caption', | |
| interactive=True, | |
| ) | |
| folder_button = gr.Button('📂', elem_id='open_folder_small') | |
| folder_button.click( | |
| get_folder_path, | |
| outputs=images_dir, | |
| show_progress=False, | |
| ) | |
| caption_ext = gr.Textbox( | |
| label='Caption file extension', | |
| placeholder='Extension for caption file. eg: .caption, .txt', | |
| value='.txt', | |
| interactive=True, | |
| ) | |
| overwrite = gr.Checkbox( | |
| label='Overwrite existing captions in folder', | |
| interactive=True, | |
| value=False, | |
| ) | |
| with gr.Row(): | |
| prefix = gr.Textbox( | |
| label='Prefix to add to caption', | |
| placeholder='(Optional)', | |
| interactive=True, | |
| ) | |
| caption_text = gr.Textbox( | |
| label='Caption text', | |
| placeholder='Eg: , by some artist. Leave empty if you just want to add pre or postfix', | |
| interactive=True, | |
| ) | |
| postfix = gr.Textbox( | |
| label='Postfix to add to caption', | |
| placeholder='(Optional)', | |
| interactive=True, | |
| ) | |
| with gr.Row(): | |
| find_text = gr.Textbox( | |
| label='Find text', | |
| placeholder='Eg: , by some artist. Leave empty if you just want to add pre or postfix', | |
| interactive=True, | |
| ) | |
| replace_text = gr.Textbox( | |
| label='Replacement text', | |
| placeholder='Eg: , by some artist. Leave empty if you just want to replace with nothing', | |
| interactive=True, | |
| ) | |
| caption_button = gr.Button('Caption images') | |
| caption_button.click( | |
| caption_images, | |
| inputs=[ | |
| caption_text, | |
| images_dir, | |
| overwrite, | |
| caption_ext, | |
| prefix, | |
| postfix, | |
| find_text, | |
| replace_text, | |
| ], | |
| show_progress=False, | |
| ) | |