Aitron Emper commited on
Commit
2693299
1 Parent(s): 9dea1d3

Upload 57 files

Browse files
app.py CHANGED
@@ -5,6 +5,38 @@ import os
5
  now_dir = os.getcwd()
6
  sys.path.append(now_dir)
7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  from tabs.inference.inference import inference_tab
9
  from tabs.train.train import train_tab
10
  from tabs.extra.extra import extra_tab
@@ -12,6 +44,9 @@ from tabs.report.report import report_tab
12
  from tabs.download.download import download_tab
13
  from tabs.tts.tts import tts_tab
14
  from tabs.settings.presence import presence_tab
 
 
 
15
 
16
  from assets.i18n.i18n import I18nAuto
17
 
@@ -21,7 +56,13 @@ from assets.discord_presence import RPCManager
21
 
22
  RPCManager.start_presence()
23
 
24
- with gr.Blocks(theme="ParityError/Interstellar", title="Applio") as Applio:
 
 
 
 
 
 
25
  gr.Markdown("# Applio")
26
  gr.Markdown(
27
  i18n(
@@ -36,8 +77,8 @@ with gr.Blocks(theme="ParityError/Interstellar", title="Applio") as Applio:
36
  with gr.Tab(i18n("Inference")):
37
  inference_tab()
38
 
39
- # with gr.Tab(i18n("Train")):
40
- # train_tab()
41
 
42
  with gr.Tab(i18n("TTS")):
43
  tts_tab()
@@ -51,9 +92,15 @@ with gr.Blocks(theme="ParityError/Interstellar", title="Applio") as Applio:
51
  with gr.Tab(i18n("Report a Bug")):
52
  report_tab()
53
 
54
- # with gr.Tab(i18n("Settings")):
55
- # presence_tab()
 
56
 
57
 
58
  if __name__ == "__main__":
59
- Applio.launch()
 
 
 
 
 
 
5
  now_dir = os.getcwd()
6
  sys.path.append(now_dir)
7
 
8
+
9
+ class InstallationError(Exception):
10
+ def __init__(self, message="InstallationError"):
11
+ self.message = message
12
+ super().__init__(self.message)
13
+
14
+
15
+ try:
16
+ system_drive = os.getenv("SystemDrive")
17
+ current_drive = os.path.splitdrive(now_dir)[0]
18
+ if current_drive.upper() != system_drive.upper():
19
+ raise InstallationError(
20
+ f"Error: Current working directory is not on the default system drive ({system_drive}). Please move Applio in the correct drive."
21
+ )
22
+ except:
23
+ pass
24
+ else:
25
+ if "OneDrive" in now_dir:
26
+ raise InstallationError(
27
+ "Error: Current working directory is on OneDrive. Please move Applio in another folder."
28
+ )
29
+ elif " " in now_dir:
30
+ raise InstallationError(
31
+ "Error: Current working directory contains spaces. Please move Applio in another folder."
32
+ )
33
+ try:
34
+ now_dir.encode("ascii")
35
+ except UnicodeEncodeError:
36
+ raise InstallationError(
37
+ "Error: Current working directory contains non-ASCII characters. Please move Applio in another folder."
38
+ )
39
+
40
  from tabs.inference.inference import inference_tab
41
  from tabs.train.train import train_tab
42
  from tabs.extra.extra import extra_tab
 
44
  from tabs.download.download import download_tab
45
  from tabs.tts.tts import tts_tab
46
  from tabs.settings.presence import presence_tab
47
+ from tabs.settings.themes import theme_tab
48
+
49
+ import assets.themes.loadThemes as loadThemes
50
 
51
  from assets.i18n.i18n import I18nAuto
52
 
 
56
 
57
  RPCManager.start_presence()
58
 
59
+ my_applio = loadThemes.load_json()
60
+ if my_applio:
61
+ pass
62
+ else:
63
+ my_applio = "ParityError/Interstellar"
64
+
65
+ with gr.Blocks(theme=my_applio, title="Applio") as Applio:
66
  gr.Markdown("# Applio")
67
  gr.Markdown(
68
  i18n(
 
77
  with gr.Tab(i18n("Inference")):
78
  inference_tab()
79
 
80
+ with gr.Tab(i18n("Train")):
81
+ train_tab()
82
 
83
  with gr.Tab(i18n("TTS")):
84
  tts_tab()
 
92
  with gr.Tab(i18n("Report a Bug")):
93
  report_tab()
94
 
95
+ with gr.Tab(i18n("Settings")):
96
+ presence_tab()
97
+ theme_tab()
98
 
99
 
100
  if __name__ == "__main__":
101
+ Applio.launch(
102
+ favicon_path="assets/ICON.ico",
103
+ share="--share" in sys.argv,
104
+ inbrowser="--open" in sys.argv,
105
+ server_port=6969,
106
+ )
assets/i18n/languages/pl_PL.json CHANGED
@@ -1,113 +1,131 @@
1
  {
2
- "Ultimate voice cloning tool, meticulously optimized for unrivaled power, modularity, and user-friendly experience.": "Najlepsze narzędzie do klonowania głosu, skrupulatnie zoptymalizowane pod kątem niezrównanej mocy, modułowości i przyjazności dla użytkownika.",
3
- "This section contains some extra utilities that often may be in experimental phases.": "Ta sekcja zawiera kilka dodatkowych narzędzi, które często mogą znajdować się w fazie eksperymentalnej.",
4
- "Output Information": "Informacje wyjściowe",
5
- "Inference": "Inferencja",
6
- "Train": "Trenuj",
7
- "Extra": "Dodatki",
8
- "Merge Audios": "Scal audio",
9
- "Processing": "Przetwarzanie",
10
- "Audio Analyzer": "Analizator dźwięku",
11
- "Model Information": "Informacje o modelu",
12
- "Download": "Pobierz",
13
- "Report a Bug": "Zgłoś błąd",
14
- "Preprocess": "Przetwarzanie wstępne",
15
- "Model Name": "Nazwa modelu",
16
- "Enter model name": "Wprowadź nazwę modelu",
17
- "Dataset Path": "Ścieżka datasetu",
18
- "Enter dataset path": "Wprowadź ścieżkę datasetu",
19
- "Sampling Rate": "Częstotliwość próbkowania",
20
- "RVC Version": "Wersja RVC",
21
- "Preprocess Dataset": "Wstępne przetwarzanie datasetu",
22
- "Extract": "Ekstraktuj",
23
- "Hop Length": "Długość przeskoku (Hop Length)",
24
- "Batch Size": "Rozmiar serii",
25
- "Save Every Epoch": "Zapisz każdą epokę",
26
- "Total Epoch": "Epok razem",
27
- "Pretrained": "Wstępnie wytrenowany",
28
- "Save Only Latest": "Zapisz tylko najnowszą",
29
- "Save Every Weights": "Zapisz każdą wagę",
30
- "Custom Pretrained": "Niestandardowe wstępnie wytrenowane modele",
31
- "Upload Pretrained Model": "Prześlij wstępnie wytrenowany model",
32
- "Pretrained Custom Settings": "Ustawienia wstępnie wytrenowanych modeli",
33
- "The file you dropped is not a valid pretrained file. Please try again.": "Upuszczony plik nie jest prawidłowym wstępnie wytrenowanym plikiem. Spróbuj ponownie.",
34
- "Click the refresh button to see the pretrained file in the dropdown menu.": "Kliknij przycisk odświeżania, aby wyświetlić wstępnie wytrenowany plik w menu rozwijanym.",
35
- "Pretrained G Path": "Niestandardowe wstępnie wytrenowane model G",
36
- "Pretrained D Path": "Niestandardowy wstępnie wytrenowany model D",
37
- "GPU Settings": "Ustawienia GPU",
38
- "GPU Custom Settings": "Niestandardowe ustawienia GPU",
39
- "GPU Number": "Numer GPU",
40
- "0 to ∞ separated by -": "Od 0 do ∞ oddzielone -",
41
- "GPU Information": "Informacje o GPU",
42
- "Pitch Guidance": "Wskazówki dot. ekstrakcji pitchu",
43
- "Extract Features": "Ekstraktuj cechy",
44
- "Start Training": "Rozpocznij trenowanie",
45
- "Generate Index": "Generuj indeks",
46
- "Voice Model": "Model głosu",
47
- "Index File": "Plik indeksu",
48
- "Refresh": "Odśwież",
49
- "Unload Voice": "Odłącz głos",
50
- "Single": "Pojedyncze",
51
- "Upload Audio": "Prześlij dźwięk",
52
- "Select Audio": "Wybierz dźwięk",
53
- "Advanced Settings": "Ustawienia zaawansowane",
54
- "Clear Outputs (Deletes all audios in assets/audios)": "Wyczyść wyjścia (usuwa wszystkie pliki audio w zasobach/plikach audio)",
55
- "Custom Output Path": "Niestandardowa ścieżka wyjściowa",
56
- "Output Path": "Ścieżka wyjściowa",
57
- "Pitch": "Pitch",
58
- "If >=3: apply median filtering to the harvested pitch results. The value represents the filter radius and can reduce breathiness": "Jeśli >=3: zastosuj filtrowanie medianowe do zebranych wyników pitchu. Wartość ta reprezentuje promień filtra i może zmniejszyć 'duszność'",
59
- "Search Feature Ratio": "Wskaźnik funkcji wyszukiwania",
60
- "Pitch extraction algorithm": "Algorytm ekstrakcji pitchu",
61
- "Convert": "Konwertuj",
62
- "Export Audio": "Wyeksportowany dźwięk",
63
- "Batch": "Seria",
64
- "Input Folder": "Folder wejściowy",
65
- "Enter input path": "Wprowadź ścieżkę wejściową",
66
- "Output Folder": "Folder wyjściowy",
67
- "Enter output path": "Wprowadź ścieżkę wyjściową",
68
- "Get information about the audio": "Uzyskiwanie informacji o dźwięku",
69
- "Information about the audio file": "Informacje o pliku audio",
70
- "Waiting for information...": "Czekam na informację...",
71
- "Model fusion": "Fuzja modeli",
72
- "Weight for Model A": "Waga modelu A",
73
- "Whether the model has pitch guidance": "Czy model ma wskazówki dot. ekstrakcji pitchu",
74
- "Model architecture version": "Wersja architektury modelu",
75
- "Path to Model A": "Ścieżka do modelu A",
76
- "Path to Model B": "Ścieżka do modelu B",
77
- "Path to model": "Ścieżka do modelu",
78
- "Model information to be placed": "Informacje o modelu, które mają zostać umieszczone",
79
- "Fusion": "Fuzja",
80
- "Modify model information": "Modyfikowanie informacji o modelu",
81
- "Path to Model": "Ścieżka do modelu",
82
- "Model information to be modified": "Informacje o modelu, które mają zostać zmodyfikowane",
83
- "Save file name": "Zapisz nazwę pliku",
84
- "Modify": "Modyfikuj",
85
- "View model information": "Wyświetlanie informacji o modelu",
86
- "View": "Widok",
87
- "Model extraction": "Wyodrębnianie modelu",
88
- "Model conversion": "Konwersja modelu",
89
- "Pth file": "Plik pth",
90
- "Output of the pth file": "Wyjście pliku pth",
91
- "# How to Report an Issue on GitHub": "# Jak zgłosić problem na GitHubie",
92
- "1. Click on the 'Record Screen' button below to start recording the issue you are experiencing.": "1. Kliknij przycisk \"Nagraj ekran\" poniżej, aby rozpocząć nagrywanie napotkanego problemu.",
93
- "2. Once you have finished recording the issue, click on the 'Stop Recording' button (the same button, but the label changes depending on whether you are actively recording or not).": "2. Po zakończeniu nagrywania problemu kliknij przycisk \"Zatrzymaj nagrywanie\" (ten sam przycisk, ale etykieta zmienia się w zależności od tego, czy aktywnie nagrywasz, czy nie).",
94
- "3. Go to [GitHub Issues](https://github.com/IAHispano/Applio/issues) and click on the 'New Issue' button.": "3. Przejdź do [GitHub Issues](https://github.com/IAHispano/Applio/issues) i kliknij przycisk \"Nowe zgłoszenie\".",
95
- "4. Complete the provided issue template, ensuring to include details as needed, and utilize the assets section to upload the recorded file from the previous step.": "4. Uzupełnij dostarczony szablon problemu, upewniając się, że w razie potrzeby dołączyłeś szczegóły. Skorzystaj z sekcji zasobów, aby przesłać nagrany plik z poprzedniego kroku.",
96
- "Record Screen": "Nagraj ekran",
97
- "Record": "Nagraj",
98
- "Stop Recording": "Zatrzymaj nagrywanie",
99
- "Introduce the model .pth path": "Wprowadź ścieżkę do modelu .pth",
100
- "See Model Information": "Zobacz informacje o modelu",
101
- "## Download Model": "## Pobierz model",
102
- "Model Link": "Link do modelu",
103
- "Introduce the model link": "Wprowadź link do modelu",
104
- "Download Model": "Pobierz model",
105
- "## Drop files": "## Przeciągnij pliki",
106
- "Drag your .pth file and .index file into this space. Drag one and then the other.": "Przeciągnij tutaj plik .pth i plik .index. Przeciągnij jeden, a potem drugi.",
107
- "TTS Voices": "Głosy TTS",
108
- "Text to Synthesize": "Tekst do syntezy",
109
- "Enter text to synthesize": "Wprowadzanie tekstu do syntezy",
110
- "Output Path for TTS Audio": "Ścieżka wyjściowa dla TTS",
111
- "Output Path for RVC Audio": "Ścieżka wyjściowa dla RVC",
112
- "Enable Applio integration with Discord presence": "Obecność Applio"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
113
  }
 
1
  {
2
+ "Ultimate voice cloning tool, meticulously optimized for unrivaled power, modularity, and user-friendly experience.": "Najlepsze narzędzie do klonowania głosu, skrupulatnie zoptymalizowane pod kątem niezrównanej mocy, modułowości i przyjazności dla użytkownika.",
3
+ "This section contains some extra utilities that often may be in experimental phases.": "Ta sekcja zawiera kilka dodatkowych narzędzi, które często mogą znajdować się w fazie eksperymentalnej.",
4
+ "Output Information": "Informacje wyjściowe",
5
+
6
+ "Inference": "Inferencja",
7
+ "Train": "Trening",
8
+ "Extra": "Dodatkowe funkcje",
9
+ "Merge Audios": "Scal audio",
10
+ "Processing": "Przetwarzanie",
11
+ "Audio Analyzer": "Analizator dźwięku",
12
+ "Model Information": "Informacje o modelu",
13
+ "Download": "Pobieranie",
14
+ "Report a Bug": "Zgłoś błąd",
15
+
16
+ "Preprocess": "Przetwarzanie wstępne",
17
+ "Model Name": "Nazwa modelu",
18
+ "Enter model name": "Wprowadź nazwę modelu",
19
+ "Dataset Path": "Ścieżka zestawu danych",
20
+ "Enter dataset path": "Wprowadź ścieżkę zestawu danych",
21
+ "Sampling Rate": "Częstotliwość próbkowania",
22
+ "RVC Version": "Wersja RVC",
23
+ "Preprocess Dataset": "Przetwórz wstępnie zestaw danych",
24
+
25
+ "Extract": "Wypakuj",
26
+ "Hop Length": "Długość przeskoku",
27
+ "Batch Size": "Wielkość partii",
28
+ "Save Every Epoch": "Zapisz każdą epokę",
29
+ "Total Epoch": "Wszystkich epok",
30
+ "Pretrained": "Wstępnie wytrenowany",
31
+ "Save Only Latest": "Zapisz tylko najnowszą",
32
+ "Save Every Weights": "Oszczędzaj każdą wagę",
33
+ "Custom Pretrained": "Niestandardowe wstępnie wytrenowane",
34
+ "Upload Pretrained Model": "Przekazywanie wstępnie wytrenowanego modelu",
35
+ "Pretrained Custom Settings": "Wstępnie wytrenowane ustawienia niestandardowe",
36
+ "The file you dropped is not a valid pretrained file. Please try again.": "Upuszczony plik nie jest prawidłowym wstępnie wytrenowanym plikiem. Spróbuj ponownie.",
37
+ "Click the refresh button to see the pretrained file in the dropdown menu.": "Kliknij przycisk odświeżania, aby wyświetlić wstępnie wytrenowany plik w menu rozwijanym.",
38
+ "Pretrained G Path": "Niestandardowa ścieżka wstępnie wytrenowanego modelu G",
39
+ "Pretrained D Path": "Niestandardowa ścieżka wstępnie wytrenowanego modelu D",
40
+ "GPU Settings": "Ustawienia GPU",
41
+ "GPU Custom Settings": "Niestandardowe ustawienia GPU",
42
+ "GPU Number": "Numer GPU",
43
+ "0 to ∞ separated by -": "Od 0 do ∞ oddzielone -",
44
+ "GPU Information": "Informacje o procesorze GPU",
45
+ "Pitch Guidance": "Wskazówki dotyczące wysokości dźwięku",
46
+ "Extract Features": "Wyodrębnij funkcje",
47
+
48
+ "Start Training": "Rozpocznij trening",
49
+ "Generate Index": "Generuj Index",
50
+
51
+ "Voice Model": "Model głosu",
52
+ "Index File": "Plik indeksu",
53
+ "Refresh": "Odśwież",
54
+ "Unload Voice": "Przeładuj głos od nowa",
55
+
56
+ "Single": "Pojedyńczy plik",
57
+ "Upload Audio": "Prześlij plik Audio",
58
+ "Select Audio": "Wybierz plik Audio",
59
+ "Advanced Settings": "Ustawienia Zaawansowane",
60
+
61
+ "Clear Outputs (Deletes all audios in assets/audios)": "Wyczyść wyjścia (usuwa wszystkie pliki audio w zasobach/plikach audio)",
62
+ "Custom Output Path": "Niestandardowa ścieżka wyjściowa",
63
+ "Output Path": "Ścieżka wyjściowa",
64
+ "Split Audio": "Rozdziel dzwięk",
65
+ "Pitch": "Tonacja",
66
+ "If >=3: apply median filtering to the harvested pitch results. The value represents the filter radius and can reduce breathiness": "Jeśli >=3: zastosuj filtrowanie mediany do zebranych wyników skoku. Wartość reprezentuje promień filtra i może zmniejszyć oddychanie",
67
+ "Search Feature Ratio": "Współczynnik funkcji wyszukiwania",
68
+ "Pitch extraction algorithm": "Algorytm ekstrakcji wysokości tonacji",
69
+ "Convert": "Konwertuj",
70
+ "Export Audio": "Eksportuj dźwięk",
71
+
72
+ "Batch": "Partia",
73
+ "Input Folder": "Folder wejściowy",
74
+ "Enter input path": "Wprowadź ścieżkę wejściową",
75
+ "Output Folder": "Folder wyjściowy",
76
+ "Enter output path": "Wprowadź ścieżkę wyjściową",
77
+
78
+ "Get information about the audio": "Sprawdź informację o dźwięku",
79
+ "Information about the audio file": "Informacje o pliku audio",
80
+ "Waiting for information...": "Czekam na informację...",
81
+
82
+ "Model fusion": "Fuzja modeli",
83
+ "Weight for Model A": "Waga dla modelu A",
84
+ "Whether the model has pitch guidance": "Czy model ma wskazówki dotyczące wysokości dźwięku",
85
+ "Model architecture version": "Wersja architektury modelu",
86
+ "Path to Model A": "Ścieżka do Modelu A",
87
+ "Path to Model B": "Ścieżka do Modelu B",
88
+ "Path to model": "Ścieżka do modelu",
89
+ "Model information to be placed": "Informacje o modelu, które mają zostać umieszczone",
90
+ "Fusion": "Fuzja",
91
+
92
+ "Modify model information": "Modyfikowanie informacji o modelu",
93
+ "Path to Model": "Ścieżka do modelu",
94
+ "Model information to be modified": "Informacje o modelu, które mają zostać zmodyfikowane",
95
+ "Save file name": "Zapisz nazwę pliku",
96
+ "Modify": "Zmień",
97
+
98
+ "View model information": "Zobacz informacje o modelu",
99
+ "View": "Zobacz",
100
+ "Model extraction": "Wyodrębnianie modelu",
101
+ "Model conversion": "Konwersja modelu",
102
+ "Pth file": "Plik pth",
103
+ "Output of the pth file": "Wyjście pliku pth",
104
+
105
+ "# How to Report an Issue on GitHub": "# Jak zgłosić problem na GitHub",
106
+ "1. Click on the 'Record Screen' button below to start recording the issue you are experiencing.": "1. Kliknij przycisk \"Ekran nagrywania\" poniżej, aby rozpocząć nagrywanie napotkanego problemu.",
107
+ "2. Once you have finished recording the issue, click on the 'Stop Recording' button (the same button, but the label changes depending on whether you are actively recording or not).": "2. Po zakończeniu nagrywania problemu kliknij przycisk \"Zatrzymaj nagrywanie\" (ten sam przycisk, ale etykieta zmienia się w zależności od tego, czy aktywnie nagrywasz, czy nie).",
108
+ "3. Go to [GitHub Issues](https://github.com/IAHispano/Applio/issues) and click on the 'New Issue' button.": "3. Przejdź do [GitHub Issues](https://github.com/IAHispano/Applio/issues) i kliknij przycisk \"Nowe zgłoszenie\".",
109
+ "4. Complete the provided issue template, ensuring to include details as needed, and utilize the assets section to upload the recorded file from the previous step.": "4. Wypełnij dostarczony szablon problemu, upewniając się, że w razie potrzeby dołączyłeś szczegóły, i skorzystaj z sekcji zasobów, aby przesłać nagrany plik z poprzedniego kroku.",
110
+
111
+ "Record Screen": "Nagrywanie Ekranu",
112
+ "Record": "Nagraj",
113
+ "Stop Recording": "Zatrzymaj nagrywanie",
114
+
115
+ "Introduce the model .pth path": "Wprowadzenie ścieżki pliku .pth modelu",
116
+ "See Model Information": "Zobacz informacje o modelu",
117
+
118
+ "## Download Model": "## Pobierz model",
119
+ "Model Link": "Link do modelu",
120
+ "Introduce the model link": "Wprowadzenie linku do modelu",
121
+ "Download Model": "Pobierz model",
122
+ "## Drop files": "## Upuść pliki",
123
+ "Drag your .pth file and .index file into this space. Drag one and then the other.": "Przeciągnij plik .pth i plik .index do tego miejsca. Pliki przeciągnij pojedyńczo.",
124
+
125
+ "TTS Voices": "Głosy TTS",
126
+ "Text to Synthesize": "Tekst do syntezy",
127
+ "Enter text to synthesize": "Wpisz tutaj tekst który ma zostać przetworzony...",
128
+ "Output Path for TTS Audio": "Ścieżka wyjściowa dla TTS Audio",
129
+ "Output Path for RVC Audio": "Ścieżka wyjściowa dla dźwięku RVC",
130
+ "Enable Applio integration with Discord presence": "Włącz integrację Applio z Discord"
131
  }
assets/themes/Applio.py ADDED
@@ -0,0 +1,284 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from __future__ import annotations
2
+
3
+ from typing import Iterable
4
+ import gradio as gr
5
+
6
+ # gr.themes.builder()
7
+ from gradio.themes.base import Base
8
+ from gradio.themes.utils import colors, fonts, sizes
9
+ import time
10
+
11
+
12
+ class Applio(Base):
13
+ def __init__(
14
+ self,
15
+ *,
16
+ primary_hue: colors.Color | str = colors.green,
17
+ secondary_hue: colors.Color | str = colors.emerald,
18
+ neutral_hue: colors.Color | str = colors.neutral,
19
+ spacing_size: sizes.Size | str = sizes.spacing_md,
20
+ radius_size: sizes.Size | str = sizes.radius_md,
21
+ text_size: sizes.Size | str = sizes.text_lg,
22
+ font: fonts.Font | str | Iterable[fonts.Font | str] = (
23
+ "Syne V",
24
+ fonts.GoogleFont("Syne"),
25
+ "ui-sans-serif",
26
+ "system-ui",
27
+ ),
28
+ font_mono: fonts.Font | str | Iterable[fonts.Font | str] = (
29
+ "ui-monospace",
30
+ fonts.GoogleFont("Nunito Sans"),
31
+ ),
32
+ ):
33
+ super().__init__(
34
+ primary_hue=primary_hue,
35
+ secondary_hue=secondary_hue,
36
+ neutral_hue=neutral_hue,
37
+ spacing_size=spacing_size,
38
+ radius_size=radius_size,
39
+ text_size=text_size,
40
+ font=font,
41
+ font_mono=font_mono,
42
+ )
43
+ self.name = ("Applio",)
44
+ self.secondary_100 = ("#dbeafe",)
45
+ self.secondary_200 = ("#bfdbfe",)
46
+ self.secondary_300 = ("#93c5fd",)
47
+ self.secondary_400 = ("#60a5fa",)
48
+ self.secondary_50 = ("#eff6ff",)
49
+ self.secondary_500 = ("#3b82f6",)
50
+ self.secondary_600 = ("#2563eb",)
51
+ self.secondary_700 = ("#1d4ed8",)
52
+ self.secondary_800 = ("#1e40af",)
53
+ self.secondary_900 = ("#1e3a8a",)
54
+ self.secondary_950 = ("#1d3660",)
55
+
56
+ super().set(
57
+ # Blaise
58
+ background_fill_primary="black",
59
+ background_fill_primary_dark="black",
60
+ background_fill_secondary="black",
61
+ background_fill_secondary_dark="black",
62
+ block_background_fill="*neutral_800",
63
+ block_background_fill_dark="*neutral_800",
64
+ block_border_color="*border_color_primary",
65
+ block_border_color_dark="*border_color_primary",
66
+ block_border_width="1px",
67
+ block_border_width_dark="1px",
68
+ block_info_text_color="*body_text_color_subdued",
69
+ block_info_text_color_dark="*body_text_color_subdued",
70
+ block_info_text_size="*text_sm",
71
+ block_info_text_weight="400",
72
+ block_label_background_fill="*background_fill_primary",
73
+ block_label_background_fill_dark="*background_fill_secondary",
74
+ block_label_border_color="*border_color_primary",
75
+ block_label_border_color_dark="*border_color_primary",
76
+ block_label_border_width="1px",
77
+ block_label_border_width_dark="1px",
78
+ block_label_margin="0",
79
+ block_label_padding="*spacing_sm *spacing_lg",
80
+ block_label_radius="calc(*radius_lg - 1px) 0 calc(*radius_lg - 1px) 0",
81
+ block_label_right_radius="0 calc(*radius_lg - 1px) 0 calc(*radius_lg - 1px)",
82
+ block_label_shadow="*block_shadow",
83
+ block_label_text_color="*neutral_200",
84
+ block_label_text_color_dark="*neutral_200",
85
+ block_label_text_weight="400",
86
+ block_padding="*spacing_xl",
87
+ block_radius="*radius_md",
88
+ block_shadow="none",
89
+ block_shadow_dark="none",
90
+ block_title_background_fill="rgba(46,85,65,255)",
91
+ block_title_background_fill_dark="rgba(46,85,65,255)",
92
+ block_title_border_color="none",
93
+ block_title_border_color_dark="none",
94
+ block_title_border_width="0px",
95
+ block_title_padding="*block_label_padding",
96
+ block_title_radius="*block_label_radius",
97
+ block_title_text_color="*neutral_200",
98
+ block_title_text_color_dark="*neutral_200",
99
+ block_title_text_size="*text_md",
100
+ block_title_text_weight="600",
101
+ body_background_fill="black",
102
+ body_background_fill_dark="black",
103
+ body_text_color="white",
104
+ body_text_color_dark="white",
105
+ body_text_color_subdued="*neutral_400",
106
+ body_text_color_subdued_dark="*neutral_400",
107
+ body_text_size="*text_md",
108
+ body_text_weight="400",
109
+ border_color_accent="*neutral_600",
110
+ border_color_accent_dark="*neutral_600",
111
+ border_color_primary="*neutral_800",
112
+ border_color_primary_dark="*neutral_800",
113
+ button_border_width="*input_border_width",
114
+ button_border_width_dark="*input_border_width",
115
+ button_cancel_background_fill="*button_secondary_background_fill",
116
+ button_cancel_background_fill_dark="*button_secondary_background_fill",
117
+ button_cancel_background_fill_hover="*button_cancel_background_fill",
118
+ button_cancel_background_fill_hover_dark="*button_cancel_background_fill",
119
+ button_cancel_border_color="*button_secondary_border_color",
120
+ button_cancel_border_color_dark="*button_secondary_border_color",
121
+ button_cancel_border_color_hover="*button_cancel_border_color",
122
+ button_cancel_border_color_hover_dark="*button_cancel_border_color",
123
+ button_cancel_text_color="*button_secondary_text_color",
124
+ button_cancel_text_color_dark="*button_secondary_text_color",
125
+ button_cancel_text_color_hover="*button_cancel_text_color",
126
+ button_cancel_text_color_hover_dark="*button_cancel_text_color",
127
+ button_large_padding="*spacing_lg calc(2 * *spacing_lg)",
128
+ button_large_radius="*radius_lg",
129
+ button_large_text_size="*text_lg",
130
+ button_large_text_weight="600",
131
+ button_primary_background_fill="*primary_600",
132
+ button_primary_background_fill_dark="*primary_600",
133
+ button_primary_background_fill_hover="*primary_500",
134
+ button_primary_background_fill_hover_dark="*primary_500",
135
+ button_primary_border_color="*primary_500",
136
+ button_primary_border_color_dark="*primary_500",
137
+ button_primary_border_color_hover="*primary_400",
138
+ button_primary_border_color_hover_dark="*primary_400",
139
+ button_primary_text_color="white",
140
+ button_primary_text_color_dark="white",
141
+ button_primary_text_color_hover="*button_primary_text_color",
142
+ button_primary_text_color_hover_dark="*button_primary_text_color",
143
+ button_secondary_background_fill="transparent",
144
+ button_secondary_background_fill_dark="transparent",
145
+ button_secondary_background_fill_hover="*neutral_800",
146
+ button_secondary_background_fill_hover_dark="*neutral_800",
147
+ button_secondary_border_color="*neutral_700",
148
+ button_secondary_border_color_dark="*neutral_700",
149
+ button_secondary_border_color_hover="*neutral_600",
150
+ button_secondary_border_color_hover_dark="*neutral_600",
151
+ button_secondary_text_color="white",
152
+ button_secondary_text_color_dark="white",
153
+ button_secondary_text_color_hover="*button_secondary_text_color",
154
+ button_secondary_text_color_hover_dark="*button_secondary_text_color",
155
+ button_shadow="none",
156
+ button_shadow_active="*shadow_inset",
157
+ button_shadow_hover="none",
158
+ button_small_padding="*spacing_sm calc(2 * *spacing_sm)",
159
+ button_small_radius="*radius_lg",
160
+ button_small_text_size="*text_md",
161
+ button_small_text_weight="400",
162
+ button_transition="0.3s ease all",
163
+ checkbox_background_color="*neutral_700",
164
+ checkbox_background_color_dark="*neutral_700",
165
+ checkbox_background_color_focus="*checkbox_background_color",
166
+ checkbox_background_color_focus_dark="*checkbox_background_color",
167
+ checkbox_background_color_hover="*checkbox_background_color",
168
+ checkbox_background_color_hover_dark="*checkbox_background_color",
169
+ checkbox_background_color_selected="*secondary_600",
170
+ checkbox_background_color_selected_dark="*secondary_600",
171
+ checkbox_border_color="*neutral_700",
172
+ checkbox_border_color_dark="*neutral_700",
173
+ checkbox_border_color_focus="*secondary_500",
174
+ checkbox_border_color_focus_dark="*secondary_500",
175
+ checkbox_border_color_hover="*neutral_600",
176
+ checkbox_border_color_hover_dark="*neutral_600",
177
+ checkbox_border_color_selected="*secondary_600",
178
+ checkbox_border_color_selected_dark="*secondary_600",
179
+ checkbox_border_radius="*radius_sm",
180
+ checkbox_border_width="*input_border_width",
181
+ checkbox_border_width_dark="*input_border_width",
182
+ checkbox_check="url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e\")",
183
+ checkbox_label_background_fill="transparent",
184
+ checkbox_label_background_fill_dark="transparent",
185
+ checkbox_label_background_fill_hover="transparent",
186
+ checkbox_label_background_fill_hover_dark="transparent",
187
+ checkbox_label_background_fill_selected="transparent",
188
+ checkbox_label_background_fill_selected_dark="transparent",
189
+ checkbox_label_border_color="transparent",
190
+ checkbox_label_border_color_dark="transparent",
191
+ checkbox_label_border_color_hover="transparent",
192
+ checkbox_label_border_color_hover_dark="transparent",
193
+ checkbox_label_border_width="transparent",
194
+ checkbox_label_border_width_dark="transparent",
195
+ checkbox_label_gap="*spacing_lg",
196
+ checkbox_label_padding="*spacing_md calc(2 * *spacing_md)",
197
+ checkbox_label_shadow="none",
198
+ checkbox_label_text_color="*body_text_color",
199
+ checkbox_label_text_color_dark="*body_text_color",
200
+ checkbox_label_text_color_selected="*checkbox_label_text_color",
201
+ checkbox_label_text_color_selected_dark="*checkbox_label_text_color",
202
+ checkbox_label_text_size="*text_md",
203
+ checkbox_label_text_weight="400",
204
+ checkbox_shadow="*input_shadow",
205
+ color_accent="*primary_500",
206
+ color_accent_soft="*primary_50",
207
+ color_accent_soft_dark="*neutral_700",
208
+ container_radius="*radius_xl",
209
+ embed_radius="*radius_lg",
210
+ error_background_fill="*background_fill_primary",
211
+ error_background_fill_dark="*background_fill_primary",
212
+ error_border_color="*border_color_primary",
213
+ error_border_color_dark="*border_color_primary",
214
+ error_border_width="1px",
215
+ error_border_width_dark="1px",
216
+ error_text_color="#ef4444",
217
+ error_text_color_dark="#ef4444",
218
+ form_gap_width="0px",
219
+ input_background_fill="*neutral_900",
220
+ input_background_fill_dark="*neutral_900",
221
+ input_background_fill_focus="*secondary_600",
222
+ input_background_fill_focus_dark="*secondary_600",
223
+ input_background_fill_hover="*input_background_fill",
224
+ input_background_fill_hover_dark="*input_background_fill",
225
+ input_border_color="*neutral_700",
226
+ input_border_color_dark="*neutral_700",
227
+ input_border_color_focus="*secondary_600",
228
+ input_border_color_focus_dark="*primary_600",
229
+ input_border_color_hover="*input_border_color",
230
+ input_border_color_hover_dark="*input_border_color",
231
+ input_border_width="1px",
232
+ input_border_width_dark="1px",
233
+ input_padding="*spacing_xl",
234
+ input_placeholder_color="*neutral_500",
235
+ input_placeholder_color_dark="*neutral_500",
236
+ input_radius="*radius_lg",
237
+ input_shadow="none",
238
+ input_shadow_dark="none",
239
+ input_shadow_focus="*input_shadow",
240
+ input_shadow_focus_dark="*input_shadow",
241
+ input_text_size="*text_md",
242
+ input_text_weight="400",
243
+ layout_gap="*spacing_xxl",
244
+ link_text_color="*secondary_500",
245
+ link_text_color_active="*secondary_500",
246
+ link_text_color_active_dark="*secondary_500",
247
+ link_text_color_dark="*secondary_500",
248
+ link_text_color_hover="*secondary_400",
249
+ link_text_color_hover_dark="*secondary_400",
250
+ link_text_color_visited="*secondary_600",
251
+ link_text_color_visited_dark="*secondary_600",
252
+ loader_color="*color_accent",
253
+ loader_color_dark="*color_accent",
254
+ panel_background_fill="*background_fill_secondary",
255
+ panel_background_fill_dark="*background_fill_secondary",
256
+ panel_border_color="*border_color_primary",
257
+ panel_border_color_dark="*border_color_primary",
258
+ panel_border_width="1px",
259
+ panel_border_width_dark="1px",
260
+ prose_header_text_weight="600",
261
+ prose_text_size="*text_md",
262
+ prose_text_weight="400",
263
+ radio_circle="url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e\")",
264
+ section_header_text_size="*text_md",
265
+ section_header_text_weight="400",
266
+ shadow_drop="rgba(0,0,0,0.05) 0px 1px 2px 0px",
267
+ shadow_drop_lg="0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",
268
+ shadow_inset="rgba(0,0,0,0.05) 0px 2px 4px 0px inset",
269
+ shadow_spread="3px",
270
+ shadow_spread_dark="1px",
271
+ slider_color="*primary_600",
272
+ slider_color_dark="*primary_600",
273
+ stat_background_fill="*primary_500",
274
+ stat_background_fill_dark="*primary_500",
275
+ table_border_color="*neutral_700",
276
+ table_border_color_dark="*neutral_700",
277
+ table_even_background_fill="*neutral_950",
278
+ table_even_background_fill_dark="*neutral_950",
279
+ table_odd_background_fill="*neutral_900",
280
+ table_odd_background_fill_dark="*neutral_900",
281
+ table_radius="*radius_lg",
282
+ table_row_focus="*color_accent_soft",
283
+ table_row_focus_dark="*color_accent_soft",
284
+ )
assets/themes/loadThemes.py ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import ast
2
+ import json
3
+ import os
4
+ import importlib
5
+ import requests
6
+
7
+
8
+ folder = os.path.dirname(os.path.abspath(__file__))
9
+ folder = os.path.dirname(folder)
10
+ folder = os.path.dirname(folder)
11
+ folder = os.path.join(folder, "assets", "themes")
12
+
13
+ import sys
14
+
15
+ sys.path.append(folder)
16
+
17
+
18
+ def get_class(filename):
19
+ with open(filename, "r") as f:
20
+ for line_number, line in enumerate(f, start=1):
21
+ if "class " in line:
22
+ found = line.split("class ")[1].split(":")[0].split("(")[0].strip()
23
+ return found
24
+ break
25
+ return None
26
+
27
+
28
+ def get_list():
29
+
30
+ themes_from_files = [
31
+ os.path.splitext(name)[0]
32
+ for root, _, files in os.walk(folder, topdown=False)
33
+ for name in files
34
+ if name.endswith(".py") and root == folder
35
+ ]
36
+
37
+ json_file_path = os.path.join(folder, "theme_list.json")
38
+
39
+ try:
40
+ with open(json_file_path, "r") as json_file:
41
+ themes_from_url = [item["id"] for item in json.load(json_file)]
42
+ except FileNotFoundError:
43
+ themes_from_url = []
44
+
45
+ combined_themes = set(themes_from_files + themes_from_url)
46
+
47
+ return list(combined_themes)
48
+
49
+
50
+ def select_theme(name):
51
+ selected_file = name + ".py"
52
+ full_path = os.path.join(folder, selected_file)
53
+ if not os.path.exists(full_path):
54
+ with open(os.path.join(folder, "theme.json"), "w") as json_file:
55
+ json.dump({"file": None, "class": name}, json_file)
56
+ print(f"Theme {name} successfully selected, restart applio.")
57
+ return
58
+ class_found = get_class(full_path)
59
+ if class_found:
60
+ with open(os.path.join(folder, "theme.json"), "w") as json_file:
61
+ json.dump({"file": selected_file, "class": class_found}, json_file)
62
+ print(f"Theme {name} successfully selected, restart applio.")
63
+ else:
64
+ print(f"Theme {name} was not found.")
65
+
66
+
67
+ def read_json():
68
+ json_file_name = os.path.join(folder, "theme.json")
69
+ try:
70
+ with open(json_file_name, "r") as json_file:
71
+ data = json.load(json_file)
72
+ selected_file = data.get("file")
73
+ class_name = data.get("class")
74
+ if not selected_file == None and class_name:
75
+ return class_name
76
+ elif selected_file == None and class_name:
77
+ return class_name
78
+ else:
79
+ return "ParityError/Interstellar"
80
+ except:
81
+ return "ParityError/Interstellar"
82
+
83
+
84
+ def load_json():
85
+ json_file_name = os.path.join(folder, "theme.json")
86
+ try:
87
+ with open(json_file_name, "r") as json_file:
88
+ data = json.load(json_file)
89
+ selected_file = data.get("file")
90
+ class_name = data.get("class")
91
+ if not selected_file == None and class_name:
92
+ module = importlib.import_module(selected_file[:-3])
93
+ obtained_class = getattr(module, class_name)
94
+ instance = obtained_class()
95
+ print(f"Theme Loaded: {class_name}")
96
+ return instance
97
+ elif selected_file == None and class_name:
98
+ return class_name
99
+ else:
100
+ print("The theme is incorrect.")
101
+ return None
102
+ except Exception as e:
103
+ print(f"Error Loading: {str(e)}")
104
+ return None
assets/themes/theme.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"file": null, "class": "naughtondale/monochrome"}
assets/themes/theme_list.json ADDED
@@ -0,0 +1,751 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "id": "freddyaboulton/dracula_revamped",
4
+ "likes": 10,
5
+ "sha": "1cc28500a01a5e7b2605e45d2cf6260bd8c12d81",
6
+ "lastModified": "2023-03-23T19:46:29.000Z",
7
+ "screenshot_id": "freddyaboulton_dracula_revamped"
8
+ },
9
+ {
10
+ "id": "freddyaboulton/bad-theme-space",
11
+ "likes": 0,
12
+ "sha": "3fe08b94b1198880d81bbb84f4f50a39f9588a30",
13
+ "lastModified": "2023-03-14T20:39:44.000Z",
14
+ "screenshot_id": "freddyaboulton_bad-theme-space"
15
+ },
16
+ {
17
+ "id": "gradio/dracula_revamped",
18
+ "likes": 0,
19
+ "sha": "c1eb05480372de759eeb6e7f90c2ce962f3970c5",
20
+ "lastModified": "2023-06-23T22:34:32.000Z",
21
+ "screenshot_id": "gradio_dracula_revamped"
22
+ },
23
+ {
24
+ "id": "abidlabs/dracula_revamped",
25
+ "likes": 0,
26
+ "sha": "efd80ef5dd8744768f514b590d5c74b4de0a80d4",
27
+ "lastModified": "2023-03-19T02:44:09.000Z",
28
+ "screenshot_id": "abidlabs_dracula_revamped"
29
+ },
30
+ {
31
+ "id": "gradio/dracula_test",
32
+ "likes": 0,
33
+ "sha": "e75886284101799069dfcaaea391d7a89818dc6d",
34
+ "lastModified": "2023-06-11T00:24:51.000Z",
35
+ "screenshot_id": "gradio_dracula_test"
36
+ },
37
+ {
38
+ "id": "abidlabs/dracula_test",
39
+ "likes": 0,
40
+ "sha": "1f34e8290994eabf1c3e35bf347020b41ae5d225",
41
+ "lastModified": "2023-03-19T03:01:17.000Z",
42
+ "screenshot_id": "abidlabs_dracula_test"
43
+ },
44
+ {
45
+ "id": "gradio/seafoam",
46
+ "likes": 4,
47
+ "sha": "9509787c82360cbae3cb1211ef47a87d56390e37",
48
+ "lastModified": "2023-03-20T15:02:43.000Z",
49
+ "screenshot_id": "gradio_seafoam"
50
+ },
51
+ {
52
+ "id": "gradio/glass",
53
+ "likes": 0,
54
+ "sha": "35109b62b14d326a8e6e0fe09ef3a3b42b314f4d",
55
+ "lastModified": "2023-03-20T19:29:05.000Z",
56
+ "screenshot_id": "gradio_glass"
57
+ },
58
+ {
59
+ "id": "gradio/monochrome",
60
+ "likes": 7,
61
+ "sha": "96e9df3769c5f77a12814afaf150f08a6199c86d",
62
+ "lastModified": "2023-03-20T19:29:07.000Z",
63
+ "screenshot_id": "gradio_monochrome"
64
+ },
65
+ {
66
+ "id": "gradio/soft",
67
+ "likes": 5,
68
+ "sha": "e08938f43ce81181604f3aef79e9f8742f4416c5",
69
+ "lastModified": "2023-05-04T21:43:25.000Z",
70
+ "screenshot_id": "gradio_soft"
71
+ },
72
+ {
73
+ "id": "gradio/default",
74
+ "likes": 2,
75
+ "sha": "9985aefbea7c40c49a0244096d11c2efc91bf3b4",
76
+ "lastModified": "2023-03-20T20:39:07.000Z",
77
+ "screenshot_id": "gradio_default"
78
+ },
79
+ {
80
+ "id": "gradio/base",
81
+ "likes": 1,
82
+ "sha": "b68adc18343e4c2ad5ea19c4b306caf31c908135",
83
+ "lastModified": "2023-03-20T20:39:09.000Z",
84
+ "screenshot_id": "gradio_base"
85
+ },
86
+ {
87
+ "id": "abidlabs/pakistan",
88
+ "likes": 4,
89
+ "sha": "e7869fba77f0cb20180346b703f924eae7eec3a7",
90
+ "lastModified": "2023-03-21T17:20:50.000Z",
91
+ "screenshot_id": "abidlabs_pakistan"
92
+ },
93
+ {
94
+ "id": "dawood/microsoft_windows",
95
+ "likes": 3,
96
+ "sha": "6dd26f1c3e4ae69e54b62be83574b22f08393d97",
97
+ "lastModified": "2023-03-21T02:09:15.000Z",
98
+ "screenshot_id": "dawood_microsoft_windows"
99
+ },
100
+ {
101
+ "id": "ysharma/steampunk",
102
+ "likes": 3,
103
+ "sha": "7f751b2c0a01ec7242a3e2ad4d3c18dcace11b40",
104
+ "lastModified": "2023-03-21T14:07:23.000Z",
105
+ "screenshot_id": "ysharma_steampunk"
106
+ },
107
+ {
108
+ "id": "ysharma/huggingface",
109
+ "likes": 0,
110
+ "sha": "70faa80d1b57da921efc91bf686a19f171960042",
111
+ "lastModified": "2023-03-22T10:31:26.000Z",
112
+ "screenshot_id": "ysharma_huggingface"
113
+ },
114
+ {
115
+ "id": "gstaff/xkcd",
116
+ "likes": 14,
117
+ "sha": "d06e815d121a7219af517a42ed374c8d3b91fee9",
118
+ "lastModified": "2023-03-30T03:05:57.000Z",
119
+ "screenshot_id": "gstaff_xkcd"
120
+ },
121
+ {
122
+ "id": "JohnSmith9982/small_and_pretty",
123
+ "likes": 11,
124
+ "sha": "46ce99ba8351c9a10c9ec6d353d3724e6090c610",
125
+ "lastModified": "2023-03-29T06:06:56.000Z",
126
+ "screenshot_id": "JohnSmith9982_small_and_pretty"
127
+ },
128
+ {
129
+ "id": "abidlabs/Lime",
130
+ "likes": 1,
131
+ "sha": "7bba131266c5a9f0ecc9e5547506a9bcb9cd579c",
132
+ "lastModified": "2023-03-29T17:15:34.000Z",
133
+ "screenshot_id": "abidlabs_Lime"
134
+ },
135
+ {
136
+ "id": "freddyaboulton/this-theme-does-not-exist-2",
137
+ "likes": 0,
138
+ "sha": "a380539363e2ee4fa32da5a8d3489cb5761f7ed0",
139
+ "lastModified": "2023-03-29T18:16:28.000Z",
140
+ "screenshot_id": "freddyaboulton_this-theme-does-not-exist-2"
141
+ },
142
+ {
143
+ "id": "aliabid94/new-theme",
144
+ "likes": 1,
145
+ "sha": "2f889da096d7c7d65d2b692621d52b93759f64a5",
146
+ "lastModified": "2023-03-29T18:18:51.000Z",
147
+ "screenshot_id": "aliabid94_new-theme"
148
+ },
149
+ {
150
+ "id": "aliabid94/test2",
151
+ "likes": 0,
152
+ "sha": "b8fadd91c32ebaf16dbed2bee0c49b33e4179d66",
153
+ "lastModified": "2023-03-29T18:31:23.000Z",
154
+ "screenshot_id": "aliabid94_test2"
155
+ },
156
+ {
157
+ "id": "aliabid94/test3",
158
+ "likes": 0,
159
+ "sha": "2cad15308144ec11c3282aaa488941ae08b07fbe",
160
+ "lastModified": "2023-03-29T21:30:19.000Z",
161
+ "screenshot_id": "aliabid94_test3"
162
+ },
163
+ {
164
+ "id": "aliabid94/test4",
165
+ "likes": 0,
166
+ "sha": "a8662c0a010747b7f1defc91d7267aa56c54cbcc",
167
+ "lastModified": "2023-03-29T21:32:08.000Z",
168
+ "screenshot_id": "aliabid94_test4"
169
+ },
170
+ {
171
+ "id": "abidlabs/banana",
172
+ "likes": 0,
173
+ "sha": "4f981b594f3d41a97342b908242b4f2f7030eefe",
174
+ "lastModified": "2023-03-29T21:47:20.000Z",
175
+ "screenshot_id": "abidlabs_banana"
176
+ },
177
+ {
178
+ "id": "freddyaboulton/test-blue",
179
+ "likes": 1,
180
+ "sha": "a1a13769927435a9f3429b60dc85a1bd3ddcc499",
181
+ "lastModified": "2023-03-29T22:29:19.000Z",
182
+ "screenshot_id": "freddyaboulton_test-blue"
183
+ },
184
+ {
185
+ "id": "gstaff/sketch",
186
+ "likes": 5,
187
+ "sha": "607f3e07d3065c1607ddf6896811820131aded96",
188
+ "lastModified": "2023-03-30T03:14:26.000Z",
189
+ "screenshot_id": "gstaff_sketch"
190
+ },
191
+ {
192
+ "id": "gstaff/whiteboard",
193
+ "likes": 5,
194
+ "sha": "5a3f849daf673e7dfa142af0b686f8292b3b2553",
195
+ "lastModified": "2023-03-30T03:21:09.000Z",
196
+ "screenshot_id": "gstaff_whiteboard"
197
+ },
198
+ {
199
+ "id": "ysharma/llamas",
200
+ "likes": 1,
201
+ "sha": "9778b106b1384ef3fedf39d3494048aa653469ca",
202
+ "lastModified": "2023-03-31T14:34:13.000Z",
203
+ "screenshot_id": "ysharma_llamas"
204
+ },
205
+ {
206
+ "id": "abidlabs/font-test",
207
+ "likes": 0,
208
+ "sha": "ebe83851cc8cf974cd25a3ca604c9608085652e3",
209
+ "lastModified": "2023-03-31T13:58:24.000Z",
210
+ "screenshot_id": "abidlabs_font-test"
211
+ },
212
+ {
213
+ "id": "YenLai/Superhuman",
214
+ "likes": 2,
215
+ "sha": "e949b1ca49ed2eb75951571d155c78e21cc108ca",
216
+ "lastModified": "2023-03-31T15:33:42.000Z",
217
+ "screenshot_id": "YenLai_Superhuman"
218
+ },
219
+ {
220
+ "id": "bethecloud/storj_theme",
221
+ "likes": 14,
222
+ "sha": "ccf66871a4dae6efa98c62239cafec38489578c8",
223
+ "lastModified": "2023-04-03T18:28:39.000Z",
224
+ "screenshot_id": "bethecloud_storj_theme"
225
+ },
226
+ {
227
+ "id": "sudeepshouche/minimalist",
228
+ "likes": 6,
229
+ "sha": "0a4e1b7692d9c027e49fcf9ed3dea2f6fc7e4667",
230
+ "lastModified": "2023-04-01T13:42:52.000Z",
231
+ "screenshot_id": "sudeepshouche_minimalist"
232
+ },
233
+ {
234
+ "id": "knotdgaf/gradiotest",
235
+ "likes": 1,
236
+ "sha": "16a5d6eb98e349baa104f2791bbcf706b3b56961",
237
+ "lastModified": "2023-04-01T15:46:21.000Z",
238
+ "screenshot_id": "knotdgaf_gradiotest"
239
+ },
240
+ {
241
+ "id": "ParityError/Interstellar",
242
+ "likes": 3,
243
+ "sha": "7f604b2dca6ea3b15f2704590cf4eae76735c5a2",
244
+ "lastModified": "2023-04-03T01:11:42.000Z",
245
+ "screenshot_id": "ParityError_Interstellar"
246
+ },
247
+ {
248
+ "id": "ParityError/Anime",
249
+ "likes": 8,
250
+ "sha": "b20cc125bcaf3c758a44b60c5420cae20ae81234",
251
+ "lastModified": "2023-04-03T07:19:29.000Z",
252
+ "screenshot_id": "ParityError_Anime"
253
+ },
254
+ {
255
+ "id": "Ajaxon6255/Emerald_Isle",
256
+ "likes": 2,
257
+ "sha": "8d66d68389bd768c6eaa8ee92200ed14fe0dff6a",
258
+ "lastModified": "2023-04-03T04:28:52.000Z",
259
+ "screenshot_id": "Ajaxon6255_Emerald_Isle"
260
+ },
261
+ {
262
+ "id": "ParityError/LimeFace",
263
+ "likes": 3,
264
+ "sha": "0296aa95034a011e96af5e6772fdb99d42ddddaa",
265
+ "lastModified": "2023-04-04T21:13:50.000Z",
266
+ "screenshot_id": "ParityError_LimeFace"
267
+ },
268
+ {
269
+ "id": "finlaymacklon/smooth_slate",
270
+ "likes": 6,
271
+ "sha": "e763d0f81b66471eb34c2808a273ace2630578f6",
272
+ "lastModified": "2023-04-04T01:54:26.000Z",
273
+ "screenshot_id": "finlaymacklon_smooth_slate"
274
+ },
275
+ {
276
+ "id": "finlaymacklon/boxy_violet",
277
+ "likes": 3,
278
+ "sha": "3a2affb3e88997c5b90bb3ff6f102390a3422258",
279
+ "lastModified": "2023-04-04T02:50:22.000Z",
280
+ "screenshot_id": "finlaymacklon_boxy_violet"
281
+ },
282
+ {
283
+ "id": "derekzen/stardust",
284
+ "likes": 0,
285
+ "sha": "d4ebd83addcf01740267ed5d5ea7e9182b31d16d",
286
+ "lastModified": "2023-04-06T15:54:34.000Z",
287
+ "screenshot_id": "derekzen_stardust"
288
+ },
289
+ {
290
+ "id": "EveryPizza/Cartoony-Gradio-Theme",
291
+ "likes": 2,
292
+ "sha": "1ca8980c5a1831bab3408e6830d59143c3354cb7",
293
+ "lastModified": "2023-04-06T18:39:28.000Z",
294
+ "screenshot_id": "EveryPizza_Cartoony-Gradio-Theme"
295
+ },
296
+ {
297
+ "id": "Ifeanyi/Cyanister",
298
+ "likes": 0,
299
+ "sha": "9e4d14e63ab3757d6565bfd4bb6f8e34a9c53b9d",
300
+ "lastModified": "2023-06-30T07:48:07.000Z",
301
+ "screenshot_id": "Ifeanyi_Cyanister"
302
+ },
303
+ {
304
+ "id": "Tshackelton/IBMPlex-DenseReadable",
305
+ "likes": 1,
306
+ "sha": "05c02cb24e349452f14fc2f027055454d9ed195e",
307
+ "lastModified": "2023-04-07T03:25:11.000Z",
308
+ "screenshot_id": "Tshackelton_IBMPlex-DenseReadable"
309
+ },
310
+ {
311
+ "id": "snehilsanyal/scikit-learn",
312
+ "likes": 1,
313
+ "sha": "2af5369fed84af9ed119e2bb23c17f986fc3b49d",
314
+ "lastModified": "2023-04-08T19:10:45.000Z",
315
+ "screenshot_id": "snehilsanyal_scikit-learn"
316
+ },
317
+ {
318
+ "id": "Himhimhim/xkcd",
319
+ "likes": 0,
320
+ "sha": "111e426d5277a226be694b96831b0b0b1ed65118",
321
+ "lastModified": "2023-04-10T17:04:28.000Z",
322
+ "screenshot_id": "Himhimhim_xkcd"
323
+ },
324
+ {
325
+ "id": "shivi/calm_seafoam",
326
+ "likes": 3,
327
+ "sha": "58f305b41e0cce34f874313a5b6fe920a9a92404",
328
+ "lastModified": "2023-04-14T21:11:43.000Z",
329
+ "screenshot_id": "shivi_calm_seafoam"
330
+ },
331
+ {
332
+ "id": "nota-ai/theme",
333
+ "likes": 3,
334
+ "sha": "7256dd32c053cc6b06e381d80848e4de6d45d67f",
335
+ "lastModified": "2023-07-18T01:57:48.000Z",
336
+ "screenshot_id": "nota-ai_theme"
337
+ },
338
+ {
339
+ "id": "rawrsor1/Everforest",
340
+ "likes": 0,
341
+ "sha": "eb673345952d1b1df2adf3a3700a9ea18f329a64",
342
+ "lastModified": "2023-04-18T07:11:52.000Z",
343
+ "screenshot_id": "rawrsor1_Everforest"
344
+ },
345
+ {
346
+ "id": "SebastianBravo/simci_css",
347
+ "likes": 2,
348
+ "sha": "4f46131c6a54398d36859b3bf54c0b4e29914537",
349
+ "lastModified": "2023-04-21T06:32:21.000Z",
350
+ "screenshot_id": "SebastianBravo_simci_css"
351
+ },
352
+ {
353
+ "id": "rottenlittlecreature/Moon_Goblin",
354
+ "likes": 1,
355
+ "sha": "470661a89252eebfdf48f93e5bfbe7495e948565",
356
+ "lastModified": "2023-04-27T04:35:34.000Z",
357
+ "screenshot_id": "rottenlittlecreature_Moon_Goblin"
358
+ },
359
+ {
360
+ "id": "abidlabs/test-yellow",
361
+ "likes": 0,
362
+ "sha": "941816b525f270fa2753af7b5977f26523e434f3",
363
+ "lastModified": "2023-04-25T00:19:36.000Z",
364
+ "screenshot_id": "abidlabs_test-yellow"
365
+ },
366
+ {
367
+ "id": "abidlabs/test-yellow3",
368
+ "likes": 0,
369
+ "sha": "98468b5d715e6ac8030976a47cf4cf489bebf406",
370
+ "lastModified": "2023-04-25T00:46:07.000Z",
371
+ "screenshot_id": "abidlabs_test-yellow3"
372
+ },
373
+ {
374
+ "id": "idspicQstitho/dracula_revamped",
375
+ "likes": 0,
376
+ "sha": "e9563fce60dc1bc1f12e1529a935ce26596a353a",
377
+ "lastModified": "2023-07-02T16:37:11.000Z",
378
+ "screenshot_id": "idspicQstitho_dracula_revamped"
379
+ },
380
+ {
381
+ "id": "kfahn/AnimalPose",
382
+ "likes": 0,
383
+ "sha": "07390407d03456a58f6bc33a99773e6f1ee07e2a",
384
+ "lastModified": "2023-05-02T14:10:38.000Z",
385
+ "screenshot_id": "kfahn_AnimalPose"
386
+ },
387
+ {
388
+ "id": "HaleyCH/HaleyCH_Theme",
389
+ "likes": 4,
390
+ "sha": "0ad24ea15844ee5bdfecd122a438536008ef9c13",
391
+ "lastModified": "2023-05-01T14:55:54.000Z",
392
+ "screenshot_id": "HaleyCH_HaleyCH_Theme"
393
+ },
394
+ {
395
+ "id": "simulKitke/dracula_test",
396
+ "likes": 0,
397
+ "sha": "a6c39308892f82fdba58a34b28008b557d68024f",
398
+ "lastModified": "2023-07-01T11:16:49.000Z",
399
+ "screenshot_id": "simulKitke_dracula_test"
400
+ },
401
+ {
402
+ "id": "braintacles/CrimsonNight",
403
+ "likes": 0,
404
+ "sha": "40f28be62631e1bfb670d3f8adfb8359ccff1b59",
405
+ "lastModified": "2023-05-04T02:24:37.000Z",
406
+ "screenshot_id": "braintacles_CrimsonNight"
407
+ },
408
+ {
409
+ "id": "wentaohe/whiteboardv2",
410
+ "likes": 0,
411
+ "sha": "0fa1b6a39c6a0c2a47aa9bcd29cce285857acb74",
412
+ "lastModified": "2023-05-05T17:12:48.000Z",
413
+ "screenshot_id": "wentaohe_whiteboardv2"
414
+ },
415
+ {
416
+ "id": "reilnuud/polite",
417
+ "likes": 1,
418
+ "sha": "eabe137d534934744c2c64b5204244af9b79d806",
419
+ "lastModified": "2023-05-05T20:58:11.000Z",
420
+ "screenshot_id": "reilnuud_polite"
421
+ },
422
+ {
423
+ "id": "remilia/Ghostly",
424
+ "likes": 1,
425
+ "sha": "6552d91a2d81d2c7481f328fe0fa7f3b70f82e99",
426
+ "lastModified": "2023-05-11T20:28:34.000Z",
427
+ "screenshot_id": "remilia_Ghostly"
428
+ },
429
+ {
430
+ "id": "Franklisi/darkmode",
431
+ "likes": 0,
432
+ "sha": "54ee9086c8bbc4b11b9a4c2ce7959db45b1cbd96",
433
+ "lastModified": "2023-05-20T00:48:03.000Z",
434
+ "screenshot_id": "Franklisi_darkmode"
435
+ },
436
+ {
437
+ "id": "coding-alt/soft",
438
+ "likes": 0,
439
+ "sha": "b7c174e1289263db3bd8f268ef9e5b8707ef26ca",
440
+ "lastModified": "2023-05-24T08:41:09.000Z",
441
+ "screenshot_id": "coding-alt_soft"
442
+ },
443
+ {
444
+ "id": "xiaobaiyuan/theme_land",
445
+ "likes": 1,
446
+ "sha": "b6c1b9bf490c3a542860a38667ac357fedae5ead",
447
+ "lastModified": "2023-06-10T07:49:57.000Z",
448
+ "screenshot_id": "xiaobaiyuan_theme_land"
449
+ },
450
+ {
451
+ "id": "step-3-profit/Midnight-Deep",
452
+ "likes": 1,
453
+ "sha": "a0ccf4a9e8ca399e7cff8a381b524fd69ce28868",
454
+ "lastModified": "2023-05-27T09:06:52.000Z",
455
+ "screenshot_id": "step-3-profit_Midnight-Deep"
456
+ },
457
+ {
458
+ "id": "xiaobaiyuan/theme_demo",
459
+ "likes": 0,
460
+ "sha": "0efce78e4e9815d7fdb5beb3ab0f27e9e9a93dfd",
461
+ "lastModified": "2023-05-27T16:38:54.000Z",
462
+ "screenshot_id": "xiaobaiyuan_theme_demo"
463
+ },
464
+ {
465
+ "id": "Taithrah/Minimal",
466
+ "likes": 0,
467
+ "sha": "b3efc95e5bf40382d049a194e4a2c043bcd88900",
468
+ "lastModified": "2023-07-06T23:10:18.000Z",
469
+ "screenshot_id": "Taithrah_Minimal"
470
+ },
471
+ {
472
+ "id": "Insuz/SimpleIndigo",
473
+ "likes": 0,
474
+ "sha": "3184021c56adbf924658521388c705abe778ede7",
475
+ "lastModified": "2023-06-05T23:08:29.000Z",
476
+ "screenshot_id": "Insuz_SimpleIndigo"
477
+ },
478
+ {
479
+ "id": "zkunn/Alipay_Gradio_theme",
480
+ "likes": 1,
481
+ "sha": "93407d4ecdeef5f282ea6e221b5c12463cd5c840",
482
+ "lastModified": "2023-06-06T12:30:25.000Z",
483
+ "screenshot_id": "zkunn_Alipay_Gradio_theme"
484
+ },
485
+ {
486
+ "id": "Insuz/Mocha",
487
+ "likes": 1,
488
+ "sha": "386cd8cedf80e6d0ad3a94a40c723f00b177ed76",
489
+ "lastModified": "2023-06-08T09:41:27.000Z",
490
+ "screenshot_id": "Insuz_Mocha"
491
+ },
492
+ {
493
+ "id": "xiaobaiyuan/theme_brief",
494
+ "likes": 0,
495
+ "sha": "a80c4b450c7a9bf7a925465578d494c89171b4ac",
496
+ "lastModified": "2023-06-10T04:44:42.000Z",
497
+ "screenshot_id": "xiaobaiyuan_theme_brief"
498
+ },
499
+ {
500
+ "id": "Ama434/434-base-Barlow",
501
+ "likes": 0,
502
+ "sha": "34aa703bd83fbe0c9b8ab5cf44b64ee9b3a1b82f",
503
+ "lastModified": "2023-06-10T16:49:10.000Z",
504
+ "screenshot_id": "Ama434_434-base-Barlow"
505
+ },
506
+ {
507
+ "id": "Ama434/def_barlow",
508
+ "likes": 0,
509
+ "sha": "2b31ff91bad69790c6e6df83127dc650d6d29239",
510
+ "lastModified": "2023-06-10T17:37:57.000Z",
511
+ "screenshot_id": "Ama434_def_barlow"
512
+ },
513
+ {
514
+ "id": "Ama434/neutral-barlow",
515
+ "likes": 1,
516
+ "sha": "f1d041482761ceab666dbb8dc674d86c53ca54bd",
517
+ "lastModified": "2023-06-10T18:04:03.000Z",
518
+ "screenshot_id": "Ama434_neutral-barlow"
519
+ },
520
+ {
521
+ "id": "dawood/dracula_test",
522
+ "likes": 0,
523
+ "sha": "903e5b7519138881215eb0d249e29e2fe8e8a024",
524
+ "lastModified": "2023-06-11T00:06:06.000Z",
525
+ "screenshot_id": "dawood_dracula_test"
526
+ },
527
+ {
528
+ "id": "nuttea/Softblue",
529
+ "likes": 0,
530
+ "sha": "08ffb0293e2b1c9e32a68d2d0e039a2b7d2c2d11",
531
+ "lastModified": "2023-06-12T14:46:24.000Z",
532
+ "screenshot_id": "nuttea_Softblue"
533
+ },
534
+ {
535
+ "id": "BlueDancer/Alien_Diffusion",
536
+ "likes": 0,
537
+ "sha": "5667eb6299989d0deb9bddd36678aee016b733b4",
538
+ "lastModified": "2023-06-20T01:03:46.000Z",
539
+ "screenshot_id": "BlueDancer_Alien_Diffusion"
540
+ },
541
+ {
542
+ "id": "naughtondale/monochrome",
543
+ "likes": 0,
544
+ "sha": "a40746c7d69e3d733aa43d05033c3846603f59f1",
545
+ "lastModified": "2023-07-05T16:30:37.000Z",
546
+ "screenshot_id": "naughtondale_monochrome"
547
+ },
548
+ {
549
+ "id": "Dagfinn1962/standard",
550
+ "likes": 0,
551
+ "sha": "b238047d5dac739d27daeb14bd871249166788a0",
552
+ "lastModified": "2023-07-08T23:22:59.000Z",
553
+ "screenshot_id": "Dagfinn1962_standard"
554
+ },
555
+ {
556
+ "id": "Dagfinn1962/goodtheme",
557
+ "likes": 0,
558
+ "sha": "870ed9e826152256ba48b407538136712f6d5b35",
559
+ "lastModified": "2023-07-09T06:17:18.000Z",
560
+ "screenshot_id": "Dagfinn1962_goodtheme"
561
+ },
562
+ {
563
+ "id": "adam-haile/DSTheme",
564
+ "likes": 0,
565
+ "sha": "c45694423d44928ae827108905f7b9b0fb0f5091",
566
+ "lastModified": "2023-07-13T15:27:28.000Z",
567
+ "screenshot_id": "adam-haile_DSTheme"
568
+ },
569
+ {
570
+ "id": "karthikeyan-adople/hudsonhayes",
571
+ "likes": 0,
572
+ "sha": "fa1aeecfbb9601334d7ce631ebc11a1d1090d385",
573
+ "lastModified": "2023-07-15T09:28:19.000Z",
574
+ "screenshot_id": "karthikeyan-adople_hudsonhayes"
575
+ },
576
+ {
577
+ "id": "mindrage/darkmode_grey_red_condensed",
578
+ "likes": 0,
579
+ "sha": "3164eec463ee4f8e85e398c2d2bb9150c2960e2c",
580
+ "lastModified": "2023-07-17T11:14:28.000Z",
581
+ "screenshot_id": "mindrage_darkmode_grey_red_condensed"
582
+ },
583
+ {
584
+ "id": "mindrage/darkmode_grey_cyan_condensed",
585
+ "likes": 0,
586
+ "sha": "8519814e684eda3a2257e861db469d814e6b7865",
587
+ "lastModified": "2023-07-17T20:11:55.000Z",
588
+ "screenshot_id": "mindrage_darkmode_grey_cyan_condensed"
589
+ },
590
+ {
591
+ "id": "karthikeyan-adople/hudsonhayes-dark",
592
+ "likes": 0,
593
+ "sha": "0c9f3a1f9b69df51db340d2eae42c37e646f810e",
594
+ "lastModified": "2023-07-18T07:53:37.000Z",
595
+ "screenshot_id": "karthikeyan-adople_hudsonhayes-dark"
596
+ },
597
+ {
598
+ "id": "jingwora/calm_seafoam",
599
+ "likes": 0,
600
+ "sha": "8deebdbbadc8a374bcd4459ec6a8929596c9e0d1",
601
+ "lastModified": "2023-07-18T11:04:40.000Z",
602
+ "screenshot_id": "jingwora_calm_seafoam"
603
+ },
604
+ {
605
+ "id": "karthikeyan-adople/hudsonhayes-blue",
606
+ "likes": 0,
607
+ "sha": "a752039a807e2d352eb55f352a91371b5a51d3ca",
608
+ "lastModified": "2023-07-18T13:03:12.000Z",
609
+ "screenshot_id": "karthikeyan-adople_hudsonhayes-blue"
610
+ },
611
+ {
612
+ "id": "karthikeyan-adople/hudsonhayes-dark1",
613
+ "likes": 0,
614
+ "sha": "39ce1038cf2d1d6b189ef2d8d9add1de2a0974c5",
615
+ "lastModified": "2023-07-19T05:55:40.000Z",
616
+ "screenshot_id": "karthikeyan-adople_hudsonhayes-dark1"
617
+ },
618
+ {
619
+ "id": "Jameswiller/Globe",
620
+ "likes": 0,
621
+ "sha": "534f4cc09d206f89ad2dfc779fc15e42ad6266c2",
622
+ "lastModified": "2023-07-20T14:29:29.000Z",
623
+ "screenshot_id": "Jameswiller_Globe"
624
+ },
625
+ {
626
+ "id": "karthikeyan-adople/hudsonhayes-gray",
627
+ "likes": 0,
628
+ "sha": "f34a830663d9e11fd1d6d121481590790c8fb102",
629
+ "lastModified": "2023-07-21T12:44:13.000Z",
630
+ "screenshot_id": "karthikeyan-adople_hudsonhayes-gray"
631
+ },
632
+ {
633
+ "id": "patrickosornio/my_theme1",
634
+ "likes": 0,
635
+ "sha": "1c3c7e6eb7cdf262e0ddf266dfc9ea1af3b40d7c",
636
+ "lastModified": "2023-07-24T23:42:02.000Z",
637
+ "screenshot_id": "patrickosornio_my_theme1"
638
+ },
639
+ {
640
+ "id": "earneleh/paris",
641
+ "likes": 0,
642
+ "sha": "6bb627aa7597ae7f8ca82a2f21735ced98b38eb8",
643
+ "lastModified": "2023-07-25T02:05:00.000Z",
644
+ "screenshot_id": "earneleh_paris"
645
+ },
646
+ {
647
+ "id": "rezponze/TeeFussion",
648
+ "likes": 0,
649
+ "sha": "4b57e14ac3369d669aae6c98beaeaae95a282d99",
650
+ "lastModified": "2023-07-25T13:29:28.000Z",
651
+ "screenshot_id": "rezponze_TeeFussion"
652
+ },
653
+ {
654
+ "id": "etstertest/test",
655
+ "likes": 0,
656
+ "sha": "e86a268f7695c4780de7b5047f91ab8260255718",
657
+ "lastModified": "2023-07-25T15:36:59.000Z",
658
+ "screenshot_id": "etstertest_test"
659
+ },
660
+ {
661
+ "id": "dwancin/theme",
662
+ "likes": 0,
663
+ "sha": "993b1279634f5f63c2b9a0c5c9be26ab8e06a54f",
664
+ "lastModified": "2023-08-14T01:38:33.000Z",
665
+ "screenshot_id": "dwancin_theme"
666
+ },
667
+ {
668
+ "id": "Arkaine/Carl_Glow",
669
+ "likes": 0,
670
+ "sha": "577e313eeeffacb8edf4c3558ce0d2cf6c524caa",
671
+ "lastModified": "2023-07-31T08:53:51.000Z",
672
+ "screenshot_id": "Arkaine_Carl_Glow"
673
+ },
674
+ {
675
+ "id": "minatosnow/qaigpt",
676
+ "likes": 0,
677
+ "sha": "7f5b8e9f2a0269866217b681a37fa97d98dee746",
678
+ "lastModified": "2023-08-07T16:46:14.000Z",
679
+ "screenshot_id": "minatosnow_qaigpt"
680
+ },
681
+ {
682
+ "id": "DitchDenis/Denis",
683
+ "likes": 0,
684
+ "sha": "6eab339d65ae464ff29c60a07de019eabca95940",
685
+ "lastModified": "2023-08-05T09:27:43.000Z",
686
+ "screenshot_id": "DitchDenis_Denis"
687
+ },
688
+ {
689
+ "id": "pikto/theme",
690
+ "likes": 0,
691
+ "sha": "056436e1b043e64ec89f7237bc87bc91248f387f",
692
+ "lastModified": "2023-08-06T20:40:20.000Z",
693
+ "screenshot_id": "pikto_theme"
694
+ },
695
+ {
696
+ "id": "gary109/black",
697
+ "likes": 0,
698
+ "sha": "c7f34c52b967173fc3d57d393fedd475f888fad3",
699
+ "lastModified": "2023-08-08T02:32:00.000Z",
700
+ "screenshot_id": "gary109_black"
701
+ },
702
+ {
703
+ "id": "gary109/black_base",
704
+ "likes": 0,
705
+ "sha": "438aff99414b07717a17c03fa82791efe0dfde2a",
706
+ "lastModified": "2023-08-08T02:33:22.000Z",
707
+ "screenshot_id": "gary109_black_base"
708
+ },
709
+ {
710
+ "id": "gary109/Emerald_Isle",
711
+ "likes": 0,
712
+ "sha": "2848f04e27a98ccfc479ccac3831c8c5fd81af8a",
713
+ "lastModified": "2023-08-08T03:15:00.000Z",
714
+ "screenshot_id": "gary109_Emerald_Isle"
715
+ },
716
+ {
717
+ "id": "gary109/llamas",
718
+ "likes": 0,
719
+ "sha": "6f75c08b3c29f1420105ba08961c0e67a0c151c0",
720
+ "lastModified": "2023-08-08T03:15:31.000Z",
721
+ "screenshot_id": "gary109_llamas"
722
+ },
723
+ {
724
+ "id": "gary109/HaleyCH_Theme",
725
+ "likes": 1,
726
+ "sha": "6f34b3ee1e9df30820362ab1efc8162f870e12ea",
727
+ "lastModified": "2023-08-08T03:18:38.000Z",
728
+ "screenshot_id": "gary109_HaleyCH_Theme"
729
+ },
730
+ {
731
+ "id": "dumdumai/D-GradioTheme",
732
+ "likes": 0,
733
+ "sha": "774ac1f0af04f1ba8f08bc52407bc536486e0942",
734
+ "lastModified": "2023-08-12T14:31:57.000Z",
735
+ "screenshot_id": "dumdumai_D-GradioTheme"
736
+ },
737
+ {
738
+ "id": "gl198976/The-Rounded",
739
+ "likes": 0,
740
+ "sha": "8580b9d44d98cd4bcdbb0194994309331f041d70",
741
+ "lastModified": "2023-08-14T02:52:05.000Z",
742
+ "screenshot_id": "gl198976_The-Rounded"
743
+ },
744
+ {
745
+ "id": "NoCrypt/miku",
746
+ "likes": 0,
747
+ "sha": "eb068530367ccb43ea327fbee54dd07c66a4b538",
748
+ "lastModified": "2023-08-15T00:28:30.000Z",
749
+ "screenshot_id": "NoCrypt_miku"
750
+ }
751
+ ]
tabs/extra/extra.py CHANGED
@@ -15,8 +15,8 @@ def extra_tab():
15
  )
16
  )
17
 
18
- # with gr.TabItem(i18n("Processing")):
19
- # processing.processing()
20
 
21
  with gr.TabItem(i18n("Audio Analyzer")):
22
  analyzer.analyzer()
 
15
  )
16
  )
17
 
18
+ with gr.TabItem(i18n("Processing")):
19
+ processing.processing()
20
 
21
  with gr.TabItem(i18n("Audio Analyzer")):
22
  analyzer.analyzer()
tabs/settings/themes.py ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import sys
3
+ import base64
4
+ import pathlib
5
+ import tempfile
6
+ import gradio as gr
7
+
8
+ from assets.i18n.i18n import I18nAuto
9
+ import assets.themes.loadThemes as loadThemes
10
+
11
+ now_dir = os.getcwd()
12
+ sys.path.append("..")
13
+
14
+ i18n = I18nAuto()
15
+
16
+
17
+ def theme_tab():
18
+ with gr.Row():
19
+ with gr.Column():
20
+ themes_select = gr.Dropdown(
21
+ loadThemes.get_list(),
22
+ value=loadThemes.read_json(),
23
+ label=i18n("Theme"),
24
+ visible=True,
25
+ )
26
+ themes_select.change(
27
+ fn=loadThemes.select_theme,
28
+ inputs=themes_select,
29
+ outputs=[],
30
+ )