Spaces:
Build error
Build error
| import tempfile | |
| import os | |
| import gradio as gr | |
| from easygui import msgbox | |
| from library.custom_logging import setup_logging | |
| # Set up logging | |
| log = setup_logging() | |
| folder_symbol = '\U0001f4c2' # π | |
| refresh_symbol = '\U0001f504' # π | |
| save_style_symbol = '\U0001f4be' # πΎ | |
| document_symbol = '\U0001F4C4' # π | |
| ### | |
| ### Gradio common sampler GUI section | |
| ### | |
| def sample_gradio_config(): | |
| with gr.Accordion('Sample images config', open=False): | |
| with gr.Row(): | |
| sample_every_n_steps = gr.Number( | |
| label='Sample every n steps', | |
| value=0, | |
| precision=0, | |
| interactive=True, | |
| ) | |
| sample_every_n_epochs = gr.Number( | |
| label='Sample every n epochs', | |
| value=0, | |
| precision=0, | |
| interactive=True, | |
| ) | |
| sample_sampler = gr.Dropdown( | |
| label='Sample sampler', | |
| choices=[ | |
| 'ddim', | |
| 'pndm', | |
| 'lms', | |
| 'euler', | |
| 'euler_a', | |
| 'heun', | |
| 'dpm_2', | |
| 'dpm_2_a', | |
| 'dpmsolver', | |
| 'dpmsolver++', | |
| 'dpmsingle', | |
| 'k_lms', | |
| 'k_euler', | |
| 'k_euler_a', | |
| 'k_dpm_2', | |
| 'k_dpm_2_a', | |
| ], | |
| value='euler_a', | |
| interactive=True, | |
| ) | |
| with gr.Row(): | |
| sample_prompts = gr.Textbox( | |
| lines=5, | |
| label='Sample prompts', | |
| interactive=True, | |
| placeholder='masterpiece, best quality, 1girl, in white shirts, upper body, looking at viewer, simple background --n low quality, worst quality, bad anatomy,bad composition, poor, low effort --w 768 --h 768 --d 1 --l 7.5 --s 28', | |
| info='Enter one sample prompt per line to generate multiple samples per cycle. Optional specifiers include: --w (width), --h (height), --d (seed), --l (cfg scale), --s (sampler steps) and --n (negative prompt). To modify sample prompts during training, edit the prompt.txt file in the samples directory.' | |
| ) | |
| return ( | |
| sample_every_n_steps, | |
| sample_every_n_epochs, | |
| sample_sampler, | |
| sample_prompts, | |
| ) | |
| def run_cmd_sample( | |
| sample_every_n_steps, | |
| sample_every_n_epochs, | |
| sample_sampler, | |
| sample_prompts, | |
| output_dir, | |
| ): | |
| output_dir = os.path.join(output_dir, 'sample') | |
| if not os.path.exists(output_dir): | |
| os.makedirs(output_dir) | |
| run_cmd = '' | |
| if sample_every_n_epochs == 0 and sample_every_n_steps == 0: | |
| return run_cmd | |
| # Create the prompt file and get its path | |
| sample_prompts_path = os.path.join(output_dir, 'prompt.txt') | |
| with open(sample_prompts_path, 'w') as f: | |
| f.write(sample_prompts) | |
| run_cmd += f' --sample_sampler={sample_sampler}' | |
| run_cmd += f' --sample_prompts="{sample_prompts_path}"' | |
| if not sample_every_n_epochs == 0: | |
| run_cmd += f' --sample_every_n_epochs="{sample_every_n_epochs}"' | |
| if not sample_every_n_steps == 0: | |
| run_cmd += f' --sample_every_n_steps="{sample_every_n_steps}"' | |
| return run_cmd | |
| class SampleImages: | |
| def __init__( | |
| self, | |
| ): | |
| with gr.Accordion('Sample images config', open=False): | |
| with gr.Row(): | |
| self.sample_every_n_steps = gr.Number( | |
| label='Sample every n steps', | |
| value=0, | |
| precision=0, | |
| interactive=True, | |
| ) | |
| self.sample_every_n_epochs = gr.Number( | |
| label='Sample every n epochs', | |
| value=0, | |
| precision=0, | |
| interactive=True, | |
| ) | |
| self.sample_sampler = gr.Dropdown( | |
| label='Sample sampler', | |
| choices=[ | |
| 'ddim', | |
| 'pndm', | |
| 'lms', | |
| 'euler', | |
| 'euler_a', | |
| 'heun', | |
| 'dpm_2', | |
| 'dpm_2_a', | |
| 'dpmsolver', | |
| 'dpmsolver++', | |
| 'dpmsingle', | |
| 'k_lms', | |
| 'k_euler', | |
| 'k_euler_a', | |
| 'k_dpm_2', | |
| 'k_dpm_2_a', | |
| ], | |
| value='euler_a', | |
| interactive=True, | |
| ) | |
| with gr.Row(): | |
| self.sample_prompts = gr.Textbox( | |
| lines=5, | |
| label='Sample prompts', | |
| interactive=True, | |
| placeholder='masterpiece, best quality, 1girl, in white shirts, upper body, looking at viewer, simple background --n low quality, worst quality, bad anatomy,bad composition, poor, low effort --w 768 --h 768 --d 1 --l 7.5 --s 28', | |
| info='Enter one sample prompt per line to generate multiple samples per cycle. Optional specifiers include: --w (width), --h (height), --d (seed), --l (cfg scale), --s (sampler steps) and --n (negative prompt). To modify sample prompts during training, edit the prompt.txt file in the samples directory.' | |
| ) | |