@@ -29,8 +29,8 @@ public class ControlNetDiffuser : LatentConsistencyDiffuser
2929 /// <param name="vaeDecoder">The vae decoder.</param>
3030 /// <param name="vaeEncoder">The vae encoder.</param>
3131 /// <param name="logger">The logger.</param>
32- public ControlNetDiffuser ( ControlNetModel controlNet , UNetConditionModel unet , AutoEncoderModel vaeDecoder , AutoEncoderModel vaeEncoder , ILogger logger = default )
33- : base ( unet , vaeDecoder , vaeEncoder , logger )
32+ public ControlNetDiffuser ( ControlNetModel controlNet , UNetConditionModel unet , AutoEncoderModel vaeDecoder , AutoEncoderModel vaeEncoder , MemoryModeType memoryMode , ILogger logger = default )
33+ : base ( unet , vaeDecoder , vaeEncoder , memoryMode , logger )
3434 {
3535 _controlNet = controlNet ;
3636 }
@@ -141,9 +141,13 @@ public override async Task<DenseTensor<float>> DiffuseAsync(PromptOptions prompt
141141 }
142142
143143 ReportProgress ( progressCallback , step , timesteps . Count , latents ) ;
144- _logger ? . LogEnd ( $ "Step { step } /{ timesteps . Count } ", stepTime ) ;
144+ _logger ? . LogEnd ( LogLevel . Debug , $ "Step { step } /{ timesteps . Count } ", stepTime ) ;
145145 }
146146
147+ // Unload if required
148+ if ( _memoryMode == MemoryModeType . Minimum )
149+ await Task . WhenAll ( _controlNet . UnloadAsync ( ) , _unet . UnloadAsync ( ) ) ;
150+
147151 // Decode Latents
148152 return await DecodeLatentsAsync ( promptOptions , schedulerOptions , latents ) ;
149153 }
0 commit comments