Spaces:
Running
Running
Upload 4 files
Browse files- README.md +14 -12
- all_models.py +898 -0
- app.py +167 -0
- externalmod.py +531 -0
README.md
CHANGED
@@ -1,12 +1,14 @@
|
|
1 |
-
---
|
2 |
-
title:
|
3 |
-
emoji:
|
4 |
-
colorFrom:
|
5 |
-
colorTo:
|
6 |
-
sdk: gradio
|
7 |
-
sdk_version: 4.41.0
|
8 |
-
app_file: app.py
|
9 |
-
pinned: false
|
10 |
-
|
11 |
-
|
12 |
-
|
|
|
|
|
|
1 |
+
---
|
2 |
+
title: 866 AI Art Models 6 Outputs (Gradio 4.x, Single Gallery alpha)
|
3 |
+
emoji: 🛕🛕
|
4 |
+
colorFrom: green
|
5 |
+
colorTo: blue
|
6 |
+
sdk: gradio
|
7 |
+
sdk_version: 4.41.0
|
8 |
+
app_file: app.py
|
9 |
+
pinned: false
|
10 |
+
duplicated_from: Yntec/Diffusion80XX
|
11 |
+
short_description: Compare up to 6 image models!
|
12 |
+
---
|
13 |
+
|
14 |
+
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
all_models.py
ADDED
@@ -0,0 +1,898 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
models = [
|
2 |
+
"Yntec/beLIEve", #865
|
3 |
+
"digiplay/MilkyWonderland_v1", #866
|
4 |
+
"Yntec/Hyperlink", #861
|
5 |
+
"digiplay/AnalogMadness-realistic-model-v5", #864
|
6 |
+
"Yntec/HyperRemix", #859
|
7 |
+
"digiplay/ZHMix-Dramatic-v2.0",
|
8 |
+
"Yntec/realisticStockPhoto3", #863
|
9 |
+
"digiplay/fishmix_other_v1",
|
10 |
+
"Yntec/HyperPhotoGASM", #858
|
11 |
+
"digiplay/Gap_2.6",
|
12 |
+
"Yntec/CrystalReality", #855
|
13 |
+
"John6666/meinamix-meinav11-sd15", #857
|
14 |
+
"Yntec/Roleplay", #850
|
15 |
+
"digiplay/ya3p_VAE", #258
|
16 |
+
"Yntec/ICantBelieveItSNotPhotography", #856
|
17 |
+
"digiplay/ZemiHR_v2_diffusers",
|
18 |
+
"Yntec/Neurogen", #854
|
19 |
+
"John6666/am-i-real-v45-sd15", #852
|
20 |
+
"Yntec/lnkdn", #851
|
21 |
+
"digiplay/ShadowGost_v1",
|
22 |
+
"Yntec/ArtisticVision", #845
|
23 |
+
"digiplay/DetailAsianRealistic_v2.5_hinablue", #849
|
24 |
+
"Yntec/Chip_n_DallE", #844
|
25 |
+
"digiplay/rRealism_v1.0_riiwa", #848
|
26 |
+
"Yntec/ClayStyle", #838
|
27 |
+
"digiplay/TWingshadow_v1.0", #847
|
28 |
+
"digiplay/TWingshadow_v1.0_finetune", #846
|
29 |
+
"digiplay/V3_by_Hans_Asian",
|
30 |
+
"digiplay/Maji5PlusCCTV", #843
|
31 |
+
"Yntec/3DKX2",
|
32 |
+
"digiplay/cosfMix_v1", #223
|
33 |
+
"Yntec/Epsilon_Naught", #831
|
34 |
+
"digiplay/LusterMix_v1.5_safetensors", #256
|
35 |
+
"Yntec/TrueSight", #841
|
36 |
+
"digiplay/XtReMixUltimateMerge_v1.8", #840
|
37 |
+
"Yntec/epiCDream", #839
|
38 |
+
"digiplay/counterfeitV2525d_tweak",
|
39 |
+
"Yntec/Ponygraphy", #827
|
40 |
+
"digiplay/m3u", #263
|
41 |
+
"Yntec/DucHaitenGODofSIMP", #836
|
42 |
+
"digiplay/STRANGER-ANIME", #835
|
43 |
+
"Yntec/ElldrethSDaydreamMix", #834
|
44 |
+
"digiplay/DonutHoleMix_Beta", #832
|
45 |
+
"Yntec/DramaLlama", #820
|
46 |
+
"digiplay/STRANGER", #816
|
47 |
+
"Yntec/RevAnimatedV2Rebirth", #829
|
48 |
+
"digiplay/KawaiiRealisticAsian_v0.7", #828
|
49 |
+
"Yntec/ZootVisionEpsilon", #817
|
50 |
+
"digiplay/AsianBrmBeautyrealmix_v2.0", #826
|
51 |
+
"Yntec/BetterPonyDiffusion", #825
|
52 |
+
"digiplay/Realisian_v6", #824
|
53 |
+
"Yntec/SCMIX_NightSkyMeina", #823
|
54 |
+
"digiplay/chosen-Mix", #821
|
55 |
+
"Yntec/ZooFun", #815
|
56 |
+
"digiplay/OnlyRealistic_v29", #819
|
57 |
+
"Yntec/Wonder", #812
|
58 |
+
"digiplay/2K-VAE",
|
59 |
+
"Yntec/WaifuDiffusion", #822
|
60 |
+
"digiplay/Cetus-Mix-Codaedition_diffusers", #813
|
61 |
+
"Yntec/TheWonderMix", #814
|
62 |
+
"digiplay/HenmixArt_v1",
|
63 |
+
"Yntec/MostClassical", #810
|
64 |
+
"digiplay/m0nst3rfy3-testfix", #811
|
65 |
+
"Yntec/DreamlikeShaper", #806
|
66 |
+
"Ojimi/anime-kawai-diffusion",
|
67 |
+
"Yntec/DreamShaperRemix", #2K
|
68 |
+
"digiplay/MilkyWonderland_v2", #808
|
69 |
+
"Yntec/DigitalSoul", #807
|
70 |
+
"digiplay/incursiosMemeDiffusion_v1.6",
|
71 |
+
"Yntec/ProjectKawai", #809
|
72 |
+
"digiplay/CamelliaMix_NSFW_diffusers_v1.1", #837
|
73 |
+
"Yntec/AbsoluteReality", #15K
|
74 |
+
"digiplay/PikasAnimatedMix_v1", #805
|
75 |
+
"Yntec/BeautyFoolRemix", #800
|
76 |
+
"digiplay/dosmixVAE-mangled", #804
|
77 |
+
"Yntec/DisneyPixarCartoon768", #803
|
78 |
+
"digiplay/AgainMix_v2.0", #802
|
79 |
+
"Yntec/mistoonRuby3", #801
|
80 |
+
"digiplay/OldFish_v1.1",
|
81 |
+
"Yntec/AtoZ", #799
|
82 |
+
"digiplay/fantasticmix_k1", #797
|
83 |
+
"Yntec/FilmGirlRemix", #795
|
84 |
+
"digiplay/fCAnimeMix_v5", #798
|
85 |
+
"Yntec/Vintage", #794
|
86 |
+
"digiplay/BeautyFoolReality_4", #796
|
87 |
+
"Yntec/UltraHighDefinition", #791
|
88 |
+
"digiplay/endlessMixRenatus_v1.1", #Added 2023.07.10 updated 2024.05.30
|
89 |
+
"Yntec/XenoGASM", #793
|
90 |
+
"digiplay/DarkSushi2.5D_v1", #792
|
91 |
+
"Yntec/DegreesOfFreedom", #790
|
92 |
+
"digiplay/Perfect_Gap_Blend_v1",
|
93 |
+
"Yntec/ChickFlick", #787
|
94 |
+
"digiplay/fCAnimeMix_v3", #786
|
95 |
+
"Yntec/Film", #784
|
96 |
+
"digiplay/BeautifulArt_v1", #785
|
97 |
+
"Yntec/AnythingV7", #779
|
98 |
+
"digiplay/BadAnime_v1",
|
99 |
+
"Yntec/LEOSAMsFilmGirlUltra", #783
|
100 |
+
"digiplay/7pa-VAE", #782
|
101 |
+
"Yntec/ArthemyComics", #781
|
102 |
+
"digiplay/EtherRealMix_LUX2",
|
103 |
+
"Yntec/ReVAnimatedRemix", #780
|
104 |
+
"digiplay/CampurSari_Gen1",
|
105 |
+
"Yntec/AnythingNostalgic", #775
|
106 |
+
"digiplay/WhiteDreamyHillMix_v1_VAE", #713
|
107 |
+
"Yntec/AnyLoRa-768", #778
|
108 |
+
"digiplay/CCTV2.5d_v1", #219
|
109 |
+
"Yntec/AnythingV5-768", #777
|
110 |
+
"digiplay/LEAU",
|
111 |
+
"Yntec/Moistalgia", #773
|
112 |
+
"digiplay/Colorful_v1.3", #774
|
113 |
+
"Yntec/DeleteThis", #770
|
114 |
+
"digiplay/LemonTea2.5D",
|
115 |
+
"Yntec/ModernDisney", #764
|
116 |
+
"digiplay/HadrianDelice_DeliceV1", #772
|
117 |
+
"Yntec/IsThisDisney", #767
|
118 |
+
"digiplay/MRMD_0505", #769
|
119 |
+
"Yntec/RetroArt", #760
|
120 |
+
"digiplay/YabaLMixAnimeRealistic_V1.0_VAE", #765
|
121 |
+
"Yntec/Fanatic", #758
|
122 |
+
"digiplay/fantastel_V1", #759
|
123 |
+
"Yntec/Mo-Di-Diffusion-768", #768
|
124 |
+
"digiplay/bluePencil_v09b", #766
|
125 |
+
"Yntec/AnythingV4.5.6.7.8", #763
|
126 |
+
"digiplay/majicMIX_realistic_v7", #761
|
127 |
+
"Yntec/ElldrethsRetroMix", #4K
|
128 |
+
"digiplay/LemonCreami", #762
|
129 |
+
"Yntec/Luxury", #750
|
130 |
+
"digiplay/insaneRealistic_v1",
|
131 |
+
"Yntec/EpicMadness", #751
|
132 |
+
"digiplay/ValMix2-byHemlok", #755
|
133 |
+
"Yntec/DucHaitenAIart-beta", #3K
|
134 |
+
"digiplay/Acorn_Photo_v1", #757
|
135 |
+
"Yntec/a-ZovyaRPGV4", #756
|
136 |
+
"digiplay/EdisonNilMix_v1", # Added 7.10 Updated 12.5
|
137 |
+
"Yntec/KrazyGlue", #745
|
138 |
+
"digiplay/AnyPastel", #752
|
139 |
+
"Yntec/EpicDiffusion", #753
|
140 |
+
"digiplay/darkphoenix3D_v1.1", #748
|
141 |
+
"Yntec/Crybaby", #739
|
142 |
+
"digiplay/majicMIXfantasy_v2", #741
|
143 |
+
"Yntec/majicmixLux", #749
|
144 |
+
"digiplay/asyncsMIX_v5",
|
145 |
+
"digiplay/majicMIX_realistic_v5", #742
|
146 |
+
"Yntec/insaneRealistic_v2", #746
|
147 |
+
"digiplay/xiaomeige_outlineColor_v10", #744
|
148 |
+
"digiplay/MixTape_RocknRoll_v3punk_bake_fp16",
|
149 |
+
"Yntec/AbyssOrangeMix", #740
|
150 |
+
"digiplay/PerfectDeliberate-Anime_v2", #734
|
151 |
+
"digiplay/SomethingPhenomenal_vivacityV2", #735
|
152 |
+
"Yntec/CocaCola", #733
|
153 |
+
"digiplay/majicMixHorror_v1", #738
|
154 |
+
"digiplay/Noosphere_v4.2", #737
|
155 |
+
"Yntec/Fanta", #730
|
156 |
+
"digiplay/K-main_NEO", #731
|
157 |
+
"digiplay/COCOtiFaMix_v2", #732
|
158 |
+
"Yntec/endlessReality", #736
|
159 |
+
"digiplay/Blazarot_blazaroshi", #729
|
160 |
+
"digiplay/Photon_v1",
|
161 |
+
"Yntec/DreamPhotoGASM", #727
|
162 |
+
"digiplay/Sweet-mix_v2.2_flat", #726
|
163 |
+
"digiplay/snowpear_anime", #714
|
164 |
+
"Yntec/NostalgicLife", #718
|
165 |
+
"digiplay/pan04", #725
|
166 |
+
"Yntec/Voxel", #715
|
167 |
+
"digiplay/FishMix_v1.1",
|
168 |
+
"digiplay/chrysanthemumMix_v1",
|
169 |
+
"Yntec/DreamlikeDiffusion", #722
|
170 |
+
"digiplay/mothmix_v1.41", #720
|
171 |
+
"digiplay/BreakDro_i1464", #719
|
172 |
+
"Yntec/HyperRealism", #721
|
173 |
+
"digiplay/aurorafantasy_v1", #717
|
174 |
+
"digiplay/CoharuMix_real",
|
175 |
+
"Yntec/Prodigy", #712
|
176 |
+
"digiplay/ya3_xt", #711
|
177 |
+
"digiplay/XtReMixUltimateMerge_v1.5", #710
|
178 |
+
"Yntec/Protogen_Unofficial_Release", #709
|
179 |
+
"digiplay/majicMIX_lux_v3", #708
|
180 |
+
"digiplay/richyrichmix_V2Fp16", #707
|
181 |
+
"Yntec/Timeless", #703
|
182 |
+
"digiplay/seizamix_v2", #706
|
183 |
+
"digiplay/AnalogMadness-realistic-model-v4", #705
|
184 |
+
"Yntec/Fabulous", #700
|
185 |
+
"digiplay/realspice_v2", #702
|
186 |
+
"digiplay/supashymix_v30Lite", #701
|
187 |
+
"Yntec/DucHaitenRetro2", #704
|
188 |
+
"digiplay/BeautifulFantasyRealMix_diffusers", #698
|
189 |
+
"Yntec/IncredibleLife", #699
|
190 |
+
"digiplay/MGM",
|
191 |
+
"Yntec/AnythingV3.1", #699
|
192 |
+
"digiplay/AstrAnime_v6", #698
|
193 |
+
"Yntec/TimelessDiffusion768", #699
|
194 |
+
"digiplay/Koji_v2.1_diffusers",
|
195 |
+
"Yntec/RetroLife", #691
|
196 |
+
"digiplay/CamelliaMIx_2.5D_v1_VAE", #696
|
197 |
+
"Yntec/CuteFurry",
|
198 |
+
"digiplay/MengX_Mix_Fantasy_v4", #689
|
199 |
+
"Yntec/theallysMixIIChurned", #694
|
200 |
+
"digiplay/MengX_Mix_Real_v3",
|
201 |
+
"Yntec/BrainDance", #693
|
202 |
+
"digiplay/ARRealVX1.1",
|
203 |
+
"Yntec/Remedy", #697
|
204 |
+
"digiplay/PlanetBumix_v1",
|
205 |
+
"Yntec/Paramount",
|
206 |
+
"digiplay/Yuzu_v1.1", #688
|
207 |
+
"Yntec/Playground", #690
|
208 |
+
"digiplay/AM-mix1",
|
209 |
+
"Yntec/Analog",
|
210 |
+
"digiplay/MeinaPastel_v1",
|
211 |
+
"Yntec/Tea", #687
|
212 |
+
"digiplay/AingDiffusion7.5",
|
213 |
+
"Yntec/StableDiffusion768", #686
|
214 |
+
"digiplay/perfectlevel10", #685
|
215 |
+
"Yntec/IdleFancy",
|
216 |
+
"digiplay/Shadir_Diffusion_AR_v2.1_fp16_test1",
|
217 |
+
"Yntec/NyankoMotsiX",
|
218 |
+
"digiplay/GhostMixV1.2VAE",
|
219 |
+
"Yntec/DreamWorksRemix",
|
220 |
+
"digiplay/LuckyStrikeMix1.05_Lovelylady",
|
221 |
+
"Yntec/Looking-Glass",
|
222 |
+
"digiplay/AbsoluteReality_v1.0_diffusers",
|
223 |
+
"Yntec/epiCCartoon",
|
224 |
+
"digiplay/quincemix_v1",
|
225 |
+
"Yntec/DaintyMix",
|
226 |
+
"digiplay/fantasticmix_v7",
|
227 |
+
"Yntec/DucHaiten-AnyUnreal",
|
228 |
+
"digiplay/fantexi_v0.9",
|
229 |
+
"Yntec/Genuine",
|
230 |
+
"digiplay/OrangeChillMix_v7fix",
|
231 |
+
"Yntec/GoFish",
|
232 |
+
"digiplay/bluePencilRealistic_v05",
|
233 |
+
"Yntec/nuipenimix",
|
234 |
+
"digiplay/A80S_v1.0",
|
235 |
+
"Yntec/iffyMix",
|
236 |
+
"digiplay/lutDiffusion_v09Beta",
|
237 |
+
"Yntec/EmeraldCity",
|
238 |
+
"digiplay/CleanLinearMix",
|
239 |
+
"Yntec/animeSIXTYNINE",
|
240 |
+
"digiplay/PolyMorphMix",
|
241 |
+
"Yntec/AsianMix",
|
242 |
+
"digiplay/polla_mix_2.3D",
|
243 |
+
"Yntec/ResidentCNZCartoon3D",
|
244 |
+
"digiplay/AbsoluteReality_v1.8.1",
|
245 |
+
"Yntec/Memento",
|
246 |
+
"digiplay/RealCartoon3D_v6",
|
247 |
+
"Yntec/RealLife",
|
248 |
+
"digiplay/WolfSystems_v1",
|
249 |
+
"Yntec/Vintedois",
|
250 |
+
"digiplay/SXZ_Luma_v0.98VAE",
|
251 |
+
"Yntec/Based64",
|
252 |
+
"digiplay/NextGenMix_R2.8VAE",
|
253 |
+
"Yntec/SQUEE",
|
254 |
+
"digiplay/HIJKLMix_v2",
|
255 |
+
"Yntec/Aurora",
|
256 |
+
"digiplay/BeenReal_diffusers",
|
257 |
+
"Yntec/Paragon",
|
258 |
+
"digiplay/OnlyReal-Black-Mix",
|
259 |
+
"Yntec/Infinite80s",
|
260 |
+
"digiplay/AI-infinity-V1-fp16",
|
261 |
+
"Yntec/InfiniteLiberty",
|
262 |
+
"digiplay/XXMix_9realistic_v1",
|
263 |
+
"Yntec/aBagOfChips",
|
264 |
+
"digiplay/Dolka_Rusalka_v0.5.1",
|
265 |
+
"Yntec/IsThisArt",
|
266 |
+
"digiplay/YutaMix_realistic_v11",
|
267 |
+
"Yntec/Jackpot",
|
268 |
+
"digiplay/XRYCJ_RealisticModel",
|
269 |
+
"Yntec/C-.-_-.-Aravaggio",
|
270 |
+
"digiplay/RunDiffusionFX2.5D_v1_diffusers",
|
271 |
+
"Yntec/Stuff",
|
272 |
+
"digiplay/NightmareShaper_v2DarkageLobotomy",
|
273 |
+
"Yntec/LiberteRedmond",
|
274 |
+
"digiplay/nk15_diffusers", #230
|
275 |
+
"Yntec/Emoticons",
|
276 |
+
"digiplay/xxgSl526_v1",
|
277 |
+
"Yntec/BabeBae",
|
278 |
+
"digiplay/2-KWI", #213
|
279 |
+
"Yntec/SinkOrSwim",
|
280 |
+
"digiplay/majicMIXfantasy_v1",
|
281 |
+
"Yntec/Nostalgic",
|
282 |
+
"digiplay/yiSMix2.8D_v1",
|
283 |
+
"Yntec/mixRealisticFantasy",
|
284 |
+
"digiplay/hellopure_v2.23",
|
285 |
+
"Yntec/Astro_-_-Gemu",
|
286 |
+
"digiplay/YabaLMixTrue25D_V1.0",
|
287 |
+
"Yntec/StorybookRedmond",
|
288 |
+
"digiplay/AnalogMadness-realistic-model-v7", #842
|
289 |
+
"Yntec/Cheesecake",
|
290 |
+
"digiplay/CuriousMerge2.5D_v40E", #771
|
291 |
+
"Yntec/GimmeDatDing",
|
292 |
+
"John6666/cookie-run-character-style-v1-sd15-lora", #853
|
293 |
+
"Yntec/GenerateMe",
|
294 |
+
"digiplay/Hassaku_1.3", #830
|
295 |
+
"Yntec/Gacha",
|
296 |
+
"Yntec/incha_re_zoro",
|
297 |
+
"Yntec/GodMode",
|
298 |
+
"Yntec/FantassifiedIcons",
|
299 |
+
"Yntec/IncredibleWorld2",
|
300 |
+
"Yntec/IncredibleWorld",
|
301 |
+
"Yntec/TheDarkNight",
|
302 |
+
"Yntec/Cryptids",
|
303 |
+
"Yntec/Tantrum",
|
304 |
+
"Yntec/CutesyAnime",
|
305 |
+
"Yntec/HellSKitchen",
|
306 |
+
"Yntec/Kitsch-In-Sync",
|
307 |
+
"Yntec/La-dee-dah-.-_",
|
308 |
+
"Yntec/HELLmix",
|
309 |
+
"Yntec/AnalogMadness4",
|
310 |
+
"Yntec/Wonderland",
|
311 |
+
"Yntec/Atlas",
|
312 |
+
"Yntec/KomowataHaruka",
|
313 |
+
"Yntec/FotoPhoto",
|
314 |
+
"Yntec/Ambrosia",
|
315 |
+
"Yntec/Reliberate",
|
316 |
+
"Yntec/BaronMix",
|
317 |
+
"Yntec/ChilloutMix",
|
318 |
+
"Yntec/Shirayuki",
|
319 |
+
"Yntec/foto-assisted-diffusion",
|
320 |
+
"Yntec/elldrethSDreamMix",
|
321 |
+
"Yntec/mistoonEmerald2",
|
322 |
+
"Yntec/AnythingRemix",
|
323 |
+
"Yntec/AnalogMadness",
|
324 |
+
"Yntec/IronCatFateToons",
|
325 |
+
"Yntec/CultClassic", #1K
|
326 |
+
"Yntec/samaritan3dCartoon2MVAE", #1K
|
327 |
+
"Yntec/Crystalwave", #1k
|
328 |
+
"Yntec/Synthwave",
|
329 |
+
"Yntec/OG", #1k
|
330 |
+
"Yntec/Crayon", #1K
|
331 |
+
"Yntec/LuckyStrike", #1K
|
332 |
+
"Yntec/Deliberate", #1K
|
333 |
+
"Yntec/DeliberateRealisticWoop", #1K
|
334 |
+
"Yntec/EstheticRetroAnime", #1K
|
335 |
+
"Yntec/DucHaiten-GoldenLife",
|
336 |
+
"Yntec/3DCuteWave",
|
337 |
+
"Yntec/GoldenEra", #1K
|
338 |
+
"Yntec/ClassicEra", #1K
|
339 |
+
"Yntec/GoodLife", #1K
|
340 |
+
"Yntec/Hassanim", #1K
|
341 |
+
"Yntec/DeliberateRemix", #1K
|
342 |
+
"Yntec/HassanBlend12", #1K
|
343 |
+
"Yntec/HassanBlend1512VAE", #1K
|
344 |
+
"Yntec/MangledMerge3_768", #1K
|
345 |
+
"Yntec/OpenLexica", #1K
|
346 |
+
"Yntec/MapleSyrup", #1K
|
347 |
+
"Yntec/iComixRemix", #1K
|
348 |
+
"Yntec/SamaritanDoesArt", #1K
|
349 |
+
"Yntec/CinemaEros", #1K
|
350 |
+
"Yntec/CartoonStyleClassic", #1K
|
351 |
+
"Yntec/GalenaVAE", #1K
|
352 |
+
"Yntec/a-ZovyaRemix", #1K
|
353 |
+
"Yntec/a-ZovyaRPGArtistV2VAE", #2K
|
354 |
+
"Yntec/MemeDiffusion", #2K
|
355 |
+
"Yntec/Abased", #2k
|
356 |
+
"Yntec/SCMix", #2k
|
357 |
+
"Yntec/Hassaku", #2k
|
358 |
+
"Yntec/m0nst3rfy3", #2k
|
359 |
+
"Yntec/PotaytoPotahto", #2K
|
360 |
+
"Yntec/3DCute", #2K
|
361 |
+
"Yntec/SuperCuteRemix", #2K
|
362 |
+
"Yntec/Trending", #2K
|
363 |
+
"Yntec/a-ZovyaRPGV3VAE", #3K
|
364 |
+
"Yntec/StolenDreams", #3k
|
365 |
+
"Yntec/LeyLines", #3k
|
366 |
+
"Yntec/SillySymphonies", #3K
|
367 |
+
"Yntec/MeinaAlter", #3K
|
368 |
+
"Yntec/WoopWoopAnime", #3K
|
369 |
+
"Yntec/DreamWorld", #3K
|
370 |
+
"Yntec/MGM", #3K
|
371 |
+
"Yntec/3DKX/", #3K
|
372 |
+
"Yntec/3DKXv11", #3K
|
373 |
+
"Yntec/Cute", #3K
|
374 |
+
"Yntec/DreamFulV2", #3K
|
375 |
+
"Yntec/DucHaitenDarkside4", #3K
|
376 |
+
"Yntec/Citrus", #3K
|
377 |
+
"Yntec/Classic", #3K
|
378 |
+
"Yntec/BasilRemix", #3K
|
379 |
+
"Yntec/Yuzu", #4K
|
380 |
+
"Yntec/Protogen", #4K
|
381 |
+
"Yntec/BeautyFool", #4K
|
382 |
+
"Yntec/CyberRealistic", #4K
|
383 |
+
"Yntec/Lyriel", #4K
|
384 |
+
"Yntec/3DRendering", #4K
|
385 |
+
"Yntec/aMovieTrend", #2K
|
386 |
+
"Yntec/Dreamscape", #2K
|
387 |
+
"Yntec/elldrethSVividMix", #2K
|
388 |
+
"Yntec/elldrethSLucidMix", #2K
|
389 |
+
"Yntec/CitrineDreamMix", #2K
|
390 |
+
"Yntec/elldrethsImagination", #2K
|
391 |
+
"Yntec/ReVAnimated768", #2K
|
392 |
+
"Yntec/OpenNijiRemix", #2K
|
393 |
+
"Yntec/RadiantCinemagic", #2K
|
394 |
+
"Yntec/RadiantVibes", #1K
|
395 |
+
"Yntec/NeverEndingDream768", #2K
|
396 |
+
"Yntec/vividicAnime", #2K
|
397 |
+
"Yntec/WoopWoopRemix", #2K
|
398 |
+
"Yntec/ArcticFowl", #2K
|
399 |
+
"Yntec/CrystalClearRemix", #5k
|
400 |
+
"Yntec/CrystalClear", #3k
|
401 |
+
"Yntec/Reanimate", #5k
|
402 |
+
"Yntec/Deliberate2", #5k
|
403 |
+
"Yntec/526", #5k
|
404 |
+
"Yntec/526Mix", #5k
|
405 |
+
"Yntec/Dreamful3", #5K
|
406 |
+
"Yntec/theAllysMixIIIRevolutions", #6k
|
407 |
+
"Yntec/UberRealisticLegacy", #6k
|
408 |
+
"Yntec/BrandiMilne", #6K
|
409 |
+
"Yntec/dosmixVAE", #3K
|
410 |
+
"Yntec/aPhotographicTrend", #3K
|
411 |
+
"Yntec/BeenYou", #3K
|
412 |
+
"Yntec/level4", #3K
|
413 |
+
"Yntec/dreamlike-photoreal-remix", #3K
|
414 |
+
"Yntec/lamettaRemix", #3K
|
415 |
+
"Yntec/lametta", #2K
|
416 |
+
"Yntec/AgarthaChadstyle", #7k
|
417 |
+
"Yntec/DucHaitenLofi", #7k
|
418 |
+
"Yntec/DreamWorks", #7K
|
419 |
+
"Yntec/mistoonAnime2", #7K
|
420 |
+
"Yntec/DucHaiten-FANCYxFANCY",#7K
|
421 |
+
"Yntec/LAMEanime", #8K
|
422 |
+
"Yntec/3Danimation", #4K
|
423 |
+
"Yntec/DucHaitenNiji", #4K
|
424 |
+
"Yntec/Darkside", #4K
|
425 |
+
"Yntec/animeTEN", #4K
|
426 |
+
"Yntec/Dreamscapes_n_Dragonfire_v2", #4K
|
427 |
+
"Yntec/Cetus", #4K
|
428 |
+
"Yntec/DeliShaper", #4K
|
429 |
+
"Yntec/epiCVision", #4K
|
430 |
+
"Yntec/Dreamlike", #3K
|
431 |
+
"Yntec/AnythingV4-768", #9k
|
432 |
+
"Yntec/makeitdoubleplz", #10k
|
433 |
+
"Yntec/ChiliConCarne", #11k
|
434 |
+
"Yntec/Dreamshaper8", #12K
|
435 |
+
"Yntec/pineappleAnimeMix", #13k
|
436 |
+
"Yntec/Oiran", #6K
|
437 |
+
"Yntec/RealCartoon3D", #6K
|
438 |
+
"Yntec/animeTWO", #6K
|
439 |
+
"Yntec/lamettaNightly", #6K
|
440 |
+
"Yntec/REV", #6K
|
441 |
+
"Yntec/NaughtyChildren", #6K
|
442 |
+
"Yntec/humu", #6K
|
443 |
+
"Yntec/Thriller", #13K
|
444 |
+
"Yntec/AbsoluteRemix", #7K
|
445 |
+
"Yntec/Splash", #7K
|
446 |
+
"Yntec/OpenGenDiffusers", #7K
|
447 |
+
"Yntec/DreamLikeRemix", #7K
|
448 |
+
"Yntec/epiCRealismVAE", #8K
|
449 |
+
"Yntec/LehinaModel", #8K
|
450 |
+
"Yntec/realistic-vision-v12", #14K
|
451 |
+
"Yntec/animeSEXTILLION/", #15K
|
452 |
+
"Yntec/CetusRemix", #16K
|
453 |
+
"Yntec/AnythingV3-768", #18K
|
454 |
+
"Yntec/edgeOfRealism", #25K
|
455 |
+
"Yntec/fennPhoto", #27k
|
456 |
+
"Yntec/aMovieX/", #28K
|
457 |
+
"Yntec/photoMovieXFinal", #31K
|
458 |
+
"Yntec/nuipenimix2", #34K
|
459 |
+
"Yntec/epiCPhotoGasm", #40K
|
460 |
+
"Yntec/YiffyMix", #44K
|
461 |
+
"Yntec/HitenDiffusion", #2K
|
462 |
+
"Yntec/GameAssetsDigitalUnitsCreationKit",
|
463 |
+
"Yntec/QToriReloaded",
|
464 |
+
"Yntec/Toonify2",
|
465 |
+
"Yntec/LunarLuma",
|
466 |
+
"Yntec/Lunar",
|
467 |
+
"Yntec/Chik2",
|
468 |
+
"Yntec/photoMovieRealistic",
|
469 |
+
"Yntec/DucHaiten-StyleLikeMeVAE",
|
470 |
+
"Yntec/InsaneRealisticCVAE",
|
471 |
+
"Yntec/Noosphere_v3_CVAE",
|
472 |
+
"Yntec/RealRainbows",
|
473 |
+
"Yntec/InsaneM3U",
|
474 |
+
"Yntec/ChildrenStoriesAnime",
|
475 |
+
"Yntec/theallysMixIV-verisimilar",
|
476 |
+
"Yntec/DucHaitenAnime768",
|
477 |
+
"Yntec/RainbowClassicAnime",
|
478 |
+
"Yntec/DucHaitenClassicAnime768",
|
479 |
+
"Yntec/Luma",
|
480 |
+
"Yntec/WesternAnimation",
|
481 |
+
"Yntec/NeverExisted",
|
482 |
+
"Yntec/Rainbowsphere",
|
483 |
+
"Yntec/Ninja-Diffusers",
|
484 |
+
"Yntec/GOLDFish",
|
485 |
+
"Yntec/DreamAnything",
|
486 |
+
"Yntec/Dreamsphere",
|
487 |
+
"Yntec/Photosphere",
|
488 |
+
"Yntec/yabalMixTrue25D_v2_VAE",
|
489 |
+
"dreamlike-art/dreamlike-anime-1.0",
|
490 |
+
"Yntec/RainbowDreams",
|
491 |
+
"Yntec/rainbowpatch",
|
492 |
+
"Yntec/DucHaiten-Retro-Diffusers",
|
493 |
+
"Yntec/sexyToons",
|
494 |
+
"Yntec/photoMovieX/",
|
495 |
+
"dreamlike-art/dreamlike-photoreal-2.0",
|
496 |
+
"dreamlike-art/dreamlike-diffusion-1.0",
|
497 |
+
"Yntec/CuteYuki2",
|
498 |
+
"Yntec/KIDSILLUSTRATIONS",
|
499 |
+
"Yntec/COOLKIDSV2",
|
500 |
+
"Yntec/Pavo-Mix-Diffusers",
|
501 |
+
"Yntec/RPG_Remix",
|
502 |
+
"Yntec/OrangeRemix",
|
503 |
+
"Yntec/PeachMix3",
|
504 |
+
"Yntec/samdoesartsUlt",
|
505 |
+
"Yntec/NovelAI",
|
506 |
+
"Yntec/NovelAIRemix",
|
507 |
+
"Yntec/Hiten",
|
508 |
+
"digiplay/fCAnimeMix_v6", #776
|
509 |
+
"digiplay/YabaLMixAnimeRealistic_V1.0", #754
|
510 |
+
"digiplay/WhiteDreamyHillMix_v1", #220
|
511 |
+
"digiplay/fCAnimeMix_v4", #747
|
512 |
+
"digiplay/HadrianDelice_DeliceV1.5", #743
|
513 |
+
"digiplay/fCAnimeMix_v2", #716
|
514 |
+
"digiplay/HadrianDelice_BYC1.0", #728
|
515 |
+
"digiplay/majicMIX_realistic_v6",
|
516 |
+
"digiplay/Noosphere_v4", #723
|
517 |
+
"digiplay/PerfectDeliberate-Anime_v1", #724
|
518 |
+
"digiplay/CamelliaMIx_2.5D_v1", #695
|
519 |
+
"digiplay/CamelliaMIx_2.5D_diffusers", #692
|
520 |
+
"digiplay/fantasticmix2.5D_v4.0",
|
521 |
+
"digiplay/majicMIX_realistic_v1",
|
522 |
+
"digiplay/RunDiffusionFXPhotorealistic_v1",
|
523 |
+
|
524 |
+
"digiplay/DucHaiten-Real3D-NSFW-V1",
|
525 |
+
"digiplay/kencanmix_v1.5",
|
526 |
+
"digiplay/ZHMix-Dramatic-v3.0",
|
527 |
+
"digiplay/Gap",
|
528 |
+
"digiplay/ya3_VAE",
|
529 |
+
"digiplay/asyncsMIX_v2",
|
530 |
+
"digiplay/fantasticmix_v65_test",
|
531 |
+
"digiplay/AingDiffusion8",
|
532 |
+
"digiplay/AingDiffusion9",
|
533 |
+
"digiplay/AingDiffusion8.5",
|
534 |
+
"digiplay/AingDiffusion6",
|
535 |
+
"digiplay/AingDiffusion8.17",
|
536 |
+
"digiplay/AingDiffusion9.2",
|
537 |
+
"digiplay/MeinaMix_v11",
|
538 |
+
"AIARTCHAN/AbyssHellHero",
|
539 |
+
"digiplay/2K", #216
|
540 |
+
"digiplay/MeinaMix_v7",
|
541 |
+
"digiplay/futaall_v8_VAE_diffusers",
|
542 |
+
"digiplay/Sudachi_diffusers",
|
543 |
+
"digiplay/CleanLinearMix_nsfw",
|
544 |
+
"digiplay/majicMIX_realistic_v4",
|
545 |
+
"digiplay/VersaMix_base_diffusers",
|
546 |
+
"digiplay/OldFish_fix1.1.997_diffusers",
|
547 |
+
"digiplay/VoidnoiseCore_R0829",
|
548 |
+
"digiplay/wantan25D_prototype",
|
549 |
+
"digiplay/PotoPhotoRealism_v1",
|
550 |
+
"digiplay/LunarDiffusion_v1.27",
|
551 |
+
"digiplay/OLDFish_2348_diffusers",
|
552 |
+
"digiplay/OldFish_v1.1_diffusers_recover",
|
553 |
+
"digiplay/OldFish_v1.1mix_hello",
|
554 |
+
"digiplay/OldFish_v1.1_personal_HDmix",
|
555 |
+
"digiplay/FishMix_v1",
|
556 |
+
"digiplay/Yntec_Wonder_0508_DDIM", #818
|
557 |
+
"John6666/juggernaut-reborn-sd15", #860
|
558 |
+
"digiplay/AnalogMadness-realistic-model-v6", #862
|
559 |
+
"DucHaiten/DucHaitenDreamWorld",
|
560 |
+
"digiplay/LemonteaMixPainterly2_v1",
|
561 |
+
"Hius/DreamFul-V2",
|
562 |
+
"lambdalabs/sd-naruto-diffusers", #201
|
563 |
+
"digiplay/SweetMuse_diffusers",
|
564 |
+
"stablediffusionapi/icomix-2",
|
565 |
+
"digiplay/Realisian_v1",
|
566 |
+
"digiplay/RMHF_2.5D_v2",
|
567 |
+
"digiplay/Remedy",
|
568 |
+
"Hemlok/QuinceMix",
|
569 |
+
"digiplay/K-main",
|
570 |
+
"digiplay/perfectLewdFantasy_v1.01",
|
571 |
+
"digiplay/Opiate_v2",
|
572 |
+
"digiplay/PhotoSomnia_vFinal",
|
573 |
+
"stablediffusionapi/all-526-animated",
|
574 |
+
"digiplay/polla_mix_2.5D",
|
575 |
+
"AstraliteHeart/pony-diffusion",
|
576 |
+
"stablediffusionapi/chilloutmixsf",
|
577 |
+
"Masagin/Deliberate", #235
|
578 |
+
"DucHaiten/DucHaitenSuperCute",
|
579 |
+
"stablediffusionapi/all-526",
|
580 |
+
"theintuitiveye/HARDblend",
|
581 |
+
"stablediffusionapi/cyberrealistic",
|
582 |
+
"stablediffusionapi/cusp-of-serenity",
|
583 |
+
"SG161222/Realistic_Vision_V1.4",
|
584 |
+
"digiplay/paulEberSRealismMix_v1",
|
585 |
+
|
586 |
+
"LottePeisch/RevAnimated-Diffusers", #833
|
587 |
+
"hassanblend/hassanblend1.4",
|
588 |
+
"digiplay/zodiac_eclipse_DAY1",
|
589 |
+
"claudfuen/photorealistic-fuen-v1",
|
590 |
+
"stablediffusionapi/chillout-app-factory",
|
591 |
+
"DucHaiten/DucHaitenJourney",
|
592 |
+
"robotjung/SemiRealMix",
|
593 |
+
"Joeythemonster/anything-midjourney-v-4-1",
|
594 |
+
"prompthero/midjourney-v4-diffusion",
|
595 |
+
"prompthero/openjourney-v4",
|
596 |
+
"x67/shortjourney",
|
597 |
+
"FredZhang7/paint-journey-v2",
|
598 |
+
"digiplay/PersonaStyleCheckpoint",
|
599 |
+
"darkstorm2150/Protogen_Infinity_Official_Release",
|
600 |
+
"PeggyWang/openjourney-v2",
|
601 |
+
"darkstorm2150/Protogen_x3.4_Official_Release",
|
602 |
+
"stablediffusionapi/deliberateappfactory", #236
|
603 |
+
"digiplay/CrossoverMix_v2",
|
604 |
+
"stablediffusionapi/spybg",
|
605 |
+
"stablediffusionapi/dreamshaper-v6", #239
|
606 |
+
"stablediffusionapi/the-ally",
|
607 |
+
"darkstorm2150/Protogen_x5.8_Official_Release",
|
608 |
+
"coreco/seek.art_MEGA",
|
609 |
+
"digiplay/BlankCanvas_v1", #07.11
|
610 |
+
"digiplay/OnlyAnime_v2.3",
|
611 |
+
"Korakoe/OpenNiji",
|
612 |
+
"digiplay/Pika_v2",
|
613 |
+
"digiplay/RealCartoon3D_F16full_v3.1", #254
|
614 |
+
"digiplay/realidefmix_3.5VAE",
|
615 |
+
"digiplay/realmixUnrealjourney_v1",
|
616 |
+
"digiplay/SyncMix_v1.5",
|
617 |
+
"stablediffusionapi/chilledremixsazyou-r", #195
|
618 |
+
"digiplay/TWingshadow_v1.2",
|
619 |
+
"digiplay/whatamix_v1",
|
620 |
+
|
621 |
+
"digiplay/AIGEN_v1.4_diffusers",
|
622 |
+
"digiplay/BrickAndMortarMix_v2.0_diffusers", #224
|
623 |
+
"digiplay/BeautyFool_v1.2VAE_pruned",
|
624 |
+
"digiplay/breakdomainrealistic_R2333",
|
625 |
+
"digiplay/ChikMix_V3", #253
|
626 |
+
"digiplay/CityEdge_StyleMix_v1.44",
|
627 |
+
"stablediffusionapi/dalcefopainting2", #199
|
628 |
+
"digiplay/DiamondCoalMix_v2_pruned_diffusers",
|
629 |
+
"digiplay/DreamShaper_7", #259
|
630 |
+
"digiplay/elegantEntropy_v1.1", #221
|
631 |
+
"digiplay/KawaiiRealisticAnimeMix_A0.3",
|
632 |
+
"digiplay/highQualityCGMIX_v1",
|
633 |
+
"digiplay/HIMAWARI_v1",
|
634 |
+
"digiplay/Hodgepodge_v2.1", #217
|
635 |
+
"digiplay/illustro1stEdition_illustroV1", #214
|
636 |
+
"digiplay/Juggernaut_final", #07.11
|
637 |
+
"digiplay/Landscape_PhotoReal_v1",
|
638 |
+
"digiplay/LuckyStrikeMix0.2Realistic", #07.10
|
639 |
+
"digiplay/Matrix_Stellar_VAE_v1",
|
640 |
+
"digiplay/PrefixRealisticMix_v1",
|
641 |
+
"digiplay/RealEpicMajicRevolution_v1", #07.11
|
642 |
+
"digiplay/ShampooMix_4", #252
|
643 |
+
"digiplay/ShowmakerMix_v1",
|
644 |
+
"digiplay/SoapMix2.5D_v1",
|
645 |
+
|
646 |
+
"Redamancy2299/dreambooth",
|
647 |
+
"Lykon/DreamShaper", #240
|
648 |
+
"trysem/DreamShaper-3.3",
|
649 |
+
"HusseinHE/hussein-deliberate-1000steps", #237
|
650 |
+
"stablediffusionapi/majicmixfantasy",
|
651 |
+
"stablediffusionapi/majicmixsombre", #247
|
652 |
+
"wavymulder/modelshoot",
|
653 |
+
"digiplay/ChillyMix_v1", #215
|
654 |
+
"stablediffusionapi/foto-assisted-diffusion", #197
|
655 |
+
"wavymulder/portraitplus",
|
656 |
+
"stablediffusionapi/chilloutmix-4264",
|
657 |
+
"stablediffusionapi/product-design", #194
|
658 |
+
"kandinsky-community/kandinsky-2-1", #251
|
659 |
+
|
660 |
+
"digiplay/2.5DSET_diffusers", #227
|
661 |
+
"digiplay/alstroemeriaMix_v1",
|
662 |
+
"wavymulder/Analog-Diffusion",
|
663 |
+
"digiplay/AniRealityMix_v1", #257
|
664 |
+
"digiplay/BasilKorea_v2", #07.11
|
665 |
+
"digiplay/bluePencilRealistic_v01",
|
666 |
+
"digiplay/bra_v40_diffusers",
|
667 |
+
"digiplay/Burger_Mix_semiR2Lite", #222
|
668 |
+
"digiplay/calicomixreal_v2.0_diffusers",
|
669 |
+
"digiplay/CampurSari_Gen1",
|
670 |
+
"digiplay/cocotifacute_v1", #07.10
|
671 |
+
"digiplay/CounterMix_v2", #211
|
672 |
+
"digiplay/CuriousMerge2.5D_v5",
|
673 |
+
"digiplay/dosmix",
|
674 |
+
"digiplay/epi_2.5Dphotogodess_diffusers",
|
675 |
+
"stablediffusionapi/droodlyrielv15",
|
676 |
+
"digiplay/fantexi_v0.7",
|
677 |
+
"digiplay/FormCleansingMix_v1", #228
|
678 |
+
"digiplay/FumizukiMix_v1",
|
679 |
+
"digiplay/helloworld_v3",
|
680 |
+
"digiplay/ISOmix_v3.22",
|
681 |
+
"digiplay/JF-Cu_v1",
|
682 |
+
"digiplay/kencanmix_v2.0beta",
|
683 |
+
"wavymulder/lomo-diffusion",
|
684 |
+
"stablediffusionapi/majicmixv5", #192
|
685 |
+
"digiplay/mecha_musume_vivid_soft",
|
686 |
+
"digiplay/MiracleMixGlitter_v1",
|
687 |
+
"digiplay/NextPhoto_v1",
|
688 |
+
"digiplay/Noosphere_v3",
|
689 |
+
"digiplay/PeachMixsRelistic_R0", #262
|
690 |
+
"wavymulder/timeless-diffusion",
|
691 |
+
"digiplay/WhiteDreamyHillMix_v1", #220
|
692 |
+
|
693 |
+
"DucHaiten/DucHaitenAnime",
|
694 |
+
"DucHaiten/DucHaitenAIart",
|
695 |
+
"digiplay/BeenYouLiteL11_diffusers",
|
696 |
+
"Manseo/Colorful-v4.5-Plus", #244
|
697 |
+
"Guizmus/SDArt_ChaosAndOrder",
|
698 |
+
"DucHaiten/DH_ClassicAnime",
|
699 |
+
"stablediffusionapi/disneypixar",
|
700 |
+
"johnslegers/epic-diffusion-v1.1",
|
701 |
+
"emilianJR/epiCRealism",
|
702 |
+
"johnslegers/epic-diffusion",
|
703 |
+
"digiplay/fantasticAnime_diffusers",
|
704 |
+
"stablediffusionapi/ghostmix",
|
705 |
+
"Duskfallcrew/EpicMix_Realism",
|
706 |
+
"nitrosocke/Nitro-Diffusion",
|
707 |
+
"prompthero/openjourney",
|
708 |
+
"Guizmus/SDArt_something",
|
709 |
+
"DucHaiten/DucHaiten-StyleLikeMe",
|
710 |
+
"ddPn08/subtly", #250
|
711 |
+
"22h/vintedois-diffusion-v0-1",
|
712 |
+
|
713 |
+
"circulus/sd-anireal-v2.7",
|
714 |
+
"0xJustin/Dungeons-and-Diffusion",
|
715 |
+
"darkstorm2150/Protogen_v2.2_Official_Release",
|
716 |
+
"Guizmus/SDArt_AliceInDiffusionLand",
|
717 |
+
"stablediffusionapi/realistic-vision-v20-2047",
|
718 |
+
"redstonehero/RPG-v5-itr17_A10T",
|
719 |
+
|
720 |
+
"stablediffusionapi/camelliamix25d",
|
721 |
+
"Guizmus/SDArt_cosmichorrors",
|
722 |
+
"DGSpitzer/DGSpitzer-Art-Diffusion",
|
723 |
+
"stablediffusionapi/emotion-puppeteer-v2",
|
724 |
+
"stablediffusionapi/fengjing",
|
725 |
+
"stablediffusionapi/fuwafuwamix",
|
726 |
+
"Fred99774/girlnew1",
|
727 |
+
"stablediffusionapi/majicmixrealistic",
|
728 |
+
"badmonk/nxka",
|
729 |
+
"ItsJayQz/SynthwavePunk-v2",
|
730 |
+
"zhyemmmm/ToonYou",
|
731 |
+
"stablediffusionapi/uber-realistic-merge",
|
732 |
+
"stablediffusionapi/vne732h9dh4",
|
733 |
+
"stablediffusionapi/wand-magic2",
|
734 |
+
"stablediffusionapi/waifu-journey-2",
|
735 |
+
"stablediffusionapi/zovya",
|
736 |
+
|
737 |
+
"Guizmus/SDArt_cosmichorrors768",
|
738 |
+
"stablediffusionapi/counterfeit-v30",
|
739 |
+
"stablediffusionapi/amireal",
|
740 |
+
#"JamesFlare/pastel-mix", #"andite/pastel-mix",
|
741 |
+
"stablediffusionapi/rev-anim",
|
742 |
+
"aipicasso/picasso-diffusion-1-1",
|
743 |
+
"xiaolxl/Gf_style2",
|
744 |
+
"circulus/sd-semireal-v2.8",
|
745 |
+
"Crosstyan/BPModel", #07.11
|
746 |
+
|
747 |
+
"digiplay/Dusk-1",
|
748 |
+
"ogkalu/Comic-Diffusion",
|
749 |
+
"Guizmus/SDArt_ChaosAndOrder768",
|
750 |
+
"gsdf/Counterfeit-V2.0",
|
751 |
+
"dwancin/memoji", #07.11
|
752 |
+
"nousr/robo-diffusion-2-base",
|
753 |
+
|
754 |
+
##"hakurei/waifu-diffusion",
|
755 |
+
"WarriorMama777/AbyssOrangeMix2",
|
756 |
+
"stablediffusionapi/abyssorangemix2nsfw", #200
|
757 |
+
##"cag/anything-v3-1",
|
758 |
+
"iZELX1/Anything-V3-X",
|
759 |
+
"xyn-ai/anything-v4.0", #"andite/anything-v4.0",
|
760 |
+
#"D1b4l4p/AsianMix",
|
761 |
+
#"Fred99774/chilloutvlara",
|
762 |
+
"aipicasso/cool-japan-diffusion-2-1-2",
|
763 |
+
"stablediffusionapi/corneos-7th-heaven-m", #196
|
764 |
+
"DGSpitzer/Cyberpunk-Anime-Diffusion",
|
765 |
+
"stablediffusionapi/dark-sushi-mix",
|
766 |
+
"joachimsallstrom/Double-Exposure-Diffusion",
|
767 |
+
"eimiss/EimisAnimeDiffusion_1.0v",
|
768 |
+
#"prompthero/funko-diffusion",
|
769 |
+
"nitrosocke/Ghibli-Diffusion",
|
770 |
+
###"iZELX1/Grapefruit",
|
771 |
+
"xiaolxl/GuoFeng3",
|
772 |
+
"stablediffusionapi/tmnd-mix",
|
773 |
+
"coder119/Vectorartz_Diffusion", #203
|
774 |
+
|
775 |
+
"WarriorMama777/AbyssOrangeMix",
|
776 |
+
"AIARTCHAN/7pa",
|
777 |
+
"JosephusCheung/ACertainModel",
|
778 |
+
"JosephusCheung/ACertainThing",
|
779 |
+
"JosephusCheung/ACertainty",
|
780 |
+
"AIARTCHAN/AbyssHellVer3",
|
781 |
+
"AIARTCHAN/AbyssMapleVer3",
|
782 |
+
"stablediffusionapi/abyssorangemixsfw",
|
783 |
+
"AIARTCHAN/anidosmixV2",
|
784 |
+
"stablediffusionapi/anime-model-v2",
|
785 |
+
"kubanemil/AnyLORA",
|
786 |
+
"stablediffusionapi/hc-anything-v3-vae", #231
|
787 |
+
"mm00/anything-v3.0-light",
|
788 |
+
"stablediffusionapi/anythingelse-v4",
|
789 |
+
"stablediffusionapi/anything-v45-fixed",
|
790 |
+
"stablediffusionapi/anything-v5",
|
791 |
+
"nitrosocke/Arcane-Diffusion",
|
792 |
+
"nitrosocke/archer-diffusion",
|
793 |
+
"stablediffusionapi/architecture-tuned-model",
|
794 |
+
"WarriorMama777/BloodOrangeMix",
|
795 |
+
"wavymulder/collage-diffusion",
|
796 |
+
"stablediffusionapi/camelliamixline",
|
797 |
+
"digiplay/CiderMix_ciderR", #260
|
798 |
+
"Johnhex/Clam", #243
|
799 |
+
"stablediffusionapi/cosmic-babes",
|
800 |
+
"digiplay/CoffeeDonut_v1",
|
801 |
+
"stablediffusionapi/dark-sushi-25d",
|
802 |
+
"digiplay/Defacta_v1_diffusers", #226
|
803 |
+
## "WarriorMama777/EerieOrangeMix",
|
804 |
+
"digiplay/DuelAnimeMix_v1", #225
|
805 |
+
"Envvi/Inkpunk-Diffusion",
|
806 |
+
"digiplay/kotosmix_diffusers", #229
|
807 |
+
"stablediffusionapi/meinaalter",
|
808 |
+
"Nacholmo/meinamixv7-diffusers",
|
809 |
+
"stablediffusionapi/meinapastel",
|
810 |
+
"AIARTCHAN/MIX-Pro-V4",
|
811 |
+
"stablediffusionapi/shirataki-mix", #191
|
812 |
+
"NoCrypt/SomethingV2_2",
|
813 |
+
"NoCrypt/SomethingV2",
|
814 |
+
"badmonk/sxzumi",
|
815 |
+
## "stablediffusionapi/three-delicacy",
|
816 |
+
## "stablediffusionapi/three-delicacy-wonto",
|
817 |
+
"etherealxx/systemy-csrmodel-cutesexyrobutts", #"andite/cutesexyrobutts-diffusion",
|
818 |
+
"sd-dreambooth-library/true-guweiz-style", # "andite/guweiz-diffusion",
|
819 |
+
"stablediffusionapi/vector-art", #198
|
820 |
+
"digiplay/xxMix_4",
|
821 |
+
###"mio/hiten", #"andite/hiten-diffusion",
|
822 |
+
### "andite/mashuu-diffusion",
|
823 |
+
### "andite/mignon-diffusion",
|
824 |
+
### "andite/mikapikazo-diffusion",
|
825 |
+
### "andite/piromizu-diffusion",
|
826 |
+
"digiplay/Zevinemix_v1.0/",
|
827 |
+
|
828 |
+
"digiplay/AnaMix_v2", #07.11
|
829 |
+
"stablediffusionapi/animetestmodelv3",
|
830 |
+
"yulet1de/anything", #232
|
831 |
+
"hakurei/artstation-diffusion", #07.11
|
832 |
+
"Fictiverse/Stable_Diffusion_BalloonArt_Model",
|
833 |
+
"stablediffusionapi/bg-dream-irl",
|
834 |
+
"stablediffusionapi/bg-dream-model-b", #193
|
835 |
+
"Rardilit/Ciffusion_v0.1",
|
836 |
+
"circulus/sd-anireal-2d-v2",
|
837 |
+
"circulus/sd-photoreal-v2.7",
|
838 |
+
"circulus/sd-photoreal-photo-v2",
|
839 |
+
"circulus/sd-anireal-2.5d-v2",
|
840 |
+
"circulus/sd-anireal-v2.5",
|
841 |
+
"circulus/sd-photoreal-semi-v2",
|
842 |
+
"circulus/sd-photoreal-real-v2",
|
843 |
+
"circulus/sd-photoreal-v2.5",
|
844 |
+
"circulus/sd-anireal-3d-v2",
|
845 |
+
"circulus/sd-anireal-v2.8",
|
846 |
+
"nitrosocke/classic-anim-diffusion",
|
847 |
+
"Conflictx/Complex-Lineart", #245
|
848 |
+
"justinpinkney/pokemon-stable-diffusion",
|
849 |
+
"nitrosocke/elden-ring-diffusion",
|
850 |
+
"digiplay/EtherBluMix_1", #07.11
|
851 |
+
"digiplay/fantasticmix_v40_test", #261
|
852 |
+
"theintuitiveye/FantasyMix",
|
853 |
+
"Fictiverse/Stable_Diffusion_FluidArt_Model",
|
854 |
+
"nitrosocke/Future-Diffusion",
|
855 |
+
"ItsJayQz/GTA5_Artwork_Diffusion", #205
|
856 |
+
"TheLastBen/hrrzg-style-768px", #246
|
857 |
+
"nevernotsean/IllustratedPaperMini", #242
|
858 |
+
"dallinmackay/JWST-Deep-Space-diffusion",
|
859 |
+
#"prompthero/linkedin-diffusion",
|
860 |
+
"mann-e/mann-e_4_rev-0-1", #210
|
861 |
+
"ItsJayQz/Marvel_WhatIf_Diffusion", #206
|
862 |
+
"yuanbit/max-15-1e-6-1500",
|
863 |
+
"MyneFactory/MF-Base", #248
|
864 |
+
"Fictiverse/Stable_Diffusion_Microscopic_model", #249
|
865 |
+
"nitrosocke/mo-di-diffusion",
|
866 |
+
"luongphamit/NeverEnding-Dream2", #241
|
867 |
+
"Vernon-2/output_test",
|
868 |
+
"Fictiverse/Stable_Diffusion_PaperCut_Model",
|
869 |
+
"bsuutari/path_to_saved_model",
|
870 |
+
"bsuutari/path_to_saved_model_rafa",
|
871 |
+
"lambdalabs/sd-pokemon-diffusers", #202
|
872 |
+
"prompthero/poolsuite-diffusion",
|
873 |
+
"digiplay/RealismEngine_v1",
|
874 |
+
"nitrosocke/redshift-diffusion",
|
875 |
+
"nitrosocke/redshift-diffusion-768",
|
876 |
+
"nousr/robo-diffusion",
|
877 |
+
"digiplay/SDVN1-Real_v1", #255
|
878 |
+
"nitrosocke/spider-verse-diffusion",
|
879 |
+
#"runwayml/stable-diffusion-v1-5",
|
880 |
+
"nicky007/stable-diffusion-logo-fine-tuned",
|
881 |
+
"stablediffusionapi/three-delicacy", #233
|
882 |
+
"stablediffusionapi/three-delicacy-wonto", #234
|
883 |
+
"naclbit/trinart_stable_diffusion_v2",
|
884 |
+
"dallinmackay/Tron-Legacy-diffusion",
|
885 |
+
"digiplay/unstableDiffusersYamerMIX_v3",
|
886 |
+
"dallinmackay/Van-Gogh-diffusion",
|
887 |
+
"ItsJayQz/Valorant_Diffusion",
|
888 |
+
"Fictiverse/Stable_Diffusion_VoxelArt_Model", #204
|
889 |
+
"wavymulder/wavyfusion",
|
890 |
+
"Yntec/HassanRemix",
|
891 |
+
"Yntec/Reddit",
|
892 |
+
"Yntec/CinematicReality",
|
893 |
+
"runwayml/stable-diffusion-v1-5", #555
|
894 |
+
"CompVis/stable-diffusion-v1-4", #530
|
895 |
+
"CompVis/stable-diffusion-v1-3", #207
|
896 |
+
"CompVis/stable-diffusion-v1-2", #208
|
897 |
+
"CompVis/stable-diffusion-v1-1", #209
|
898 |
+
]
|
app.py
ADDED
@@ -0,0 +1,167 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
from random import randint
|
3 |
+
from all_models import models
|
4 |
+
from externalmod import gr_Interface_load
|
5 |
+
import asyncio
|
6 |
+
from threading import RLock
|
7 |
+
lock = RLock()
|
8 |
+
|
9 |
+
def load_fn(models):
|
10 |
+
global models_load
|
11 |
+
models_load = {}
|
12 |
+
|
13 |
+
for model in models:
|
14 |
+
if model not in models_load.keys():
|
15 |
+
try:
|
16 |
+
m = gr_Interface_load(f'models/{model}')
|
17 |
+
except Exception as error:
|
18 |
+
print(error)
|
19 |
+
m = gr.Interface(lambda: None, ['text'], ['image'])
|
20 |
+
models_load.update({model: m})
|
21 |
+
|
22 |
+
|
23 |
+
load_fn(models)
|
24 |
+
|
25 |
+
|
26 |
+
num_models = 6
|
27 |
+
default_models = models[:num_models]
|
28 |
+
timeout = 60
|
29 |
+
|
30 |
+
def extend_choices(choices):
|
31 |
+
return choices[:num_models] + (num_models - len(choices[:num_models])) * ['NA']
|
32 |
+
|
33 |
+
|
34 |
+
def update_imgbox(choices):
|
35 |
+
choices_plus = extend_choices(choices[:num_models])
|
36 |
+
return [gr.Image(None, label = m, visible = (m != 'NA')) for m in choices_plus]
|
37 |
+
|
38 |
+
|
39 |
+
def update_imgbox_gallery(choices):
|
40 |
+
choices_plus = extend_choices(choices[:num_models])
|
41 |
+
return [gr.Gallery(None, label = m, visible = (m != 'NA')) for m in choices_plus]
|
42 |
+
|
43 |
+
|
44 |
+
async def infer(model_str, prompt, timeout):
|
45 |
+
noise = ""
|
46 |
+
rand = randint(1, 500)
|
47 |
+
for i in range(rand):
|
48 |
+
noise += " "
|
49 |
+
task = asyncio.create_task(asyncio.to_thread(models_load[model_str], f'{prompt} {noise}'))
|
50 |
+
await asyncio.sleep(0)
|
51 |
+
try:
|
52 |
+
result = await asyncio.wait_for(task, timeout=timeout)
|
53 |
+
except (Exception, asyncio.TimeoutError) as e:
|
54 |
+
print(e)
|
55 |
+
print(f"Task timed-out: {model_str}")
|
56 |
+
if not task.done(): task.cancel()
|
57 |
+
result = None
|
58 |
+
return result
|
59 |
+
|
60 |
+
|
61 |
+
def gen_fn(model_str, prompt):
|
62 |
+
if model_str == 'NA':
|
63 |
+
return None
|
64 |
+
try:
|
65 |
+
loop = asyncio.new_event_loop()
|
66 |
+
result = loop.run_until_complete(infer(model_str, prompt, timeout))
|
67 |
+
except (Exception, asyncio.CancelledError) as e:
|
68 |
+
print(e)
|
69 |
+
print(f"Task aborted: {model_str}")
|
70 |
+
result = None
|
71 |
+
finally:
|
72 |
+
loop.close()
|
73 |
+
return result
|
74 |
+
|
75 |
+
|
76 |
+
def gen_fn_single_gallery(model_str, prompt):
|
77 |
+
if model_str == 'NA':
|
78 |
+
return None, gr.update(visible=True)
|
79 |
+
try:
|
80 |
+
loop = asyncio.new_event_loop()
|
81 |
+
result = loop.run_until_complete(infer(model_str, prompt, timeout))
|
82 |
+
except (Exception, asyncio.CancelledError) as e:
|
83 |
+
print(e)
|
84 |
+
print(f"Task aborted: {model_str}")
|
85 |
+
result = None
|
86 |
+
finally:
|
87 |
+
loop.close()
|
88 |
+
return result, gr.update(visible=True)
|
89 |
+
|
90 |
+
|
91 |
+
def add_gallery(image, model_str, gallery):
|
92 |
+
if gallery is None: gallery = []
|
93 |
+
with lock:
|
94 |
+
gallery.append((image, model_str))
|
95 |
+
return gallery
|
96 |
+
|
97 |
+
|
98 |
+
def gen_fn_gallery(model_str, prompt, gallery):
|
99 |
+
if gallery is None: gallery = []
|
100 |
+
if model_str == 'NA':
|
101 |
+
yield gallery
|
102 |
+
try:
|
103 |
+
loop = asyncio.new_event_loop()
|
104 |
+
result = loop.run_until_complete(infer(model_str, prompt, timeout))
|
105 |
+
with lock:
|
106 |
+
if result: gallery.append(result)
|
107 |
+
except (Exception, asyncio.CancelledError) as e:
|
108 |
+
print(e)
|
109 |
+
print(f"Task aborted: {model_str}")
|
110 |
+
finally:
|
111 |
+
loop.close()
|
112 |
+
yield gallery
|
113 |
+
|
114 |
+
|
115 |
+
CSS="""
|
116 |
+
.output { width=120px; height=120px !important; }
|
117 |
+
"""
|
118 |
+
|
119 |
+
with gr.Blocks(css=CSS) as demo:
|
120 |
+
with gr.Tab('The Dream'):
|
121 |
+
txt_input = gr.Textbox(label = 'Your prompt:', lines=4) #.style(container=False,min_width=1200)
|
122 |
+
with gr.Row():
|
123 |
+
gen_button = gr.Button('Generate up to 6 images in up to 3 minutes total', scale=2)
|
124 |
+
stop_button = gr.Button('Stop', variant = 'secondary', interactive = False, scale=1)
|
125 |
+
gen_button.click(lambda: gr.update(interactive = True), None, stop_button)
|
126 |
+
gr.HTML(
|
127 |
+
"""
|
128 |
+
<div style="text-align: center; max-width: 1200px; margin: 0 auto;">
|
129 |
+
<div>
|
130 |
+
<body>
|
131 |
+
<div class="center"><p style="margin-bottom: 10px; color: #000000;">Scroll down to see more images and select models.</p>
|
132 |
+
</div>
|
133 |
+
</body>
|
134 |
+
</div>
|
135 |
+
</div>
|
136 |
+
"""
|
137 |
+
)
|
138 |
+
with gr.Row():
|
139 |
+
output = [gr.Image(label = m, show_download_button=True, elem_classes="output", interactive=False, show_share_button=True, visible=True) for m in default_models]
|
140 |
+
#output = [gr.Image(label = m, show_download_button=True, elem_classes="output", interactive=False, show_share_button=True) for m in default_models]
|
141 |
+
#output = [gr.Gallery(label = m, show_download_button=True, elem_classes="output", interactive=False, show_share_button=True, container=True, format="png", object_fit="cover") for m in default_models]
|
142 |
+
current_models = [gr.Textbox(m, visible = False) for m in default_models]
|
143 |
+
gallery = gr.Gallery(label="Output", show_download_button=True, elem_classes="output", interactive=False, show_share_button=True, container=True, format="png", object_fit="cover")
|
144 |
+
|
145 |
+
for m, o in zip(current_models, output):
|
146 |
+
#gen_event = gen_button.click(gen_fn, [m, txt_input], o)
|
147 |
+
#gen_event = gen_button.click(gen_fn_gallery, [m, txt_input, o], o)
|
148 |
+
gen_event = gen_button.click(gen_fn, [m, txt_input], [o])
|
149 |
+
o.change(add_gallery, [o, m, gallery], [gallery])
|
150 |
+
stop_button.click(lambda: gr.update(interactive = False), None, stop_button, cancels = [gen_event])
|
151 |
+
|
152 |
+
with gr.Accordion('Model selection'):
|
153 |
+
model_choice = gr.CheckboxGroup(models, label = f'Choose up to {num_models} different models from the 866 available!', value = default_models, interactive = True)
|
154 |
+
#model_choice.change(update_imgbox, model_choice, output)
|
155 |
+
#model_choice.change(update_imgbox_gallery, model_choice, output)
|
156 |
+
model_choice.change(extend_choices, model_choice, current_models)
|
157 |
+
with gr.Row():
|
158 |
+
gr.HTML(
|
159 |
+
"""
|
160 |
+
<div class="footer">
|
161 |
+
<p> Based on the <a href="https://huggingface.co/spaces/derwahnsinn/TestGen">TestGen</a> Space by derwahnsinn, the <a href="https://huggingface.co/spaces/RdnUser77/SpacIO_v1">SpacIO</a> Space by RdnUser77 and Omnibus's Maximum Multiplier!
|
162 |
+
</p>
|
163 |
+
"""
|
164 |
+
)
|
165 |
+
|
166 |
+
demo.queue()
|
167 |
+
demo.launch()
|
externalmod.py
ADDED
@@ -0,0 +1,531 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"""This module should not be used directly as its API is subject to change. Instead,
|
2 |
+
use the `gr.Blocks.load()` or `gr.load()` functions."""
|
3 |
+
|
4 |
+
from __future__ import annotations
|
5 |
+
|
6 |
+
import json
|
7 |
+
import os
|
8 |
+
import re
|
9 |
+
import tempfile
|
10 |
+
import warnings
|
11 |
+
from pathlib import Path
|
12 |
+
from typing import TYPE_CHECKING, Callable
|
13 |
+
|
14 |
+
import httpx
|
15 |
+
import huggingface_hub
|
16 |
+
from gradio_client import Client
|
17 |
+
from gradio_client.client import Endpoint
|
18 |
+
from gradio_client.documentation import document
|
19 |
+
from packaging import version
|
20 |
+
|
21 |
+
import gradio
|
22 |
+
from gradio import components, external_utils, utils
|
23 |
+
from gradio.context import Context
|
24 |
+
from gradio.exceptions import (
|
25 |
+
GradioVersionIncompatibleError,
|
26 |
+
ModelNotFoundError,
|
27 |
+
TooManyRequestsError,
|
28 |
+
)
|
29 |
+
from gradio.processing_utils import save_base64_to_cache, to_binary
|
30 |
+
|
31 |
+
if TYPE_CHECKING:
|
32 |
+
from gradio.blocks import Blocks
|
33 |
+
from gradio.interface import Interface
|
34 |
+
|
35 |
+
|
36 |
+
@document()
|
37 |
+
def load(
|
38 |
+
name: str,
|
39 |
+
src: str | None = None,
|
40 |
+
hf_token: str | None = None,
|
41 |
+
alias: str | None = None,
|
42 |
+
**kwargs,
|
43 |
+
) -> Blocks:
|
44 |
+
"""
|
45 |
+
Constructs a demo from a Hugging Face repo. Can accept model repos (if src is "models") or Space repos (if src is "spaces"). The input
|
46 |
+
and output components are automatically loaded from the repo. Note that if a Space is loaded, certain high-level attributes of the Blocks (e.g.
|
47 |
+
custom `css`, `js`, and `head` attributes) will not be loaded.
|
48 |
+
Parameters:
|
49 |
+
name: the name of the model (e.g. "gpt2" or "facebook/bart-base") or space (e.g. "flax-community/spanish-gpt2"), can include the `src` as prefix (e.g. "models/facebook/bart-base")
|
50 |
+
src: the source of the model: `models` or `spaces` (or leave empty if source is provided as a prefix in `name`)
|
51 |
+
hf_token: optional access token for loading private Hugging Face Hub models or spaces. Find your token here: https://huggingface.co/settings/tokens. Warning: only provide this if you are loading a trusted private Space as it can be read by the Space you are loading.
|
52 |
+
alias: optional string used as the name of the loaded model instead of the default name (only applies if loading a Space running Gradio 2.x)
|
53 |
+
Returns:
|
54 |
+
a Gradio Blocks object for the given model
|
55 |
+
Example:
|
56 |
+
import gradio as gr
|
57 |
+
demo = gr.load("gradio/question-answering", src="spaces")
|
58 |
+
demo.launch()
|
59 |
+
"""
|
60 |
+
return load_blocks_from_repo(
|
61 |
+
name=name, src=src, hf_token=hf_token, alias=alias, **kwargs
|
62 |
+
)
|
63 |
+
|
64 |
+
|
65 |
+
def load_blocks_from_repo(
|
66 |
+
name: str,
|
67 |
+
src: str | None = None,
|
68 |
+
hf_token: str | None = None,
|
69 |
+
alias: str | None = None,
|
70 |
+
**kwargs,
|
71 |
+
) -> Blocks:
|
72 |
+
"""Creates and returns a Blocks instance from a Hugging Face model or Space repo."""
|
73 |
+
if src is None:
|
74 |
+
# Separate the repo type (e.g. "model") from repo name (e.g. "google/vit-base-patch16-224")
|
75 |
+
tokens = name.split("/")
|
76 |
+
if len(tokens) <= 1:
|
77 |
+
raise ValueError(
|
78 |
+
"Either `src` parameter must be provided, or `name` must be formatted as {src}/{repo name}"
|
79 |
+
)
|
80 |
+
src = tokens[0]
|
81 |
+
name = "/".join(tokens[1:])
|
82 |
+
|
83 |
+
factory_methods: dict[str, Callable] = {
|
84 |
+
# for each repo type, we have a method that returns the Interface given the model name & optionally an hf_token
|
85 |
+
"huggingface": from_model,
|
86 |
+
"models": from_model,
|
87 |
+
"spaces": from_spaces,
|
88 |
+
}
|
89 |
+
if src.lower() not in factory_methods:
|
90 |
+
raise ValueError(f"parameter: src must be one of {factory_methods.keys()}")
|
91 |
+
|
92 |
+
if hf_token is not None:
|
93 |
+
if Context.hf_token is not None and Context.hf_token != hf_token:
|
94 |
+
warnings.warn(
|
95 |
+
"""You are loading a model/Space with a different access token than the one you used to load a previous model/Space. This is not recommended, as it may cause unexpected behavior."""
|
96 |
+
)
|
97 |
+
Context.hf_token = hf_token
|
98 |
+
|
99 |
+
blocks: gradio.Blocks = factory_methods[src](name, hf_token, alias, **kwargs)
|
100 |
+
return blocks
|
101 |
+
|
102 |
+
|
103 |
+
def from_model(model_name: str, hf_token: str | None, alias: str | None, **kwargs):
|
104 |
+
model_url = f"https://huggingface.co/{model_name}"
|
105 |
+
api_url = f"https://api-inference.huggingface.co/models/{model_name}"
|
106 |
+
print(f"Fetching model from: {model_url}")
|
107 |
+
|
108 |
+
headers = {"Authorization": f"Bearer {hf_token}"} if hf_token is not None else {}
|
109 |
+
response = httpx.request("GET", api_url, headers=headers)
|
110 |
+
if response.status_code != 200:
|
111 |
+
raise ModelNotFoundError(
|
112 |
+
f"Could not find model: {model_name}. If it is a private or gated model, please provide your Hugging Face access token (https://huggingface.co/settings/tokens) as the argument for the `hf_token` parameter."
|
113 |
+
)
|
114 |
+
p = response.json().get("pipeline_tag")
|
115 |
+
|
116 |
+
headers["X-Wait-For-Model"] = "true"
|
117 |
+
client = huggingface_hub.InferenceClient(
|
118 |
+
model=model_name, headers=headers, token=hf_token, timeout=120,
|
119 |
+
)
|
120 |
+
|
121 |
+
# For tasks that are not yet supported by the InferenceClient
|
122 |
+
GRADIO_CACHE = os.environ.get("GRADIO_TEMP_DIR") or str( # noqa: N806
|
123 |
+
Path(tempfile.gettempdir()) / "gradio"
|
124 |
+
)
|
125 |
+
|
126 |
+
def custom_post_binary(data):
|
127 |
+
data = to_binary({"path": data})
|
128 |
+
response = httpx.request("POST", api_url, headers=headers, content=data)
|
129 |
+
return save_base64_to_cache(
|
130 |
+
external_utils.encode_to_base64(response), cache_dir=GRADIO_CACHE
|
131 |
+
)
|
132 |
+
|
133 |
+
preprocess = None
|
134 |
+
postprocess = None
|
135 |
+
examples = None
|
136 |
+
|
137 |
+
# example model: ehcalabres/wav2vec2-lg-xlsr-en-speech-emotion-recognition
|
138 |
+
if p == "audio-classification":
|
139 |
+
inputs = components.Audio(type="filepath", label="Input")
|
140 |
+
outputs = components.Label(label="Class")
|
141 |
+
postprocess = external_utils.postprocess_label
|
142 |
+
examples = [
|
143 |
+
"https://gradio-builds.s3.amazonaws.com/demo-files/audio_sample.wav"
|
144 |
+
]
|
145 |
+
fn = client.audio_classification
|
146 |
+
# example model: facebook/xm_transformer_sm_all-en
|
147 |
+
elif p == "audio-to-audio":
|
148 |
+
inputs = components.Audio(type="filepath", label="Input")
|
149 |
+
outputs = components.Audio(label="Output")
|
150 |
+
examples = [
|
151 |
+
"https://gradio-builds.s3.amazonaws.com/demo-files/audio_sample.wav"
|
152 |
+
]
|
153 |
+
fn = custom_post_binary
|
154 |
+
# example model: facebook/wav2vec2-base-960h
|
155 |
+
elif p == "automatic-speech-recognition":
|
156 |
+
inputs = components.Audio(type="filepath", label="Input")
|
157 |
+
outputs = components.Textbox(label="Output")
|
158 |
+
examples = [
|
159 |
+
"https://gradio-builds.s3.amazonaws.com/demo-files/audio_sample.wav"
|
160 |
+
]
|
161 |
+
fn = client.automatic_speech_recognition
|
162 |
+
# example model: microsoft/DialoGPT-medium
|
163 |
+
elif p == "conversational":
|
164 |
+
inputs = [
|
165 |
+
components.Textbox(render=False),
|
166 |
+
components.State(render=False),
|
167 |
+
]
|
168 |
+
outputs = [
|
169 |
+
components.Chatbot(render=False),
|
170 |
+
components.State(render=False),
|
171 |
+
]
|
172 |
+
examples = [["Hello World"]]
|
173 |
+
preprocess = external_utils.chatbot_preprocess
|
174 |
+
postprocess = external_utils.chatbot_postprocess
|
175 |
+
fn = client.conversational
|
176 |
+
# example model: julien-c/distilbert-feature-extraction
|
177 |
+
elif p == "feature-extraction":
|
178 |
+
inputs = components.Textbox(label="Input")
|
179 |
+
outputs = components.Dataframe(label="Output")
|
180 |
+
fn = client.feature_extraction
|
181 |
+
postprocess = utils.resolve_singleton
|
182 |
+
# example model: distilbert/distilbert-base-uncased
|
183 |
+
elif p == "fill-mask":
|
184 |
+
inputs = components.Textbox(label="Input")
|
185 |
+
outputs = components.Label(label="Classification")
|
186 |
+
examples = [
|
187 |
+
"Hugging Face is the AI community, working together, to [MASK] the future."
|
188 |
+
]
|
189 |
+
postprocess = external_utils.postprocess_mask_tokens
|
190 |
+
fn = client.fill_mask
|
191 |
+
# Example: google/vit-base-patch16-224
|
192 |
+
elif p == "image-classification":
|
193 |
+
inputs = components.Image(type="filepath", label="Input Image")
|
194 |
+
outputs = components.Label(label="Classification")
|
195 |
+
postprocess = external_utils.postprocess_label
|
196 |
+
examples = ["https://gradio-builds.s3.amazonaws.com/demo-files/cheetah-002.jpg"]
|
197 |
+
fn = client.image_classification
|
198 |
+
# Example: deepset/xlm-roberta-base-squad2
|
199 |
+
elif p == "question-answering":
|
200 |
+
inputs = [
|
201 |
+
components.Textbox(label="Question"),
|
202 |
+
components.Textbox(lines=7, label="Context"),
|
203 |
+
]
|
204 |
+
outputs = [
|
205 |
+
components.Textbox(label="Answer"),
|
206 |
+
components.Label(label="Score"),
|
207 |
+
]
|
208 |
+
examples = [
|
209 |
+
[
|
210 |
+
"What entity was responsible for the Apollo program?",
|
211 |
+
"The Apollo program, also known as Project Apollo, was the third United States human spaceflight"
|
212 |
+
" program carried out by the National Aeronautics and Space Administration (NASA), which accomplished"
|
213 |
+
" landing the first humans on the Moon from 1969 to 1972.",
|
214 |
+
]
|
215 |
+
]
|
216 |
+
postprocess = external_utils.postprocess_question_answering
|
217 |
+
fn = client.question_answering
|
218 |
+
# Example: facebook/bart-large-cnn
|
219 |
+
elif p == "summarization":
|
220 |
+
inputs = components.Textbox(label="Input")
|
221 |
+
outputs = components.Textbox(label="Summary")
|
222 |
+
examples = [
|
223 |
+
[
|
224 |
+
"The tower is 324 metres (1,063 ft) tall, about the same height as an 81-storey building, and the tallest structure in Paris. Its base is square, measuring 125 metres (410 ft) on each side. During its construction, the Eiffel Tower surpassed the Washington Monument to become the tallest man-made structure in the world, a title it held for 41 years until the Chrysler Building in New York City was finished in 1930. It was the first structure to reach a height of 300 metres. Due to the addition of a broadcasting aerial at the top of the tower in 1957, it is now taller than the Chrysler Building by 5.2 metres (17 ft). Excluding transmitters, the Eiffel Tower is the second tallest free-standing structure in France after the Millau Viaduct."
|
225 |
+
]
|
226 |
+
]
|
227 |
+
fn = client.summarization
|
228 |
+
# Example: distilbert-base-uncased-finetuned-sst-2-english
|
229 |
+
elif p == "text-classification":
|
230 |
+
inputs = components.Textbox(label="Input")
|
231 |
+
outputs = components.Label(label="Classification")
|
232 |
+
examples = ["I feel great"]
|
233 |
+
postprocess = external_utils.postprocess_label
|
234 |
+
fn = client.text_classification
|
235 |
+
# Example: gpt2
|
236 |
+
elif p == "text-generation":
|
237 |
+
inputs = components.Textbox(label="Text")
|
238 |
+
outputs = inputs
|
239 |
+
examples = ["Once upon a time"]
|
240 |
+
fn = external_utils.text_generation_wrapper(client)
|
241 |
+
# Example: valhalla/t5-small-qa-qg-hl
|
242 |
+
elif p == "text2text-generation":
|
243 |
+
inputs = components.Textbox(label="Input")
|
244 |
+
outputs = components.Textbox(label="Generated Text")
|
245 |
+
examples = ["Translate English to Arabic: How are you?"]
|
246 |
+
fn = client.text_generation
|
247 |
+
# Example: Helsinki-NLP/opus-mt-en-ar
|
248 |
+
elif p == "translation":
|
249 |
+
inputs = components.Textbox(label="Input")
|
250 |
+
outputs = components.Textbox(label="Translation")
|
251 |
+
examples = ["Hello, how are you?"]
|
252 |
+
fn = client.translation
|
253 |
+
# Example: facebook/bart-large-mnli
|
254 |
+
elif p == "zero-shot-classification":
|
255 |
+
inputs = [
|
256 |
+
components.Textbox(label="Input"),
|
257 |
+
components.Textbox(label="Possible class names (" "comma-separated)"),
|
258 |
+
components.Checkbox(label="Allow multiple true classes"),
|
259 |
+
]
|
260 |
+
outputs = components.Label(label="Classification")
|
261 |
+
postprocess = external_utils.postprocess_label
|
262 |
+
examples = [["I feel great", "happy, sad", False]]
|
263 |
+
fn = external_utils.zero_shot_classification_wrapper(client)
|
264 |
+
# Example: sentence-transformers/distilbert-base-nli-stsb-mean-tokens
|
265 |
+
elif p == "sentence-similarity":
|
266 |
+
inputs = [
|
267 |
+
components.Textbox(
|
268 |
+
label="Source Sentence",
|
269 |
+
placeholder="Enter an original sentence",
|
270 |
+
),
|
271 |
+
components.Textbox(
|
272 |
+
lines=7,
|
273 |
+
placeholder="Sentences to compare to -- separate each sentence by a newline",
|
274 |
+
label="Sentences to compare to",
|
275 |
+
),
|
276 |
+
]
|
277 |
+
outputs = components.JSON(label="Similarity scores")
|
278 |
+
examples = [["That is a happy person", "That person is very happy"]]
|
279 |
+
fn = external_utils.sentence_similarity_wrapper(client)
|
280 |
+
# Example: julien-c/ljspeech_tts_train_tacotron2_raw_phn_tacotron_g2p_en_no_space_train
|
281 |
+
elif p == "text-to-speech":
|
282 |
+
inputs = components.Textbox(label="Input")
|
283 |
+
outputs = components.Audio(label="Audio")
|
284 |
+
examples = ["Hello, how are you?"]
|
285 |
+
fn = client.text_to_speech
|
286 |
+
# example model: osanseviero/BigGAN-deep-128
|
287 |
+
elif p == "text-to-image":
|
288 |
+
inputs = components.Textbox(label="Input")
|
289 |
+
outputs = components.Image(label="Output")
|
290 |
+
examples = ["A beautiful sunset"]
|
291 |
+
fn = client.text_to_image
|
292 |
+
# example model: huggingface-course/bert-finetuned-ner
|
293 |
+
elif p == "token-classification":
|
294 |
+
inputs = components.Textbox(label="Input")
|
295 |
+
outputs = components.HighlightedText(label="Output")
|
296 |
+
examples = [
|
297 |
+
"Hugging Face is a company based in Paris and New York City that acquired Gradio in 2021."
|
298 |
+
]
|
299 |
+
fn = external_utils.token_classification_wrapper(client)
|
300 |
+
# example model: impira/layoutlm-document-qa
|
301 |
+
elif p == "document-question-answering":
|
302 |
+
inputs = [
|
303 |
+
components.Image(type="filepath", label="Input Document"),
|
304 |
+
components.Textbox(label="Question"),
|
305 |
+
]
|
306 |
+
postprocess = external_utils.postprocess_label
|
307 |
+
outputs = components.Label(label="Label")
|
308 |
+
fn = client.document_question_answering
|
309 |
+
# example model: dandelin/vilt-b32-finetuned-vqa
|
310 |
+
elif p == "visual-question-answering":
|
311 |
+
inputs = [
|
312 |
+
components.Image(type="filepath", label="Input Image"),
|
313 |
+
components.Textbox(label="Question"),
|
314 |
+
]
|
315 |
+
outputs = components.Label(label="Label")
|
316 |
+
postprocess = external_utils.postprocess_visual_question_answering
|
317 |
+
examples = [
|
318 |
+
[
|
319 |
+
"https://gradio-builds.s3.amazonaws.com/demo-files/cheetah-002.jpg",
|
320 |
+
"What animal is in the image?",
|
321 |
+
]
|
322 |
+
]
|
323 |
+
fn = client.visual_question_answering
|
324 |
+
# example model: Salesforce/blip-image-captioning-base
|
325 |
+
elif p == "image-to-text":
|
326 |
+
inputs = components.Image(type="filepath", label="Input Image")
|
327 |
+
outputs = components.Textbox(label="Generated Text")
|
328 |
+
examples = ["https://gradio-builds.s3.amazonaws.com/demo-files/cheetah-002.jpg"]
|
329 |
+
fn = client.image_to_text
|
330 |
+
# example model: rajistics/autotrain-Adult-934630783
|
331 |
+
elif p in ["tabular-classification", "tabular-regression"]:
|
332 |
+
examples = external_utils.get_tabular_examples(model_name)
|
333 |
+
col_names, examples = external_utils.cols_to_rows(examples) # type: ignore
|
334 |
+
examples = [[examples]] if examples else None
|
335 |
+
inputs = components.Dataframe(
|
336 |
+
label="Input Rows",
|
337 |
+
type="pandas",
|
338 |
+
headers=col_names,
|
339 |
+
col_count=(len(col_names), "fixed"),
|
340 |
+
render=False,
|
341 |
+
)
|
342 |
+
outputs = components.Dataframe(
|
343 |
+
label="Predictions", type="array", headers=["prediction"]
|
344 |
+
)
|
345 |
+
fn = external_utils.tabular_wrapper
|
346 |
+
# example model: microsoft/table-transformer-detection
|
347 |
+
elif p == "object-detection":
|
348 |
+
inputs = components.Image(type="filepath", label="Input Image")
|
349 |
+
outputs = components.AnnotatedImage(label="Annotations")
|
350 |
+
fn = external_utils.object_detection_wrapper(client)
|
351 |
+
# example model: stabilityai/stable-diffusion-xl-refiner-1.0
|
352 |
+
elif p == "image-to-image":
|
353 |
+
inputs = [
|
354 |
+
components.Image(type="filepath", label="Input Image"),
|
355 |
+
components.Textbox(label="Input"),
|
356 |
+
]
|
357 |
+
outputs = components.Image(label="Output")
|
358 |
+
examples = [
|
359 |
+
[
|
360 |
+
"https://gradio-builds.s3.amazonaws.com/demo-files/cheetah-002.jpg",
|
361 |
+
"Photo of a cheetah with green eyes",
|
362 |
+
]
|
363 |
+
]
|
364 |
+
fn = client.image_to_image
|
365 |
+
else:
|
366 |
+
raise ValueError(f"Unsupported pipeline type: {p}")
|
367 |
+
|
368 |
+
def query_huggingface_inference_endpoints(*data):
|
369 |
+
if preprocess is not None:
|
370 |
+
data = preprocess(*data)
|
371 |
+
data = fn(*data) # type: ignore
|
372 |
+
if postprocess is not None:
|
373 |
+
data = postprocess(data) # type: ignore
|
374 |
+
return data
|
375 |
+
|
376 |
+
query_huggingface_inference_endpoints.__name__ = alias or model_name
|
377 |
+
|
378 |
+
interface_info = {
|
379 |
+
"fn": query_huggingface_inference_endpoints,
|
380 |
+
"inputs": inputs,
|
381 |
+
"outputs": outputs,
|
382 |
+
"title": model_name,
|
383 |
+
# "examples": examples,
|
384 |
+
}
|
385 |
+
|
386 |
+
kwargs = dict(interface_info, **kwargs)
|
387 |
+
interface = gradio.Interface(**kwargs)
|
388 |
+
return interface
|
389 |
+
|
390 |
+
|
391 |
+
def from_spaces(
|
392 |
+
space_name: str, hf_token: str | None, alias: str | None, **kwargs
|
393 |
+
) -> Blocks:
|
394 |
+
client = Client(
|
395 |
+
space_name,
|
396 |
+
hf_token=hf_token,
|
397 |
+
download_files=False,
|
398 |
+
_skip_components=False,
|
399 |
+
)
|
400 |
+
|
401 |
+
space_url = f"https://huggingface.co/spaces/{space_name}"
|
402 |
+
|
403 |
+
print(f"Fetching Space from: {space_url}")
|
404 |
+
|
405 |
+
headers = {}
|
406 |
+
if hf_token is not None:
|
407 |
+
headers["Authorization"] = f"Bearer {hf_token}"
|
408 |
+
|
409 |
+
iframe_url = (
|
410 |
+
httpx.get(
|
411 |
+
f"https://huggingface.co/api/spaces/{space_name}/host", headers=headers
|
412 |
+
)
|
413 |
+
.json()
|
414 |
+
.get("host")
|
415 |
+
)
|
416 |
+
|
417 |
+
if iframe_url is None:
|
418 |
+
raise ValueError(
|
419 |
+
f"Could not find Space: {space_name}. If it is a private or gated Space, please provide your Hugging Face access token (https://huggingface.co/settings/tokens) as the argument for the `hf_token` parameter."
|
420 |
+
)
|
421 |
+
|
422 |
+
r = httpx.get(iframe_url, headers=headers)
|
423 |
+
|
424 |
+
result = re.search(
|
425 |
+
r"window.gradio_config = (.*?);[\s]*</script>", r.text
|
426 |
+
) # some basic regex to extract the config
|
427 |
+
try:
|
428 |
+
config = json.loads(result.group(1)) # type: ignore
|
429 |
+
except AttributeError as ae:
|
430 |
+
raise ValueError(f"Could not load the Space: {space_name}") from ae
|
431 |
+
if "allow_flagging" in config: # Create an Interface for Gradio 2.x Spaces
|
432 |
+
return from_spaces_interface(
|
433 |
+
space_name, config, alias, hf_token, iframe_url, **kwargs
|
434 |
+
)
|
435 |
+
else: # Create a Blocks for Gradio 3.x Spaces
|
436 |
+
if kwargs:
|
437 |
+
warnings.warn(
|
438 |
+
"You cannot override parameters for this Space by passing in kwargs. "
|
439 |
+
"Instead, please load the Space as a function and use it to create a "
|
440 |
+
"Blocks or Interface locally. You may find this Guide helpful: "
|
441 |
+
"https://gradio.app/using_blocks_like_functions/"
|
442 |
+
)
|
443 |
+
if client.app_version < version.Version("4.0.0b14"):
|
444 |
+
return from_spaces_blocks(space=space_name, hf_token=hf_token)
|
445 |
+
|
446 |
+
|
447 |
+
def from_spaces_blocks(space: str, hf_token: str | None) -> Blocks:
|
448 |
+
client = Client(
|
449 |
+
space,
|
450 |
+
hf_token=hf_token,
|
451 |
+
download_files=False,
|
452 |
+
_skip_components=False,
|
453 |
+
)
|
454 |
+
# We set deserialize to False to avoid downloading output files from the server.
|
455 |
+
# Instead, we serve them as URLs using the /proxy/ endpoint directly from the server.
|
456 |
+
|
457 |
+
if client.app_version < version.Version("4.0.0b14"):
|
458 |
+
raise GradioVersionIncompatibleError(
|
459 |
+
f"Gradio version 4.x cannot load spaces with versions less than 4.x ({client.app_version})."
|
460 |
+
"Please downgrade to version 3 to load this space."
|
461 |
+
)
|
462 |
+
|
463 |
+
# Use end_to_end_fn here to properly upload/download all files
|
464 |
+
predict_fns = []
|
465 |
+
for fn_index, endpoint in client.endpoints.items():
|
466 |
+
if not isinstance(endpoint, Endpoint):
|
467 |
+
raise TypeError(
|
468 |
+
f"Expected endpoint to be an Endpoint, but got {type(endpoint)}"
|
469 |
+
)
|
470 |
+
helper = client.new_helper(fn_index)
|
471 |
+
if endpoint.backend_fn:
|
472 |
+
predict_fns.append(endpoint.make_end_to_end_fn(helper))
|
473 |
+
else:
|
474 |
+
predict_fns.append(None)
|
475 |
+
return gradio.Blocks.from_config(client.config, predict_fns, client.src) # type: ignore
|
476 |
+
|
477 |
+
|
478 |
+
def from_spaces_interface(
|
479 |
+
model_name: str,
|
480 |
+
config: dict,
|
481 |
+
alias: str | None,
|
482 |
+
hf_token: str | None,
|
483 |
+
iframe_url: str,
|
484 |
+
**kwargs,
|
485 |
+
) -> Interface:
|
486 |
+
config = external_utils.streamline_spaces_interface(config)
|
487 |
+
api_url = f"{iframe_url}/api/predict/"
|
488 |
+
headers = {"Content-Type": "application/json"}
|
489 |
+
if hf_token is not None:
|
490 |
+
headers["Authorization"] = f"Bearer {hf_token}"
|
491 |
+
|
492 |
+
# The function should call the API with preprocessed data
|
493 |
+
def fn(*data):
|
494 |
+
data = json.dumps({"data": data})
|
495 |
+
response = httpx.post(api_url, headers=headers, data=data) # type: ignore
|
496 |
+
result = json.loads(response.content.decode("utf-8"))
|
497 |
+
if "error" in result and "429" in result["error"]:
|
498 |
+
raise TooManyRequestsError("Too many requests to the Hugging Face API")
|
499 |
+
try:
|
500 |
+
output = result["data"]
|
501 |
+
except KeyError as ke:
|
502 |
+
raise KeyError(
|
503 |
+
f"Could not find 'data' key in response from external Space. Response received: {result}"
|
504 |
+
) from ke
|
505 |
+
if (
|
506 |
+
len(config["outputs"]) == 1
|
507 |
+
): # if the fn is supposed to return a single value, pop it
|
508 |
+
output = output[0]
|
509 |
+
if (
|
510 |
+
len(config["outputs"]) == 1 and isinstance(output, list)
|
511 |
+
): # Needed to support Output.Image() returning bounding boxes as well (TODO: handle different versions of gradio since they have slightly different APIs)
|
512 |
+
output = output[0]
|
513 |
+
return output
|
514 |
+
|
515 |
+
fn.__name__ = alias if (alias is not None) else model_name
|
516 |
+
config["fn"] = fn
|
517 |
+
|
518 |
+
kwargs = dict(config, **kwargs)
|
519 |
+
kwargs["_api_mode"] = True
|
520 |
+
interface = gradio.Interface(**kwargs)
|
521 |
+
return interface
|
522 |
+
|
523 |
+
|
524 |
+
def gr_Interface_load(
|
525 |
+
name: str,
|
526 |
+
src: str | None = None,
|
527 |
+
hf_token: str | None = None,
|
528 |
+
alias: str | None = None,
|
529 |
+
**kwargs,
|
530 |
+
) -> Blocks:
|
531 |
+
return load_blocks_from_repo(name, src, hf_token, alias)
|