| import glob |
| from argparse import Namespace |
| from configs import paths_config |
| from models.StyleCLIP.mapper.scripts.inference import run |
| from scripts.run_pti import run_PTI |
|
|
| meta_data = { |
| 'afro': ['afro', False, False, True], |
| 'angry': ['angry', False, False, True], |
| 'Beyonce': ['beyonce', False, False, False], |
| 'bobcut': ['bobcut', False, False, True], |
| 'bowlcut': ['bowlcut', False, False, True], |
| 'curly hair': ['curly_hair', False, False, True], |
| 'Hilary Clinton': ['hilary_clinton', False, False, False], |
| 'Jhonny Depp': ['depp', False, False, False], |
| 'mohawk': ['mohawk', False, False, True], |
| 'purple hair': ['purple_hair', False, False, False], |
| 'surprised': ['surprised', False, False, True], |
| 'Taylor Swift': ['taylor_swift', False, False, False], |
| 'trump': ['trump', False, False, False], |
| 'Mark Zuckerberg': ['zuckerberg', False, False, False] |
| } |
|
|
|
|
| def styleclip_edit(use_multi_id_G, run_id, use_wandb, edit_types): |
| images_dir = paths_config.input_data_path |
| pretrained_mappers = paths_config.style_clip_pretrained_mappers |
| data_dir_name = paths_config.input_data_id |
| if run_id == '': |
| run_id = run_PTI(run_name='', use_wandb=use_wandb, use_multi_id_training=False) |
| images = glob.glob(f"{images_dir}/*.jpeg") |
| w_path_dir = f'{paths_config.embedding_base_dir}/{paths_config.input_data_id}' |
| for image_name in images: |
| image_name = image_name.split(".")[0].split("/")[-1] |
| embedding_dir = f'{w_path_dir}/{paths_config.pti_results_keyword}/{image_name}' |
| latent_path = f'{embedding_dir}/0.pt' |
| for edit_type in set(meta_data.keys()).intersection(edit_types): |
| edit_id = meta_data[edit_type][0] |
| args = { |
| "exp_dir": f'{paths_config.styleclip_output_dir}', |
| "checkpoint_path": f"{pretrained_mappers}/{edit_id}.pt", |
| "couple_outputs": False, |
| "mapper_type": "LevelsMapper", |
| "no_coarse_mapper": meta_data[edit_type][1], |
| "no_medium_mapper": meta_data[edit_type][2], |
| "no_fine_mapper": meta_data[edit_type][3], |
| "stylegan_size": 1024, |
| "test_batch_size": 1, |
| "latents_test_path": latent_path, |
| "test_workers": 1, |
| "run_id": run_id, |
| "image_name": image_name, |
| 'edit_name': edit_type, |
| "data_dir_name": data_dir_name |
| } |
|
|
| run(Namespace(**args), run_id, image_name, use_multi_id_G) |
|
|