|
|
|
import os |
|
import numpy as np |
|
import argparse |
|
from manipulate import Manipulator |
|
import torch |
|
from PIL import Image |
|
|
|
|
|
if __name__ == "__main__": |
|
parser = argparse.ArgumentParser(description='Process some integers.') |
|
|
|
parser.add_argument('--dataset_name',type=str,default='ffhq', |
|
help='name of dataset, for example, ffhq') |
|
|
|
parser.add_argument('--real', action='store_true') |
|
|
|
args = parser.parse_args() |
|
dataset_name=args.dataset_name |
|
|
|
if not os.path.isdir('./data/'+dataset_name): |
|
os.system('mkdir ./data/'+dataset_name) |
|
|
|
M=Manipulator(dataset_name=dataset_name) |
|
np.set_printoptions(suppress=True) |
|
print(M.dataset_name) |
|
|
|
|
|
names=os.listdir('./data/'+dataset_name+'/') |
|
for name in names: |
|
if '.jpg' in name: |
|
os.system('rm ./data/'+dataset_name+'/'+name) |
|
|
|
|
|
|
|
if args.real: |
|
latents=torch.load('./data/'+dataset_name+'/latents.pt') |
|
w_plus=latents.cpu().detach().numpy() |
|
else: |
|
w=np.load('./npy/'+dataset_name+'/W.npy') |
|
tmp=w[:50] |
|
tmp=tmp[:,None,:] |
|
w_plus=np.tile(tmp,(1,M.Gs.components.synthesis.input_shape[1],1)) |
|
np.save('./data/'+dataset_name+'/w_plus.npy',w_plus) |
|
|
|
|
|
tmp=M.W2S(w_plus) |
|
M.dlatents=tmp |
|
|
|
M.img_index=0 |
|
M.num_images=len(w_plus) |
|
M.alpha=[0] |
|
M.step=1 |
|
lindex,bname=0,0 |
|
|
|
M.manipulate_layers=[lindex] |
|
codes,out=M.EditOneC(bname) |
|
|
|
|
|
for i in range(len(out)): |
|
img=out[i,0] |
|
img=Image.fromarray(img) |
|
img.save('./data/'+dataset_name+'/'+str(i)+'.jpg') |
|
|
|
|
|
|
|
|