시간당 비용이 저렴해 보이는 임대 GPU가 예상보다 더 큰 비용을 청구했습니다. 첫 이미지를 생성한 후에도 밤새 켜두었더니, 모델 로드는 몇 분밖에 걸리지 않았지만 유휴 상태의 장비에 대한 요금이 몇 시간 동안 계속 부과되었습니다. 이 가이드에서는 GPU 선택 방법, Ubuntu에 Stable Diffusion 설정하기, 안전하게 연결하는 방법, 그리고 이러한 예상치 못한 비용을 피하는 방법을 다룹니다.
모델에 맞는 서버 선택하기
첫 실행의 경우, Stable Diffusion 1.5를 위해 8GB VRAM이 있는 NVIDIA GPU가 합리적인 목표입니다. SDXL은 12GB 이상에서 더 편안하게 작동하지만, 실제 요구 사항은 해상도, 배치 크기(batch size), 최적화에 따라 달라집니다. 임대하기 전에 GPU 모델과 VRAM을 확인하세요. 리스팅의 'GPU 메모리'와 시스템 RAM은 다른 것입니다.
디스크 공간 또한 중요합니다. 운영 체제, Python 종속성, 모델 체크포인트, 생성된 이미지를 위해 최소 50GB의 영구 스토리지로 시작하는 것이 좋습니다. 여러 모델을 유지할 계획이라면 더 많은 용량이 유용합니다.
Vast.ai는 제가 사용하고 테스트해 본 온디맨드 GPU 임대 서비스로, 다양한 하드웨어와 가격대를 제공하여 좋은 선택지입니다. PowerVPS는 VPS 워크로드에 대해 사용하고 테스트한 또 다른 제공업체입니다. 더 오래 지속되는 서버나 지원 서비스를 필요로 한다면 현재의 상품을 확인하고, 플랜을 선택하기 전에 GPU 가용성을 확인하세요. 어느 경우든 스토리지와 GPU가 유휴 상태일 때 계속 발생하는 모든 요금을 포함하여 총비용을 비교하는 것이 중요합니다. Server Rental Guide는 임대 옵션과 약관을 비교할 때 유용한 자료입니다.
깨끗한 Ubuntu 서버로 시작하기
제공업체에서 제공한다면, NVIDIA 드라이버가 이미 설치된 Ubuntu 22.04 이미지를 선택하세요. 이렇게 하면 첫 세션을 드라이버 설정 디버깅에 쓰는 것을 방지할 수 있습니다. SSH를 통해 연결한 후, GPU가 보이는지 확인합니다:
GPU 모델, 드라이버 버전 및 메모리를 확인할 수 있습니다. 만약 명령이 누락되었거나 장치가 없다고 보고하면, 다른 것을 설치하기 전에 제공업체의 GPU 이미지와 드라이버 지침을 확인하십시오. 드라이버 설치는 이미지와 제공업체에 따라 다릅니다.
기본 도구 설치:
sudo apt update
sudo apt install -y git python3 python3-venv python3-pip
이 예시에서는 AUTOMATIC1111의 Stable Diffusion WebUI를 사용합니다. 처음 시작할 때 Python 종속성(dependencies)을 설치하므로 시간이 걸릴 수 있으니 시간을 충분히 주고, 재사용하려면 서버 디스크가 영구적으로 유지되도록 하십시오.
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui
사용할 수 있는 모델 체크포인트(model checkpoint)가 필요합니다. 모델 호스트의 일반적인 절차를 통해 다운로드한 다음, 서버에 복사하거나 호스트가 직접 링크를 제공하는 경우 서버에서 다운로드하십시오. 일부 모델 호스트는 라이선스 동의나 로그인 입력을 요구합니다. .safetensors 파일을 WebUI의 모델 디렉터리에 넣으십시오:
mkdir -p models/Stable-diffusion
# 체크포인트를 models/Stable-diffusion/로 복사하십시오.
예를 들어, 로컬 컴퓨터에서 scp를 사용하여 파일을 복사할 수 있습니다:
scp ./my-model.safetensors USER@HOST:stable-diffusion-webui/models/Stable-diffusion/
여기서 USER와 HOST는 제공업체가 제공한 SSH 로그인 세부 정보로 대체하십시오. 이 명령어는 클론(clone)이 원격 사용자의 홈 디렉터리에 있다고 가정합니다.
UI를 외부에 노출하지 않고 실행하기
WebUI가 서버의 네트워크 인터페이스에서 수신 대기하도록 시작합니다:
./webui.sh --listen --port 7860
첫 테스트 동안 이 프로세스를 SSH 세션에서 계속 실행 상태로 유지하십시오. UI를 인터넷에 대해 포트 7860을 열 필요는 없습니다. 대신, 제공업체의 방화벽 또는 보안 그룹이 해당 포트로의 인바운드 트래픽을 차단하도록 유지하고 로컬 컴퓨터에서 터널을 만드십시오:
ssh -L 7860:127.0.0.1:7860 USER@HOST
로컬 브라우저에서 http://127.0.0.1:7860을 여세요. 터널이 로컬 포트를 서버의 WebUI로 전달합니다. 만약 7860 포트가 이미 로컬에서 사용 중이라면, 다른 로컬 포트를 선택하세요. 예를 들면:
ssh -L 7861:127.0.0.1:7860 USER@HOST
이 경우, http://127.0.0.1:7861을 여세요. 인증되지 않은 이미지 생성 UI를 공용 인터넷에 직접 노출하는 것은 피하세요.
첫 번째 이미지를 생성하고 활용도를 확인하기
UI에서 체크포인트를 선택하고, 프롬프트를 입력한 다음, 적당한 설정으로 시작하세요: 512×512 해상도, 이미지 1개, 그리고 약 20 스텝. 작동하는 것을 확인했다면, 더 큰 해상도나 다른 설정을 시도해 보세요.
두 번째 SSH 세션에서 GPU 사용량을 확인하세요:
활용도가 낮아 보이는 GPU는 모델 로딩, 디스크 접근 또는 작업을 CPU로 보내는 설정 때문에 대기 중일 수 있습니다. 스텝 수를 높인다고 항상 더 좋다고 가정하지 마세요. 이는 생성 시간을 늘릴 뿐이며, 시각적 차이는 프롬프트와 샘플러에 따라 달라집니다.
문제를 줄여주는 두 가지 임대 습관
모델은 영구 저장소에 보관하세요. 많은 임대 플랫폼에서 기기를 중지하는 것과 삭제하는 것을 구분합니다. 중지된 인스턴스는 디스크를 유지할 수 있지만, 삭제하면 모델 파일도 제거될 수 있습니다. 세션을 종료하기 전에 제공업체의 규칙을 확인하고 중요한 것은 서버에서 복사해 가세요.
시간당 요율을 비용의 일부로만 취급하세요. 더 많은 VRAM을 가진 GPU가 작업을 더 빨리 끝낼 수는 있지만, 가장 저렴한 목록이 자동으로 가장 저렴한 실행이라는 의미는 아닙니다. 짧은 작업의 경우 시간당 가격뿐만 아니라 예상 실행 시간도 비교하세요. 또한 영구 디스크가 GPU가 중지된 동안 청구되는지 확인하세요. 세부 사항은 제공업체와 임대 유형에 따라 다릅니다.
끝났을 때 종료하기
SSH 세션에서 Ctrl+C를 사용하여 WebUI를 중지하세요. 그런 다음 제공업체의 제어판을 사용하여 임대한 인스턴스를 중지하거나 해제하세요. SSH를 닫는 것이 서버를 중지시킨다고 가정하지 마세요. 일부 플랫폼에서는 명시적으로 중지하거나 종료할 때까지 기기가 계속 실행되고 청구될 수 있습니다.
나중에 다시 돌아올 계획이라면 디스크를 보존하는 옵션을 선택하고 스토리지 요금을 확인하세요. 파일이 더 이상 필요 없다면, 결과물을 백업한 후 제공업체의 지침에 따라 인스턴스를 제거하세요.
개요
임대 GPU는 하드웨어를 구매하지 않고도 Stable Diffusion을 사용할 수 있게 하지만, 설정은 절반의 작업일 뿐입니다. 모델 저장소, 네트워크 접근성, 종료 동작 등 모든 것이 경험과 청구서에 영향을 미칩니다. 사전 구성된 Ubuntu GPU 이미지를 사용하여 시작하고, nvidia-smi로 이를 확인하며, 실행 라이선스가 있는 모델을 사용하고, SSH 터널을 통해 WebUI에 접속하세요. 가장 중요한 것은 임대 중지 시 서버와 디스크에 어떤 일이 발생하는지 이해하는 것입니다.