1- using Microsoft . ML . OnnxRuntime ;
2- using OnnxStack . Core . Config ;
3- using OnnxStack . StableDiffusion . Config ;
4- using OnnxStack . StableDiffusion . Enums ;
1+ using OnnxStack . StableDiffusion . Config ;
52using OnnxStack . UI . Commands ;
63using OnnxStack . UI . Models ;
7- using OnnxStack . UI . Views ;
84using System . Collections . Generic ;
9- using System . Collections . ObjectModel ;
105using System . ComponentModel ;
116using System . IO ;
127using System . Linq ;
@@ -23,7 +18,7 @@ public partial class UpdateModelDialog : Window, INotifyPropertyChanged
2318 {
2419 private List < string > _invalidOptions ;
2520 private OnnxStackUIConfig _uiSettings ;
26- private UpdateModelSetViewModel _updateModelSet ;
21+ private UpdateStableDiffusionModelSetViewModel _updateModelSet ;
2722 private StableDiffusionModelSet _modelSetResult ;
2823 private string _validationError ;
2924
@@ -42,7 +37,7 @@ public UpdateModelDialog(OnnxStackUIConfig uiSettings)
4237 public AsyncRelayCommand SaveCommand { get ; }
4338 public AsyncRelayCommand CancelCommand { get ; }
4439
45- public UpdateModelSetViewModel UpdateModelSet
40+ public UpdateStableDiffusionModelSetViewModel UpdateModelSet
4641 {
4742 get { return _updateModelSet ; }
4843 set { _updateModelSet = value ; NotifyPropertyChanged ( ) ; }
@@ -63,14 +58,14 @@ public StableDiffusionModelSet ModelSetResult
6358 public bool ShowDialog ( StableDiffusionModelSet modelSet )
6459 {
6560 _invalidOptions . Remove ( modelSet . Name ) ;
66- UpdateModelSet = UpdateModelSetViewModel . FromModelSet ( modelSet ) ;
61+ UpdateModelSet = UpdateStableDiffusionModelSetViewModel . FromModelSet ( modelSet ) ;
6762 return ShowDialog ( ) ?? false ;
6863 }
6964
7065
7166 private Task Save ( )
7267 {
73- _modelSetResult = UpdateModelSetViewModel . ToModelSet ( _updateModelSet ) ;
68+ _modelSetResult = UpdateStableDiffusionModelSetViewModel . ToModelSet ( _updateModelSet ) ;
7469 if ( _invalidOptions . Contains ( _modelSetResult . Name ) )
7570 {
7671 ValidationError = $ "Model with name '{ _modelSetResult . Name } ' already exists";
@@ -119,263 +114,4 @@ public void NotifyPropertyChanged([CallerMemberName] string property = "")
119114 }
120115 #endregion
121116 }
122-
123- public class UpdateModelSetViewModel : INotifyPropertyChanged
124- {
125- private string _name ;
126- private int _deviceId ;
127- private int _interOpNumThreads ;
128- private int _intraOpNumThreads ;
129- private ExecutionMode _executionMode ;
130- private ExecutionProvider _executionProvider ;
131- private ObservableCollection < ModelFileViewModel > _modelFiles ;
132- private int _padTokenId ;
133- private int _blankTokenId ;
134- private float _scaleFactor ;
135- private int _tokenizerLimit ;
136- private int _embeddingsLength ;
137- private bool _enableTextToImage ;
138- private bool _enableImageToImage ;
139- private bool _enableImageInpaint ;
140- private bool _enableImageInpaintLegacy ;
141- private DiffuserPipelineType _pipelineType ;
142- private int _dualEmbeddingsLength ;
143- private TokenizerType _tokenizerType ;
144- private int _sampleSize ;
145- private ModelType _modelType ;
146-
147- public string Name
148- {
149- get { return _name ; }
150- set { _name = value ; NotifyPropertyChanged ( ) ; }
151- }
152-
153- public int PadTokenId
154- {
155- get { return _padTokenId ; }
156- set { _padTokenId = value ; NotifyPropertyChanged ( ) ; }
157- }
158- public int BlankTokenId
159- {
160- get { return _blankTokenId ; }
161- set { _blankTokenId = value ; NotifyPropertyChanged ( ) ; }
162- }
163-
164- public int SampleSize
165- {
166- get { return _sampleSize ; }
167- set { _sampleSize = value ; NotifyPropertyChanged ( ) ; }
168- }
169-
170- public float ScaleFactor
171- {
172- get { return _scaleFactor ; }
173- set { _scaleFactor = value ; NotifyPropertyChanged ( ) ; }
174- }
175-
176- public int TokenizerLimit
177- {
178- get { return _tokenizerLimit ; }
179- set { _tokenizerLimit = value ; NotifyPropertyChanged ( ) ; }
180- }
181-
182- public TokenizerType TokenizerType
183- {
184- get { return _tokenizerType ; }
185- set { _tokenizerType = value ; NotifyPropertyChanged ( ) ; }
186- }
187-
188- public int Tokenizer2Length
189- {
190- get { return _dualEmbeddingsLength ; }
191- set { _dualEmbeddingsLength = value ; NotifyPropertyChanged ( ) ; }
192- }
193-
194- public int TokenizerLength
195- {
196- get { return _embeddingsLength ; }
197- set { _embeddingsLength = value ; NotifyPropertyChanged ( ) ; }
198- }
199-
200- public bool EnableTextToImage
201- {
202- get { return _enableTextToImage ; }
203- set { _enableTextToImage = value ; NotifyPropertyChanged ( ) ; }
204- }
205-
206- public bool EnableImageToImage
207- {
208- get { return _enableImageToImage ; }
209- set { _enableImageToImage = value ; NotifyPropertyChanged ( ) ; }
210- }
211-
212- public bool EnableImageInpaint
213- {
214- get { return _enableImageInpaint ; }
215- set
216- { _enableImageInpaint = value ; NotifyPropertyChanged ( ) ; }
217- }
218-
219- public bool EnableImageInpaintLegacy
220- {
221- get { return _enableImageInpaintLegacy ; }
222- set { _enableImageInpaintLegacy = value ; NotifyPropertyChanged ( ) ; }
223- }
224-
225- public int DeviceId
226- {
227- get { return _deviceId ; }
228- set { _deviceId = value ; NotifyPropertyChanged ( ) ; }
229- }
230-
231- public int InterOpNumThreads
232- {
233- get { return _interOpNumThreads ; }
234- set { _interOpNumThreads = value ; NotifyPropertyChanged ( ) ; }
235- }
236-
237- public int IntraOpNumThreads
238- {
239- get { return _intraOpNumThreads ; }
240- set { _intraOpNumThreads = value ; NotifyPropertyChanged ( ) ; }
241- }
242-
243- public ExecutionMode ExecutionMode
244- {
245- get { return _executionMode ; }
246- set { _executionMode = value ; NotifyPropertyChanged ( ) ; }
247- }
248-
249- public ExecutionProvider ExecutionProvider
250- {
251- get { return _executionProvider ; }
252- set { _executionProvider = value ; NotifyPropertyChanged ( ) ; }
253- }
254-
255- public ObservableCollection < ModelFileViewModel > ModelFiles
256- {
257- get { return _modelFiles ; }
258- set { _modelFiles = value ; NotifyPropertyChanged ( ) ; }
259- }
260-
261- public DiffuserPipelineType PipelineType
262- {
263- get { return _pipelineType ; }
264- set { _pipelineType = value ; NotifyPropertyChanged ( ) ; }
265- }
266-
267-
268-
269- public ModelType ModelType
270- {
271- get { return _modelType ; }
272- set { _modelType = value ; NotifyPropertyChanged ( ) ; }
273- }
274-
275- public IEnumerable < DiffuserType > GetDiffusers ( )
276- {
277- if ( _enableTextToImage )
278- yield return DiffuserType . TextToImage ;
279- if ( _enableImageToImage )
280- yield return DiffuserType . ImageToImage ;
281- if ( _enableImageInpaint )
282- yield return DiffuserType . ImageInpaint ;
283- if ( _enableImageInpaintLegacy )
284- yield return DiffuserType . ImageInpaintLegacy ;
285- }
286-
287-
288-
289- public static UpdateModelSetViewModel FromModelSet ( StableDiffusionModelSet modelset )
290- {
291- return new UpdateModelSetViewModel
292- {
293- BlankTokenId = modelset . BlankTokenId ,
294- DeviceId = modelset . DeviceId ,
295- EnableImageInpaint = modelset . Diffusers . Contains ( DiffuserType . ImageInpaint ) ,
296- EnableImageInpaintLegacy = modelset . Diffusers . Contains ( DiffuserType . ImageInpaintLegacy ) ,
297- EnableImageToImage = modelset . Diffusers . Contains ( DiffuserType . ImageToImage ) ,
298- EnableTextToImage = modelset . Diffusers . Contains ( DiffuserType . TextToImage ) ,
299- ExecutionMode = modelset . ExecutionMode ,
300- ExecutionProvider = modelset . ExecutionProvider ,
301- InterOpNumThreads = modelset . InterOpNumThreads ,
302- IntraOpNumThreads = modelset . IntraOpNumThreads ,
303- ModelType = modelset . ModelType ,
304- Name = modelset . Name ,
305- PadTokenId = modelset . PadTokenId ,
306- PipelineType = modelset . PipelineType ,
307- SampleSize = modelset . SampleSize ,
308- ScaleFactor = modelset . ScaleFactor ,
309- Tokenizer2Length = modelset . Tokenizer2Length ,
310- TokenizerLength = modelset . TokenizerLength ,
311- TokenizerLimit = modelset . TokenizerLimit ,
312- TokenizerType = modelset . TokenizerType ,
313- ModelFiles = new ObservableCollection < ModelFileViewModel > ( modelset . ModelConfigurations . Select ( c => new ModelFileViewModel
314- {
315- Type = c . Type ,
316- OnnxModelPath = c . OnnxModelPath ,
317-
318- DeviceId = c . DeviceId ?? modelset . DeviceId ,
319- ExecutionMode = c . ExecutionMode ?? modelset . ExecutionMode ,
320- ExecutionProvider = c . ExecutionProvider ?? modelset . ExecutionProvider ,
321- InterOpNumThreads = c . InterOpNumThreads ?? modelset . InterOpNumThreads ,
322- IntraOpNumThreads = c . IntraOpNumThreads ?? modelset . IntraOpNumThreads ,
323- IsOverrideEnabled =
324- c . DeviceId . HasValue
325- || c . ExecutionMode . HasValue
326- || c . ExecutionProvider . HasValue
327- || c . IntraOpNumThreads . HasValue
328- || c . InterOpNumThreads . HasValue
329- } ) )
330- } ;
331- }
332-
333- public static StableDiffusionModelSet ToModelSet ( UpdateModelSetViewModel modelset )
334- {
335- return new StableDiffusionModelSet
336- {
337- IsEnabled = true ,
338- Name = modelset . Name ,
339- PipelineType = modelset . PipelineType ,
340- ModelType = modelset . ModelType ,
341- SampleSize = modelset . SampleSize ,
342- Diffusers = new List < DiffuserType > ( modelset . GetDiffusers ( ) ) ,
343-
344- DeviceId = modelset . DeviceId ,
345- ExecutionMode = modelset . ExecutionMode ,
346- ExecutionProvider = modelset . ExecutionProvider ,
347- InterOpNumThreads = modelset . InterOpNumThreads ,
348- IntraOpNumThreads = modelset . IntraOpNumThreads ,
349-
350- PadTokenId = modelset . PadTokenId ,
351- BlankTokenId = modelset . BlankTokenId ,
352- ScaleFactor = modelset . ScaleFactor ,
353- TokenizerType = modelset . TokenizerType ,
354- TokenizerLimit = modelset . TokenizerLimit ,
355- TokenizerLength = modelset . TokenizerLength ,
356- Tokenizer2Length = modelset . Tokenizer2Length ,
357- ModelConfigurations = new List < OnnxModelConfig > ( modelset . ModelFiles . Select ( x => new OnnxModelConfig
358- {
359- Type = x . Type ,
360- OnnxModelPath = x . OnnxModelPath ,
361- DeviceId = x . IsOverrideEnabled && modelset . DeviceId != x . DeviceId ? x . DeviceId : default ,
362- ExecutionMode = x . IsOverrideEnabled && modelset . ExecutionMode != x . ExecutionMode ? x . ExecutionMode : default ,
363- ExecutionProvider = x . IsOverrideEnabled && modelset . ExecutionProvider != x . ExecutionProvider ? x . ExecutionProvider : default ,
364- IntraOpNumThreads = x . IsOverrideEnabled && modelset . IntraOpNumThreads != x . IntraOpNumThreads ? x . IntraOpNumThreads : default ,
365- InterOpNumThreads = x . IsOverrideEnabled && modelset . InterOpNumThreads != x . InterOpNumThreads ? x . InterOpNumThreads : default ,
366- } ) )
367- } ;
368- }
369-
370-
371-
372- #region INotifyPropertyChanged
373- public event PropertyChangedEventHandler PropertyChanged ;
374- public void NotifyPropertyChanged ( [ CallerMemberName ] string property = "" )
375- {
376- PropertyChanged ? . Invoke ( this , new PropertyChangedEventArgs ( property ) ) ;
377- }
378-
379- #endregion
380- }
381117}
0 commit comments