root commited on
Commit
051ce90
·
1 Parent(s): 291b7e9
Files changed (1) hide show
  1. app.py +297 -293
app.py CHANGED
@@ -146,300 +146,304 @@ if __name__ == "__main__":
146
  with block:
147
  gr.HTML(read_content("header.html"))
148
 
149
- with gr.Tabs() as tabs:
150
-
151
- with gr.TabItem("文生图(Text-to-img)"):
152
-
153
- with gr.Group():
154
- with gr.Box():
155
- with gr.Row().style(mobile_collapse=False, equal_height=True):
156
- text = gr.Textbox(
157
- label="Prompt",
158
- show_label=False,
159
- max_lines=1,
160
- placeholder="Input text(输入文字)",
161
- interactive=True,
162
- ).style(
163
- border=(True, False, True, True),
164
- rounded=(True, False, False, True),
165
- container=False,
166
- )
167
 
168
- btn = gr.Button("Generate image").style(
169
- margin=False,
170
- rounded=(True, True, True, True),
171
- )
172
- with gr.Row().style(mobile_collapse=False, equal_height=True):
173
- class_draw = gr.Dropdown(["通用(general)", "国画(traditional Chinese painting)",
174
- "照片,摄影(picture photography)", "油画(oil painting)",
175
- "铅笔素描(pencil sketch)", "CG",
176
- "水彩画(watercolor painting)", "水墨画(ink and wash)",
177
- "插画(illustrations)", "3D", "图生图(img2img)"],
178
- label="生成类型(type)",
179
- show_label=True,
180
- value="通用(general)")
181
- with gr.Row().style(mobile_collapse=False, equal_height=True):
182
- style_draw = gr.CheckboxGroup(["蒸汽朋克(steampunk)", "电影摄影风格(film photography)",
183
- "概念艺术(concept art)", "Warming lighting",
184
- "Dramatic lighting", "Natural lighting",
185
- "虚幻引擎(unreal engine)", "4k", "8k",
186
- "充满细节(full details)"],
187
- label="画面风格(style)",
188
- show_label=True,
189
- )
190
- with gr.Row().style(mobile_collapse=False, equal_height=True):
191
- sample_size = gr.Slider(minimum=1,
192
- maximum=4,
193
- step=1,
194
- label="生成数量(number)",
195
- show_label=True,
196
- interactive=True,
197
- )
198
-
199
- gallery = gr.Gallery(
200
- label="Generated images", show_label=False, elem_id="gallery"
201
- ).style(grid=[2], height="auto")
202
-
203
- gr.Examples(examples=examples, fn=request_images, inputs=text, outputs=gallery, examples_per_page=100)
204
- text.submit(request_images, inputs=[text, class_draw, style_draw, sample_size], outputs=gallery)
205
- btn.click(request_images, inputs=[text, class_draw, style_draw, sample_size], outputs=gallery)
206
-
207
- with gr.TabItem("图生图(Img-to-Img)", id="img2img_tab"):
208
- with gr.Row(elem_id="prompt_row"):
209
- img2img_prompt = gr.Textbox(label="Prompt",
210
- elem_id='img2img_prompt_input',
211
- placeholder="神奇的森林,流淌的河流.",
212
- lines=1,
213
- max_lines=1 if txt2img_defaults['submit_on_enter'] == 'Yes' else 25,
214
- value=img2img_defaults['prompt'],
215
- show_label=False).style()
216
-
217
- img2img_btn_mask = gr.Button("Generate", variant="primary", visible=False,
218
- elem_id="img2img_mask_btn")
219
- img2img_btn_editor = gr.Button("Generate", variant="primary", elem_id="img2img_edit_btn")
220
- with gr.Row().style(equal_height=False):
221
- with gr.Column():
222
- gr.Markdown('#### 输入图像')
223
- img2img_image_mask = gr.Image(
224
- value=sample_img2img,
225
- source="upload",
226
- interactive=True,
227
- type="pil", tool="sketch",
228
- elem_id="img2img_mask",
229
- image_mode="RGBA"
230
- )
231
- img2img_image_editor = gr.Image(
232
- value=sample_img2img,
233
- source="upload",
234
- interactive=True,
235
- type="pil",
236
- tool="select",
237
- visible=False,
238
- image_mode="RGBA",
239
- elem_id="img2img_editor"
240
- )
241
-
242
- with gr.Tabs():
243
- with gr.TabItem("编辑设置"):
244
- with gr.Row():
245
- # disable Uncrop for now
246
- choices=["Mask", "Crop", "Uncrop"]
247
- img2img_image_editor_mode = gr.Radio(choices=["Mask"],
248
- label="编辑模式",
249
- value="Mask", elem_id='edit_mode_select',
250
- visible=True)
251
- img2img_mask = gr.Radio(choices=["保留mask区域", "生成mask区域"],
252
- label="Mask 方式", type="index",
253
- #value=img2img_mask_modes[img2img_defaults['mask_mode']],
254
- value = "生成mask区域",
255
- visible=True)
256
-
257
- img2img_mask_blur_strength = gr.Slider(minimum=1, maximum=10, step=1,
258
- label="How much blurry should the mask be? (to avoid hard edges)",
259
- value=3, visible=False)
260
-
261
- img2img_resize = gr.Radio(label="Resize mode",
262
- choices=["Just resize", "Crop and resize",
263
- "Resize and fill"],
264
- type="index",
265
- value=img2img_resize_modes[
266
- img2img_defaults['resize_mode']], visible=False)
267
-
268
- img2img_painterro_btn = gr.Button("Advanced Editor",visible=False)
269
- # with gr.TabItem("Hints",visible=False):
270
- # img2img_help = gr.Markdown(visible=False, value=uifn.help_text)
271
-
272
- with gr.Column():
273
- gr.Markdown('#### 编辑后的图片')
274
- output_img2img_gallery = gr.Gallery(label="Images", elem_id="img2img_gallery_output").style(
275
- grid=[4, 4, 4])
276
- img2img_job_ui = job_manager.draw_gradio_ui() if job_manager else None
277
- with gr.Column(visible=False):
278
- with gr.Tabs(visible=False):
279
- with gr.TabItem("", id="img2img_actions_tab",visible=False):
280
- gr.Markdown("Select an image, then press one of the buttons below")
281
- with gr.Row():
282
- output_img2img_copy_to_clipboard_btn = gr.Button("Copy to clipboard")
283
- output_img2img_copy_to_input_btn = gr.Button("Push to img2img input")
284
- output_img2img_copy_to_mask_btn = gr.Button("Push to img2img input mask")
285
-
286
- gr.Markdown("Warning: This will clear your current image and mask settings!")
287
- with gr.TabItem("", id="img2img_output_info_tab",visible=False):
288
- output_img2img_params = gr.Textbox(label="Generation parameters")
289
- with gr.Row():
290
- output_img2img_copy_params = gr.Button("Copy full parameters").click(
291
- inputs=output_img2img_params, outputs=[],
292
- _js='(x) => {navigator.clipboard.writeText(x.replace(": ",":"))}', fn=None,
293
- show_progress=False)
294
- output_img2img_seed = gr.Number(label='Seed', interactive=False, visible=False)
295
- output_img2img_copy_seed = gr.Button("Copy only seed").click(
296
- inputs=output_img2img_seed, outputs=[],
297
- _js=call_JS("gradioInputToClipboard"), fn=None, show_progress=False)
298
- output_img2img_stats = gr.HTML(label='Stats')
299
-
300
- gr.Markdown('# 编辑设置')
301
-
302
- with gr.Row():
303
- with gr.Column():
304
- img2img_width = gr.Slider(minimum=64, maximum=2048, step=64, label="图片宽度",
305
- value=img2img_defaults["width"])
306
- img2img_height = gr.Slider(minimum=64, maximum=2048, step=64, label="图片高度",
307
- value=img2img_defaults["height"])
308
- img2img_cfg = gr.Slider(minimum=-40.0, maximum=30.0, step=0.5,
309
- label='文本引导强度',
310
- value=img2img_defaults['cfg_scale'], elem_id='cfg_slider')
311
- img2img_seed = gr.Textbox(label="随机种子", lines=1, max_lines=1,
312
- value=img2img_defaults["seed"])
313
- img2img_batch_count = gr.Slider(minimum=1, maximum=50, step=1,
314
- label='生成数量',
315
- value=img2img_defaults['n_iter'])
316
- img2img_dimensions_info_text_box = gr.Textbox(
317
- label="长宽比设置")
318
- with gr.Column():
319
- img2img_steps = gr.Slider(minimum=1, maximum=250, step=1, label="采样步数",
320
- value=img2img_defaults['ddim_steps'])
321
-
322
- img2img_sampling = gr.Dropdown(label='采样方式',
323
- choices=["DDIM", 'k_dpm_2_a', 'k_dpm_2', 'k_euler_a', 'k_euler',
324
- 'k_heun', 'k_lms'],
325
- value=img2img_defaults['sampler_name'])
326
-
327
- img2img_denoising = gr.Slider(minimum=0.0, maximum=1.0, step=0.01, label='Denoising Strength',
328
- value=img2img_defaults['denoising_strength'],visible=False)
329
-
330
- img2img_toggles = gr.CheckboxGroup(label='', choices=img2img_toggles,
331
- value=img2img_toggle_defaults, type="index",visible=False)
332
-
333
- img2img_realesrgan_model_name = gr.Dropdown(label='RealESRGAN model',
334
- choices=['RealESRGAN_x4plus',
335
- 'RealESRGAN_x4plus_anime_6B'],
336
- value='RealESRGAN_x4plus',
337
- visible=RealESRGAN is not None) # TODO: Feels like I shouldnt slot it in here.
338
-
339
- img2img_embeddings = gr.File(label="Embeddings file for textual inversion",
340
- visible=show_embeddings)
341
-
342
- img2img_image_editor_mode.change(
343
- uifn.change_image_editor_mode,
344
- [img2img_image_editor_mode,
345
- img2img_image_editor,
346
- img2img_image_mask,
347
- img2img_resize,
348
- img2img_width,
349
- img2img_height
350
- ],
351
- [img2img_image_editor, img2img_image_mask, img2img_btn_editor, img2img_btn_mask,
352
- img2img_painterro_btn, img2img_mask, img2img_mask_blur_strength]
353
- )
354
-
355
- # img2img_image_editor_mode.change(
356
- # uifn.update_image_mask,
357
- # [img2img_image_editor, img2img_resize, img2img_width, img2img_height],
358
- # img2img_image_mask
359
- # )
360
-
361
- # output_txt2img_copy_to_input_btn.click(
362
- # uifn.copy_img_to_input,
363
- # [output_txt2img_gallery],
364
- # [img2img_image_editor, img2img_image_mask, tabs],
365
- # _js=call_JS("moveImageFromGallery",
366
- # fromId="txt2img_gallery_output",
367
- # toId="img2img_editor")
368
- # )
369
-
370
- output_img2img_copy_to_input_btn.click(
371
- uifn.copy_img_to_edit,
372
- [output_img2img_gallery],
373
- [img2img_image_editor, tabs, img2img_image_editor_mode],
374
- _js=call_JS("moveImageFromGallery",
375
- fromId="img2img_gallery_output",
376
- toId="img2img_editor")
377
- )
378
- output_img2img_copy_to_mask_btn.click(
379
- uifn.copy_img_to_mask,
380
- [output_img2img_gallery],
381
- [img2img_image_mask, tabs, img2img_image_editor_mode],
382
- _js=call_JS("moveImageFromGallery",
383
- fromId="img2img_gallery_output",
384
- toId="img2img_editor")
385
- )
386
-
387
- output_img2img_copy_to_clipboard_btn.click(fn=None, inputs=output_img2img_gallery, outputs=[],
388
- _js=call_JS("copyImageFromGalleryToClipboard",
389
- fromId="img2img_gallery_output")
390
- )
391
-
392
- img2img_func = None
393
- img2img_inputs = [img2img_prompt, img2img_image_editor_mode, img2img_mask,
394
- img2img_mask_blur_strength, img2img_steps, img2img_sampling, img2img_toggles,
395
- img2img_realesrgan_model_name, img2img_batch_count, img2img_cfg,
396
- img2img_denoising, img2img_seed, img2img_height, img2img_width, img2img_resize,
397
- img2img_image_editor, img2img_image_mask, img2img_embeddings]
398
- img2img_outputs = [output_img2img_gallery, output_img2img_seed, output_img2img_params,
399
- output_img2img_stats]
400
-
401
- # If a JobManager was passed in then wrap the Generate functions
402
- if img2img_job_ui:
403
- img2img_func, img2img_inputs, img2img_outputs = img2img_job_ui.wrap_func(
404
- func=img2img_func,
405
- inputs=img2img_inputs,
406
- outputs=img2img_outputs,
407
- )
408
-
409
- img2img_btn_mask.click(
410
- img2img_func,
411
- img2img_inputs,
412
- img2img_outputs
413
- )
414
-
415
- def img2img_submit_params():
416
- # print([img2img_prompt, img2img_image_editor_mode, img2img_mask,
417
- # img2img_mask_blur_strength, img2img_steps, img2img_sampling, img2img_toggles,
418
- # img2img_realesrgan_model_name, img2img_batch_count, img2img_cfg,
419
- # img2img_denoising, img2img_seed, img2img_height, img2img_width, img2img_resize,
420
- # img2img_image_editor, img2img_image_mask, img2img_embeddings])
421
- return (img2img_func,
422
- img2img_inputs,
423
- img2img_outputs)
424
-
425
- img2img_btn_editor.click(*img2img_submit_params())
426
-
427
- # GENERATE ON ENTER
428
- img2img_prompt.submit(None, None, None,
429
- _js=call_JS("clickFirstVisibleButton",
430
- rowId="prompt_row"))
431
-
432
- img2img_painterro_btn.click(None,
433
- [img2img_image_editor, img2img_image_mask, img2img_image_editor_mode],
434
- [img2img_image_editor, img2img_image_mask],
435
- _js=call_JS("Painterro.init", toId="img2img_editor")
436
- )
437
-
438
- img2img_width.change(fn=uifn.update_dimensions_info, inputs=[img2img_width, img2img_height],
439
- outputs=img2img_dimensions_info_text_box)
440
- img2img_height.change(fn=uifn.update_dimensions_info, inputs=[img2img_width, img2img_height],
441
- outputs=img2img_dimensions_info_text_box)
442
-
 
 
 
 
443
  gr.HTML(read_content("footer.html"))
444
  # gr.Image('./contributors.png')
445
 
 
146
  with block:
147
  gr.HTML(read_content("header.html"))
148
 
149
+ # with gr.Tabs() as tabs:
150
+
151
+ # with gr.TabItem("文生图(Text-to-img)"):
152
+
153
+ # with gr.Group():
154
+ # with gr.Box():
155
+ # with gr.Row().style(mobile_collapse=False, equal_height=True):
156
+ # text = gr.Textbox(
157
+ # label="Prompt",
158
+ # show_label=False,
159
+ # max_lines=1,
160
+ # placeholder="Input text(输入文字)",
161
+ # interactive=True,
162
+ # ).style(
163
+ # border=(True, False, True, True),
164
+ # rounded=(True, False, False, True),
165
+ # container=False,
166
+ # )
167
 
168
+ # btn = gr.Button("Generate image").style(
169
+ # margin=False,
170
+ # rounded=(True, True, True, True),
171
+ # )
172
+ # with gr.Row().style(mobile_collapse=False, equal_height=True):
173
+ # class_draw = gr.Dropdown(["通用(general)", "国画(traditional Chinese painting)",
174
+ # "照片,摄影(picture photography)", "油画(oil painting)",
175
+ # "铅笔素描(pencil sketch)", "CG",
176
+ # "水彩画(watercolor painting)", "水墨画(ink and wash)",
177
+ # "插画(illustrations)", "3D", "图生图(img2img)"],
178
+ # label="生成类型(type)",
179
+ # show_label=True,
180
+ # value="通用(general)")
181
+ # with gr.Row().style(mobile_collapse=False, equal_height=True):
182
+ # style_draw = gr.CheckboxGroup(["蒸汽朋克(steampunk)", "电影摄影风格(film photography)",
183
+ # "概念艺术(concept art)", "Warming lighting",
184
+ # "Dramatic lighting", "Natural lighting",
185
+ # "虚幻引擎(unreal engine)", "4k", "8k",
186
+ # "充满细节(full details)"],
187
+ # label="画面风格(style)",
188
+ # show_label=True,
189
+ # )
190
+ # with gr.Row().style(mobile_collapse=False, equal_height=True):
191
+ # sample_size = gr.Slider(minimum=1,
192
+ # maximum=4,
193
+ # step=1,
194
+ # label="生成数量(number)",
195
+ # show_label=True,
196
+ # interactive=True,
197
+ # )
198
+
199
+ # gallery = gr.Gallery(
200
+ # label="Generated images", show_label=False, elem_id="gallery"
201
+ # ).style(grid=[2], height="auto")
202
+
203
+ # gr.Examples(examples=examples, fn=request_images, inputs=text, outputs=gallery, examples_per_page=100)
204
+ # text.submit(request_images, inputs=[text, class_draw, style_draw, sample_size], outputs=gallery)
205
+ # btn.click(request_images, inputs=[text, class_draw, style_draw, sample_size], outputs=gallery)
206
+
207
+ # with gr.TabItem("图生图(Img-to-Img)", id="img2img_tab"):
208
+ # with gr.Row(elem_id="prompt_row"):
209
+ # img2img_prompt = gr.Textbox(label="Prompt",
210
+ # elem_id='img2img_prompt_input',
211
+ # placeholder="神奇的森林,流淌的河流.",
212
+ # lines=1,
213
+ # max_lines=1 if txt2img_defaults['submit_on_enter'] == 'Yes' else 25,
214
+ # value=img2img_defaults['prompt'],
215
+ # show_label=False).style()
216
+
217
+ # img2img_btn_mask = gr.Button("Generate", variant="primary", visible=False,
218
+ # elem_id="img2img_mask_btn")
219
+ # img2img_btn_editor = gr.Button("Generate", variant="primary", elem_id="img2img_edit_btn")
220
+ # with gr.Row().style(equal_height=False):
221
+ # with gr.Column():
222
+ # gr.Markdown('#### 输入图像')
223
+ # img2img_image_mask = gr.Image(
224
+ # value=sample_img2img,
225
+ # source="upload",
226
+ # interactive=True,
227
+ # type="pil", tool="sketch",
228
+ # elem_id="img2img_mask",
229
+ # image_mode="RGBA"
230
+ # )
231
+ # img2img_image_editor = gr.Image(
232
+ # value=sample_img2img,
233
+ # source="upload",
234
+ # interactive=True,
235
+ # type="pil",
236
+ # tool="select",
237
+ # visible=False,
238
+ # image_mode="RGBA",
239
+ # elem_id="img2img_editor"
240
+ # )
241
+
242
+ # with gr.Tabs():
243
+ # with gr.TabItem("编辑设置"):
244
+ # with gr.Row():
245
+ # # disable Uncrop for now
246
+ # choices=["Mask", "Crop", "Uncrop"]
247
+ # img2img_image_editor_mode = gr.Radio(choices=["Mask"],
248
+ # label="编辑模式",
249
+ # value="Mask", elem_id='edit_mode_select',
250
+ # visible=True)
251
+ # img2img_mask = gr.Radio(choices=["保留mask区域", "生成mask区域"],
252
+ # label="Mask 方式", type="index",
253
+ # #value=img2img_mask_modes[img2img_defaults['mask_mode']],
254
+ # value = "生成mask区域",
255
+ # visible=True)
256
+
257
+ # img2img_mask_blur_strength = gr.Slider(minimum=1, maximum=10, step=1,
258
+ # label="How much blurry should the mask be? (to avoid hard edges)",
259
+ # value=3, visible=False)
260
+
261
+ # img2img_resize = gr.Radio(label="Resize mode",
262
+ # choices=["Just resize", "Crop and resize",
263
+ # "Resize and fill"],
264
+ # type="index",
265
+ # value=img2img_resize_modes[
266
+ # img2img_defaults['resize_mode']], visible=False)
267
+
268
+ # img2img_painterro_btn = gr.Button("Advanced Editor",visible=False)
269
+ # # with gr.TabItem("Hints",visible=False):
270
+ # # img2img_help = gr.Markdown(visible=False, value=uifn.help_text)
271
+
272
+ # with gr.Column():
273
+ # gr.Markdown('#### 编辑后的图片')
274
+ # output_img2img_gallery = gr.Gallery(label="Images", elem_id="img2img_gallery_output").style(
275
+ # grid=[4, 4, 4])
276
+ # img2img_job_ui = job_manager.draw_gradio_ui() if job_manager else None
277
+ # with gr.Column(visible=False):
278
+ # with gr.Tabs(visible=False):
279
+ # with gr.TabItem("", id="img2img_actions_tab",visible=False):
280
+ # gr.Markdown("Select an image, then press one of the buttons below")
281
+ # with gr.Row():
282
+ # output_img2img_copy_to_clipboard_btn = gr.Button("Copy to clipboard")
283
+ # output_img2img_copy_to_input_btn = gr.Button("Push to img2img input")
284
+ # output_img2img_copy_to_mask_btn = gr.Button("Push to img2img input mask")
285
+
286
+ # gr.Markdown("Warning: This will clear your current image and mask settings!")
287
+ # with gr.TabItem("", id="img2img_output_info_tab",visible=False):
288
+ # output_img2img_params = gr.Textbox(label="Generation parameters")
289
+ # with gr.Row():
290
+ # output_img2img_copy_params = gr.Button("Copy full parameters").click(
291
+ # inputs=output_img2img_params, outputs=[],
292
+ # _js='(x) => {navigator.clipboard.writeText(x.replace(": ",":"))}', fn=None,
293
+ # show_progress=False)
294
+ # output_img2img_seed = gr.Number(label='Seed', interactive=False, visible=False)
295
+ # output_img2img_copy_seed = gr.Button("Copy only seed").click(
296
+ # inputs=output_img2img_seed, outputs=[],
297
+ # _js=call_JS("gradioInputToClipboard"), fn=None, show_progress=False)
298
+ # output_img2img_stats = gr.HTML(label='Stats')
299
+
300
+ # gr.Markdown('# 编辑设置')
301
+
302
+ # with gr.Row():
303
+ # with gr.Column():
304
+ # img2img_width = gr.Slider(minimum=64, maximum=2048, step=64, label="图片宽度",
305
+ # value=img2img_defaults["width"])
306
+ # img2img_height = gr.Slider(minimum=64, maximum=2048, step=64, label="图片高度",
307
+ # value=img2img_defaults["height"])
308
+ # img2img_cfg = gr.Slider(minimum=-40.0, maximum=30.0, step=0.5,
309
+ # label='文本引导强度',
310
+ # value=img2img_defaults['cfg_scale'], elem_id='cfg_slider')
311
+ # img2img_seed = gr.Textbox(label="随机种子", lines=1, max_lines=1,
312
+ # value=img2img_defaults["seed"])
313
+ # img2img_batch_count = gr.Slider(minimum=1, maximum=50, step=1,
314
+ # label='生成数量',
315
+ # value=img2img_defaults['n_iter'])
316
+ # img2img_dimensions_info_text_box = gr.Textbox(
317
+ # label="长宽比设置")
318
+ # with gr.Column():
319
+ # img2img_steps = gr.Slider(minimum=1, maximum=250, step=1, label="采样步数",
320
+ # value=img2img_defaults['ddim_steps'])
321
+
322
+ # img2img_sampling = gr.Dropdown(label='采样方式',
323
+ # choices=["DDIM", 'k_dpm_2_a', 'k_dpm_2', 'k_euler_a', 'k_euler',
324
+ # 'k_heun', 'k_lms'],
325
+ # value=img2img_defaults['sampler_name'])
326
+
327
+ # img2img_denoising = gr.Slider(minimum=0.0, maximum=1.0, step=0.01, label='Denoising Strength',
328
+ # value=img2img_defaults['denoising_strength'],visible=False)
329
+
330
+ # img2img_toggles = gr.CheckboxGroup(label='', choices=img2img_toggles,
331
+ # value=img2img_toggle_defaults, type="index",visible=False)
332
+
333
+ # img2img_realesrgan_model_name = gr.Dropdown(label='RealESRGAN model',
334
+ # choices=['RealESRGAN_x4plus',
335
+ # 'RealESRGAN_x4plus_anime_6B'],
336
+ # value='RealESRGAN_x4plus',
337
+ # visible=RealESRGAN is not None) # TODO: Feels like I shouldnt slot it in here.
338
+
339
+ # img2img_embeddings = gr.File(label="Embeddings file for textual inversion",
340
+ # visible=show_embeddings)
341
+
342
+ # img2img_image_editor_mode.change(
343
+ # uifn.change_image_editor_mode,
344
+ # [img2img_image_editor_mode,
345
+ # img2img_image_editor,
346
+ # img2img_image_mask,
347
+ # img2img_resize,
348
+ # img2img_width,
349
+ # img2img_height
350
+ # ],
351
+ # [img2img_image_editor, img2img_image_mask, img2img_btn_editor, img2img_btn_mask,
352
+ # img2img_painterro_btn, img2img_mask, img2img_mask_blur_strength]
353
+ # )
354
+
355
+ # # img2img_image_editor_mode.change(
356
+ # # uifn.update_image_mask,
357
+ # # [img2img_image_editor, img2img_resize, img2img_width, img2img_height],
358
+ # # img2img_image_mask
359
+ # # )
360
+
361
+ # # output_txt2img_copy_to_input_btn.click(
362
+ # # uifn.copy_img_to_input,
363
+ # # [output_txt2img_gallery],
364
+ # # [img2img_image_editor, img2img_image_mask, tabs],
365
+ # # _js=call_JS("moveImageFromGallery",
366
+ # # fromId="txt2img_gallery_output",
367
+ # # toId="img2img_editor")
368
+ # # )
369
+
370
+ # output_img2img_copy_to_input_btn.click(
371
+ # uifn.copy_img_to_edit,
372
+ # [output_img2img_gallery],
373
+ # [img2img_image_editor, tabs, img2img_image_editor_mode],
374
+ # _js=call_JS("moveImageFromGallery",
375
+ # fromId="img2img_gallery_output",
376
+ # toId="img2img_editor")
377
+ # )
378
+ # output_img2img_copy_to_mask_btn.click(
379
+ # uifn.copy_img_to_mask,
380
+ # [output_img2img_gallery],
381
+ # [img2img_image_mask, tabs, img2img_image_editor_mode],
382
+ # _js=call_JS("moveImageFromGallery",
383
+ # fromId="img2img_gallery_output",
384
+ # toId="img2img_editor")
385
+ # )
386
+
387
+ # output_img2img_copy_to_clipboard_btn.click(fn=None, inputs=output_img2img_gallery, outputs=[],
388
+ # _js=call_JS("copyImageFromGalleryToClipboard",
389
+ # fromId="img2img_gallery_output")
390
+ # )
391
+
392
+ # img2img_func = None
393
+ # img2img_inputs = [img2img_prompt, img2img_image_editor_mode, img2img_mask,
394
+ # img2img_mask_blur_strength, img2img_steps, img2img_sampling, img2img_toggles,
395
+ # img2img_realesrgan_model_name, img2img_batch_count, img2img_cfg,
396
+ # img2img_denoising, img2img_seed, img2img_height, img2img_width, img2img_resize,
397
+ # img2img_image_editor, img2img_image_mask, img2img_embeddings]
398
+ # img2img_outputs = [output_img2img_gallery, output_img2img_seed, output_img2img_params,
399
+ # output_img2img_stats]
400
+
401
+ # # If a JobManager was passed in then wrap the Generate functions
402
+ # if img2img_job_ui:
403
+ # img2img_func, img2img_inputs, img2img_outputs = img2img_job_ui.wrap_func(
404
+ # func=img2img_func,
405
+ # inputs=img2img_inputs,
406
+ # outputs=img2img_outputs,
407
+ # )
408
+
409
+ # img2img_btn_mask.click(
410
+ # img2img_func,
411
+ # img2img_inputs,
412
+ # img2img_outputs
413
+ # )
414
+
415
+ # def img2img_submit_params():
416
+ # # print([img2img_prompt, img2img_image_editor_mode, img2img_mask,
417
+ # # img2img_mask_blur_strength, img2img_steps, img2img_sampling, img2img_toggles,
418
+ # # img2img_realesrgan_model_name, img2img_batch_count, img2img_cfg,
419
+ # # img2img_denoising, img2img_seed, img2img_height, img2img_width, img2img_resize,
420
+ # # img2img_image_editor, img2img_image_mask, img2img_embeddings])
421
+ # return (img2img_func,
422
+ # img2img_inputs,
423
+ # img2img_outputs)
424
+
425
+ # img2img_btn_editor.click(*img2img_submit_params())
426
+
427
+ # # GENERATE ON ENTER
428
+ # img2img_prompt.submit(None, None, None,
429
+ # _js=call_JS("clickFirstVisibleButton",
430
+ # rowId="prompt_row"))
431
+
432
+ # img2img_painterro_btn.click(None,
433
+ # [img2img_image_editor, img2img_image_mask, img2img_image_editor_mode],
434
+ # [img2img_image_editor, img2img_image_mask],
435
+ # _js=call_JS("Painterro.init", toId="img2img_editor")
436
+ # )
437
+
438
+ # img2img_width.change(fn=uifn.update_dimensions_info, inputs=[img2img_width, img2img_height],
439
+ # outputs=img2img_dimensions_info_text_box)
440
+ # img2img_height.change(fn=uifn.update_dimensions_info, inputs=[img2img_width, img2img_height],
441
+ # outputs=img2img_dimensions_info_text_box)
442
+
443
+
444
+ with gr.Row():
445
+ button1 = gr.Button("Button1", visible=False)
446
+ button2 = gr.Buttion("Button2", variant="primary")
447
  gr.HTML(read_content("footer.html"))
448
  # gr.Image('./contributors.png')
449