tombetthauser commited on
Commit
1fc4a91
Β·
1 Parent(s): 8002875

Clean up old code and text

Browse files
Files changed (1) hide show
  1. app.py +30 -230
app.py CHANGED
@@ -1,10 +1,11 @@
1
- #@title Prepare the Concepts Library to be used
2
 
3
- # Deployment Log ---------------------------
4
  # added beta 4305ed7
5
  # added beta 4307f62
6
- # add new beta concept
7
- # add beta concept...99
 
 
8
 
9
  import requests
10
  import os
@@ -118,16 +119,10 @@ for model in ahx_model_list:
118
  # -----------------------------------------------------------------------------------------------
119
 
120
 
121
- #@title Dropdown Prompt Tab
122
-
123
  model_tags = [model.modelId.split("/")[1] for model in ahx_model_list]
124
  model_tags.sort()
125
-
126
-
127
  import random
128
 
129
-
130
- #@title Gradio Concept Loader
131
  DROPDOWNS = {}
132
 
133
  for model in model_tags:
@@ -194,17 +189,19 @@ def get_models_text():
194
  return f"## Available Artist Models / Concepts:\n" + markdown_model_text + "\n\n## Available Beta Models / Concepts:\n" + markdown_betas_text
195
 
196
 
197
- with gr.Blocks(css=".gradio-container {max-width: 650px}") as dropdown_tab:
 
 
 
198
  gr.Markdown('''
199
- # πŸ§‘β€πŸš€ Advanced Concept Loader
200
 
201
- This tool allows you to run your own text prompts into fine-tuned artist concepts with individual parameter controls. Text prompts need to manually include artist concept / model tokens, see the examples below. The seed controls the static starting.
202
- <br>
203
- <br>
204
- The images you generate here are not recorded unless you choose to share them. Please share any cool images / prompts on the community tab here or our discord server!
205
  <br>
 
206
  <br>
207
- <a href="http://www.astronaut.horse">http://www.astronaut.horse</a>
208
  ''')
209
 
210
  with gr.Row():
@@ -226,32 +223,16 @@ with gr.Blocks(css=".gradio-container {max-width: 650px}") as dropdown_tab:
226
  go_button = gr.Button("generate image", elem_id="go-button")
227
  output = gr.Image(elem_id="output-image")
228
  output_text = gr.Text(elem_id="output-text")
229
- # go_button.click(fn=image_prompt, inputs=[prompt, dropdown, guidance, steps, seed, height, width], outputs=[output, output_text])
230
  go_button.click(fn=image_prompt, inputs=[prompt, guidance, steps, seed, height, width], outputs=[output, output_text])
231
- # gr.Markdown('''
232
- # ## Prompt Examples Using Artist Tokens:
233
- # * "an alien in the style of \<ahx-model-12>"
234
- # * "a painting in the style of \<ahx-model-11>"
235
- # * "a landscape in the style of \<ahx-model-10> and \<ahx-model-14> "
236
-
237
- # ## Valid Artist Tokens:
238
- # ''')
239
  gr.Markdown("For a complete list of usable models and beta concepts check out the dropdown selectors in the welcome and beta concepts tabs or the project's main website or our discord.\n\nhttp://www.astronaut.horse/concepts")
240
 
241
 
242
  # -----------------------------------------------------------------------------------------------
243
 
244
-
245
- #@title Dropdown Prompt Tab
246
-
247
  model_tags = [model.modelId.split("/")[1] for model in ahx_model_list]
248
  model_tags.sort()
249
-
250
-
251
  import random
252
 
253
-
254
- #@title Gradio Concept Loader
255
  DROPDOWNS = {}
256
 
257
  # set a default for empty entries...
@@ -301,13 +282,11 @@ def simple_image_prompt(prompt, dropdown, size_dropdown):
301
  prompt = prompt + DROPDOWNS[dropdown]
302
  generator = torch.Generator(device="cuda").manual_seed(int(seed))
303
 
304
- # image_count += 1
305
  curr_time = datetime.datetime.now()
306
  is_clean = check_prompt(prompt)
307
 
308
  print("----- welcome / beta tab prompt ------------------------------")
309
  print(f"prompt: {prompt}, size: {width}px x {height}px, guidance: {guidance}, steps: {steps}, seed: {int(seed)}")
310
- # print(f"image_count: {image_count}, datetime: `{e}`")
311
  print(f"datetime: `{curr_time}`")
312
  print(f"is_prompt_clean: {is_clean}")
313
  print("-------------------------------------------------------")
@@ -323,16 +302,9 @@ def simple_image_prompt(prompt, dropdown, size_dropdown):
323
  f"Prompt violates Hugging Face's Terms of Service"
324
  )
325
 
326
-
327
 
328
-
329
-
330
-
331
- # ~~~ WELCOME TAB ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
332
-
333
- # This tool allows you to run your own text prompts into fine-tuned artist concepts from an ongoing series of Stable Diffusion collaborations with visual artists linked below. Select an artist's fine-tuned concept / model from the dropdown and enter any desired text prompt. You can check out example output images and project details on the project's webpage. Additionally you can play around with more controls in the Advanced Prompting tab.
334
- # The images you generate here are not recorded unless you choose to share them. Please share any cool images / prompts on the community tab here or our discord server!
335
-
336
 
337
  rand_model_int = 2
338
 
@@ -341,8 +313,7 @@ with gr.Blocks(css=".gradio-container {max-width: 650px}") as new_welcome:
341
  # Stable Diffusion Artist Collaborations
342
 
343
  Use the dropdown below to select models / concepts trained on images chosen by collaborating artists. Prompt concepts with any text. To see example images or for more information on the project see the main project page or the discord community linked below. The images you generate here are not recorded unless you save them, they belong to everyone and no one.
344
- <br>
345
- <br>
346
  <a href="http://www.astronaut.horse">http://www.astronaut.horse</a>
347
  <br>
348
  <a href="https://discord.gg/ZctfW4SvGw">https://discord.com</a><br>
@@ -351,7 +322,6 @@ with gr.Blocks(css=".gradio-container {max-width: 650px}") as new_welcome:
351
  with gr.Row():
352
  dropdown = gr.Dropdown([dropdown for dropdown in list(DROPDOWNS) if 'ahx-model' in dropdown], label="choose style...")
353
  size_dropdown = gr.Dropdown(['square', 'portrait', 'landscape'], label="choose size...")
354
- # dropdown = gr.Dropdown(['1 image', '2 images', '3 images', '4 images'], label="output image count...")
355
  prompt = gr.Textbox(label="image prompt...", elem_id="input-text")
356
 
357
  go_button = gr.Button("generate image", elem_id="go-button")
@@ -359,83 +329,29 @@ with gr.Blocks(css=".gradio-container {max-width: 650px}") as new_welcome:
359
  output_text = gr.Text(elem_id="output-text")
360
  go_button.click(fn=simple_image_prompt, inputs=[prompt, dropdown, size_dropdown], outputs=[output, output_text])
361
 
362
- # -----------------------------------------------------------------------------------------------
363
 
364
 
365
 
366
- def infer(text, dropdown):
367
- images_list = pipe(
368
- [f"{text} in the style of <{dropdown}>"],
369
- num_inference_steps=30,
370
- guidance_scale=7.5
371
- )
372
- return images_list.images, gr.update(visible=True), gr.update(visible=True), gr.update(visible=True)
373
-
374
- css = ""
375
- examples = []
376
-
377
-
378
- # ~~~ UNUSED DEMO TAB ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
379
-
380
- with gr.Blocks(css=css) as demo:
381
- state = gr.Variable({
382
- 'selected': -1
383
- })
384
- state = {}
385
- def update_state(i):
386
- global checkbox_states
387
- if(checkbox_states[i]):
388
- checkbox_states[i] = False
389
- state[i] = False
390
- else:
391
- state[i] = True
392
- checkbox_states[i] = True
393
- gr.Markdown('''
394
- # πŸ§‘β€πŸš€ Astronaut Horse Concept Loader
395
-
396
- This tool allows you to run your own text prompts into fine-tuned artist concepts from an ongoing series of Stable Diffusion collaborations with visual artists linked below. Select an artist's fine-tuned concept / model from the dropdown and enter any desired text prompt. You can check out example output images and project details on the project's webpage. Additionally if you can play around with more controls in the Advanced Prompting tab. Enjoy!
397
- <a href="http://www.astronaut.horse">http://www.astronaut.horse</a>
398
- ''')
399
- with gr.Row():
400
- with gr.Column():
401
- dropdown = gr.Dropdown(list(DROPDOWNS), label="choose style...")
402
- text = gr.Textbox(
403
- label="Enter your prompt", placeholder="Enter your prompt", show_label=False, max_lines=1, elem_id="prompt_input"
404
- )
405
- btn = gr.Button("generate image",elem_id="run_btn")
406
- infer_outputs = gr.Gallery(show_label=False, elem_id="generated-gallery").style(grid=[1])
407
- with gr.Group(elem_id="share-btn-container"):
408
- community_icon = gr.HTML(community_icon_html, visible=False)
409
- loading_icon = gr.HTML(loading_icon_html, visible=False)
410
- checkbox_states = {}
411
- inputs = [text, dropdown]
412
- btn.click(
413
- infer,
414
- inputs=inputs,
415
- outputs=[infer_outputs, community_icon, loading_icon]
416
- )
417
-
418
-
419
- # -----------------------------------------------------------------------------------------------
420
-
421
- # ~~~ BETA TAB ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
422
-
423
 
424
  with gr.Blocks() as beta:
425
  gr.Markdown('''
426
- # πŸ§‘β€πŸš€ Beta Concept Loader
427
 
428
- This tool allows you to test out newly trained beta concepts trained by artists. These are experimental and may be removed if they are problematic or uninteresting. If they end up successful though they'll be renamed and moved into the primary prompting drop-down.
429
-
430
- To add to this artists can now freely train new models / concepts using the link below. This uses free access to Google's GPUs but will require a password / key that you can get from our discord. After a new concept / model is trained it will be automatically added to this tab after ~24 hours!
431
-
432
- <a href="https://colab.research.google.com/drive/1FhOpcEjHT7EN53Zv9MFLQTytZp11wjqg#scrollTo=hzUluHT-I42O">https://colab.research.google.com/astronaut-horse-training-tool</a>
 
 
 
433
  ''')
434
 
435
  with gr.Row():
436
  dropdown = gr.Dropdown([dropdown for dropdown in list(DROPDOWNS) if 'ahx-beta' in dropdown], label="choose style...")
437
  size_dropdown = gr.Dropdown(['square', 'portrait', 'landscape'], label="choose size...")
438
- # dropdown = gr.Dropdown(['1 image', '2 images', '3 images', '4 images'], label="output image count...")
439
  prompt = gr.Textbox(label="image prompt...", elem_id="input-text")
440
 
441
  go_button = gr.Button("generate image", elem_id="go-button")
@@ -443,125 +359,9 @@ with gr.Blocks() as beta:
443
  output_text = gr.Text(elem_id="output-text")
444
  go_button.click(fn=simple_image_prompt, inputs=[prompt, dropdown, size_dropdown], outputs=[output, output_text])
445
 
446
-
447
-
448
- # with gr.Row():
449
- # prompt = gr.Textbox(label="image prompt...", elem_id="input-text")
450
-
451
- # go_button = gr.Button("generate image", elem_id="go-button")
452
- # output = gr.Image(elem_id="output-image")
453
- # output_text = gr.Text(elem_id="output-text")
454
- # go_button.click(fn=simple_image_prompt, inputs=[prompt, dropdown], outputs=[output, output_text])
455
-
456
-
457
-
458
- # -----------------------------------------------------------------------------------------------
459
-
460
- # ~~~ NOISE STEPS TAB ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
461
-
462
 
463
- with gr.Blocks() as noise_steps:
464
- gr.Markdown('''
465
- # πŸ§‘β€πŸš€ Noise Steps Loader
466
-
467
- This tool doesn't exist yet!
468
-
469
- When it's built out though the plan is for it to let you expose the de-noising process that helps define Stable Diffusion image generation.
470
-
471
- The plan is to let you enter custom a custom prompt / seed etc and see how Stable Diffusion is turning it's starting static image into an image that matches your prompt step-by-step.
472
-
473
- Hopefully it'll be working soon. Check out the example below for now!
474
-
475
- ![denoising image](https://cdn.discordapp.com/attachments/1082744000806658098/1088575231158923304/Untitled.png)
476
- ''')
477
- # ![denoising image](https://cdn.discordapp.com/attachments/1082744000806658098/1088577845061759026/Untitled.png)
478
- # dropdown = gr.Dropdown([dropdown for dropdown in list(DROPDOWNS) if 'ahx-beta' in dropdown], label="choose style...")
479
-
480
- # with gr.Row():
481
- # prompt = gr.Textbox(label="image prompt...", elem_id="input-text")
482
-
483
- # go_button = gr.Button("generate image", elem_id="go-button")
484
- # output = gr.Image(elem_id="output-image")
485
- # output_text = gr.Text(elem_id="output-text")
486
- # go_button.click(fn=simple_image_prompt, inputs=[prompt, dropdown], outputs=[output, output_text])
487
-
488
-
489
-
490
- # -----------------------------------------------------------------------------------------------
491
-
492
- # ~~~ Depth Map TAB ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
493
-
494
-
495
- with gr.Blocks() as depth_map:
496
- gr.Markdown('''
497
- # πŸ§‘β€πŸš€ Depth Map Processor
498
-
499
- This tool doesn't exist yet! When it's built it will let you input any image from your phone or computer and process it into a depth map image using a Stable Diffusion control net process. Hopefully it'll be working soon. Check out the example below for now!
500
-
501
- ![Escher hands](https://cdn.discordapp.com/attachments/1065349726007992411/1089030239201534063/IMG_1874.jpg)
502
- ![Escher hands depth map](https://cdn.discordapp.com/attachments/1085605267481309197/1089031503612227705/tmp2bsa61a8.png)
503
- ''')
504
-
505
-
506
-
507
- # -----------------------------------------------------------------------------------------------
508
-
509
- # ~~~ Control Net TAB ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
510
-
511
-
512
- with gr.Blocks() as control_net:
513
- gr.Markdown('''
514
- # πŸ§‘β€πŸš€ Control Net Processor
515
-
516
- This tool doesn't exist yet! When it's built it will let you input any image from your phone or computer and process it using any text prompt or combination of trained artist styles / concepts. If you want to play with normal control net without ahx artist concepts check out the link below. [control net](https://huggingface.co/spaces/hysts/ControlNet)
517
- ''')
518
-
519
-
520
-
521
- # -----------------------------------------------------------------------------------------------
522
-
523
- # ~~~ TEXTUAL INVERSION TAB ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
524
-
525
-
526
- with gr.Blocks() as inversion:
527
- gr.Markdown('''
528
- # πŸ§‘β€πŸš€ Concept Trainer
529
-
530
- ![textual inversion training](https://textual-inversion.github.io/static/images/training/training.JPG)
531
-
532
- This external tool lets you train your own new models / concepts from any images you want that will appear automatically be added to the Beta Concepts and Advanced Prompting tabs!
533
-
534
- For now the tool lives on Google Colab, which is Google's free tool for using their GPU's. Someday it might live here on our Hugging Face Space, but the process is a little too demanding for our current resources. To train your own concept visit the link below and follow the instructions and be prepared to wait several hours.
535
-
536
- [textual inversion training tool](https://colab.research.google.com/drive/1FhOpcEjHT7EN53Zv9MFLQTytZp11wjqg#forceEdit=true&sandboxMode=true&scrollTo=ZajfEoWHKAr3)
537
-
538
-
539
- Note that you will need a access_token to run this. You can request this on our discord or get your own free one at the link below. [hugging face access token](https://huggingface.co/docs/hub/security-tokens)
540
- ''')
541
-
542
-
543
-
544
- # -----------------------------------------------------------------------------------------------
545
-
546
- # ~~~ DREAM BOOTH TAB ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
547
-
548
-
549
- with gr.Blocks() as dream_booth:
550
- gr.Markdown('''
551
- # πŸ§‘β€πŸš€ Dream Booth Concept Trainer
552
-
553
- This tool doesn't exist yet! When it's built it will let you train concepts using a process distinct from our current concept training tool which uses textual inversion training. To read more about Dream Booth check out the link below!
554
-
555
- [dream booth](https://huggingface.co/spaces/multimodalart/dreambooth-training)
556
- ''')
557
-
558
-
559
-
560
-
561
- # -----------------------------------------------------------------------------------------------
562
 
 
563
 
564
- # tabbed_interface = gr.TabbedInterface([new_welcome, dropdown_tab, beta, inversion, noise_steps, depth_map, control_net, dream_booth], ["Welcome!", "Advanced Prompting", "Beta Concepts", "Concept Trainer", "Noise Steps", "Depth Map", "Control Net", "Dream Booth"])
565
- # tabbed_interface = gr.TabbedInterface([new_welcome, dropdown_tab, beta, inversion, noise_steps, control_net], ["Welcome!", "Advanced Prompting", "Beta Concepts", "Concept Trainer", "Noise Steps", "Depth Map", "Control Net", "Dream Booth"])
566
- tabbed_interface = gr.TabbedInterface([new_welcome, dropdown_tab, beta], ["Welcome!", "Advanced Prompting", "Beta Concepts"])
567
  tabbed_interface.launch()
 
1
+ # ----- Deployment Log -----------------------------------------------------------------
2
 
 
3
  # added beta 4305ed7
4
  # added beta 4307f62
5
+
6
+
7
+
8
+ # ----- General Setup -----------------------------------------------------------------
9
 
10
  import requests
11
  import os
 
119
  # -----------------------------------------------------------------------------------------------
120
 
121
 
 
 
122
  model_tags = [model.modelId.split("/")[1] for model in ahx_model_list]
123
  model_tags.sort()
 
 
124
  import random
125
 
 
 
126
  DROPDOWNS = {}
127
 
128
  for model in model_tags:
 
189
  return f"## Available Artist Models / Concepts:\n" + markdown_model_text + "\n\n## Available Beta Models / Concepts:\n" + markdown_betas_text
190
 
191
 
192
+
193
+ # ----- Advanced Tab -----------------------------------------------------------------
194
+
195
+ with gr.Blocks(css=".gradio-container {max-width: 650px}") as advanced_tab:
196
  gr.Markdown('''
197
+ # Advanced Prompting
198
 
199
+ Freely prompt artist models / concepts with open controls for size, inference steps, seed number etc. Text prompts need to manually include artist concept / model tokens which can be found in the welcome tab and beta tab (ie "an alien in the style of <ahx-model-12>"). You can also mix and match models (ie "a landscape in the style of <ahx-model-14> and <ahx-beta-4307f62>>"). To see example images or for more information see the links below.
200
+ <br><br>
201
+ <a href="http://www.astronaut.horse">http://www.astronaut.horse</a>
 
202
  <br>
203
+ <a href="https://discord.gg/ZctfW4SvGw">https://discord.com</a><br>
204
  <br>
 
205
  ''')
206
 
207
  with gr.Row():
 
223
  go_button = gr.Button("generate image", elem_id="go-button")
224
  output = gr.Image(elem_id="output-image")
225
  output_text = gr.Text(elem_id="output-text")
 
226
  go_button.click(fn=image_prompt, inputs=[prompt, guidance, steps, seed, height, width], outputs=[output, output_text])
 
 
 
 
 
 
 
 
227
  gr.Markdown("For a complete list of usable models and beta concepts check out the dropdown selectors in the welcome and beta concepts tabs or the project's main website or our discord.\n\nhttp://www.astronaut.horse/concepts")
228
 
229
 
230
  # -----------------------------------------------------------------------------------------------
231
 
 
 
 
232
  model_tags = [model.modelId.split("/")[1] for model in ahx_model_list]
233
  model_tags.sort()
 
 
234
  import random
235
 
 
 
236
  DROPDOWNS = {}
237
 
238
  # set a default for empty entries...
 
282
  prompt = prompt + DROPDOWNS[dropdown]
283
  generator = torch.Generator(device="cuda").manual_seed(int(seed))
284
 
 
285
  curr_time = datetime.datetime.now()
286
  is_clean = check_prompt(prompt)
287
 
288
  print("----- welcome / beta tab prompt ------------------------------")
289
  print(f"prompt: {prompt}, size: {width}px x {height}px, guidance: {guidance}, steps: {steps}, seed: {int(seed)}")
 
290
  print(f"datetime: `{curr_time}`")
291
  print(f"is_prompt_clean: {is_clean}")
292
  print("-------------------------------------------------------")
 
302
  f"Prompt violates Hugging Face's Terms of Service"
303
  )
304
 
 
305
 
306
+
307
+ # ----- Welcome Tab -----------------------------------------------------------------
 
 
 
 
 
 
308
 
309
  rand_model_int = 2
310
 
 
313
  # Stable Diffusion Artist Collaborations
314
 
315
  Use the dropdown below to select models / concepts trained on images chosen by collaborating artists. Prompt concepts with any text. To see example images or for more information on the project see the main project page or the discord community linked below. The images you generate here are not recorded unless you save them, they belong to everyone and no one.
316
+ <br><br>
 
317
  <a href="http://www.astronaut.horse">http://www.astronaut.horse</a>
318
  <br>
319
  <a href="https://discord.gg/ZctfW4SvGw">https://discord.com</a><br>
 
322
  with gr.Row():
323
  dropdown = gr.Dropdown([dropdown for dropdown in list(DROPDOWNS) if 'ahx-model' in dropdown], label="choose style...")
324
  size_dropdown = gr.Dropdown(['square', 'portrait', 'landscape'], label="choose size...")
 
325
  prompt = gr.Textbox(label="image prompt...", elem_id="input-text")
326
 
327
  go_button = gr.Button("generate image", elem_id="go-button")
 
329
  output_text = gr.Text(elem_id="output-text")
330
  go_button.click(fn=simple_image_prompt, inputs=[prompt, dropdown, size_dropdown], outputs=[output, output_text])
331
 
332
+ # Old Text --> This tool allows you to run your own text prompts into fine-tuned artist concepts from an ongoing series of Stable Diffusion collaborations with visual artists linked below. Select an artist's fine-tuned concept / model from the dropdown and enter any desired text prompt. You can check out example output images and project details on the project's webpage. Additionally you can play around with more controls in the Advanced Prompting tab. <br> The images you generate here are not recorded unless you choose to share them. Please share any cool images / prompts on the community tab here or our discord server!
333
 
334
 
335
 
336
+ # ----- Beta Concepts -----------------------------------------------------------------
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
337
 
338
  with gr.Blocks() as beta:
339
  gr.Markdown('''
340
+ # Beta Concepts
341
 
342
+ This tool allows you to test out newly trained beta concepts trained by artists. To add your own beta concept see the link below. This uses free access to Google's GPUs but will require a password / key that you can get from the discord server. After a new concept / model is trained it will be automatically added to this tab when the app is redeployed.
343
+ <br><br>
344
+ <a href="https://colab.research.google.com/drive/1FhOpcEjHT7EN53Zv9MFLQTytZp11wjqg#scrollTo=hzUluHT-I42O">train your own beta concept</a>
345
+ <br><br>
346
+ <a href="http://www.astronaut.horse">http://www.astronaut.horse</a>
347
+ <br>
348
+ <a href="https://discord.gg/ZctfW4SvGw">https://discord.com</a><br>
349
+ <br>
350
  ''')
351
 
352
  with gr.Row():
353
  dropdown = gr.Dropdown([dropdown for dropdown in list(DROPDOWNS) if 'ahx-beta' in dropdown], label="choose style...")
354
  size_dropdown = gr.Dropdown(['square', 'portrait', 'landscape'], label="choose size...")
 
355
  prompt = gr.Textbox(label="image prompt...", elem_id="input-text")
356
 
357
  go_button = gr.Button("generate image", elem_id="go-button")
 
359
  output_text = gr.Text(elem_id="output-text")
360
  go_button.click(fn=simple_image_prompt, inputs=[prompt, dropdown, size_dropdown], outputs=[output, output_text])
361
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
362
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
363
 
364
+ # ----- Launch Tabs -----------------------------------------------------------------
365
 
366
+ tabbed_interface = gr.TabbedInterface([new_welcome, advanced_tab, beta], ["Welcome", "Advanced Prompting", "Beta Concepts"])
 
 
367
  tabbed_interface.launch()