SSD Nodes Learn 8GB RAM — 연 $66
가이드 Matt Connor작성자 Matt Connor · 업데이트됨 2026-08-01

자체 호스팅 AI 이미지 생성기 사양과 비용

CPU VPS에서 Stable Diffusion 1.5는 512x512 이미지에 1~2분, SDXL은 10~20분이 걸립니다. ComfyUI 설치 명령과 필요한 VRAM, 디스크 용량을 실제 수치로 확인합니다.

자체 호스팅 AI 이미지 생성기에 실제로 필요한 것

자체 호스팅 AI 이미지 생성기는 웹 앱 하나와 모델 파일 하나로 구성됩니다. 앱은 ComfyUI이며 모든 Linux 서버에서 실행할 수 있습니다. 하드웨어를 결정하는 것은 모델입니다. SDXL급 checkpoint는 6.94 GB 단일 파일이며 GPU 메모리에 저장되어야 합니다. 이 한 가지 사실이 전체 예산을 결정하므로, 서버를 임대하기 전에 아래 하드웨어 단계를 확인해야 합니다.

요약하면 다음과 같습니다. CPU만 사용하는 VPS에서도 소프트웨어를 설치하고 서비스할 수 있습니다. 구형 Stable Diffusion 1.5 모델을 사용하면 512x512 이미지 1장을 생성하는 데 1~2분이 걸립니다. 같은 서버에서 SDXL을 1024x1024로 실행하면 이미지 1장당 10~20분이 걸립니다. 이는 설정이 잘못된 것이 아닙니다. 하드웨어 연산량의 차이이며, 이 가이드에서 그 이유를 설명합니다.

모델 크기가 시스템을 결정하는 이유

이미지 생성은 디노이징 루프를 실행합니다. 30단계 렌더링에서는 전체 모델을 이미지에 30번 적용하며, 각 단계에서 모든 가중치를 읽습니다. SDXL은 반정밀도에서 가중치가 약 6.9 GB이므로, 이미지를 보기 전에 30단계 렌더링이 메모리를 통해 약 200 GB를 이동시킵니다.

비디오 메모리(VRAM, 그래픽 칩 옆에 납땜된 메모리)가 24 GB인 GPU는 초당 수백 GB를 읽으며, 6.9 GB 전체를 한 번에 보관합니다. CPU VPS는 초당 수십 GB 속도로 시스템 RAM을 읽고, 합성곱을 처리할 행렬 연산 하드웨어가 없습니다. 따라서 같은 루프가 10배에서 100배 느리게 실행됩니다. 이는 텍스트 모델의 성능을 좌우하는 것과 같은 메모리 대역폭 문제입니다. GPU가 있는 VPS가 실제로 비용을 지불할 가치가 있는 경우도 함께 읽어볼 만합니다.

이미지 생성은 중요한 한 가지 점에서 텍스트 생성과 다릅니다. 채팅 모델은 토큰을 스트리밍하므로, 단어가 읽는 동안 나타나서 느린 시스템도 계속 사용할 수 있습니다. 이미지는 마지막 단계가 완료된 후에만 나타납니다. 느리다는 것은 진행률 표시줄을 바라보고 있어야 한다는 의미입니다.

실제 수치를 사용한 하드웨어 단계

다음 블록에는 2026년 7월 기준으로 1024x1024 해상도, 30 steps, Euler sampler를 사용해 SDXL 이미지 1장을 생성할 때의 일반적인 수치가 포함되어 있습니다. 이 수치는 대략적인 규모로만 참고합니다. 사용하는 sampler, steps 수, 해상도에 따라 달라집니다.

ChartOne SDXL image, 1024x1024, 30 steps (typical, July 2026)
The data behind this chart
[
  {
    "label": "8 vCPU VPS, no GPU",
    "seconds_per_image": 780
  },
  {
    "label": "8GB VRAM GPU",
    "seconds_per_image": 32
  },
  {
    "label": "12GB VRAM GPU",
    "seconds_per_image": 18
  },
  {
    "label": "24GB VRAM GPU",
    "seconds_per_image": 9
  }
]

CPU 행의 값은 780초로, 약 13분입니다. 24 GB 카드는 9초입니다. 구입하는 하드웨어에 따라 이 정도 차이가 발생합니다.

다음과 같이 단계별로 이해합니다. VRAM이 8 GB 미만이어도 SDXL은 계속 실행됩니다. ComfyUI가 자동으로 layer를 system RAM으로 offload하며, VRAM이 1 GB에 불과한 카드도 사용할 수 있기 때문입니다. Offloading은 각 step에서 시간이 추가로 걸리므로, 6 GB 카드는 이미지 1장당 30초보다는 1분에 가까운 시간이 걸립니다. 8 GB에서는 base model이 메모리에 들어가므로 안정적으로 render할 수 있습니다. 12 GB에서는 offloading 없이 ControlNet 1~2개와 checkpoint를 함께 메모리에 유지할 수 있습니다. 24 GB에서는 하나의 workflow에서 SDXL, refiner, upscaling을 함께 실행할 수 있습니다. 또한 이미지 생성보다 훨씬 많은 메모리가 필요한 LoRA adapter training을 시작할 수 있습니다.

CPU VPS에서 할 수 있는 작업과 할 수 없는 작업

예상보다 많은 작업을 할 수 있지만, 마케팅에서 암시하는 수준에는 미치지 못합니다. 가능한 범위를 구체적으로 판단해야 합니다.

CPU VPS에서는 ComfyUI를 설치하고, 웹 인터페이스를 제공하고, 모델 라이브러리를 저장하고, 대기열을 실행하고, GPU가 전혀 없는 상태에서도 이미지를 생성할 수 있습니다. Stable Diffusion 1.5를 512x512 해상도와 20 steps로 실행하면, 최신 vCPU 8개와 RAM 16 GB 환경에서 이미지 1장당 대략 60~150초가 걸립니다. 밤새 실행하는 배치 작업이나 대기열 뒤에서 동작하는 저용량 이미지 엔드포인트라면 실제로 충분합니다.

CPU VPS로 대화형 작업을 수행할 수는 없습니다. 프롬프트를 반복해서 조정하려면 1시간에 20번 렌더링해야 하지만, 1회에 13분이 걸리면 4개만 생성할 수 있습니다. 또한 학습도 수행할 수 없습니다. CPU에서 LoRA fine-tuning은 몇 시간이 아니라 며칠 단위로 걸리므로, 사용할 수 없다고 보는 것이 좋습니다.

CPU 전용 환경의 메모리 기준은 GPU 환경의 기준과 다릅니다. 가중치는 system RAM에 로드되므로 모델 크기에 작업 공간을 더한 메모리가 필요합니다. SDXL에는 약 16 GB의 RAM이 필요하고, SD 1.5에는 약 8 GB가 필요합니다. RAM 4 GB인 서버는 ComfyUI를 시작한 뒤 첫 번째 렌더링이 끝나기 전에 out-of-memory killer에 의해 종료됩니다. 이 경우 Python traceback은 표시되지 않고, Killed의 프로세스가 사라진 것으로 나타나며 dmesg에 기록됩니다.

GPU 머신에 ComfyUI 설치

다음은 upstream 명령입니다. NVIDIA driver가 이미 설치된 깨끗한 Ubuntu 24.04 설치 환경에서 시작합니다. 먼저 driver를 확인합니다. 이 확인을 생략하면 이후의 모든 오류가 동일하게 보입니다.

nvidia-smi

카드와 CUDA version이 포함된 표가 출력되어야 합니다. command not found 또는 NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver가 출력되면 driver가 없거나 업그레이드 후 kernel module이 로드되지 않은 것입니다. 계속하기 전에 문제를 해결합니다. 그렇지 않으면 ComfyUI가 조용히 CPU로 대체 실행되고, 문제를 software 탓으로 돌리게 됩니다.

sudo apt update
sudo apt install -y git python3-venv python3-pip wget
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
python3 -m venv venv
. venv/bin/activate
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu130
pip install -r requirements.txt

virtual environment는 선택 사항이 아닙니다. PyTorch는 많은 dependency를 설치합니다. 다른 작업도 실행되는 시스템에 이를 system-wide로 설치하면 다른 작업이 중단될 수 있습니다. 계속하기 전에 PyTorch가 GPU를 인식하는지 확인합니다.

python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"

True과 카드 이름이 함께 출력되면 stack이 정상적으로 작동하는 것입니다. False가 출력되면 설치한 wheel이 driver와 일치하지 않는 것입니다. 일반적으로 CPU 전용 torch wheel이 이미 cache되어 있기 때문에 발생합니다. 위의 index URL을 사용하여 다시 설치합니다.

모델을 가져오고 디스크를 계획합니다

ComfyUI에는 가중치가 포함되어 있지 않습니다. 체크포인트는 models/checkpoints에, VAE 파일은 models/vae에, LoRA 어댑터는 models/loras에 저장합니다.

cd ~/ComfyUI/models/checkpoints
wget https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors

항상 .ckpt보다 .safetensors을 우선 사용합니다. .ckpt 파일은 pickle로 직렬화된 Python 객체입니다. 이 파일을 로드하면 파일을 만든 주체의 코드가 실행됩니다. safetensors 형식에는 텐서만 저장되므로 악성 파일도 코드를 실행할 수 없습니다.

스토리지는 흔히 간과하는 비용입니다. SDXL 기본 체크포인트 하나의 크기는 6.94 GB입니다. refiner는 6 GB가 추가로 필요합니다. ControlNet 모델 하나는 1.4~2.5 GB, 업스케일러는 60~350 MB, LoRA는 20~400 MB입니다. 이 작업을 즐기는 사용자는 일주일 안에 두 번째와 세 번째 기본 모델을 다운로드합니다. 정상적으로 작동하는 설치에 100 GB의 디스크 공간을 할당합니다. outputs 디렉터리도 확인해야 합니다. 1024x1024 PNG 파일은 각각 1~2 MB이며, 관리하지 않는 batch 작업은 작은 디스크를 빠르게 가득 채웁니다. models/output/을 확장할 수 있는 볼륨에 배치하고, object storage에 대한 암호화된 증분 백업과 같은 방식으로 workflow JSON 파일을 백업합니다. 가중치는 다시 다운로드할 수 있습니다. 직접 조정한 workflow는 다시 만들 수 없습니다.

실행하고 안전하게 접속하기

cd ~/ComfyUI
. venv/bin/activate
python main.py --listen 127.0.0.1 --port 8188

ComfyUI는 port 8188에서 서비스를 제공합니다. CPU만 사용하는 서버에서는 --cpu를 추가합니다. 이 옵션은 CUDA device가 없을 때 실패하지 않고 CPU 경로를 사용하도록 강제합니다.

0.0.0.0가 아니라 127.0.0.1에 bind합니다. ComfyUI에는 login 화면과 user account가 없습니다. port에 연결할 수 있는 사용자는 누구나 작업을 대기열에 추가하고, 생성한 모든 image를 읽고, custom node를 설치할 수 있습니다. 이는 서버에서 임의의 code를 실행하는 것과 같습니다. 대신 laptop에서 SSH tunnel을 통해 접속합니다.

ssh -N -L 8188:127.0.0.1:8188 you@your-server

그런 다음 local 환경에서 http://127.0.0.1:8188을 엽니다. 실제 multi-user access가 필요하면 authentication을 적용한 reverse proxy를 앞에 배치하고 app은 localhost에 bind된 상태로 유지합니다. 동일한 원칙은 authentication이 없는 모든 self-hosted service에 적용되며, VPS에서의 Docker Compose 배포에서 사용하는 표준 패턴입니다.

systemd에서 계속 실행되도록 설정

SSH 세션이 종료될 때 중단되는 렌더링 큐는 서비스가 아닙니다. /etc/systemd/system/comfyui.service를 작성합니다.

[Unit]
Description=ComfyUI
After=network-online.target

[Service]
User=comfy
WorkingDirectory=/home/comfy/ComfyUI
ExecStart=/home/comfy/ComfyUI/venv/bin/python main.py --listen 127.0.0.1 --port 8188
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now comfyui
systemctl status comfyui

active (running)To see the GUI go to: http://127.0.0.1:8188라는 로그 행이 표시되면 실행 중인 상태입니다. ExecStart은 가상 환경 내부의 인터프리터를 직접 지정합니다. systemd는 셸 프로필을 실행하지 않으며 activate은 절대 발생하지 않기 때문입니다.

예산별 실용적인 권장 사항

이미지 생성을 시험해 보고 속도보다 비용이 중요하다면 RAM 16 GB의 CPU VPS를 사용하고, SD 1.5를 512x512로 실행하면서 이미지 1개를 생성하는 데 1~2분이 걸리는 것을 감수합니다. 이것이 현실적인 진입점이며, GPU가 연결된 어떤 구성보다도 비용이 훨씬 적게 듭니다. 어떤 구성을 사용할지 결정하는 동안 모델 라이브러리와 워크플로를 호스팅하기에도 적합합니다.

매일 프롬프트를 반복해서 수정한다면 GPU cloud에서 VRAM이 최소 12 GB인 GPU를 시간 단위로 대여하고, 작업을 중단할 때 종료합니다. 이미지 생성은 작업량이 집중되는 형태이며, 사용하지 않는 GPU에 월별 요금을 계속 지불하는 것이 이 분야에서 과도하게 지출하는 가장 일반적인 원인입니다. 체크포인트는 저렴한 block storage에 보관하고 mount합니다.

다른 사용자에게 서비스를 제공하거나 LoRA adapter를 학습시키려면 VRAM 24 GB와 계속 유지하는 시스템이 필요합니다. 이 단계에서는 일반적으로 같은 시스템에서 local language model도 실행해야 비용을 회수할 수 있습니다. 이 구성은 Ollama로 LLM 자체 호스팅에 설명되어 있습니다.

어떤 단계를 선택하든 게시된 수치를 그대로 믿기 전에 자신의 시스템에서 직접 측정합니다. 같은 프롬프트를 5회 queue하고 ComfyUI가 console에 출력하는 iteration당 초 수를 확인합니다. 이 수치가 실제 단계 위치를 결정합니다.

FAQ

GPU 없이 Stable Diffusion을 실행할 수 있습니까?

예. ComfyUI는 python main.py --cpu에서 실행되며 그래픽 카드가 없어도 실제 이미지를 생성합니다. 8개의 최신 vCPU에서 Stable Diffusion 1.5를 512x512로 생성하면 이미지 1개당 약 60~150초가 걸립니다. SDXL을 1024x1024로 생성하면 10~20분이 걸립니다. 야간 배치 작업과 소량 요청을 처리하는 엔드포인트에는 적합합니다. 프롬프트를 반복적으로 조정하는 작업에는 적합하지 않습니다. 학습에는 전혀 사용할 수 없습니다.

SDXL에는 VRAM이 얼마나 필요합니까?

8 GB면 1024x1024에서 SDXL을 안정적으로 실행할 수 있습니다. 이보다 적으면 ComfyUI가 레이어를 시스템 RAM으로 자동 오프로드하면서도 약 1 GB VRAM까지 실행할 수 있습니다. 그러나 오프로드되는 각 단계마다 처리 시간이 늘어납니다. 12 GB면 checkpoint와 함께 ControlNet을 메모리에 유지할 수 있습니다. 24 GB면 하나의 workflow에서 base, refiner, upscaling을 모두 처리할 수 있으며 LoRA adapter 학습에 필요한 실용적인 최소 용량입니다.

모델에는 디스크 공간이 얼마나 필요합니까?

SDXL base checkpoint만 해도 6.94 GB이며, refiner가 약 6 GB를 추가로 사용합니다. ControlNet 모델은 각각 1.4~2.5 GB이고, LoRA adapter는 20~400 MB이며, upscaler는 최대 350 MB입니다. base 모델 몇 개를 포함한 실제 운영 설치에는 100 GB를 할당하십시오. 1024x1024 PNG 파일은 각각 1~2 MB가 되므로 output 디렉터리는 별도로 모니터링해야 합니다.

공용 인터넷에 ComfyUI를 노출해도 안전합니까?

아니요. ComfyUI에는 어떤 형태의 인증도 없습니다. 또한 custom-node 시스템은 인터페이스에서 Python 코드를 설치하고 실행합니다. 따라서 열린 포트는 서버에서 원격 코드 실행이 가능하다는 의미입니다. 127.0.0.1에 바인딩하십시오. ssh -N -L 8188:127.0.0.1:8188 you@your-server를 사용해 SSH 터널로 접속하십시오. 둘 이상의 사용자가 접근해야 한다면 인증을 수행하는 reverse proxy를 앞에 배치하십시오.

오류 메시지 없이 렌더링 프로세스가 종료된 이유는 무엇입니까?

dmesg에서 Killed와 함께 프로세스가 사라지고 Python traceback이 표시되지 않았다면 ComfyUI 버그가 아니라 Linux out-of-memory killer가 원인입니다. CPU만 사용하는 서버에서는 가중치가 시스템 RAM에 저장됩니다. 따라서 SDXL에는 약 16 GB, SD 1.5에는 약 8 GB가 필요하며 작업 공간도 추가로 필요합니다. RAM 또는 swap을 추가하십시오. 또는 더 작은 모델과 더 낮은 해상도를 사용하십시오.

#stable-diffusion#comfyui#ai#images#self-hosting#gpu