내용 요약
딥러닝 모델(VQGAN + CLIP)을 이용해 AI가 그림을 그리게 할 수 있다.
아래 VQGAN+CLIP 링크를 눌러 들어가서 바로 시작해 볼 수 있다.
VQGAN+CLIP(Updated).ipynb - Colaboratory (google.com)
VQGAN+CLIP(Updated).ipynb
Run, share, and edit Python notebooks
colab.research.google.com
참조 링크
GitHub - justinjohn0306/VQGAN-CLIP: VQGAN+CLIP Colab Notebook with user-friendly interface.
GitHub - justinjohn0306/VQGAN-CLIP: VQGAN+CLIP Colab Notebook with user-friendly interface.
VQGAN+CLIP Colab Notebook with user-friendly interface. - GitHub - justinjohn0306/VQGAN-CLIP: VQGAN+CLIP Colab Notebook with user-friendly interface.
github.com
VQGAN+CLIP — How does it work?
The synthetic imagery (“GAN Art”) scene has recently seen a kind of productivity explosion: A new kind of neural network architecture…
alexasteinbruck.medium.com
서론
Colab으로 VQGAN과 CLIP을 이용하여 텍스트만으로 AI가 그림을 그리게 하는 방법을 알아본다.
본격적으로 들어가기에 앞서 이와 관련된 키워드들을 대략적으로 알아본다.
1. Colab이란?
구글 사에서 운영하는 Google Colaboratory의 약자이며 구글에서 웹 코딩 라이브러리인 jupyter notebook을 기반으로 구글 클라우드의 가상 서버 및 구글 드라이브의 저장 공간을 활용하여 웹 브라우저에서 Python 코드를 작성하고 실행할 수 있도록 제공중인 서비스를 말한다. Python을 별도의 구성없이 간단하게 사용할 수 있으며 무료로 Tesla K80 GPU를 빌려 쓸 수 있는 특장점이 있는 서비스이다.
하지만 무료로 사용할 수 있는 리소스는 용량과 시간적으로 제한이 있으므로 자세한 내용은 다음 링크에서 확인해보도록 한다.
Google Colab
Colaboratory 자주 묻는 질문(FAQ) 기본 사항 Colaboratory란 무엇인가요? 줄여서 'Colab'이라고도 하는 Colaboratory는 Google 리서치팀에서 개발한 제품입니다. Colab을 사용하면 누구나 브라우저를 통해 임의의
research.google.com
2. VQGAN이란?
Vector Quantized Generative Aadversarial Network의 약자이며 인공신경망의 일종으로 자세한 설명은 해당 링크로 대체한다.
쉽게 씌어진 GAN | Dreamgonfly's blog
쉽게 씌어진 GAN | Dreamgonfly's blog
이 글은 마이크로소프트웨어 391호 인공지능의 체크포인트(THE CHECKPOINT OF AI)에 ‘쉽게 쓰이는 GAN’이라는 제목으로 기고된 글입니다. 블로그에는 이 글의 원제이자 윤동주 시인의 ‘쉽게 씌어진
dreamgonfly.github.io
3. CLIP이란?
Contrastive Language–Image Pre-training의 약자이며 Open AI에서 개발한 딥러닝 모델의 일종이다. 자세한 설명은 아래 링크에서 대체한다.
[논문 리뷰] CLIP : Learning Transferable Visual Models From Natural Language Supervision (tistory.com)
[논문 리뷰] CLIP : Learning Transferable Visual Models From Natural Language Supervision
오늘은 최신 멀티모달 모델인 Open ai의 CLIP에 대해 리뷰를 해보고자 합니다. 공식 홈페이지 : openai.com/blog/clip/ CLIP: Connecting Text and Images We’re introducing a neural network called CLIP which..
simonezz.tistory.com
본론
본격적으로 VQGAN + CLIP을 이용하여 텍스트만으로 AI가 그림을 그리게 해본다.
1. 아래 링크를 연다.
해당 링크를 클릭할 때 Ctrl + 마우스 왼쪽 버튼 조합이나 마우스 휠 버튼으로 새창으로 열 수 있으므로 새창으로 연다.
VQGAN+CLIP(Updated).ipynb - Colaboratory (google.com)
2. 링크를 열면 다음과 같은 페이지가 나온다. Colab에서는 이 페이지를 노트북이라 부르며, 이 노트북을 만든 저자는 친절하게도 User friendly interface를 구축해놨으므로 코드는 내부적으로 숨겨져 있고 셀 단위로 실행 버튼을 순차적으로 누르기만 하면 손쉽게 돌릴 수 있게 만들어놨다.
3. 첫 셀인 MIT 라이센스는 말 그대로 라이센스에 대한 명세가 적혀있고 코드라고 할 부분은 아니므로 읽고 싶은 사람은 더블 클릭해서 읽어보도록 하고, 두번 째 셀인 Check GPU type 부터 코드를 실행하도록 한다.
아래 이미지 처럼 Check GPU type 제목 왼쪽의 실행 버튼을 눌러서 코드를 실행할 수 있다.
우리는 Free 버전의 Colab을 사용 중이므로 현재 GPU는 K80이 나올 것이다.
내부적으로 코드가 어떻게 짜여져있는지 궁금하다면 셀 하단의 코드 표시 텍스트를 눌러 코드를 확인해 볼 수 있다.
수 초에 걸쳐서 코드가 돌아가고 정상적으로 실행되었다면 셀 옆에 초록색 체크 표시가 뜬다. 그리고 셀의 하단에서 GPU 0: Tesla K80(UUID : blah..)가 출력된 것을 확인할 수 있다. 현재 Tesla K80을 사용하고 있다는 것이다. 이제 이 방식대로 코드 페이지의 셀들을 순차적으로 실행해본다.
4. 다음은 Colab의 자동 연결 해제를 차단하는 셀이다. 지금까지는 본격적으로 코드를 돌리기 전에 사전 준비하는 셈이다. 어쨌든 동일하게 코드를 실행한다.
5. Installation of libraries 셀에서는 VQGAN +CLIP 모델을 구동하는데 필요한 라이브러리를 설치한다.
6. Selection of models to download 셀에서는 코드를 실행하기 전에 이미지 데이터 셋 모델을 선택할 수 있는데, 기본값으로 imagenet_16384가 선택되어 있다. 특별히 조정하고 싶다면 값을 바꿔서 실행하도록 하고 여기서는 기본값으로 실행할 것이다. 모델 다운로드는 보통 수십초 정도 걸린다.
7. Loading libraries and definitions 셀도 실행하여 앞서 5번에서 설치한 라이브러리를 불러온다.
8. 이제 구동을 하기 위한 세팅을 한다. 여러 파라미터가 존재하는데 texts 파라미터에 AI가 그려줬으면 하는 그림에 대하여 텍스트를 입력하고 실행한다. 예를 들어 a fantasy coast 혹은 apple 같은걸 입력하면 된다.
9. 이제 모든 모든 준비가 끝났으니 AI가 그림을 그리게 하면 된다. Fire up the AI 셀을 실행한다.
몇가지 준비를 하더니 첫번째 이미지가 나온다. 하지만 내가 원하는 이미지는 이런게 아닌데 할 것이다. 당연하게도 AI가 이제 막 밑그림을 그리기 시작했기 때문이다. 이제 우리는 AI에게 그림을 그릴 여유를 줄 필요가 있다. 커피를 마시거나 딴 짓을 하며 약 10분정도 보내다 오면 내가 원하는 그림이 어느정도 완성되어 있을 것이다.
train 횟수 50회마다 그림을 출력하는데(파라미터 세팅에서 변경이 가능하다.) 첫 50회 만에 벌써 fantastic coast와 거의 근사한 그림을 그려내는 모습이 인상적이다. 시간이 지나면 지날수록 더 완벽한 그림을 볼 수 있을 것이다.
train 200회 만에 AI가 환상적인 해변을 그렸다.
'Programming > General' 카테고리의 다른 글
QT6 오픈소스 온라인 설치 도중 네트워크 에러가 발생할 때 해결 방법 (0) | 2023.03.17 |
---|---|
[YOLOv7] training 중 indices should be either on cpu or on the same device as the indexed tensor (cpu) 에러 발생 해결법 (0) | 2022.12.28 |
OPCUA 관련 참고 사이트 (0) | 2022.05.04 |
[General] 공유메모리에 대한 정의 및 사용법 (0) | 2022.04.26 |
Windows 10 1903(2019년 5월) 업데이트 시 유의 사항 (0) | 2019.11.07 |