Files
cvpr/configs/archive/config_pyramid.py
T
2023-02-22 16:09:54 +00:00

166 lines
6.7 KiB
Python

from configs.config_base import config
config['gpu'] = '2'
config['name'] = 'pyr_4_32_2_64_2'
config['notes'] = '\
offsets over average unposed garment. remove global orientation (in posed body input and in pose_shape parameters. | \
retrained body encoder with deoriented bodies | \
use mean l2 loss. small batch. l2 * 1000, balancing to 1 from 0.01 | \
fixed gender issue and retrained body encoder, FINAL | \
remove shape from unposed garment | \
common condition encoders for all levels, only run once | \
full res loss on each level | \
all higher levels are added to the output of first level | \
using custom MLP upscale enhancement | \
only train highest level, all other use from pretrained pyramids with one less level | \
maybe upscale enhancer was not frozen? --> fixed pretrained approach | \
upscale from level to level, not to final res, only at the end to final res | \
updated upscale enhancers | \
try with l2 loss | \
fixed low res body inputs | \
with 3d loss | \
continued from pyr_4_32_2, changed encoders, upscaler, added tanh to cond_encoder | \
'
# 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['dataset_in_memory'] = False
config['resolution'] = None
config['lr'] = 0.0001
config['starting_balancing_coeff'] = 0.0001
config['reg_loss_coeff'] = 0.1 # set to 0 if don't want to use edge+collision
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'] = dict()
config['pyramid']['is_label'] = False
config['pyramid']['latent_dim'] = config['latent_dim']
config['pyramid']['add_noise'] = True
config['pyramid']['resolutions'] = [32]
config['pyramid']['loss_weights'] = [1,1,1,1,1]
config['pyramid']['pretrained_pyramid'] = 'checkpoints/pyr_4_32_2'
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/static_1_skirt'
# config['pyramid']['body_model'] = 'checkpoints/body_1_skirt_2_2'
# config['pyramid']['curvature_model'] = 'checkpoints/curv_1_skirt'
config['pyramid']['static_model'] = 'checkpoints/static_1'
config['pyramid']['body_model'] = 'checkpoints/body_1'
config['pyramid']['curvature_model'] = 'checkpoints/curv_1'
# config['pyramid']['static_model'] = 'checkpoints/static_1_cape_f'
# config['pyramid']['body_model'] = 'checkpoints/body_1_cape_f'
# config['pyramid']['curvature_model'] = 'checkpoints/curv_1_cape_f'
# config['pyramid']['static_model'] = ''
# config['pyramid']['body_model'] = ''
# config['pyramid']['curvature_model'] = ''
config['pyramid']['freeze_encoders'] = True
config['avg_garment_path'] = ''
config['pyramid']['final_upscale_enhancer'] = 'checkpoints/32_512_4'
config['pyramid']['levels'] = []
for res in config['pyramid']['resolutions']:
if res == 512:
level = dict()
level['resolution'] = 512
level['latent_dim'] = config['latent_dim']
level['kernel_size'] = 7
level['encoder_depths'] = [3, 3, 9, 3]
level['encoder_dims'] = [32, 64, 128, 256]
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'] = config['latent_dim']
level['kernel_size'] = 7
level['encoder_depths'] = [9, 9, 9, 9]
level['encoder_dims'] = [32, 64, 128, 256]
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/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'] = config['latent_dim']
level['kernel_size'] = 5
level['encoder_depths'] = [16, 9, 9, 9]
level['encoder_dims'] = [64, 128, 128, 256]
level['decoder_input'] = (4, 2, 128)
level['decoder_depths'] = [16, 9, 9, 9]
level['decoder_dims'] = [256, 128, 128, 64]
level['avg_garment_path'] = ''
level['upscale_enhancer'] = 'checkpoints/128_512_cape_f'#'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'] = config['latent_dim']
level['kernel_size'] = 5
level['encoder_depths'] = [9, 9, 9]
level['encoder_dims'] = [64, 128, 256]
level['decoder_input'] = (4, 2, 256)
level['decoder_depths'] = [9, 9, 9]
level['decoder_dims'] = [256, 128, 64]
level['avg_garment_path'] = ''
level['upscale_enhancer'] = ''#checkpoints/up_3_d64_128_2'
level['upscale_enhancer_freeze'] = False
config['pyramid']['levels'].append(level)
elif res == 32:
level = dict()
level['resolution'] = 32
level['latent_dim'] = config['latent_dim']
level['kernel_size'] = 3
level['encoder_depths'] = [9, 9]
level['encoder_dims'] = [256, 256]
level['decoder_input'] = (4, 2, 256)
level['decoder_depths'] = [9, 9]
level['decoder_dims'] = [256, 256]
level['avg_garment_path'] = ''
level['upscale_enhancer'] = ''#'checkpoints/up_3_d32_64_2'
level['upscale_enhancer_freeze'] = True
config['pyramid']['levels'].append(level)
else:
raise NotImplementedError