CoolFace
Apppublic

piyushgrover/Stable-Diffusion-Image-Generation

sourceHugging Facemitupdated 3y agoView on Hugging Face
0likes
app.py219 linesDownload Raw Back to root
1import gradio as gr2from utils import func_generate3import random4 5is_clicked = False6out_img_list = ['', '', '', '', '']7out_state_list = ['', '', '', '', '']8out_state_list2 = ['', '', '', '', '']9seed_values = [0, 0, 0, 0, 0]10 11def fn_query_on_load():12    return "Cats at sunset"13 14def fn_refresh():15    return out_img_list16 17with gr.Blocks() as app:18    with gr.Row():19        gr.Markdown(20            """21            # Stable Diffusion Image Generation22            ### Enter prompt to generate images in various styles23            """)24 25    with gr.Row(visible=True):26        search_text = gr.Textbox(value=fn_query_on_load, placeholder='Enter image prompt..', label='Enter Image Prompt')27 28    with gr.Tab('Generate Image in various styles'):29    30        with gr.Row():31            concept_index = gr.Dropdown(label='Select image style', value='Oil Painting', type="index", choices=['Oil Painting', 'Low Poly HD Style', 'Matrix Style', 'Dreamy Painting', 'Depth Map Style'] )32 33        with gr.Row(visible=True):34            submit_btn = gr.Button("Submit", variant='primary')35            clear_btn = gr.ClearButton()36            37        with gr.Row(visible=True):38            out1 = gr.Image(value="out1.png", interactive=False, label='Oil Painting')39            out2 = gr.Image(value="out2.png", interactive=False, label='Low Poly HD Style')40            out3 = gr.Image(value="out3.png", interactive=False, label='Matrix Style')41            out4 = gr.Image(value="out4.png", interactive=False, label='Dreamy Painting')42            out5 = gr.Image(value="out5.png", interactive=False, label='Depth Map Style')43 44    with gr.Tab("Additional Guidance with Contrast Adjustment"):45        46        with gr.Row():47            gr.Markdown(48                """49                ### Experiment with contrast based additional guidance to view how it affects the output50                """)51 52        with gr.Row():53            concept_index2 = gr.Dropdown(label='Select image style', value='Oil Painting', type="index", choices=['Oil Painting', 'Low Poly HD Style', 'Matrix Style', 'Dreamy Painting', 'Depth Map Style'] )54            contrast_perc = gr.Slider(value=90, minimum=-100, maximum=100, label='Contrast Adjustment')55 56        with gr.Row(visible=True):57            submit_btn2 = gr.Button("Submit", variant='primary')58            clear_btn2 = gr.ClearButton()59 60        with gr.Row(visible=True):61            out11 = gr.Image(value="out11.png", interactive=False, label='Oil Painting')62            out12 = gr.Image(value="out12.png", interactive=False, label='Low Poly HD Style')63            out13 = gr.Image(value="out13.png", interactive=False, label='Matrix Style')64            out14 = gr.Image(value="out14.png", interactive=False, label='Dreamy Painting')65            out15 = gr.Image(value="out15.png", interactive=False, label='Depth Map Style')66 67        68    def clear_data():69        return {70            out1: None,71            out2: None,72            out3: None,73            out4: None,74            out5: None,75            search_text: None76        }77 78    def clear_data2():79        return {80            out11: None,81            out12: None,82            out13: None,83            out14: None,84            out15: None85        }86 87 88    clear_btn.click(clear_data, None, [out1, out2, out3, out4, out5, search_text])89    clear_btn2.click(clear_data2, None, [out11, out12, out13, out14, out15])90 91 92    def generate_image(query, con_idx, o1, o2, o3, o4, o5, contrast):93        if not query:94            raise gr.Error("No prompt provided")95            return {96                out1: o1,97                out2: o2,98                out3: o3,99                out4: o4,100                out5: o5101            }102        else:103            out = func_generate(query, con_idx, con_idx*30)104            out_state_list[con_idx] = query105 106            if con_idx == 0: 107                return {108                    out1: out,109                    out2: None if out_state_list[1] != query else o2,110                    out3: None if out_state_list[2] != query else o3,111                    out4: None if out_state_list[3] != query else o4,112                    out5: None if out_state_list[4] != query else o5113                }114            elif con_idx == 1: 115                return {116                    out1: None if out_state_list[0] != query else o1,117                    out2: out,118                    out3: None if out_state_list[2] != query else o2,119                    out4: None if out_state_list[3] != query else o3,120                    out5: None if out_state_list[4] != query else o4121                }122            elif con_idx == 2: 123                return {124                    out1: None if out_state_list[0] != query else o1,125                    out2: None if out_state_list[1] != query else o2,126                    out3: out,127                    out4: None if out_state_list[3] != query else o3,128                    out5: None if out_state_list[4] != query else o4129                }130            elif con_idx == 3: 131                return {132                    out1: None if out_state_list[0] != query else o1,133                    out2: None if out_state_list[1] != query else o2,134                    out3: None if out_state_list[2] != query else o3,135                    out4: out,136                    out5: None if out_state_list[4] != query else o4137                }138            elif con_idx == 4: 139                return {140                    out1: None if out_state_list[0] != query else o1,141                    out2: None if out_state_list[1] != query else o2,142                    out3: None if out_state_list[2] != query else o3,143                    out4: None if out_state_list[3] != query else o4,144                    out5: out145                }146                147            148        149    submit_btn.click(150        generate_image,151        [search_text, concept_index, out1, out2, out3, out4, out5],152        [out1, out2, out3, out4, out5]153    )154    155    def generate_image_with_contrast_loss_guidance(query, con_idx, o1, o2, o3, o4, o5, contrast):156        if not query:157            raise gr.Error("No prompt provided")158            return {159                out11: o1,160                out12: o2,161                out13: o3,162                out14: o4,163                out15: o5164            }165        else:166            out = func_generate(query, con_idx, con_idx*30, contrast_loss=True, contrast_perc=contrast)167            out_state_list[con_idx] = query168 169            if con_idx == 0: 170                return {171                    out11: out,172                    out12: None if out_state_list[1] != query else o2,173                    out13: None if out_state_list[2] != query else o3,174                    out14: None if out_state_list[3] != query else o4,175                    out15: None if out_state_list[4] != query else o5176                }177            elif con_idx == 1: 178                return {179                    out11: None if out_state_list[0] != query else o1,180                    out12: out,181                    out13: None if out_state_list[2] != query else o2,182                    out14: None if out_state_list[3] != query else o3,183                    out15: None if out_state_list[4] != query else o4184                }185            elif con_idx == 2: 186                return {187                    out11: None if out_state_list[0] != query else o1,188                    out12: None if out_state_list[1] != query else o2,189                    out13: out,190                    out14: None if out_state_list[3] != query else o3,191                    out15: None if out_state_list[4] != query else o4192                }193            elif con_idx == 3: 194                return {195                    out11: None if out_state_list[0] != query else o1,196                    out12: None if out_state_list[1] != query else o2,197                    out13: None if out_state_list[2] != query else o3,198                    out14: out,199                    out15: None if out_state_list[4] != query else o4200                }201            elif con_idx == 4: 202                return {203                    out11: None if out_state_list[0] != query else o1,204                    out12: None if out_state_list[1] != query else o2,205                    out13: None if out_state_list[2] != query else o3,206                    out14: None if out_state_list[3] != query else o4,207                    out15: out208                }209            210    submit_btn2.click(211        generate_image_with_contrast_loss_guidance,212        [search_text, concept_index2, out11, out12, out13, out14, out15, contrast_perc],213        [out11, out12, out13, out14, out15]214    )215 216'''217Launch the app218'''219app.queue(concurrency_count=4, max_size=6).launch(max_threads=8)