piyushgrover/Stable-Diffusion-Image-Generation
0
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)