Z by HP 장비를 활용한 StyleGAN2 학습을 통해 OpenSea NFT 아티스트 되기
2021년 봄
2023년부터 마켓에 출시되는 제품의 경우, 로고와 로고 위치 변경이 예정되어 있습니다. 이에 실제 제품은 사진 및 영상 속 이미지와 다를 수 있습니다.
Z by HP 데이터 사이언스 글로벌 앰배서더인 김찬란의 콘텐츠는 HP 제품 지원을 통해 제작되었습니다.
1. 소개
오늘날의 아티스트는 작품에 AI를 활용하여 색다른 창의성과 독창성을 불어넣고 있습니다. NVIDIA에서는 AI 아트 갤러리를 통해 여러 아티스트의 다양한 작품을 선보입니다.
GTC 2021년 4월: 디지털 AI 아트 갤러리
수많은 아티스트와 뮤지션이 AI를 활용하여 작품에 예상치 못한 창의성과 독창성을 불어넣고 있습니다.
특히 최근에는 NFT를 통한 작품 판매가 각광을 받고 있는데, AI를 사용해서 창작하고 NFT로 작품을 판매하면 좋은 경험이 되지 않을까요? 이번 게시물에서는 두 주제를 모두 다루려고 합니다. StyleGAN2를 사용해서 예술작품을 창조하여 OpenSea의 NFT 아트 마켓에서 작품을 판매하는 과정을 살펴보겠습니다.
1024처럼 고해상도 이미지를 생성하는 모델을 훈련하려면 강력한 장비가 필요합니다. 성능을 입증한 HP Z4처럼 말이죠.
2. 간략한 NFT 및 OpenSea 소개
NFT는 'non-funcible token'의 약자로 '대체 불가 토큰'으로 번역할 수 있습니다.
대체 가능한 토큰의 경우 각각의 가치와 기능이 동일합니다. 서로 교환이 가능하고, 같은 단위의 1:1 교환이 일어나면 사실상 차이가 없다고 보면 됩니다. 여기에는 법정 통화, 비트코인이나 이더리움과 같은 일반적인 암호화폐, 귀금속, 채권 등이 포함됩니다.
이와 달리 대체 불가능한 토큰은 각각이 고유성을 지닙니다. 발권사, 항공편, 좌석 위치가 모두 명시되어 동일한 게 존재할 수 없는 항공권과 유사하다고 볼 수 있습니다. NFT는 암호화된 거래 내역을 블록체인에 영구적으로 남겨 고유성이 보장되므로, 특정 개인이나 기관의 임의 인증을 받아 고유성이 보장되는 기존 방식과 다릅니다. 누구나 복제할 수 있는 '디지털 파일'에 대해서도 '고유한 소유권'을 발행할 수 있는 기술이라는 점이 눈길을 끌고 있습니다.
지난 3월 11일(현지 시간) 크리스티 경매에서 '비플'로 알려진 마이크 윈켈만의 JPG 작품 'Everydays: The First 5000 Days(매일-첫 5천일)'가 6,930만 달러(약 785억 원)에 낙찰됐습니다.
Twitter 공동 창업자 잭 도시의 첫 트윗은 250만 달러(약 27억 원)로 경매에 부쳐지기도 했습니다.
MIT 기술 검토(한국어 게시글)
OpenSea는 블록체인 기반 자산을 위한 최초의 분산형 P2P 마켓플레이스로, 여기에서 암호 수집품과 게임 아이템, 그 외 블록체인이 지원되는 자산이 거래됩니다. OpenSea 팀은 스탠포드를 졸업하고 Palantir와 Google에서 경력을 쌓은 인재들로 구성되어 있으며, Y Combinator, Founders Fund, Coinbase Ventures, 1Confirmation, Blockchain Capital의 자금 지원을 받고 있습니다. OpenSea는 현재 가장 광범위한 카테고리(90개 이상), 가장 많은 물품(100만 개 이상), 새로운 카테고리의 물품에 가장 저렴한 가격을 제공하며 사용자 소유 디지털 물품을 거래할 수 있는 보편적이고 가장 규모가 큰 마켓플레이스입니다. 지난 12월에 베타 버전을 출시한 후로 지금까지 사이트에서 18,000ETH 이상이 거래되었습니다.
3. StyleGAN2
인공지능 생성 모델은 잠재 벡터를 통해 이미지를 생성하는 방법을 배웁니다. 그중 스타일 변환은 기존 이미지를 새로운 스타일로 바꾸거나 잠재 벡터 조정을 통해 변환하는 등 조작을 가할 수 있는 방법인데, StyleGAN2는 최신 기술로 성능이 상당히 좋습니다.
초록: 스타일 기반 GAN 아키텍처(StyleGAN)는 데이터에 기반을 둔 무조건적 생성 이미지 모델링에서 최신 결과를 제공합니다. 몇 가지 특징적인 아티팩트를 노출 및 분석하고, 아티팩트를 없애기 위한 모델 아키텍처와 훈련 방법의 변화를 제안하고 있습니다. 특히 좋은 조건으로 잠재 벡터에서 이미지로의 매핑을 장려하고자 생성기 정규화를 재설계하고, 점진적 성장을 재점검하며, 생성기를 정규화합니다. 이 경로 길이 정규화기를 통해 이미지 품질이 향상될 뿐만 아니라 생성기가 훨씬 더 쉽게 변환할 수 있다는 추가적인 이점도 있습니다. 이를 통해 특정 네트워크에서 이미지가 생성되었는지를 안정적으로 감지할 수 있습니다. 또한, 생성기가 출력 해상도를 얼마나 효과적으로 활용하고 있는지 시각화하고 용량 문제를 식별하여 보다 대규모 모델을 훈련하도록 해 추가적인 품질 개선을 이끌어냅니다. 전반적으로, 이 개선된 모델은 기존의 분포 품질 메트릭과 인식된 이미지 품질 측면에서 무조건적인 이미지 모델링의 최첨단 기술을 재정의합니다.
요구 사항
● Linux 및 Windows에서 모두 지원됩니다. 성능과 호환성을 위해 Linux를 사용하면 좋습니다.
● 64비트 Python 3.6을 설치합니다. NumPy 1.14.3 이상의 Anaconda3를 권장합니다.
● 논문의 모든 실험에 사용된 TensorFlow 1.14를 권장하지만, Linux에서는 TensorFlow 1.15도 지원됩니다. TensorFlow 2.x는 지원되지 않습니다.
● Windows에서는 표준 1.15 설치 프로그램에 필수 C++ 헤더가 포함되어 있지 않아 TensorFlow 1.14를 사용해야 합니다.
● 하나 이상의 고급 NVIDIA GPU, NVIDIA 드라이버, CUDA 10.0 툴킷, cuDNN 7.5가 필요합니다. 논문에 나와 있는 결과를 재현하려면 최소 16GB DRAM을 탑재한 NVIDIA GPU가 있어야 합니다.
● 도커 사용자: 제공된 Dockerfile을 사용하여 필수 라이브러리 종속성이 포함된 이미지를 제작합니다.
저는 StyleGAN2의 조금 더 발전된 형태인 ADA를 사용하려 합니다. 데이터 확대를 활용하여 상대적으로 작은 데이터 세트에서 효과적인 훈련을 수행할 수 있습니다. 다음 git clone 명령을 사용하여 코드를 다운로드합니다.
git clone: https://github.com/NVlabs/stylegan2-ada-pytorch
학습할 이미지가 수집되는 폴더를 '이미지'라고 부르겠습니다. 적어도 사본 몇 천 개를 수집해야 훈련에 효과적입니다.
효과적으로 훈련을 마쳤음이 입증된 256 크기의 데이터 세트를 만들겠습니다. 최대 1024까지 가능하지만, 정렬 측면 말고는 압도적인 성능을 기대할 수 없습니다. 또한, 파라미터 조정과 같은 다양한 작업이 필요할 수 있으니 StyleGAN2를 제대로 이해한 후 시도해 보는 게 낫습니다.
python dataset_tool.py --source=./images --dest=./data/stylegan2-dataset.zip --width=256 --height=256
생성된 데이터 세트를 사용하여 학습을 수행하는 명령은 다음과 같습니다.
python train.py --outdir=runs --data=./data/stylegan2-dataset.zip --gpus=1 --aug=ada --target=0.7
HP Z4 워크스테이션 A에서는 batch_size를 2개의 GPU에 대해 기본값보다 더 많이 사용할 수 있음이 드러납니다. 이렇게 되면 한층 빠르고 안정적인 학습이 가능해집니다.
처음에는 이니트와 동일한 상태로 알 수 없는 이미지를 만들어냅니다. 이 자체로 아름답다고 생각하는 사람도 있을지 모릅니다.
약 1,400번 정도 학습하고 나면 다음과 같이 어느 정도 스타일이 드러납니다. 심지어 액자를 그려 넣기도 합니다. 아직 미완성인 작품도 있으니 추가 학습이 필요할 수 있습니다. 이러한 이미지는 잠재 벡터에서 바로 생성할 수 있으며, 입력 이미지를 통해 스타일을 변경할 수도 있습니다.
훈련된 모델을 바탕으로 다음 명령을 사용하여 작품을 만들 수 있습니다. 시드는 임의의 값을 의미하며, 이 값을 통해 다양한 유형을 생성할 수 있습니다.
python generate.py --outdir=out --trunc=1 --seeds=85,265,297,849 --network=./runs/00000-stylegan2-dataset-auto2/network-snapshot-001400.pkl
'00000-stylegan2-dataset-auto2'의 '0000' 값은 학습하려는 횟수에 따라 늘어나며, 'network-snapshot-001400.pkl'의 '001400' 값은 학습량에 따라 증가합니다. 적합한 파일 경로를 입력하지 않으면 오류가 발생할 수 있습니다.
4. OpenSea
OpenSea에 가입하고 로그인하려면 MetaMask가 필요합니다. 모든 거래는 MetaMask 이더리움 지갑을 통해 이루어지므로, 없으면 만들어야 합니다.
그런 다음 OpenSea에 방문해서 생성 버튼을 누르면 MetaMask로 로그인할 수 있습니다.
생성 > 내 컬렉션에서 컬렉션을 구성하고, 컬렉션에 시간을 새로 추가하고, 위에서 생성한 이미지를 업로드하면 훈련받은 AI가 만들어낸 이미지, 즉 작품이 OpenSea를 통해 공개됩니다. 물론, 만들어진 작품을 그대로 사용하기보다는 개성을 불어넣어 본인의 정체성을 표현하면 더욱 좋습니다.
5. 결론
위의 실험을 통해 많은 양의 이미지를 생성하려면 많은 메모리가 필요하다는 점이 밝혀졌습니다. 빠르고 안정적인 학습을 가능케 하려면 강력한 장비가 필요한데, Z4는 무척이나 효과적이었습니다.
여기에서 제 OpenSea 컬렉션을 자세히 살펴보실 수 있습니다.
여러분도 AI를 활용한 작품을 창작해서 OpenSea를 통해 NFT를 활용한 아트 마켓에 진출해 보세요.