한 번 명령으로 클라우드 GPU에서 ComfyUI 사용: 실용적이고 재현 가능한 설정
Source: Dev.to
우리가 만들고자 하는 것
클라우드 GPU(RunPod 또는 Vast.ai)를 부팅하고, 한 줄 명령어를 붙여넣어 원하는 정확한 ComfyUI 버전을 가져오고, 좋아하는 커스텀 노드를 자동 설치하며, Hugging Face / Civitai에서 모델을 올바른 폴더에 다운로드하는 반복 가능한 방법입니다. 이제 “그 LoRA를 올바른 위치에 넣었나요?” 혹은 “왜 이 템플릿이 6개월이나 뒤처졌나요?” 같은 고민은 끝났습니다.
무료 스크립트 생성기를 사용해 원-라이너를 만들고, 워크플로에 맞게 조정·디버그·확장하는 방법을 보여드립니다.
💡 팁: 클라우드 GPU에서는 시간 자체가 비용입니다. 지루한 부분을 자동화하면 첫 실행부터 비용을 회수할 수 있습니다.
생성기가 작동하는 방식
https://deploy.promptingpixels.com/ 에서 제공하는 생성기는 다음을 수행하는 한 줄 쉘 명령을 출력합니다:
- 특정 버전의 ComfyUI를 설치하거나 업데이트
- 선택한 모델을 올바른 ComfyUI 하위 폴더에 다운로드
- ComfyUI 레지스트리에서 선택한 커스텀 노드 설치
- 제공자(RunPod / Vast.ai) 또는 로컬 OS에 맞게 경로 조정
- 게이트된 다운로드를 위한 토큰 지원
🧭 주의: 생성된 명령은 제공자에 맞게 최적화됩니다. 복사하기 전에 올바른 대상을 선택하세요.
단계별 가이드
1. 제공자 선택
- Vast.ai: Jupyter 터미널 또는 쉘 접근이 가능한 이미지/템플릿 사용
- RunPod: ComfyUI 템플릿이나 CUDA가 포함된 범용 이미지를 사용
2. 인스턴스에서 터미널 열기
# 예시: 인스턴스에 연결하고 쉘을 엽니다
3. 명령 생성
- https://deploy.promptingpixels.com/ 방문
- App: ComfyUI 선택
- 제공자 선택 (Vast.ai 또는 RunPod)
- Add Models – Hugging Face 또는 Civitai에서 검색; 생성기가 각 파일을 올바른 ComfyUI 디렉터리로 라우팅합니다.
- Add Custom Nodes – 인기 노드(예: Impact Pack)를 검색하고 추가
- (선택) 재현 가능한 빌드를 위해 ComfyUI 버전 고정
💡 팁: 프리셋을 사용해 이전 프로젝트 환경을 재현하세요. 일관성은 디버깅 시간을 크게 절감합니다.
4. 토큰 준비(필요한 경우)
# 선택 사항: 게이트된 다운로드를 위한 토큰
export HF_TOKEN=hf_your_read_token_here
export CIVITAI_TOKEN=your_civitai_token_here
5. 생성된 원-라이너 실행
명령은 보통 wget/curl 파이프를 bash에 전달하는 형태입니다. 예시:
bash <(curl -sSL https://example.com/generated_script.sh)
6. 추가 Python 의존성 설치(워크플로에 필요할 경우)
source /venv/bin/activate 2>/dev/null || true
pip install xformers==0.0.23 safetensors==0.4.3
7. GPU 가시성 확인
nvidia-smi || echo "GPU를 찾을 수 없습니다 (드라이버/컨테이너 불일치?)"
8. ComfyUI 실행
# 설정에 맞게 실행 명령을 조정
python /workspace/ComfyUI/main.py
디버깅 팁
- Hugging Face에서 403 오류: 해당 모델/레포에 토큰이 필요합니다.
export HF_TOKEN=hf_xxx - 모델 다운로드가 느림: 인스턴스 egress가 제한될 수 있습니다. 먼저 작은 모델로 테스트하세요.
- 디스크 부족: 큰 체크포인트가 임시 저장소를 초과할 수 있습니다. 더 큰 볼륨이나 영구 디스크를 사용하세요.
- 노드가 메뉴에 없음: 노드 설치/업데이트 후 ComfyUI를 재시작하세요.
- CUDA 불일치 오류: 이미지, 드라이버, PyTorch 스택이 일치하는지 확인하세요. 템플릿을 사용하면 도움이 되며, 베어 이미지에서는 drift가 발생할 수 있습니다.
- 대소문자 구분 경로: ComfyUI 모델 폴더는 엄격합니다:
checkpoints,loras,vae등. - 포트 차단: 제공자가 ComfyUI 포트(보통 8188)를 노출하는지, 서비스가 실행 중인지 확인하세요.
🛠️ 디버그 패턴: UI를 실행하면서 로그를 tail 하면 import 오류를 빠르게 찾을 수 있습니다.
ps aux | grep -i comfy
# 또는 제공자의 앱 로그 패널을 확인
- 세션 끊김을 방지하려면
tmux/screen을 사용해 장시간 다운로드를 수행하세요. - 모델 폴더를 영구 볼륨에 캐시해 매 세션마다 재다운로드하는 일을 피하세요.
워크플로 요약
- GPU 인스턴스(RunPod/Vast.ai)를 시작하고 터미널을 엽니다.
- 생성기에서 제공자와 ComfyUI 버전을 선택합니다.
- 모델(HF/Civitai)과 커스텀 노드를 추가합니다.
- 원-라이너를 복사하고, 필요하면 토큰을 설정한 뒤 터미널에 붙여넣습니다.
- ComfyUI를 실행하고, 새 노드가 로드되도록 한 번 재시작합니다.
유용한 환경 변수
export HF_TOKEN=hf_xxx
export CIVITAI_TOKEN=xxx
export COMFYUI_ROOT=/workspace/ComfyUI # 레이아웃에 따라 조정
설치 후 확인:
git -C "$COMFYUI_ROOT" rev-parse --short HEAD
ls "$COMFYUI_ROOT/models/checkpoints" | head
ls "$COMFYUI_ROOT/custom_nodes" | head
피드백
기능 아이디어가 있거나 엣지 케이스를 발견하면 언제든지 연락 주세요. 도구는 지속적으로 유지보수되며 피드백을 환영합니다: deploy@promptingpixels.com.
즐거운 개발 되세요!