|
|
@ -214,12 +214,18 @@ class VAE: |
|
|
|
#default SD1.x/SD2.x VAE parameters |
|
|
|
#default SD1.x/SD2.x VAE parameters |
|
|
|
ddconfig = {'double_z': True, 'z_channels': 4, 'resolution': 256, 'in_channels': 3, 'out_ch': 3, 'ch': 128, 'ch_mult': [1, 2, 4, 4], 'num_res_blocks': 2, 'attn_resolutions': [], 'dropout': 0.0} |
|
|
|
ddconfig = {'double_z': True, 'z_channels': 4, 'resolution': 256, 'in_channels': 3, 'out_ch': 3, 'ch': 128, 'ch_mult': [1, 2, 4, 4], 'num_res_blocks': 2, 'attn_resolutions': [], 'dropout': 0.0} |
|
|
|
|
|
|
|
|
|
|
|
if 'encoder.down.2.downsample.conv.weight' not in sd: #Stable diffusion x4 upscaler VAE |
|
|
|
if 'encoder.down.2.downsample.conv.weight' not in sd and 'decoder.up.3.upsample.conv.weight' not in sd: #Stable diffusion x4 upscaler VAE |
|
|
|
ddconfig['ch_mult'] = [1, 2, 4] |
|
|
|
ddconfig['ch_mult'] = [1, 2, 4] |
|
|
|
self.downscale_ratio = 4 |
|
|
|
self.downscale_ratio = 4 |
|
|
|
self.upscale_ratio = 4 |
|
|
|
self.upscale_ratio = 4 |
|
|
|
|
|
|
|
|
|
|
|
self.first_stage_model = AutoencoderKL(ddconfig=ddconfig, embed_dim=4) |
|
|
|
self.latent_channels = ddconfig['z_channels'] = sd["decoder.conv_in.weight"].shape[1] |
|
|
|
|
|
|
|
if 'quant_conv.weight' in sd: |
|
|
|
|
|
|
|
self.first_stage_model = AutoencoderKL(ddconfig=ddconfig, embed_dim=4) |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
self.first_stage_model = AutoencodingEngine(regularizer_config={'target': "comfy.ldm.models.autoencoder.DiagonalGaussianRegularizer"}, |
|
|
|
|
|
|
|
encoder_config={'target': "comfy.ldm.modules.diffusionmodules.model.Encoder", 'params': ddconfig}, |
|
|
|
|
|
|
|
decoder_config={'target': "comfy.ldm.modules.diffusionmodules.model.Decoder", 'params': ddconfig}) |
|
|
|
else: |
|
|
|
else: |
|
|
|
self.first_stage_model = AutoencoderKL(**(config['params'])) |
|
|
|
self.first_stage_model = AutoencoderKL(**(config['params'])) |
|
|
|
self.first_stage_model = self.first_stage_model.eval() |
|
|
|
self.first_stage_model = self.first_stage_model.eval() |
|
|
|