# -*- coding: utf-8 -*-
##------------------------------------------
## AI demo link program Ver 0.02
##
## 2024.08.25 Masahiro Izutsu
##------------------------------------------
## demo.py → demo_cui
## Verr 0.02 2024.09.19 StyleGAN3 追加
import warnings
warnings.simplefilter('ignore')
# Color Escape Code
GREEN = '\033[1;32m'
RED = '\033[1;31m'
NOCOLOR = '\033[0m'
YELLOW = '\033[1;33m'
CYAN = '\033[1;36m'
BLUE = '\033[1;34m'
from torch.cuda import is_available
gpu_d = is_available() # GPU 確認
# インポート&初期設定
import os
import sys
import platform
from os.path import expanduser
# 定数定義
CONDA_ROOT = '/anaconda_win/' if platform.system()=='Windows' else '~/'
WORK_ROOT = expanduser(CONDA_ROOT + 'workspace_2')
# ** main関数 **
def main(gpu_d):
os.system('conda info -e')
os.chdir(WORK_ROOT)
msg = "Select input?\t0 - 9 'enter'=終了\n\
0: fase_pasing\t\tメークアップをシュミレーション\n\
1: DLFS\t\t\t人間の年齢による顔の変化\n\
2: encoder4editing\tStyleGANを使った画像編集\n\
3: CycleGAN\t\t画像スタイル変換\n\
4: stargan-v2\t\t顔の合成\n\
5: QMUPD\t\t似顔絵生成\n\
6: PAMA\t\t\t画像に別の画像のスタイルを転送(静止画)\n\
7: PAMA(movie)\t\t画像に別の画像のスタイルを転送(動画)\n\
8: BlendGAN\t\t顔画像に様々なスタイルをブレンドする\n\
9: StyleGAN3\t\tStyleGAN による画像の編集\n\
10: StyleGAN3\t\tStyleGAN + CLIP による画像の編集\n"
loopf = True
while loopf:
val = input(msg)
if val == '0':
path = WORK_ROOT + '/motion-co-seg/face_parsing'
prog = 'makeup_gui.py'
elif val == '1':
path = WORK_ROOT + '/DLFS'
prog = 'dlfs_gui.py'
elif val == '2':
path = WORK_ROOT + '/encoder4editing'
prog = 'e4e_gui.py'
elif val == '3':
path = WORK_ROOT + '/CycleGAN'
prog = 'gan_paint.py --source_dir ./images'
elif val == '4':
path = WORK_ROOT + '/stargan-v2'
prog = 'starv2_sample.py --src_dir ./assets/representative/celeba_hq/src_0 --ref_dir .//assets/representative/celeba_hq/ref2_00'
elif val == '5':
path = WORK_ROOT + '/QMUPD'
prog = 'qmupd_demo.py --source_dir ./examples'
elif val == '6':
path = WORK_ROOT + '/PAMA'
prog = 'pama.py --source_image ./content/10.jpg --style_image ./style/03.jpg'
elif val == '7':
path = WORK_ROOT + '/PAMA'
prog = 'pama_movie.py --source_image ./video/02.mp4 --style_image ./style/03.jpg'
elif val == '8':
path = WORK_ROOT + '/BlendGAN'
prog = 'blendgan_demo.py --source_image ./pic/66.jpg'
elif val == '9':
path = WORK_ROOT + '/stylegan3-editing'
prog = 'stylegan3.py'
elif val == '10':
path = WORK_ROOT + '/stylegan3-editing'
prog = 'stylegan3_clip.py'
else:
loopf = False
break
os.chdir(path)
command = f'python {prog}' if gpu_d or val == '3' or val == '4' or val == '6' or val == '7' else f'python {prog} --cpu'
os.system(command)
# main関数エントリーポイント(実行開始)
if __name__ == '__main__':
args = sys.argv
if len(args) > 1 and args[1] == '--cpu':
gpu_d = False
device = 'GPU' if gpu_d else 'CPU'
print(CYAN + '\n------------------------------')
print(f'| AI sample program ({device}) | Ver 0.02')
print('------------------------------' + NOCOLOR)
main(gpu_d)
print(CYAN + '------------------------------')
print('| program end.. |')
print('------------------------------\n' + NOCOLOR)