이 작업에 맞는 GPU
- RTX 3090 24GB시간당 230원
SDXL에 LoRA와 ControlNet을 함께 써도 여유가 있고, FP8 버전 FLUX.1도 올라가요.
- GA102 20GB시간당 190원
SD 1.5와 SDXL 생성, LoRA 적용에는 충분해요.
- AD103-32GB준비 중
FLUX.1을 16비트로 쓰거나 고해상도 이미지를 대량으로 만들 때 메모리 여유가 커요.
내 모델에 필요한 메모리는 LLM VRAM 계산기로 확인할 수 있어요.
GPU 서버에서 이미지를 생성하면 좋은 경우
내 PC의 VRAM으로는 SDXL이나 FLUX.1이 버겁거나, 노트북처럼 GPU가 약한 환경에서 작업하거나, 이미지를 한꺼번에 많이 만들어야 할 때 GPU 서버가 맞아요.
이 글은 노드를 연결해 생성 과정을 짜는 웹 도구인 ComfyUI를 기준으로 해요. 워크플로를 API 형식으로 내보내 HTTP로 실행할 수도 있어요. 모델 보관과 접속 방법은 다른 WebUI에도 그대로 적용돼요.
모델 계열별로 필요한 VRAM
| 모델 계열 | 기본 해상도 | 편하게 쓰려면 | 메모리가 더 드는 경우 |
|---|---|---|---|
| SD 1.5 | 512×512 | 8 GB면 여유 | 고해상도 업스케일, ControlNet 여러 개 |
| SDXL | 1024×1024 | 12 GB 이상 (8 GB는 절약 옵션 필요) | 리파이너, LoRA·ControlNet 조합, 배치 생성 |
| FLUX.1 계열 | 1024×1024 | 16비트는 24 GB 이상, FP8 버전은 12~16 GB 안팎 | 큰 텍스트 인코더, 고해상도 |
FLUX.1은 이미지 모델만 약 120억 파라미터라서 16비트 가중치가 20GB를 넘어요. FP8이나 GGUF 양자화 버전은 메모리가 크게 줄지만 결과가 조금 달라질 수 있어요. 텍스트 인코더도 커서 시스템 메모리도 넉넉한 편이 좋아요.
VRAM이 모자라면 ComfyUI가 모델 일부를 시스템 메모리로 옮겨 가며 실행해서, 표보다 작은 GPU에서도 느리게나마 돌아가는 경우가 많아요. 그래도 CUDA out of memory가 나면 해상도나 배치 크기부터 줄이고, 필요하면 --lowvram 옵션을 켜 보세요.
Linux 서버에 ComfyUI 설치하고 실행하기
ComfyUI 폴더를 볼륨(/mnt/data)에 설치하면 서버를 새로 만들어도 설치한 파일과 가상 환경이 그대로 남아요. requirements.txt가 PyTorch도 설치하지만, 서버의 CUDA 버전에 맞는 빌드가 필요하면 PyTorch 설치 안내의 명령으로 먼저 설치하세요.
cd /mnt/data
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"ComfyUI는 기본으로 서버 안에서만 접속되는 127.0.0.1:8188에서 열려요. SSH가 끊겨도 계속 돌도록 tmux 안에서 실행하세요.
cd /mnt/data/ComfyUI
source .venv/bin/activate
python main.py --port 8188웹 UI는 SSH 터널로 접속해요
내 PC에서 아래 명령을 실행해 두고 브라우저에서 http://localhost:8188을 열면 서버의 ComfyUI 화면이 보여요.
ssh -N -L 8188:127.0.0.1:8188 <사용자>@<서버 주소>SSH 포트가 22가 아니면 -p 포트번호를 붙이고, 키 파일은 -i로 지정하세요. 처음이라면 SSH로 GPU 서버 접속하기를 보세요. AUTOMATIC1111 WebUI라면 포트 번호만 기본값인 7860으로 바꾸면 돼요.
모델과 LoRA 파일은 볼륨에 모아 두세요
체크포인트 하나가 수 GB라서 서버마다 다시 받으면 오래 걸려요. 모델 폴더를 볼륨에 따로 두고 extra_model_paths.yaml로 연결하면, ComfyUI를 새로 설치하거나 버전을 바꿔도 모델은 그대로 쓸 수 있어요.
comfyui:
base_path: /mnt/data/comfy-models/
checkpoints: models/checkpoints/
loras: models/loras/
vae: models/vae/
controlnet: models/controlnet/
upscale_models: models/upscale_models/
diffusion_models: models/diffusion_models/
text_encoders: models/text_encoders/모델은 내 PC에서 올리기보다 서버에서 바로 받는 편이 빨라요. Hugging Face 모델은 hf 명령으로 받고, 예전 버전의 huggingface_hub에서는 huggingface-cli download를 써요. 사용 동의가 필요한 모델은 라이선스에 동의하고 로그인한 뒤 받을 수 있어요.
pip install -U huggingface_hub
mkdir -p /mnt/data/comfy-models/models/checkpoints
hf download stabilityai/stable-diffusion-xl-base-1.0 sd_xl_base_1.0.safetensors \
--local-dir /mnt/data/comfy-models/models/checkpointspython main.py --output-directory /mnt/data/comfy-output처럼 출력 폴더를 볼륨으로 지정해 두면 생성한 이미지가 서버를 삭제해도 남아요.- 커스텀 노드는 서버에서 코드를 실행하는 확장이에요. 출처를 확인할 수 있는 저장소의 노드만 설치하세요.
- 생성한 이미지를 상업적으로 쓸 계획이라면 모델 페이지의 라이선스를 먼저 확인하세요.
서버 생성부터 삭제까지
GPU를 고르고 서버를 생성해요
CUDA가 준비된 환경을 고르고, ComfyUI와 모델을 둘 볼륨을 연결해요.
SSH로 접속해 ComfyUI를 실행해요
설치와 모델 다운로드는 처음에만 하고, 다음부터는 볼륨의 ComfyUI를
tmux안에서 바로 실행해요.SSH 터널로 웹 UI를 열어 생성해요
워크플로 JSON도 볼륨에 저장해 두면 다음 서버에서 그대로 불러올 수 있어요.
결과를 내 PC로 옮겨요
출력 폴더를
rsync나scp로 내려받아요. 볼륨은 백업이 아니니 중요한 결과물은 다른 곳에도 보관하세요.서버를 삭제해요
중지한 서버는 GPU가 할당된 채로 남아 요금이 계속 나가요. 삭제해야 GPU 요금이 끝나요.
Shelf에서는
지금 생성할 수 있는 GPU는 RTX 3090과 GA102 20GB예요. FLUX.1을 16비트로 여유 있게 쓸 수 있는 AD103-32GB는 준비 중이에요. 시간당 요금은 요금 안내에서 확인하세요.
- “Ubuntu 22.04 + CUDA 12.4” 같은 환경 템플릿(예시)에는 드라이버가 설치돼 있어서 ComfyUI만 설치하면 돼요.
- SSH 키로 접속하고, 필요하면 공인 포트도 쓸 수 있어요.
- 볼륨은 서버를 삭제해도 남고, 저장 요금이 따로 있어요.
- 요금은 서버를 생성한 시점부터 1시간 단위로 계산돼요.
자주 묻는 질문
SDXL은 VRAM이 몇 GB 필요한가요?
기본 생성은 12GB 이상이면 편해요. LoRA, ControlNet, 업스케일까지 한 워크플로에서 쓰려면 16~24GB가 여유로워요.
ComfyUI에 외부에서 접속하려면 포트를 열어야 하나요?
SSH 터널을 쓰면 따로 열 필요가 없어요. 터널은 이미 쓰고 있는 SSH 연결 안으로 8188번 포트의 통신을 함께 보내요. 여러 명이 함께 써서 공인 포트로 열어야 한다면 인증을 붙인 프록시 뒤에 두세요.
