[수정사항]

2022.10.19 1500: 사전 라이브러리 설치 과정을 한 줄로 처리하는 방법 추가
2022.10.20 0240: 코랩에서 바로 실행할 수 있는 방법을 소개하는 글의 링크 추가
2022.10.27 0445: 사전 라이브러리 설치 과정 일부 및 본문 오탈자 수정
2023.02.05 0145: 최신 원클릭 노트북 실행 환경 대응 위한 내용 첨삭
2023.02.06 0300: 최신 원클릭 노트북 실행 환경 대응 위한 내용 추가
2023.02.12 0245: 추가 라이브러리 설치 과정에 대한 움짤 추가
2023.02.12 1825: 코드 실행 과정 내용 수정


2023.02.06 0300 내용 추가

난 이제 변화하는 원클릭 노트북에 대한 Runpod 상에서의 완전한 지원을 약속할 수 없음.

더 이상 SD를 통해 그림을 뽑는 것에 대한 흥미를 느끼지 못하기 때문에, AI그림챈에 자주 오지도 않을 듯 함.

따라서 지금 시간 이후로 발생하는 문제에 대한 트러블슈팅은 사용자 본인이 직접 해야 함.

달리 말하면, 이쪽의 지식이 없어서 자력으로 대응할 능력이 없는 사람들에게 권장하고 싶지 않음.

아마 AUTOMATIC1111의 WebUI는 계속 파이썬 3.10으로 갈 듯한 느낌이니,

Runpod가 템플릿을 잘 업데이트 한다는 가정 하에 이 가이드는 문제 없이 제 기능을 할 것이라고 예상됨.

Runpod는 유료 서비스이기 때문에 신중히 결정하길 바람.


==========================================


이 글보다 간단하게 돌릴 수 있는 방법을 아래 글에서 소개한다!

원클릭 노트북을 이용한 Runpod.io 설정 가이드 코랩편

난 2080 Ti를 사용해서 로컬로 돌리는 데 큰 문제는 없었지만,

짤을 뽑거나 학습 시키면서 게임도 하고 싶었기 때문에 GPU 대여를 결심하게 됨.


RunPod를 선택한 이유는 vast.ai보다 UI가 깔끔해 보였고 가격 차이도 크지 않아서 선택함.

특히 vast.ai는 네트워크 요금도 받기 때문에 큰 디메리트로 나에게 작용함.

구름IDE는 주마다 30시간 무료로 이용할 수 있다고 하는데 이왕 하는 거 좋은 하드웨어를 쓰고 싶어서 제외.

그리고 뭔가 불편해 보였음. 이런 건 개인 취향 차이.


먼저 Runpod는 Ubuntu 18, Anaconda가 딸린 Python3.7(Jupyter용 커널)을 사용함.

코랩이랑 소프트웨어 스펙은 크게 다를 게 없다는 뜻이다.

그리고 주피터 노트북을 갖다가 코랩처럼 바로 쓸 수 있어서 편리함.

2023.02.05 이후 내용 보충

Runpod 기본 제공 PyTorch 템플릿은 Python3.9버전을 사용.

WebUi가 기본 제공되는 템플릿 등을 사용해 Python 버전을 3.10 이상으로 유지해야 함.


이 설명글은 크게 다음과 같은 순서를 따라 설명됨.

1. Runpod.io 가입 및 결제

2. 원클릭 노트북 사용을 위한 기본 설정

3. 실행 및 테스트


==[2022.10.18 1540시 추가]==

참고용 A to Z 영상

아래 설명을 먼저 읽어보고 잘 이해가 가지 않으면 저 영상을 참고하길 바람.

====


1.  Runpod.io 가입 및 결제

위 링크를 따라 접속하면 아래와 같은 화면이 나옴

계정이 있다면 Login, 없다면 Sign Up을 눌러 가입을 진행하자.


사이트에서 시키는 대로 해서 계정을 만들자.

난 그냥 구글 통해서 가입 했음.


가입을 다 해서 로그인 한 후 콘솔(대시보드)로 넘어가면 아래와 같음.

내가 빨간 박스를 쳐 놓은 곳이 계정의 잔고를 나타내는 곳임.

방금 가입했다면 당연히 0.

저길 누르면 결제창으로 넘어갈 수 있음.

또는 좌측 메뉴의 Billing을 눌러서 같은 화면으로 넘어갈 수 있음.


넘어가면 이런 창이 뜬다.

25 50 100을 보고 쫄지 말자.

최소 결제 금액은 10달러부터니까.

결제 수단은 카드 및 가상화폐, 2가지만 지원한다.

각자 편한 방법으로 10달러 또는 개인의 요구에 맞게 충전하자.



2. 원클릭 노트북 사용을 위한 기본 설정

충전에 성공했다면 좌측 메뉴에서 Browse Servers를 클릭하고 우상단의 정렬 방법에서

Upload - Desc(업로드 속도 내림차순), RTX 3090(또는 개인이 원하는 그래픽 카드 모델)을 선택한다.

왜 업로드 내림차순으로 정렬하느냐 하면, 업로드 속도가 느리면 서버에서 그림은 빨리 뽑아도,

완성된 결과물이 내 컴퓨터에 도달하는 속도가 늦어진다.

다시 말하자면, 결과물을 확인하는 속도가 답답할 정도로 느려진다는 것.

업로드 속도가 높으면 다운로드 속도도 보장된다는 점이 있다.

마음에 드는 서버를 찾았다면 Deploy 버튼을 클릭해 진행하자.


위와 같은 화면이 나오는데 템플릿은 RunPod Stable DIffusion v1.5/v2.1로 선택한다.


SSH Terminal Access와 Start Jupyter Notebook도 체크하자.

SSH 터미널은 선택사항이지만 저거 한다고 돈 더 드는 것도 아니고 나중에 쓸모가 생길 수 있으니 체크.


GPU 렌탈 비용만 있는 게 아닌 디스크 사이즈에 따른 요금도 붙는다.

아래는 각 디스크의 역할에 대한 공식 설명이다.

Container disk는 쉽게 말하자면 일반적인 PC에서 운영체제를 설치해 둔 C드라이브라고 할 수 있음.

Volume disk는 작업물이나 기타 데이터를 저장하는 별도의 드라이브라고 할 수 있음.

난 기본 용량인 20 / 20으로 설정해뒀는데 나중에 용량 조절이 가능함.

단 늘리는 것만 가능하니 주의.


자 이제 Deploy를 누르면,

포드 디플로이가 완료됐다.

My Pods 버튼을 눌러 콘솔로 이동하자.


포드를 초기화 하는 과정이 있다.

얼마 걸리지 않으니 기다리자.



원클릭 노트북

링크를 클릭해 노트북을 열자.


익숙한 화면이 나와줘서 여간 반갑지 않을 수 없다.

먼저 사용할 체크포인트를 선택.

난 구글 연동을 하지 않을 것이기 때문에 체크 해제.

아마 드라이브와 연동하는 라이브러리가 코랩용이던 것으로 기억함.

Runpod에서 실행해도 동작하지 않고 에러를 뱉을 가능성이 높음.

사실 안해봐서 모르니 일단은 체크 해제한 상태에서 진행하자.


난 ngrok을 이용할 예정이므로 다음의 링크를 따라 API 키를 발급받았다.

https://dashboard.ngrok.com/get-started/your-authtoken

발급받은 후 빈칸에 키를 붙여넣기 하면 완료.


이제 기본 설정이 끝났으니 노트북을 저장하자.

편한 곳 아무 곳이나 일단 저장해 두자.


3. 실행 및 테스트

다시 이 창으로 돌아와서 주피터 랩에 접속하자.


접속하면 아래와 같은 화면이 나온다.

빨간 박스를 쳐 둔 곳에 아까 저장한 노트북 파일을 드래그 앤 드롭 한다.


추가적으로 설치할 라이브러리가 있다.

rsync를 사용하게 바뀌었기 때문에 이것을 설치해 주어야 한다.

코드 섹션을 추가한 후 아래의 코드를 붙여넣고 실행한다.

!apt-get update -y

!apt install -y aria2

!apt install -y rsync


노트북을 열고, 위와 같은 과정으로 코드 셀을 추가하고 실행하면 된다.


다시 포드의 Connect 메뉴로 돌아간다.

Connect > Start Web Terminal > Connect to Web Terminal 의 순서로 웹 터미널을 연다.

ps aux 입력

위의 3개의 프로세스가 보인다.

지금 사용하는 이미지는 실행 시 자동으로 WeBUI를 실행 시키기 때문에 이들을 죽여줘야 한다

맨 오른쪽 칸을 주목하라.

프로세스의 커맨드를 잘 보고 저들을 죽여야 한다.

위 예시대로면 PID가 17, 31, 32기 때문에

"kill 17 31 32" 를 입력하여 처리할 수 있다.

꼭 해야한다!!


rsync도 설치했고 필요없는 프로세스도 다 죽였다. 이제 원클릭 노트북을 실행해 보자.

실행은 위와 같이 코드섹션 선택을 새로 만든 섹션이 아닌,

기존에 복사해둔 메인 스크립트쪽의 코드 섹션을 활성화 해서 "재생버튼"을 누르면 실행 완료.


완료될 때 까지 기다리자...


성공적으로 Web Ui 구동이 완료됐다. 테스트 해보자.


xFormers를 사용한 덕에 3090의 512x768 해상도의 기본 처리 속도인 약 9it/s를 넘어,

평균적으로 11.7 ~ 12.3it/s에 근접하는 속도를 보여줬다.

견쌍섭 해병님의 긴빠이 속도보다 빠르다고 할 수 있다.

여간 기합 찬 처리속도가 아닐 수 없다라이라이차차차.


결과물에도 이상이 없다. EXIF 데이터는 보존되어 있으니 테스트용으로 사용해 보라.
서버의 업로드 속도가 빠르기 때문에 결과 확인도 신속해서 마음에 든다.


==============================================


Runpod에 원클릭 노트북을 올리는 과정에서 일체의 노트북을 수정하는 일이 없고,

추가적으로 무언가를 설치하는 과정도 대폭 줄였다.


노트북을 건들지 않으니 노트북에 관한 질문은 받을 수도 없고 답을 할 수도 없다.

난 노트북을 작성한 사람이 아니기 때문.



여하튼 긴 가이드 읽어줘서 고맙읍니다.


아래는 이 글을 작성하는데 참고한 글의 링크들임.

원클릭 노트북

구름IDE 에서 webui 돌리기

파이썬(python) 가상환경 생성

bangs, 앞머리에 관한 연구글 (예시용 이미지 프롬프트 출처)