@@ -30,8 +30,8 @@ public sealed class LatentConsistencyPipeline : StableDiffusionPipeline
3030 /// <param name="vaeDecoder">The vae decoder.</param>
3131 /// <param name="vaeEncoder">The vae encoder.</param>
3232 /// <param name="logger">The logger.</param>
33- public LatentConsistencyPipeline ( PipelineOptions pipelineOptions , TokenizerModel tokenizer , TextEncoderModel textEncoder , UNetConditionModel unet , AutoEncoderModel vaeDecoder , AutoEncoderModel vaeEncoder , List < DiffuserType > diffusers , SchedulerOptions defaultSchedulerOptions = default , ILogger logger = default )
34- : base ( pipelineOptions , tokenizer , textEncoder , unet , vaeDecoder , vaeEncoder , diffusers , defaultSchedulerOptions , logger )
33+ public LatentConsistencyPipeline ( PipelineOptions pipelineOptions , TokenizerModel tokenizer , TextEncoderModel textEncoder , UNetConditionModel unet , AutoEncoderModel vaeDecoder , AutoEncoderModel vaeEncoder , UNetConditionModel controlNet , List < DiffuserType > diffusers , SchedulerOptions defaultSchedulerOptions = default , ILogger logger = default )
34+ : base ( pipelineOptions , tokenizer , textEncoder , unet , vaeDecoder , vaeEncoder , controlNet , diffusers , defaultSchedulerOptions , logger )
3535 {
3636 _supportedSchedulers = new List < SchedulerType >
3737 {
@@ -112,8 +112,8 @@ protected override IDiffuser CreateDiffuser(DiffuserType diffuserType, ControlNe
112112 DiffuserType . TextToImage => new TextDiffuser ( _unet , _vaeDecoder , _vaeEncoder , _pipelineOptions . MemoryMode , _logger ) ,
113113 DiffuserType . ImageToImage => new ImageDiffuser ( _unet , _vaeDecoder , _vaeEncoder , _pipelineOptions . MemoryMode , _logger ) ,
114114 DiffuserType . ImageInpaintLegacy => new InpaintLegacyDiffuser ( _unet , _vaeDecoder , _vaeEncoder , _pipelineOptions . MemoryMode , _logger ) ,
115- DiffuserType . ControlNet => new ControlNetDiffuser ( controlNetModel , _unet , _vaeDecoder , _vaeEncoder , _pipelineOptions . MemoryMode , _logger ) ,
116- DiffuserType . ControlNetImage => new ControlNetImageDiffuser ( controlNetModel , _unet , _vaeDecoder , _vaeEncoder , _pipelineOptions . MemoryMode , _logger ) ,
115+ DiffuserType . ControlNet => new ControlNetDiffuser ( controlNetModel , _controlNetUnet , _vaeDecoder , _vaeEncoder , _pipelineOptions . MemoryMode , _logger ) ,
116+ DiffuserType . ControlNetImage => new ControlNetImageDiffuser ( controlNetModel , _controlNetUnet , _vaeDecoder , _vaeEncoder , _pipelineOptions . MemoryMode , _logger ) ,
117117 _ => throw new NotImplementedException ( )
118118 } ;
119119 }
@@ -132,8 +132,12 @@ protected override IDiffuser CreateDiffuser(DiffuserType diffuserType, ControlNe
132132 var textEncoder = new TextEncoderModel ( modelSet . TextEncoderConfig . ApplyDefaults ( modelSet ) ) ;
133133 var vaeDecoder = new AutoEncoderModel ( modelSet . VaeDecoderConfig . ApplyDefaults ( modelSet ) ) ;
134134 var vaeEncoder = new AutoEncoderModel ( modelSet . VaeEncoderConfig . ApplyDefaults ( modelSet ) ) ;
135+ var controlnet = default ( UNetConditionModel ) ;
136+ if ( modelSet . ControlNetUnetConfig is not null )
137+ controlnet = new UNetConditionModel ( modelSet . ControlNetUnetConfig . ApplyDefaults ( modelSet ) ) ;
138+
135139 var pipelineOptions = new PipelineOptions ( modelSet . Name , modelSet . MemoryMode ) ;
136- return new LatentConsistencyPipeline ( pipelineOptions , tokenizer , textEncoder , unet , vaeDecoder , vaeEncoder , modelSet . Diffusers , modelSet . SchedulerOptions , logger ) ;
140+ return new LatentConsistencyPipeline ( pipelineOptions , tokenizer , textEncoder , unet , vaeDecoder , vaeEncoder , controlnet , modelSet . Diffusers , modelSet . SchedulerOptions , logger ) ;
137141 }
138142
139143
0 commit comments