for i, att_tar in enumerate(att_list): if i > 0: att_diff = att_tar - att_org samples.append(attgan.G(img_real, att_diff)) samples = torch.cat(samples, dim=3) out_file = '{:06d}.jpg'.format(idx) vutils.save_image(samples, join(output_path, out_file), nrow=1, normalize=True, range=(-1., 1.)) print('{:s} done!'.format(out_file)) elif args_.use_model == 'discriminator': with torch.no_grad(): result = img_unit abn_att_real, cabn_att_real = attgan.D(img_real, 'abn') for i in range(len(att_list) - 1): abn_att = F.interpolate(abn_att_real[i], size=(mw, mh), mode='bilinear', align_corners=True) cabn_att = F.interpolate(cabn_att_real[i], size=(mw, mh), mode='bilinear', align_corners=True) abn_att = (abn_att - abn_att.min()) / (abn_att.max() - abn_att.min()) cabn_att = (cabn_att - cabn_att.min()) / (cabn_att.max() - cabn_att.min()) abn_att = np.uint8(abn_att.view(mw, mh) * 255)
'Face Attribute Manipulation') / 10 att_b[0][1] = cv2.getTrackbarPos('Bangs', 'Face Attribute Manipulation') / 10 att_b[0][2] = cv2.getTrackbarPos('Black_Hair', 'Face Attribute Manipulation') / 10 att_b[0][3] = cv2.getTrackbarPos('Blond_Hair', 'Face Attribute Manipulation') / 10 att_b[0][4] = cv2.getTrackbarPos('Brown_Hair', 'Face Attribute Manipulation') / 10 att_b[0][5] = cv2.getTrackbarPos('Bushy_Eyebrows', 'Face Attribute Manipulation') / 10 att_b[0][6] = cv2.getTrackbarPos('Eyeglasses', 'Face Attribute Manipulation') / 10 att_b[0][7] = cv2.getTrackbarPos('Male', 'Face Attribute Manipulation') / 10 att_b[0][8] = cv2.getTrackbarPos('Mouth_Slightly_Open', 'Face Attribute Manipulation') / 10 att_b[0][9] = cv2.getTrackbarPos('Mustache', 'Face Attribute Manipulation') / 10 att_b[0][10] = cv2.getTrackbarPos('No_Beard', 'Face Attribute Manipulation') / 10 att_b[0][11] = cv2.getTrackbarPos('Pale_Skin', 'Face Attribute Manipulation') / 10 att_b[0][12] = cv2.getTrackbarPos('Young', 'Face Attribute Manipulation') / 10 with torch.no_grad(): att_b_ = (att_b * 2 - 1) * args.thres_int img_a = attgan.G(img_ori, att_b_) _, att_test = attgan.D(img_a)