@@ -444,18 +444,13 @@ private bool SetModelPaths(ModelSetViewModel modelSet, string modelDirectory)
444444 var textEncoderPath = Path . Combine ( modelDirectory , "text_encoder" , "model.onnx" ) ;
445445 var vaeDecoder = Path . Combine ( modelDirectory , "vae_decoder" , "model.onnx" ) ;
446446 var vaeEncoder = Path . Combine ( modelDirectory , "vae_encoder" , "model.onnx" ) ;
447+ var tokenizer2Path = Path . Combine ( modelDirectory , "tokenizer_2" , "model.onnx" ) ;
448+ var textEncoder2Path = Path . Combine ( modelDirectory , "text_encoder_2" , "model.onnx" ) ;
449+
447450 if ( ! File . Exists ( tokenizerPath ) )
448451 tokenizerPath = _defaultTokenizerPath ;
449-
450- // Validate Files
451- foreach ( var modelFile in new [ ] { unetPath , tokenizerPath , textEncoderPath , vaeDecoder , vaeEncoder } )
452- {
453- if ( ! File . Exists ( modelFile ) )
454- {
455- _logger . LogError ( $ "Model file not found, ModelFile: { modelFile } ") ;
456- return false ;
457- }
458- }
452+ if ( ! File . Exists ( tokenizer2Path ) )
453+ tokenizer2Path = _defaultTokenizerPath ;
459454
460455 // Set Model Paths
461456 foreach ( var modelConfig in modelSet . ModelFiles )
@@ -467,6 +462,8 @@ private bool SetModelPaths(ModelSetViewModel modelSet, string modelDirectory)
467462 OnnxModelType . TextEncoder => textEncoderPath ,
468463 OnnxModelType . VaeDecoder => vaeDecoder ,
469464 OnnxModelType . VaeEncoder => vaeEncoder ,
465+ OnnxModelType . Tokenizer2 => tokenizer2Path ,
466+ OnnxModelType . TextEncoder2 => textEncoder2Path ,
470467 _ => default
471468 } ;
472469 }
@@ -565,10 +562,10 @@ private async Task<bool> SaveModelAsync(ModelSetViewModel modelSet)
565562 private Task Add ( )
566563 {
567564 var invalidNames = ModelSets . Select ( x => x . Name ) . ToList ( ) ;
568- var textInputDialog = _dialogService . GetDialog < TextInputDialog > ( ) ;
569- if ( textInputDialog . ShowDialog ( "Add Model Set" , "Name" , 1 , 30 , invalidNames ) )
565+ var textInputDialog = _dialogService . GetDialog < AddModelDialog > ( ) ;
566+ if ( textInputDialog . ShowDialog ( "Add Model Set" , invalidNames ) )
570567 {
571- var models = Enum . GetValues < OnnxModelType > ( ) . Select ( x => new ModelFileViewModel { Type = x } ) ;
568+ var pipeline = textInputDialog . PipelineType ;
572569 var newModelTemplate = new ModelConfigTemplate
573570 {
574571 Name = textInputDialog . TextResult ,
@@ -580,11 +577,13 @@ private Task Add()
580577 Images = Enumerable . Range ( 0 , 6 ) . Select ( x => string . Empty ) . ToList ( ) ,
581578
582579 // TODO: Select pipleine in dialog, then setting any required bits
583- PipelineType = DiffuserPipelineType . StableDiffusion ,
584- ScaleFactor = 0.18215f ,
580+ PipelineType = pipeline ,
581+ ScaleFactor = pipeline == DiffuserPipelineType . StableDiffusionXL ? 0.13025f : 0.18215f ,
585582 TokenizerLimit = 77 ,
586- PadTokenId = 49407 ,
583+ PadTokenId = pipeline == DiffuserPipelineType . StableDiffusionXL ? 1 : 49407 ,
587584 EmbeddingsLength = 768 ,
585+ DualEmbeddingsLength = 1280 ,
586+ IsDualTokenizer = pipeline == DiffuserPipelineType . StableDiffusionXL ,
588587 BlankTokenId = 49407 ,
589588 Diffusers = Enum . GetValues < DiffuserType > ( ) . ToList ( ) ,
590589 } ;
@@ -935,6 +934,9 @@ private ModelSetViewModel CreateViewModel(ModelConfigTemplate modelTemplate)
935934 PadTokenId = modelTemplate . PadTokenId ,
936935 ScaleFactor = modelTemplate . ScaleFactor ,
937936 TokenizerLimit = modelTemplate . TokenizerLimit ,
937+ IsDualTokenizer = modelTemplate . IsDualTokenizer ,
938+ SampleSize = modelTemplate . SampleSize ,
939+ DualEmbeddingsLength = modelTemplate . DualEmbeddingsLength ,
938940 PipelineType = modelTemplate . PipelineType ,
939941 EnableTextToImage = modelTemplate . Diffusers . Contains ( DiffuserType . TextToImage ) ,
940942 EnableImageToImage = modelTemplate . Diffusers . Contains ( DiffuserType . ImageToImage ) ,
@@ -957,6 +959,9 @@ private ModelSetViewModel CreateViewModel(ModelConfigTemplate modelTemplate)
957959 Images = modelTemplate . Images ,
958960 ModelFiles = modelTemplate . ModelFiles . ToList ( ) ,
959961 Repository = modelTemplate . Repository ,
962+ IsDualTokenizer = modelTemplate . IsDualTokenizer ,
963+ SampleSize = modelTemplate . SampleSize ,
964+ DualEmbeddingsLength = modelTemplate . DualEmbeddingsLength ,
960965 Status = ModelTemplateStatus . Installed
961966 }
962967 } ;
@@ -986,6 +991,9 @@ private ModelSetViewModel CreateViewModel(ModelOptions modelOptions)
986991 InterOpNumThreads = modelOptions . InterOpNumThreads ,
987992 PadTokenId = modelOptions . PadTokenId ,
988993 ScaleFactor = modelOptions . ScaleFactor ,
994+ IsDualTokenizer = modelOptions . IsDualTokenizer ,
995+ SampleSize = modelOptions . SampleSize ,
996+ DualEmbeddingsLength = modelOptions . DualEmbeddingsLength ,
989997 TokenizerLimit = modelOptions . TokenizerLimit ,
990998 PipelineType = modelOptions . PipelineType ,
991999 EnableTextToImage = modelOptions . Diffusers . Contains ( DiffuserType . TextToImage ) ,
@@ -1017,6 +1025,9 @@ private ModelSetViewModel CreateViewModel(ModelOptions modelOptions)
10171025 ScaleFactor = modelOptions . ScaleFactor ,
10181026 TokenizerLimit = modelOptions . TokenizerLimit ,
10191027 PipelineType = modelOptions . PipelineType ,
1028+ IsDualTokenizer = modelOptions . IsDualTokenizer ,
1029+ SampleSize = modelOptions . SampleSize ,
1030+ DualEmbeddingsLength = modelOptions . DualEmbeddingsLength ,
10201031 Description = "" ,
10211032 Diffusers = modelOptions . Diffusers ,
10221033 EmbeddingsLength = modelOptions . EmbeddingsLength ,
@@ -1053,6 +1064,9 @@ private ModelOptions CreateModelOptions(ModelSetViewModel editModel)
10531064 TokenizerLimit = editModel . TokenizerLimit ,
10541065 PipelineType = editModel . PipelineType ,
10551066 Diffusers = new List < DiffuserType > ( editModel . GetDiffusers ( ) ) ,
1067+ DualEmbeddingsLength = editModel . DualEmbeddingsLength ,
1068+ SampleSize = editModel . SampleSize ,
1069+ IsDualTokenizer = editModel . IsDualTokenizer ,
10561070 ModelConfigurations = new List < OnnxModelSessionConfig > ( editModel . ModelFiles . Select ( x => new OnnxModelSessionConfig
10571071 {
10581072 Type = x . Type ,
0 commit comments