188 lines
7.8 KiB
Python
188 lines
7.8 KiB
Python
config = dict()
|
|
|
|
config['gpu'] = '0'
|
|
config['name'] = 'iccv_pyr_32'
|
|
config['notes'] = ''
|
|
config['tags'] = ['pyr', 'iccv']
|
|
|
|
# DON'T FORGET TO RESET SSIM LOSS USAGE
|
|
# DON'T FORGET TO CHECK MODEL LOADING
|
|
# DON'T FORGET TO CHECK IF STORE IN MEMORY
|
|
# DON'T FORGET TO CHECK REG LOSS COEFF
|
|
# DON'T FORGET TO LOAD FINAL UPSCALER UNLESS HAVE LEVEL 512
|
|
# DON'T FORGET TO CHECK IF SKIRT
|
|
# DON'T FORGET TO CHECK IF CAPE
|
|
# DON'T FORGET TO CHECK IF USING DOWNSCALE NONE OR _2
|
|
# DON'T FORGET TO CHECK UPSCALING and ENCODER CHECKPOINTS
|
|
|
|
config['use_skinning'] = True # and deshaping
|
|
config['remove_global_orientation'] = True
|
|
config['use_extra_losses'] = True # edge, collision, 3d mesh
|
|
config['use_offsets'] = False
|
|
config['use_norm_loss'] = True
|
|
|
|
config['pretrained_model'] = ''
|
|
config['pretrained_model_iteration'] = ''
|
|
|
|
config['pyramid'] = dict()
|
|
config['pyramid']['resolutions'] = [32]
|
|
config['pyramid']['pretrained_pyramid'] = ''
|
|
config['pyramid']['final_upscale_enhancer'] = ''
|
|
|
|
config['train_dir'] = '/home/workspace/local-data/train'
|
|
config['valid_dir'] = '/home/workspace/local-data/valid'
|
|
config['test_dir'] = '/home/workspace/data/dataset/test_ready'
|
|
config['batch_size'] = 4
|
|
config['is_skirt'] = False
|
|
config['is_cape'] = False
|
|
|
|
config['dataset_in_memory'] = False
|
|
config['resolution'] = None
|
|
|
|
config['smpl_res'] = 14475
|
|
if config['is_cape']:
|
|
config['smpl_res'] = 3638
|
|
|
|
config['lr'] = 0.0001
|
|
config['starting_balancing_coeff'] = 0.001
|
|
config['reg_loss_coeff'] = 0.1 # set to 0 if don't want to use edge+collision
|
|
config['avg_garment_path'] = ''
|
|
config['bottleneck_scale'] = 2
|
|
|
|
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
|
'pose_shape': (72 + 11,),
|
|
'uv_body_posed': (512, 256, 3),
|
|
'mesh_body_posed': (config['smpl_res'], 3,),
|
|
'mesh_posed': (config['smpl_res'], 3,),
|
|
'mesh_unposed': (config['smpl_res'], 3,),
|
|
'uv_unposed': (512, 256, 3),
|
|
'uv_curvature': (512, 256, 7),
|
|
}
|
|
config['signature_static'] = { 'uv_static': (512, 256, 3),
|
|
'mesh_mask': (config['smpl_res'],),
|
|
'uv_mask': (512, 256,),
|
|
}
|
|
|
|
config['pyramid']['is_label'] = False
|
|
config['pyramid']['add_noise'] = False
|
|
config['pyramid']['noise_amount'] = 0.0
|
|
|
|
config['pyramid']['loss_weights'] = [1,1,1,1,1]
|
|
|
|
for res in config['pyramid']['resolutions']:
|
|
if res != 512:
|
|
res_modifier = '_' + str(res)
|
|
config['signature_dynamic']['uv_body_posed' + res_modifier] = (res, res//2, 3)
|
|
config['signature_dynamic']['uv_unposed' + res_modifier] = (res, res//2, 3)
|
|
config['signature_dynamic']['uv_curvature' + res_modifier] = (res, res//2, 7)
|
|
config['signature_static']['uv_static' + res_modifier] = (res, res//2, 3)
|
|
config['signature_static']['uv_mask' + res_modifier] = (res, res//2)
|
|
|
|
|
|
config['pyramid']['static_model'] = 'checkpoints/iccv/static_iccv_1'
|
|
config['pyramid']['body_model'] = 'checkpoints/iccv/body_iccv_1'
|
|
config['pyramid']['curvature_model'] = 'checkpoints/iccv/curv_iccv_1'
|
|
config['pyramid']['freeze_encoders'] = True
|
|
|
|
|
|
config['pyramid']['levels'] = []
|
|
for res in config['pyramid']['resolutions']:
|
|
if res == 512:
|
|
level = dict()
|
|
level['resolution'] = 512
|
|
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
level['kernel_size'] = 7
|
|
level['encoder_depths'] = [3, 3, 9, 3]
|
|
level['encoder_dims'] = [32, 64, 128, level['latent_dim']]
|
|
level['decoder_input'] = (16, 8, 80)
|
|
level['decoder_depths'] = [3, 3, 9, 3]
|
|
level['decoder_dims'] = [256, 128, 64, 16]
|
|
level['avg_garment_path'] = ''
|
|
level['upscale_enhancer'] = ''
|
|
config['pyramid']['levels'].append(level)
|
|
elif res == 256:
|
|
level = dict()
|
|
level['resolution'] = 256
|
|
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
level['kernel_size'] = 5
|
|
level['encoder_depths'] = [9, 9, 9, 9]
|
|
level['encoder_dims'] = [32, 64, 128, level['latent_dim']]
|
|
level['decoder_input'] = (8, 4, 128)
|
|
level['decoder_depths'] = [9, 9, 9, 9]
|
|
level['decoder_dims'] = [256, 128, 64, 16]
|
|
level['avg_garment_path'] = ''
|
|
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_'#'checkpoints/up_3_d256_512_2'
|
|
level['upscale_enhancer_freeze'] = True
|
|
config['pyramid']['levels'].append(level)
|
|
elif res == 128:
|
|
level = dict()
|
|
level['resolution'] = 128
|
|
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
level['kernel_size'] = 5
|
|
level['encoder_depths'] = [16, 9, 9, 9]
|
|
level['encoder_dims'] = [64, 128, 128, 64]
|
|
level['decoder_input'] = (4, 2, 128)
|
|
level['decoder_depths'] = [16, 9, 9, 9]
|
|
level['decoder_dims'] = [256, 128, 128, level['latent_dim']]
|
|
level['avg_garment_path'] = ''
|
|
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_'#'checkpoints/up_3_d128_256_2'
|
|
level['upscale_enhancer_freeze'] = True
|
|
config['pyramid']['levels'].append(level)
|
|
elif res == 64:
|
|
level = dict()
|
|
level['resolution'] = 64
|
|
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
level['kernel_size'] = 3
|
|
level['encoder_depths'] = [9, 9]
|
|
level['encoder_dims'] = [64, level['latent_dim']]
|
|
level['decoder_depths'] = level['encoder_depths']
|
|
level['decoder_dims'] = level['encoder_dims']
|
|
level['avg_garment_path'] = ''
|
|
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_'#checkpoints/up_3_d64_128_2'
|
|
level['upscale_enhancer_freeze'] = True
|
|
config['pyramid']['levels'].append(level)
|
|
elif res == 32:
|
|
level = dict()
|
|
level['resolution'] = 32
|
|
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
level['kernel_size'] = 3
|
|
level['encoder_depths'] = [16]
|
|
level['encoder_dims'] = [level['latent_dim']]
|
|
level['decoder_depths'] = level['encoder_depths']
|
|
level['decoder_dims'] = level['encoder_dims']
|
|
level['avg_garment_path'] = ''
|
|
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_32_2_skirt'#'checkpoints/up_3_d32_64_2'
|
|
level['upscale_enhancer_freeze'] = True
|
|
config['pyramid']['levels'].append(level)
|
|
else:
|
|
raise NotImplementedError
|
|
|
|
config['cond_ae_static'] = dict()
|
|
config['cond_ae_static']['is_label'] = False
|
|
config['cond_ae_static']['kernel_size'] = 7
|
|
config['cond_ae_static']['bottleneck_size'] = 8 * config['bottleneck_scale']
|
|
config['cond_ae_static']['encoder_depths'] = [3, 3, 3, 27, 3]
|
|
config['cond_ae_static']['encoder_dims'] = [8, 16, 32, 64, config['cond_ae_static']['bottleneck_size']]
|
|
config['cond_ae_static']['decoder_depths'] = config['cond_ae_static']['encoder_depths']
|
|
config['cond_ae_static']['decoder_dims'] = config['cond_ae_static']['encoder_dims']
|
|
config['cond_ae_static']['activation'] = 'tanh'
|
|
|
|
config['cond_ae_curv'] = dict()
|
|
config['cond_ae_curv']['is_label'] = True
|
|
config['cond_ae_curv']['kernel_size'] = 7
|
|
config['cond_ae_curv']['bottleneck_size'] = 40 * config['bottleneck_scale']
|
|
config['cond_ae_curv']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
config['cond_ae_curv']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_curv']['bottleneck_size']]
|
|
config['cond_ae_curv']['decoder_depths'] = config['cond_ae_curv']['encoder_depths']
|
|
config['cond_ae_curv']['decoder_dims'] = config['cond_ae_curv']['encoder_dims']
|
|
config['cond_ae_curv']['activation'] = 'tanh'
|
|
|
|
config['cond_ae_body'] = dict()
|
|
config['cond_ae_body']['is_label'] = False
|
|
config['cond_ae_body']['kernel_size'] = 7
|
|
config['cond_ae_body']['bottleneck_size'] = 16 * config['bottleneck_scale']
|
|
config['cond_ae_body']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
config['cond_ae_body']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_body']['bottleneck_size']]
|
|
config['cond_ae_body']['decoder_depths'] = config['cond_ae_body']['encoder_depths']
|
|
config['cond_ae_body']['decoder_dims'] = config['cond_ae_body']['encoder_dims']
|
|
config['cond_ae_body']['activation'] = 'tanh' |