109 lines
4.0 KiB
Python
109 lines
4.0 KiB
Python
from configs.config_base import config
|
|
|
|
config['gpu'] = '1'
|
|
config['name'] = 'cvae_pyr_4_4'
|
|
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\
|
|
training on 100 garments with offsets over the average of these\
|
|
fixed autoencoders!!!!!!!!!\
|
|
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\
|
|
layers 32 and 512\
|
|
try loading weights from previous trainings\
|
|
'
|
|
config['dataset_in_memory'] = False
|
|
config['resolution'] = None
|
|
|
|
config['lr'] = 0.0001
|
|
config['starting_balancing_coeff'] = 0.0001
|
|
|
|
config['signature_dynamic'] = { 'id': (),
|
|
'pose_shape': (72 + 11,),
|
|
'uv_body_posed': (512, 256, 3),
|
|
'mesh_body_posed': (14475, 3,),
|
|
'mesh_posed': (14475, 3,),
|
|
'mesh_unposed': (14475, 3,),
|
|
'uv_unposed': (512, 256, 3),
|
|
'uv_curvature': (512, 256, 7),
|
|
}
|
|
config['signature_static'] = { 'uv_static': (512, 256, 3),
|
|
'mesh_mask': (14475,),
|
|
'uv_mask': (512, 256,),
|
|
}
|
|
|
|
config['pyramid'] = dict()
|
|
config['pyramid']['is_label'] = False
|
|
config['pyramid']['latent_dim'] = config['latent_dim']
|
|
|
|
config['pyramid']['resolutions'] = [32, 512]
|
|
|
|
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/ae_static_7_2_x'
|
|
config['pyramid']['body_model'] = 'checkpoints/ae_body_9_x'
|
|
config['pyramid']['curvature_model'] = 'checkpoints/ae_curv_9_x'
|
|
config['pyramid']['freeze_encoders'] = True
|
|
|
|
config['avg_garment_path'] = ''
|
|
|
|
|
|
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 == 128:
|
|
level = dict()
|
|
level['resolution'] = 128
|
|
level['latent_dim'] = config['latent_dim']
|
|
level['kernel_size'] = 5
|
|
level['encoder_depths'] = [16, 16, 9, 9]
|
|
level['encoder_dims'] = [64, 128, 256, 256]
|
|
level['decoder_input'] = (4, 2, 128)
|
|
level['decoder_depths'] = [16, 16, 9, 9]
|
|
level['decoder_dims'] = [256, 256, 128, 64]
|
|
level['avg_garment_path'] = ''
|
|
level['upscale_enhancer'] = 'checkpoints/up_2_3_d128'
|
|
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'] = [27, 27]
|
|
level['encoder_dims'] = [256, 256]
|
|
level['decoder_input'] = (4, 2, 256)
|
|
level['decoder_depths'] = [27, 27]
|
|
level['decoder_dims'] = [256, 256]
|
|
level['avg_garment_path'] = ''
|
|
level['upscale_enhancer'] = 'checkpoints/up_2_3'
|
|
config['pyramid']['levels'].append(level)
|
|
else:
|
|
raise NotImplementedError
|
|
|
|
|