이 글에서는 https://github.com/williamyang1991/DualStyleGAN을 오라클 클라우드에 설치하는 과정에 대해서 설명합니다.
- 오라클 클라우드
- 환경설정 완료 후 실행 및 테스트
오라클 클라우드
장비는 준비되어 있다고 가정합니다. 그리고, 장비에 메모리 부족을 막기 위해서 swap은 24G로 준비해 놓았습니다.
무료로 사용하려다 보니 메모리를 1G 밖에 사용할 수 없어서 swap이라도 늘려놓았습니다.
이미지 변환기는 아래 github에 작성된 논문 발표 내용을 이용해서 구축해 봅니다.
https://github.com/williamyang1991/DualStyleGAN
제가 판단하기에는 변환 후 이미지가 가장 깔끔해 보였습니다.
git clone https://github.com/williamyang1991/DualStyleGAN.git
cd DualStyleGAN
All dependencies for defining the environment are provided in environment/dualstylegan_env.yaml. We recommend running this repository using Anaconda:
리눅스용 다운로드 페이지로 가면 아래와 같이 다운 받을 수 있는 링크를 복사할 수 있습니다.
https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-x86_64.sh
이를 복사하여 오라클 장비에서 wget으로 직접 다운 받습니다.
wget https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-x86_64.sh
그 뒤에 bash로 sh파일을 수행하면
ubuntu@instance-20230810-1409:~/pkg$ bash Anaconda3-2023.07-2-Linux-x86_64.sh
라이선스 동의에 yes 하고 설치 위치를 결정하면 설치가 시작됩니다.
아래 메시지에서 conda가 기본으로 초기화 되는 것이 싫으면
conda config --set auto_activate_base false 명령을 수행하면 된다고 하니 참고하세요.
설치 마지막에 위와 같이 conda init을 할껀지 물어보는데 yes 하면 설치가 완료되고 설정 파일도 알아서 초기화 합니다.
(base) ubuntu@instance-20230810-1409:~$ ls
DualStyleGAN anaconda3 pkg
설치 완료되면 . ~/.bashrc를 해서 환경을 불러옵니다.
(base) ubuntu@instance-20230810-1409:~$ ls
DualStyleGAN anaconda3 pkg
(base) ubuntu@instance-20230810-1409:~$
아래 명령을 수행하고 한숨 자고 나면 될 거 같습니다.
(base) ubuntu@instance-20230810-1409:~$ cd DualStyleGAN/
(base) ubuntu@instance-20230810-1409:~/DualStyleGAN$ conda env create -f ./environment/dualstylegan_env.yaml
Collecting package metadata (repodata.json): |
# The base environment is activated by default
conda config --set auto_activate_base True
# The base environment is not activated by default
conda config --set auto_activate_base False
# The above commands only work if conda init has been run first
# conda init is available in conda versions 4.6.12 and later
환경설정 완료 후 실행 및 테스트
conda 환경이 모두 성공적으로 설치되면, cpu용으로 코드를 변경합니다. 해당 github 페이지에 다음과 같이 자세히 설명이 나와있습니다.
Scripts to convert rosinality/stylegan2-pytorch to the CPU compatible format
If you would like to use CPU for testing, please make the following changes:
- Change
model.stylegan.op
tomodel.stylegan.op_cpu
-
Line 10 in 6ab383b
- Change
model.stylegan.op
tomodel.stylegan.op_cpu
-
DualStyleGAN/model/stylegan/model.py
Line 11 in 6ab383b
If using GPUs, changing the above lines back to the original ones.
위의 두 코드에서 op를 op_cpu로 변경해 줍니다.
다음으로 미리 학습된 모델을 제공하므로 google drive에서 모델을 다운 받습니다.
encoder는 필수이고 나머지는 원하는 모델을 다운받으면 됩니다.
encoder는 무려 1.1G 용량을 가지고 있습니다.
Pretrained Models
Pretrained models can be downloaded from Google Drive or Baidu Cloud (access code: cvpr):
Model | Description |
---|---|
encoder | Pixel2style2pixel encoder that embeds FFHQ images into StyleGAN2 Z+ latent code |
encoder_wplus | Original Pixel2style2pixel encoder that embeds FFHQ images into StyleGAN2 W+ latent code |
cartoon | DualStyleGAN and sampling models trained on Cartoon dataset, 317 (refined) extrinsic style codes |
caricature | DualStyleGAN and sampling models trained on Caricature dataset, 199 (refined) extrinsic style codes |
anime | DualStyleGAN and sampling models trained on Anime dataset, 174 (refined) extrinsic style codes |
arcane | DualStyleGAN and sampling models trained on Arcane dataset, 100 extrinsic style codes |
comic | DualStyleGAN and sampling models trained on Comic dataset, 101 extrinsic style codes |
pixar | DualStyleGAN and sampling models trained on Pixar dataset, 122 extrinsic style codes |
slamdunk | DualStyleGAN and sampling models trained on Slamdunk dataset, 120 extrinsic style codes |
fantasy | DualStyleGAN models trained on Fantasy dataset, 137 extrinsic style codes |
illustration | DualStyleGAN models trained on Illustration dataset, 156 extrinsic style codes |
impasto | DualStyleGAN models trained on Impasto dataset, 120 extrinsic style codes |
The saved checkpoints are under the following folder structure:
checkpoint
|--encoder.pt % Pixel2style2pixel model
|--encoder_wplus.pt % Pixel2style2pixel model (optional)
|--cartoon
|--generator.pt % DualStyleGAN model
|--sampler.pt % The extrinsic style code sampling model
|--exstyle_code.npy % extrinsic style codes of Cartoon dataset
|--refined_exstyle_code.npy % refined extrinsic style codes of Cartoon dataset
|--caricature
% the same files as in Cartoon
...
모델을 다운 받은 후 예제를 수행해보려고하니 cuda관련 에러가 나타납니다.
해당 파일(style_transfer.py)에서 device 변수에 'cuda'로 되어있는 것을 'cpu'로 바꿔서 cpu를 사용하도록 수정 후 다시 동작 시키니 정상 동작합니다.
참 중간에 libGL 에러가 나서 sudo apt-get install libgl1-mesa-glx 명령으로 설치해 주었습니다.
ImportError: libGL.so.1: cannot open shared object file: No such file or directory
Conda 가상환경을 확인하려면, 터미널(또는 명령 프롬프트)에서 다음 명령어를 입력하세요:
또는 다음 명령어를 사용할 수도 있습니다:
이 명령어를 실행하면 현재 설치되어 있는 모든 conda 가상환경의 목록과 해당 환경의 경로가 출력됩니다. 활성화 된 가상 환경은 별표(*)로 표시됩니다.
conda 환경을 확인했으면 이제 conda activate "환경이름"을 수행해서 해당 환경으로 들어가면 됩니다.
여기까지 하고 테스트 돌려 보니 성공했다는 메시지가 나옵니다.
(dualstylegan_env) ubuntu@instance-20230810-1409:~/DualStyleGAN$ python3 style_transfer.py Load options align_face: False content: ./data/content/081680.jpg data_path: ./data/ exstyle_name: refined_exstyle_code.npy model_name: generator.pt model_path: ./checkpoint/ name: cartoon_transfer output_path: ./output/ preserve_color: False style: cartoon style_id: 53 truncation: 0.75 weight: [0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] wplus: False ************************************************************************************************** Loading pSp from checkpoint: ./checkpoint/encoder.pt Load models successfully! Generate images successfully! Save images successfully!'개발' 카테고리의 다른 글
파이썬에서 여러 줄의 문자열을 넣는 법 - 다중 라인 문자열 입력 (0) | 2024.05.16 |
---|---|
오라클 클라우드(oracle cloud) 우분투 서버에 flask 앱 설치하기 (0) | 2024.01.20 |
파이썬 플라스크(python flask) 아바타 변환기 설치하기 (0) | 2024.01.20 |
VS CODE 한글 깨짐 EUCKR 설정하기 (0) | 2024.01.15 |
VSCODE 자주쓰는 단축키 정리 - 파일 열기/명령표시/우분투 리눅스에서 svn 연동 (0) | 2024.01.15 |