자체 호스팅 AI 이미지 생성기 하드웨어 사양 가이드
Stable Diffusion 및 ComfyUI 구동에 필요한 실제 하드웨어 사양을 정리했습니다. CPU VPS와 GPU 서버의 성능 차이, SDXL 모델 구동을 위한 VRAM 요구량, 그리고 원활한 이미지 생성을 위해 확보해야 할 최소 디스크 용량과 권장 사양을 상세히 안내합니다.
자체 호스팅 AI 이미지 생성기에 실제로 필요한 것
자체 호스팅 AI 이미지 생성기는 하나의 웹 애플리케이션과 하나의 모델 파일로 구성됩니다. 애플리케이션은 ComfyUI이며, 모든 Linux 서버에서 실행할 수 있습니다. 하드웨어 사양을 결정하는 것은 모델입니다. SDXL급 체크포인트는 6.94 GB 크기의 단일 파일이며, GPU 메모리에 상주해야 합니다. 이 사실 하나가 전체 예산을 결정하므로, 서버를 임대하기 전에 아래의 하드웨어 등급을 확인하십시오.
솔직한 요약은 다음과 같습니다. CPU 전용 VPS에서도 소프트웨어를 설치하고 서비스할 수 있으며, 구형 Stable Diffusion 1.5 모델을 사용하여 512x512 크기의 이미지를 생성할 경우 이미지당 1~2분 정도 소요됩니다. 동일한 서버에서 SDXL을 사용하여 1024x1024 크기로 생성하면 이미지당 10~20분이 걸립니다. 이는 설정이 잘못된 것이 아닙니다. 단순한 연산 결과이며, 이 가이드에서 그 이유를 설명합니다.
모델 크기가 장비 사양을 결정하는 이유
이미지 생성은 노이즈 제거 루프를 실행합니다. 30단계 렌더링은 노이즈 제거기인 SDXL의 UNet을 이미지에 30번 적용하며, 각 단계마다 모든 UNet 가중치를 읽어 들입니다. 두 개의 텍스트 인코더는 루프 시작 전 한 번, VAE 디코더는 루프 종료 후 한 번만 실행되므로 단계별 비용에는 포함되지 않습니다. SDXL의 UNet은 반정밀도(half precision)에서 5.14 GB의 가중치를 가지므로, 단순 계산 시 30단계 렌더링을 완료하려면 약 154 GB의 가중치가 메모리를 거쳐야 하며, 중간 텐서 데이터가 추가되면 그 양은 더 늘어납니다.
24 GB의 비디오 메모리(VRAM, 그래픽 칩 옆에 납땜된 메모리)를 갖춘 GPU는 초당 수백 GB의 속도로 데이터를 읽으며, 6.9 GB의 전체 모델을 메모리에 한 번에 올릴 수 있습니다. 반면 CPU 기반 VPS는 초당 수십 GB 속도의 시스템 RAM을 사용하며, 컨볼루션 연산을 위한 행렬 연산 하드웨어가 없기 때문에 동일한 루프를 실행할 때 10배에서 100배가량 더 느립니다. 이는 텍스트 모델을 결정짓는 메모리 대역폭 논리와 동일하며, GPU가 탑재된 VPS가 비용 효율적인 경우와 함께 읽어볼 가치가 있습니다.
이미지 생성은 텍스트 생성과 결정적인 차이점이 하나 있습니다. 챗 모델은 토큰을 스트리밍 방식으로 출력하므로, 읽는 동안 단어가 나타나기 때문에 느린 장비에서도 사용 가능한 것처럼 느껴집니다. 하지만 이미지는 마지막 단계가 끝나야만 나타납니다. 즉, 느린 장비에서는 진행률 표시줄만 계속 바라봐야 한다는 뜻입니다.
하드웨어 단계와 실제 수치
아래 블록은 2026년 7월 기준, 1024x1024 해상도, 30 스텝, Euler 샘플러를 사용한 SDXL 이미지 한 장 생성 시의 일반적인 수치를 담고 있습니다. 이를 자릿수 단위의 참고치로 활용하십시오. 샘플러, 스텝 수, 해상도에 따라 수치는 변동됩니다.
이 차트의 데이터
[
{
"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가 VRAM과 시스템 RAM을 통합 관리하며 모델 가중치를 자동으로 오프로드하기 때문입니다. 2026년 10월 기준, 해당 프로젝트의 README는 비동기 가중치 스트리밍을 사용할 경우 최소 사양을 VRAM 4 GB와 시스템 RAM 8 GB로 명시하고 있습니다. 오프로드 과정에서 매 스텝마다 시간이 소요되므로, 6 GB 카드는 30초보다는 1분에 가까운 생성 시간을 보입니다. 8 GB에서는 베이스 모델이 메모리에 적재되어 원활한 렌더링이 가능합니다. 12 GB에서는 오프로드 없이 체크포인트와 함께 ControlNet을 한두 개 정도 동시에 올릴 수 있습니다. 24 GB에서는 SDXL과 리파이너, 업스케일링을 하나의 워크플로우에서 실행할 수 있으며, LoRA 어댑터 학습을 위한 여유 공간도 충분합니다. 학습은 이보다 적은 사양에서도 가능합니다. kohya-ss sd-scripts 트레이너를 위한 SDXL 학습 가이드는 LoRA 학습이 8 GB GPU 메모리로 가능하며, 10 GB를 권장한다고 밝히고 있습니다. 이를 달성하기 위해 U-Net만 학습하고, gradient checkpointing을 켜고, 텍스트 인코더 출력과 latent를 캐싱하며, 8-bit 옵티마이저나 Adafactor를 사용하고, 8 GB 카드에서는 LoRA dim을 4에서 8로 낮출 것을 권장합니다. 해당 스크립트를 래핑한 kohya_ss GUI의 LoRA 가이드는 더 보수적이며, LoRA 학습을 위해 최소 12 GB 메모리를 갖춘 GPU 사용을 권장합니다.
CPU VPS로 가능한 작업과 불가능한 작업
CPU VPS는 기대 이상의 성능을 발휘할 수 있지만, 마케팅 문구만큼 만능은 아닙니다. 그 한계를 명확히 이해해야 합니다.
CPU VPS에서도 ComfyUI를 설치하고, 웹 인터페이스를 제공하며, 모델 라이브러리를 관리하고, 큐를 처리하며, GPU 없이 이미지를 생성할 수 있습니다. 8개의 최신 vCPU와 16 GB RAM 환경에서 Stable Diffusion 1.5 모델을 512x512 해상도, 20 스텝으로 실행할 경우 이미지 한 장당 약 60초에서 150초가 소요됩니다. 밤새 실행하는 배치 작업이나 큐 뒤에서 처리되는 저용량 이미지 엔드포인트라면 충분히 실용적인 수준입니다.
반면 CPU VPS는 대화형 작업에는 적합하지 않습니다. 프롬프트를 반복 수정하며 작업할 경우 한 시간에 20번의 렌더링이 필요하지만, 장당 13분이 걸린다면 4번밖에 처리할 수 없습니다. 또한 모델 학습도 불가능합니다. CPU를 이용한 LoRA 파인튜닝은 시간이 아닌 며칠 단위로 측정되므로 사실상 불가능한 작업으로 간주해야 합니다.
CPU 전용 환경에서의 메모리 규칙은 GPU 환경과 다릅니다. 모델 가중치가 시스템 RAM에 로드되므로 모델 크기에 작업 공간을 더한 용량이 필요합니다. SDXL은 약 16 GB, SD 1.5는 약 8 GB의 RAM이 필요합니다. 4 GB RAM을 가진 서버에서 ComfyUI를 실행하면 첫 렌더링 도중 out-of-memory killer에 의해 프로세스가 강제 종료됩니다. 이 경우 Python 트레이스백 없이 Killed가 dmesg에 기록되며 프로세스가 사라지는 현상이 나타납니다.
GPU 머신에 ComfyUI 설치하기
다음은 업스트림 명령어입니다. NVIDIA 드라이버가 이미 설치된 깨끗한 Ubuntu 24.04 환경에서 시작하십시오. 이후 발생하는 모든 오류는 이 확인 절차 없이는 동일하게 보일 수 있으므로, 먼저 드라이버를 확인해야 합니다.
nvidia-smi이 명령은 사용 중인 그래픽 카드와 CUDA 버전이 포함된 표를 출력해야 합니다. command not found 또는 NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver가 출력된다면 드라이버가 없거나 업그레이드 후 커널 모듈이 로드되지 않은 상태입니다. ComfyUI가 자동으로 CPU 모드로 전환되어 소프트웨어 탓을 하게 될 수 있으므로, 계속 진행하기 전에 이 문제를 먼저 해결하십시오.
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가상 환경은 선택 사항이 아닙니다. PyTorch는 방대한 의존성 트리를 불러오므로, 다른 서비스가 실행 중인 서버에 시스템 전체 범위로 설치하면 해당 서비스들이 고장 날 수 있습니다. 더 진행하기 전에 PyTorch가 그래픽 카드를 인식하는지 확인하십시오.
python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"True과 함께 그래픽 카드 이름이 출력되면 스택이 정상적으로 작동하는 것입니다. False가 출력된다면 설치한 휠(wheel)이 드라이버와 일치하지 않는 상태이며, 보통 CPU 전용 torch 휠이 캐시되어 있을 때 발생합니다. 위의 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 파일은 파이썬 객체를 직렬화(pickled)한 형태이므로, 파일을 불러오는 과정에서 제작자가 심어둔 코드가 실행될 수 있습니다. 반면 safetensors 형식은 텐서 데이터만 포함하므로, 악의적인 파일이라도 임의의 코드를 실행할 수 없습니다.
사용자들이 흔히 간과하는 비용은 저장 공간입니다. SDXL 기본 체크포인트 하나는 6.94 GB입니다. 리파이너 모델은 6 GB를 추가로 차지합니다. SDXL ControlNet 모델은 작은 Canny 모델의 경우 320 MB에서 전체 모델(반정밀도)의 경우 2.5 GB까지 다양합니다. 업스케일러는 용량이 작습니다. 표준 Real-ESRGAN x4plus 모델은 67 MB, 애니메이션 모델은 17.9 MB, 애니메이션 비디오 모델은 2.5 MB입니다. LoRA는 수십 MB에서 ByteDance의 Hyper-SDXL 어댑터와 같은 경우 787 MB에 달하기도 합니다. 이 작업을 즐기는 사용자라면 일주일 안에 두세 개의 기본 모델을 추가로 내려받게 될 것입니다. 원활한 설치를 위해 100 GB의 디스크 공간을 확보하고, 출력 디렉터리도 주의 깊게 살피십시오. 1024x1024 PNG 파일은 하나당 1~2 MB를 차지하며, 무인 배치 작업을 수행하면 작은 디스크는 금방 가득 찹니다. models/와 output/는 용량 확장이 가능한 볼륨에 배치하고, 워크플로우 JSON 파일은 객체 스토리지로의 암호화된 증분 백업과 같은 방법으로 백업하십시오. 가중치 파일은 다시 내려받을 수 있지만, 직접 조정하고 다듬은 워크플로우는 그렇지 않습니다.
실행 및 안전한 접속
cd ~/ComfyUI
. venv/bin/activate
python main.py --listen 127.0.0.1 --port 8188ComfyUI는 8188 포트에서 서비스됩니다. CPU만 사용하는 환경이라면 --cpu 플래그를 추가하십시오. 이 플래그는 CUDA 장치가 없을 때 발생하는 오류를 방지하고 CPU 경로를 강제로 사용하게 합니다.
127.0.0.1에 바인딩하십시오. 0.0.0.0에 바인딩해서는 안 됩니다. ComfyUI에 사용자 계정 기능이 추가되었으나, 서버를 잠그는 기능은 없습니다. 설정(Settings)의 사용자(User) 섹션에서 수행하는 로그인은 Comfy 계정에 로그인하는 것이며, 로컬 설치 환경에서도 작동합니다. Comfy 문서에는 이메일, Google, GitHub 및 API 키를 통한 로그인 방식이 나열되어 있습니다. 해당 문서는 이 계정이 파트너 노드 및 Comfy Cloud 구독을 이용하기 위한 용도라고 설명하며, 서버에 비밀번호를 설정하는 방법으로는 언급하지 않습니다. --multi-user 플래그는 사용자별 저장소 기능만 활성화합니다. 2026년 10월 기준으로, 서버는 comfy-user 요청 헤더에서 사용자 이름을 가져올 뿐 비밀번호는 확인하지 않습니다. 해당 포트에 접근할 수 있는 모든 사용자는 작업을 대기열에 추가하거나 생성된 모든 이미지를 읽을 수 있습니다. 만약 --enable-manager 플래그를 사용하여 서버를 시작했다면, 임의의 사용자 정의 노드를 설치할 수 있게 되며 이는 서버에서의 임의 코드 실행(arbitrary code execution)으로 이어집니다. 대신 노트북에서 SSH 터널을 통해 접속하십시오.
ssh -N -L 8188:127.0.0.1:8188 you@your-server그다음 로컬에서 http://127.0.0.1:8188를 엽니다. 실제 다중 사용자 접근이 필요하다면 인증 기능이 포함된 리버스 프록시를 앞단에 배치하고, 애플리케이션은 localhost에 바인딩된 상태를 유지하십시오. 이러한 논리는 인증되지 않은 모든 자가 호스팅 서비스에 동일하게 적용되며, 이는 VPS에서의 Docker Compose 배포 시 표준적인 패턴입니다.
systemd를 사용하여 서비스 유지하기
SSH 세션이 종료될 때 함께 죽는 렌더링 큐는 서비스라고 할 수 없습니다. 본인 계정이 아닌 로그인 권한이 없는 comfy 사용자로 실행하십시오. 커스텀 노드는 코드이며, 해당 코드가 사용자의 홈 디렉터리에 접근할 수 있어서는 안 됩니다. 사용자를 생성하고 설치 경로를 해당 사용자의 홈 디렉터리로 이동하십시오.
sudo useradd --system --create-home --home-dir /home/comfy --shell /usr/sbin/nologin comfy
sudo mv ~/ComfyUI /home/comfy/
sudo chown -R comfy:comfy /home/comfy/ComfyUI가상 환경은 이동 후에도 정상적으로 작동합니다. unit 파일이 python를 직접 호출하기 때문입니다. 그런 다음 /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.targetsudo systemctl daemon-reload
sudo systemctl enable --now comfyui
systemctl status comfyuiactive (running) 명령을 실행했을 때 To see the GUI go to: http://127.0.0.1:8188이라는 로그 줄이 보이면 서비스가 정상적으로 실행 중인 것입니다. ExecStart은 가상 환경 내부의 인터프리터를 직접 지정한다는 점에 유의하십시오. systemd는 사용자의 셸 프로파일을 실행하지 않으므로 activate가 발생하지 않기 때문입니다.
예산에 따른 실용적인 권장 사항
이미지 생성을 시도하고 싶지만 속도보다 비용이 중요하다면, 16 GB RAM을 갖춘 CPU VPS를 선택하십시오. 512x512 해상도에서 SD 1.5를 실행하면 이미지당 1~2분 정도 소요됩니다. 이것이 현실적인 입문 단계이며, GPU가 포함된 사양보다 훨씬 저렴합니다. 또한 모델 라이브러리와 워크플로우를 호스팅하며 향후 방향을 결정하기에 적합한 환경입니다.
매일 프롬프트를 수정하며 작업한다면, GPU 클라우드에서 최소 12 GB VRAM을 갖춘 GPU를 시간 단위로 대여하고 작업이 끝나면 즉시 종료하십시오. 이미지 생성은 간헐적으로 발생하는 작업이므로, 사용하지 않는 GPU를 월 단위로 결제하는 것은 과도한 지출의 가장 흔한 원인입니다. 체크포인트는 저렴한 블록 스토리지에 보관하고 필요할 때 마운트하여 사용하십시오.
다른 사람에게 서비스를 제공하거나 정기적으로 LoRA 어댑터를 학습시킨다면, 24 GB VRAM을 갖춘 자체 장비를 마련할 계획을 세우십시오. sd-scripts SDXL 가이드에 따르면 메모리 절약 설정을 사용할 경우 8 GB로도 LoRA 학습이 가능하며 10 GB를 권장합니다. 또한 kohya_ss GUI의 LoRA 가이드는 최소 12 GB를 요구합니다. sd-scripts 가이드에서 언급된 24 GB는 배치 사이즈 1로 SDXL 전체 파인튜닝을 수행할 때 필요한 용량이므로, 24 GB 카드를 사용하면 LoRA 작업은 물론 파인튜닝까지 충분히 가능합니다. 이 정도 사양이면 해당 장비에서 로컬 언어 모델을 함께 구동하여 비용을 상쇄할 수 있으며, 이는 Ollama를 이용한 LLM 자체 호스팅에서 설명하는 구성과 같습니다.
어떤 단계를 선택하든, 공개된 수치를 맹신하기보다 본인의 장비에서 직접 측정하십시오. 동일한 프롬프트를 5회 대기열에 넣고 ComfyUI 콘솔에 출력되는 초당 반복 횟수(seconds-per-iteration)를 확인하십시오. 그 수치가 귀하의 실제 장비 성능입니다.
FAQ
GPU 없이 Stable Diffusion을 실행할 수 있습니까?
네. ComfyUI는 python main.py --cpu으로 실행되며 그래픽 카드 없이도 실제 이미지를 생성합니다. 8개의 최신 vCPU 환경에서 Stable Diffusion 1.5(512x512)는 이미지당 약 60에서 150초, SDXL(1024x1024)은 10에서 20분 정도 소요됩니다. 이 방식은 야간 일괄 처리나 저빈도 엔드포인트에는 적합합니다. 프롬프트 반복 작업에는 적합하지 않으며, 학습은 아예 불가능합니다.
SDXL을 실행하려면 VRAM이 얼마나 필요합니까?
8 GB VRAM이면 1024x1024 해상도에서 SDXL을 원활하게 실행할 수 있습니다. 이보다 낮으면 ComfyUI가 자동으로 모델 가중치를 시스템 RAM으로 오프로드하여 계속 작동합니다. 2026년 10월 기준, README에 따르면 최소 4 GB의 VRAM과 8 GB의 시스템 RAM이 필요하며, 오프로드되는 단계마다 시간이 추가로 소요됩니다. 12 GB VRAM을 사용하면 체크포인트와 함께 ControlNet을 유지할 수 있고, 24 GB VRAM이면 베이스 모델, 리파이너, 업스케일링을 하나의 워크플로우에서 모두 처리할 수 있습니다. kohya-ss sd-scripts 가이드에 따르면 메모리 절약 설정을 사용할 경우 8 GB로도 SDXL LoRA 학습이 가능하며 10 GB를 권장하지만, kohya_ss GUI의 LoRA 가이드에서는 최소 12 GB를 요구합니다. 전체 SDXL 파인튜닝에는 배치 사이즈 1 기준으로 24 GB가 필요합니다.
모델을 저장하려면 디스크 공간이 얼마나 필요합니까?
SDXL 베이스 체크포인트만 6.94 GB이며, 리파이너는 약 6 GB를 추가로 차지합니다. SDXL ControlNet 모델은 하프 정밀도 기준으로 개당 320 MB에서 2.5 GB, LoRA 어댑터는 수십 MB에서 787 MB, Real-ESRGAN 업스케일러는 2.5 MB에서 67 MB 정도입니다. 몇 가지 베이스 모델을 포함한 작업 환경을 위해 100 GB를 할당하고, 1024x1024 PNG 파일이 개당 1에서 2 MB를 차지하므로 출력 디렉터리 용량도 별도로 관리하십시오.
ComfyUI를 공용 인터넷에 노출해도 안전합니까?
아니요. ComfyUI 설정의 Comfy 계정 로그인은 로컬 설치 환경에서 작동하지만, 이는 Comfy의 파트너 노드와 클라우드 구독에 접근하기 위한 것일 뿐이며 Comfy 문서 어디에서도 이를 서버 보호 수단으로 설명하지 않습니다. --multi-user 플래그는 비밀번호 확인 없이 사용자별 저장 공간을 분리할 뿐입니다. ComfyUI-Manager가 활성화된 상태에서 인터페이스는 커스텀 노드를 설치하는데, 이는 서버에서 실행되는 파이썬 코드이므로 포트를 개방하는 것은 원격 코드 실행 위험을 초래합니다. 127.0.0.1에 바인딩하고, ssh -N -L 8188:127.0.0.1:8188 you@your-server을 사용하여 SSH 터널을 통해 접근하며, 여러 사람이 접근해야 하는 경우 앞단에 인증 기능을 갖춘 리버스 프록시를 배치하십시오.
오류 메시지 없이 렌더링이 종료되는 이유는 무엇입니까?
dmesg에 Killed가 기록되면서 파이썬 트레이스백 없이 프로세스가 사라지는 현상은 ComfyUI 버그가 아니라 리눅스의 OOM(Out-of-Memory) 킬러가 작동한 것입니다. CPU 전용 서버에서는 가중치가 시스템 RAM에 상주하므로 SDXL은 약 16 GB, SD 1.5는 약 8 GB의 RAM과 추가 작업 공간이 필요합니다. RAM을 증설하거나 스왑을 추가하거나, 더 작은 모델과 낮은 해상도를 사용하십시오.