File size: 2,268 Bytes
293db3f
6f92b77
293db3f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# app.py

import os
import gradio as gr
from huggingface_hub import HfFolder

def launch_gradio_app(fine_tune_model, load_model, generate_images, push_to_huggingface, repo_name):
    with gr.Blocks() as demo:
        gr.Markdown("# Dreambooth App")
        
        with gr.Tab("Fine-tune Model"):
            with gr.Row():
                instance_images = gr.File(label="Instance Images", file_count="multiple")
                class_images = gr.File(label="Class Images", file_count="multiple")
            with gr.Row():
                instance_prompt = gr.Textbox(label="Instance Prompt")
                class_prompt = gr.Textbox(label="Class Prompt")
            with gr.Row():
                num_train_steps = gr.Number(label="Number of Training Steps", value=800)
                fine_tune_button = gr.Button("Fine-tune Model")
        
        with gr.Tab("Generate Images"):
            with gr.Row():
                prompt = gr.Textbox(label="Prompt")
                negative_prompt = gr.Textbox(label="Negative Prompt")
            with gr.Row():
                num_samples = gr.Number(label="Number of Samples", value=1)
                guidance_scale = gr.Number(label="Guidance Scale", value=7.5)
            with gr.Row():
                height = gr.Number(label="Height", value=512)
                width = gr.Number(label="Width", value=512)
                num_inference_steps = gr.Slider(label="Number of Inference Steps", value=50, minimum=1, maximum=100)
            generate_button = gr.Button("Generate Images")
            output_images = gr.Gallery()
        
        with gr.Tab("Push to Hugging Face"):
            push_button = gr.Button("Push Model to Hugging Face")
            huggingface_link = gr.Textbox(label="Hugging Face Model Link")
        
        fine_tune_button.click(fine_tune_model, inputs=[instance_images, class_images, instance_prompt, class_prompt, num_train_steps], outputs=huggingface_link)
        
        generate_button.click(generate_images, inputs=[prompt, negative_prompt, num_samples, height, width, num_inference_steps, guidance_scale], outputs=output_images)
        
        push_button.click(push_to_huggingface, inputs=[HfFolder.path, repo_name], outputs=huggingface_link)
    
    demo.launch()