StyleGan2을 이용해서 애니메이션 캐릭터를 생성
참고1
참고2
[주의] tensorflow 버전 및 라이브러리 지원을 안하게 될경우 최신 버전에 맞게 다시 수정해줘야함
%tensorflow_version 1.x
import tensorflow as tf
print('Tensorflow version: {}'.format(tf.__version__) )
사전 학습된 GAN 모델(stylegan2)을 사용하여 랜덤 시드를 통해 애니메이션 캐릭터를 생성
!git clone https://github.com/NVlabs/stylegan2.git
%cd /content/stylegan2
seeds = np.random.randint(10000000, size=9)
print(seeds)
zs = generate_zs_from_seeds(seeds)
imgs = generate_images(zs, .7)
9개의 랜덤 시드를 생성하고, 이를 기반으로 이미지를 생성
랜덤씨드로 9개가 출력이 됐다.
[783602 6506592 5842888 7319191 3194881 8133786 2265318 1017335 4475296]
시드 중 맨 앞의 이미지를 출력해보자.
imgs[0] = 783602
imgs[0]
총 9개의 시드가 존재하므로 위와 같은 애니메이션 캐릭터들이 9개가 존재할것.
랜덤시드로 작동하기 때문에 코드를 다시 실행하면 다른 이미지가 출력된다.
이미지를 출력하면 아래와 같은 형식으로 출력 될 것이다.
+-----------------+-----------------+-----------------+
| Image 1 | Image 2 | Image 3 |
+-----------------+-----------------+-----------------+
| Image 4 | Image 5 | Image 6 |
+-----------------+-----------------+-----------------+
| Image 7 | Image 8 | Image 9 |
+-----------------+-----------------+-----------------+
createImageGrid(imgs, rows=3)
seeds = np.random.randint(10000000, size=2)
랜덤시드 2개 생성
zs = generate_zs_from_seeds(seeds)
생성된 시드 값을 기반으로 latent vectors를 생성
생성한 시드 두개를 출력해보자
img[0] = seed2
img[1] > seed2
mix > img[0] + img[1]
요 두놈을 섞는건데 generate 코드를 실행하면
위와 같이 섞인다.
맨 왼쪽이 Seed1이고 맨오른쪽이 Seed2로
중간 이미지는 두 시드 값 사이에서 점진적으로 변화하는 과정을 보여준다.
랜덤시드이기 때문에 실행할때마다 바뀐다.