@@ -5,6 +5,7 @@ import type { FilterableModelType } from 'features/modelManagerV2/store/modelMan
5
5
import { memo , useMemo } from 'react' ;
6
6
import { useTranslation } from 'react-i18next' ;
7
7
import {
8
+ useClipEmbedModels ,
8
9
useControlNetModels ,
9
10
useEmbeddingModels ,
10
11
useIPAdapterModels ,
@@ -13,6 +14,7 @@ import {
13
14
useRefinerModels ,
14
15
useSpandrelImageToImageModels ,
15
16
useT2IAdapterModels ,
17
+ useT5EncoderModels ,
16
18
useVAEModels ,
17
19
} from 'services/api/hooks/modelsByType' ;
18
20
import type { AnyModelConfig } from 'services/api/types' ;
@@ -73,6 +75,18 @@ const ModelList = () => {
73
75
[ vaeModels , searchTerm , filteredModelType ]
74
76
) ;
75
77
78
+ const [ t5EncoderModels , { isLoading : isLoadingT5EncoderModels } ] = useT5EncoderModels ( ) ;
79
+ const filteredT5EncoderModels = useMemo (
80
+ ( ) => modelsFilter ( t5EncoderModels , searchTerm , filteredModelType ) ,
81
+ [ t5EncoderModels , searchTerm , filteredModelType ]
82
+ ) ;
83
+
84
+ const [ clipEmbedModels , { isLoading : isLoadingClipEmbedModels } ] = useClipEmbedModels ( ) ;
85
+ const filteredClipEmbedModels = useMemo (
86
+ ( ) => modelsFilter ( clipEmbedModels , searchTerm , filteredModelType ) ,
87
+ [ clipEmbedModels , searchTerm , filteredModelType ]
88
+ ) ;
89
+
76
90
const [ spandrelImageToImageModels , { isLoading : isLoadingSpandrelImageToImageModels } ] =
77
91
useSpandrelImageToImageModels ( ) ;
78
92
const filteredSpandrelImageToImageModels = useMemo (
@@ -90,7 +104,9 @@ const ModelList = () => {
90
104
filteredT2IAdapterModels . length +
91
105
filteredIPAdapterModels . length +
92
106
filteredVAEModels . length +
93
- filteredSpandrelImageToImageModels . length
107
+ filteredSpandrelImageToImageModels . length +
108
+ t5EncoderModels . length +
109
+ clipEmbedModels . length
94
110
) ;
95
111
} , [
96
112
filteredControlNetModels . length ,
@@ -102,6 +118,8 @@ const ModelList = () => {
102
118
filteredT2IAdapterModels . length ,
103
119
filteredVAEModels . length ,
104
120
filteredSpandrelImageToImageModels . length ,
121
+ t5EncoderModels . length ,
122
+ clipEmbedModels . length ,
105
123
] ) ;
106
124
107
125
return (
@@ -154,6 +172,16 @@ const ModelList = () => {
154
172
{ ! isLoadingT2IAdapterModels && filteredT2IAdapterModels . length > 0 && (
155
173
< ModelListWrapper title = { t ( 'common.t2iAdapter' ) } modelList = { filteredT2IAdapterModels } key = "t2i-adapters" />
156
174
) }
175
+ { /* T5 Encoders List */ }
176
+ { isLoadingT5EncoderModels && < FetchingModelsLoader loadingMessage = "Loading T5 Encoder Models..." /> }
177
+ { ! isLoadingT5EncoderModels && filteredT5EncoderModels . length > 0 && (
178
+ < ModelListWrapper title = "T5 Encoder" modelList = { filteredT5EncoderModels } key = "t5-encoder" />
179
+ ) }
180
+ { /* Clip Embed List */ }
181
+ { isLoadingClipEmbedModels && < FetchingModelsLoader loadingMessage = "Loading Clip Embed Models..." /> }
182
+ { ! isLoadingClipEmbedModels && filteredClipEmbedModels . length > 0 && (
183
+ < ModelListWrapper title = "Clip Embed" modelList = { filteredClipEmbedModels } key = "clip-embed" />
184
+ ) }
157
185
{ /* Spandrel Image to Image List */ }
158
186
{ isLoadingSpandrelImageToImageModels && (
159
187
< FetchingModelsLoader loadingMessage = "Loading Image-to-Image Models..." />
0 commit comments