Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
williamyang1991 authored Mar 19, 2022
1 parent bea1d46 commit c35a6ed
Show file tree
Hide file tree
Showing 9 changed files with 1,718 additions and 15 deletions.
13 changes: 8 additions & 5 deletions destylize.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class TestOptions():
def __init__(self):

self.parser = argparse.ArgumentParser(description="Facial Destylization")
self.parser.add_argument("--style", type=str, default='cartoon', help="target style type")
self.parser.add_argument("style", type=str, help="target style type")
self.parser.add_argument("--truncation", type=float, default=0.75, help="truncation for intrinsic style code (content)")
self.parser.add_argument("--model_path", type=str, default='./checkpoint/', help="path of the saved models")
self.parser.add_argument("--model_name", type=str, default='fintune-000600.pt', help="name of the saved fine-tuned model")
Expand All @@ -32,7 +32,7 @@ def __init__(self):


def parse(self):
self.opt = self.parser.parse_args()
self.opt = self.parser.parse_args()
args = vars(self.opt)
print('Load options')
for name, value in sorted(args.items()):
Expand Down Expand Up @@ -93,9 +93,11 @@ def noise_normalize_(noises):
transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5]),
]
)


# fine-tuned StyleGAN g'
generator_prime = Generator(1024, 512, 8, 2).to(device)
generator_prime.eval()
# orginal StyleGAN g
generator = Generator(1024, 512, 8, 2).to(device)
generator.eval()

Expand Down Expand Up @@ -133,7 +135,7 @@ def noise_normalize_(noises):
imgs = torch.stack(imgs, 0).to(device)

with torch.no_grad():
# g(z^+_e) and z^+_e
# reconstructed face g(z^+_e) and extrinsic style code z^+_e
img_rec, latent_e = encoder(imgs, randomize_noise=False, return_latents=True, z_plus_latent=True)

for j in range(imgs.shape[0]):
Expand All @@ -145,7 +147,7 @@ def noise_normalize_(noises):
for noise in noises:
noise.requires_grad = True

# z^+ to be optimized
# z^+ to be optimized in Eq. (1)
latent = latent_e.detach().clone()
latent.requires_grad = True

Expand All @@ -159,6 +161,7 @@ def noise_normalize_(noises):
optimizer.param_groups[0]["lr"] = lr
latent_n = latent

# g'(z^+)
img_gen, _ = generator_prime([latent_n], input_is_latent=False, noise=noises, z_plus_latent=True)

batch, channel, height, width = img_gen.shape
Expand Down
542 changes: 542 additions & 0 deletions finetune_dualstylegan.py

Large diffs are not rendered by default.

Loading

0 comments on commit c35a6ed

Please sign in to comment.