Nymbo commited on
Commit
e892648
·
verified ·
1 Parent(s): 77c3a16

auth is now optional, but required for Image/Video gen. those tools are hidden otherwise

Browse files
Files changed (1) hide show
  1. app.py +43 -22
app.py CHANGED
@@ -628,18 +628,34 @@ code_interface = gr.Interface(
628
  CSS_STYLES = """
629
  .gradio-container h1 {
630
  text-align: center;
 
 
 
631
  }
632
- /* Default: add subtitle under titles */
633
- .gradio-container h1::after {
634
- content: "Fetch Webpage | Search DuckDuckGo | Code Interpreter | Kokoro TTS | Image Generation | Video Generation";
 
635
  display: block;
636
  font-size: 1rem;
637
- font-weight: 500;
638
  opacity: 0.9;
639
  margin-top: 6px;
 
 
 
 
 
 
 
 
 
 
 
640
  }
641
 
642
- /* But remove it inside tab panels so it doesn't duplicate under each tool title */
 
643
  .gradio-container [role=\"tabpanel\"] h1::after {
644
  content: none !important;
645
  }
@@ -969,24 +985,29 @@ video_generation_interface = gr.Interface(
969
  allow_flagging="never",
970
  )
971
 
972
- # Build tabbed app including Image Generation
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
973
  demo = gr.TabbedInterface(
974
- interface_list=[
975
- fetch_interface,
976
- concise_interface,
977
- code_interface,
978
- kokoro_interface,
979
- image_generation_interface,
980
- video_generation_interface,
981
- ],
982
- tab_names=[
983
- "Fetch Webpage",
984
- "DuckDuckGo Search",
985
- "Python Code Executor",
986
- "Kokoro TTS",
987
- "Image Generation",
988
- "Video Generation",
989
- ],
990
  title="Tools MCP",
991
  theme="Nymbo/Nymbo_Theme",
992
  css=CSS_STYLES,
 
628
  CSS_STYLES = """
629
  .gradio-container h1 {
630
  text-align: center;
631
+ /* Ensure main title appears first, then our two subtitle lines */
632
+ display: grid;
633
+ justify-items: center;
634
  }
635
+ /* Place bold tools list on line 2, normal auth note on line 3 (below title) */
636
+ .gradio-container h1::before {
637
+ grid-row: 2;
638
+ content: "Fetch Webpage | Search DuckDuckGo | Code Interpreter | Kokoro TTS | Image Generation | Video Generation";
639
  display: block;
640
  font-size: 1rem;
641
+ font-weight: 700;
642
  opacity: 0.9;
643
  margin-top: 6px;
644
+ white-space: pre-wrap;
645
+ }
646
+ .gradio-container h1::after {
647
+ grid-row: 3;
648
+ content: "Authentication is optional but Image/Video Generation require a `HF_READ_TOKEN` in env variables. They are hidden otherwise.";
649
+ display: block;
650
+ font-size: 1rem;
651
+ font-weight: 400;
652
+ opacity: 0.9;
653
+ margin-top: 2px;
654
+ white-space: pre-wrap;
655
  }
656
 
657
+ /* Remove inside tab panels so it doesn't duplicate under each tool title */
658
+ .gradio-container [role=\"tabpanel\"] h1::before,
659
  .gradio-container [role=\"tabpanel\"] h1::after {
660
  content: none !important;
661
  }
 
985
  allow_flagging="never",
986
  )
987
 
988
+ # Build tabbed app; disable Image/Video tools if no HF token is present
989
+ HAS_HF_TOKEN = bool(HF_API_TOKEN or HF_VIDEO_TOKEN)
990
+
991
+ _interfaces = [
992
+ fetch_interface,
993
+ concise_interface,
994
+ code_interface,
995
+ kokoro_interface,
996
+ ]
997
+ _tab_names = [
998
+ "Fetch Webpage",
999
+ "DuckDuckGo Search",
1000
+ "Python Code Executor",
1001
+ "Kokoro TTS",
1002
+ ]
1003
+
1004
+ if HAS_HF_TOKEN:
1005
+ _interfaces.extend([image_generation_interface, video_generation_interface])
1006
+ _tab_names.extend(["Image Generation", "Video Generation"])
1007
+
1008
  demo = gr.TabbedInterface(
1009
+ interface_list=_interfaces,
1010
+ tab_names=_tab_names,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1011
  title="Tools MCP",
1012
  theme="Nymbo/Nymbo_Theme",
1013
  css=CSS_STYLES,