클라우드 생성용 ComfyUI 노드
공식 PopNow 노드 팩을 ComfyUI Manager에서 설치하거나 노드 파일 하나만 넣어, ComfyUI 안에서 클라우드 AI 이미지, 영상, 오디오 모델을 실행합니다. GPU도 모델 다운로드도 필요 없습니다. 설치 단계, 입력, 가격, 오류 해결법을 담았습니다.
공식 PopNow 노드 팩은 PopNow의 모든 이미지, 영상, 오디오 모델을 ComfyUI 그래프에 넣어 줍니다. 각 노드는 작업을 클라우드로 보내고, 기다렸다가, 결과를 다음 노드에 넘깁니다. 아무것도 내 GPU에 내려받지 않으므로, 노트북으로는 감당할 수 없는 메모리가 필요한 영상 모델도 노트북에서 실행됩니다.
이 팩은 Comfy Registry의 popnow-comfyui이며, GitHub에서 오픈소스로 공개되어 있습니다. 모델마다 노드 하나가 추가되고, 이름으로 어떤 모델이든 받는 PopNow Generate 노드와 PopNow LoRA 노드도 들어 있습니다. 이 페이지는 popnow.ai의 ComfyUI 페이지와 짝을 이룹니다.
네 단계로 설치하기
노드 팩 설치
ComfyUI에서 Manager > Custom Nodes Manager를 열고, PopNow를 검색한 다음 Install을 누르고 ComfyUI를 다시 시작하세요. Comfy CLI를 쓴다면 다음과 같습니다.
comfy node install popnow-comfyui이 팩은 ComfyUI 자체(Python 3.10 이상) 말고는 아무것도 필요하지 않습니다. 소스에서 설치하려면 popnow-comfyui를 ComfyUI/custom_nodes에 클론하세요.
API 키 넣기
API 콘솔에서 키를 만든 다음 ComfyUI의 Settings > PopNow를 열고 붙여 넣으세요. 실행에는 초기 잔액 $0인 별도의 API USD 잔액을 씁니다. API billing에서 입금하세요. 웹사이트 크레딧으로는 결제할 수 없습니다. 또는 ComfyUI를 실행하는 환경에 직접 설정해도 됩니다.
export POPNOW_API_KEY="sk-popnow-..."
python main.pyWindows 포터블 빌드라면 ComfyUI를 시작하는 .bat 파일에 set POPNOW_API_KEY=sk-popnow-...를 추가하세요. 노드 목록이 내 계정에서 받아지도록 한 번 더 다시 시작하세요.
노드 추가하기
캔버스를 더블 클릭하고 모델 이름(seedance, kling, wan, nano banana, suno …)을 입력하거나, PopNow > Video / Image / Audio에서 찾아보세요. PopNow Generate는 모델의 모든 모델 ID를 받습니다.
큐에 넣기
모델이 이미지를 받는다면 Load Image를 입력에 연결하고, Save Image, Save Video, Save Audio 중 하나를 연결한 다음 프롬프트를 큐에 넣으세요. ComfyUI의 템플릿 브라우저에서 popnow-comfyui 아래에 바로 쓸 수 있는 그래프가 있습니다.
단일 파일 노드
1분이면 다 읽을 수 있는 파일 하나를 원한다면, 팩의 PopNow Generate 노드를 Python 파일 하나로도 받을 수 있습니다. ComfyUI 폴더 안의 custom_nodes/popnow_api.py로 저장하고, 위와 같이 POPNOW_API_KEY를 설정한 뒤 ComfyUI를 다시 시작하세요. requests, Pillow, NumPy, PyTorch만 쓰는데, 이 중 ComfyUI에 이미 들어 있지 않은 것은 없습니다.
팩과 이 파일 중 하나만 설치하세요. 둘 다 같은 노드를 추가합니다. 팩으로 옮길 때는 custom_nodes/popnow_api.py를 지우면 됩니다. 저장된 워크플로는 그대로 작동합니다.
입력과 출력
아래는 PopNow Generate의 입력과 출력입니다. 팩과 단일 파일에서 같습니다. 팩의 모델별 노드는 대신 각 모델의 고유 필드를 드롭다운, 슬라이더, 소켓으로 보여 줍니다.
| 입력 | 넣을 값 |
|---|---|
model | 모델의 모델 ID. 예: google/nano-banana-2.1/text-to-image 또는 minimax/h3/image-to-video |
prompt | 만들고 싶은 내용. 프롬프트를 받지 않는 모델이라면 비워 두세요 |
options | 모델의 나머지 필드를 JSON으로. 예: {"resolution": "2k"} 또는 {"duration_seconds": 5}. 각 모델 페이지에 목록이 있습니다 |
image (선택) | 다른 노드에서 온 IMAGE. 자동으로 업로드되어 image_field가 가리키는 필드에 들어갑니다 |
image_field | 이미지를 받을 필드. 대부분의 영상 모델은 image_url, 이미지 편집은 image_urls |
| 출력 | 내용 |
|---|---|
image | 이미지 모델의 결과를 IMAGE로. 영상과 오디오에는 빈 자리표시자 |
url | 서명된 파일 URL. 약 20분 동안 유효합니다 |
path | 영상과 오디오의 경우, ComfyUI 출력 폴더에 저장된 파일 경로 |
자주 쓰는 설정
| 목적 | model | options | image_field |
|---|---|---|---|
| 텍스트→이미지 | google/nano-banana-2.1/text-to-image | {"aspect_ratio": "16:9", "resolution": "1k"} | — |
| 로컬 렌더 편집 | google/nano-banana-2.1/edit | {"resolution": "2k"} | image_urls |
| 정지 이미지 움직이기 | minimax/h3/image-to-video | {"duration_seconds": 5, "resolution": "768p"} | image_url |
| 프레임 업스케일 | popnow/image-upscaler-v1/upscale | {} | image_url |
| 피사체 누끼 따기 | popnow/background-remover-v1/edit | {} | image_url |
흔한 혼합 그래프는 이렇습니다. 로컬 체크포인트로 시작 프레임을 만들고, 이미지→영상 모델로 클라우드에서 움직이게 한 다음, 저장된 MP4를 영상 로더 노드로 다시 불러와 로컬에서 업스케일하거나 프레임을 보간합니다.
노드 안에서 일어나는 일
이 노드는 REST 호출 세 개를 감싼 얇은 래퍼입니다. 다른 언어로 쓰는 같은 호출은 다음과 같습니다.
curl -X POST "https://api.popnow.ai/api/v1/jobs/createTask" \
-H "Authorization: Bearer $POPNOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"model": "google/nano-banana-2.1/text-to-image", "input": {"prompt": "A lighthouse on a cliff at dusk, warm window light", "aspect_ratio": "16:9", "resolution": "1k"}}'
curl "https://api.popnow.ai/api/v1/jobs/recordInfo?taskId=job_..." \
-H "Authorization: Bearer $POPNOW_API_KEY"const API = 'https://api.popnow.ai/api/v1';
const auth = { Authorization: `Bearer ${process.env.POPNOW_API_KEY}` };
const created = await fetch(`${API}/jobs/createTask`, {
method: 'POST',
headers: { ...auth, 'Content-Type': 'application/json', 'Idempotency-Key': crypto.randomUUID() },
body: JSON.stringify({
model: 'google/nano-banana-2.1/text-to-image',
input: { prompt: 'A lighthouse on a cliff at dusk, warm window light', aspect_ratio: '16:9', resolution: '1k' },
}),
}).then((r) => r.json());
console.log(created.data.taskId);입력 이미지를 올리는 과정은 미디어의 세 단계 흐름과 같습니다. 결과는 popnow://f/… 참조이며, 이 참조는 내 계정의 키로만 작동합니다.
가격
실행마다 모델의 일반 가격으로 API USD를 쓰며 노드가 추가로 받는 비용은 없습니다. Nano Banana 2.1은 1K에서 이미지 한 장당 $0.048, MiniMax H3는 768p에서 5초에 $0.185입니다. 실패한 실행은 과금되지 않습니다. 모든 모델의 가격은 각 모델 페이지와 API 잔액과 환불에 있으며 정확한 금액은 jobs/quote로 확인하세요.
자주 나는 오류
| ComfyUI에 보이는 것 | 원인 | 해결 |
|---|---|---|
No PopNow API key is set (팩) | Settings > PopNow나 환경 변수에 키가 없음 | Settings > PopNow에 키를 붙여 넣거나 POPNOW_API_KEY를 설정한 뒤 다시 실행하세요 |
Set POPNOW_API_KEY before starting ComfyUI (단일 파일) | ComfyUI의 환경에 변수가 없음 | 같은 셸이나 .bat 파일에 설정하고 다시 시작하세요 |
PopNow 401: … | 키가 없거나, 잘못 입력됐거나, 폐기됨 | API 콘솔에서 새 키를 만드세요 |
필드 이름이 나오는 PopNow 400: … | options에 모델이 받지 않는 필드가 있거나 값이 범위를 벗어남 | 모델 페이지를 확인하세요. 알 수 없는 필드는 거부됩니다 |
PopNow 40201: … | API USD 부족 | API billing에서 입금하거나 해상도 또는 길이를 낮추세요 |
PopNow failed: … | 모델이 끝내지 못했거나 요청을 거절함 | 과금되지 않았습니다. 프롬프트나 설정을 바꾸세요 |
JSONDecodeError | options가 올바른 JSON이 아님 | 큰따옴표를 쓰세요: {"resolution": "2k"} |
| 노드가 검색 목록에 없음 | 팩이나 파일이 설치되지 않았거나 ComfyUI를 다시 시작하지 않음 | Custom Nodes Manager나 custom_nodes 폴더를 확인하고 다시 시작하세요. 콘솔에서 가져오기 오류를 찾아보세요 |
| popnow.ai의 모델에 노드가 없음 | 팩은 ComfyUI를 시작할 때 내 계정의 카탈로그로 노드 목록을 만듦 | ComfyUI를 다시 시작하거나, 모델 ID를 넣은 PopNow Generate를 쓰세요 |
ComfyUI 레지스트리의 공식 패키지인가요?
네. popnow-comfyui는 PopNow가 Comfy Registry에 올린 패키지이므로, ComfyUI Manager와 comfy node install popnow-comfyui 모두에서 찾을 수 있습니다. 소스는 GitHub에 MIT 라이선스로 공개되어 있습니다. 이 페이지의 단일 파일 노드는 그 PopNow Generate 노드를 파일 하나로 옮긴 것입니다. SDK, CLI, 오픈소스 도구를 참고하세요.
ComfyUI Desktop과 포터블 빌드에서도 되나요?
네. 커스텀 노드를 설치할 수 있는 곳이라면 어디서든 작동합니다. 포터블, Desktop, 직접 운영하는 서버 모두 해당합니다.
GPU가 필요한가요?
아니요. 생성은 PopNow 쪽에서 실행됩니다. 내 컴퓨터는 요청을 보내고 파일을 받기만 합니다.
영상 프레임을 그래프로 다시 가져오려면 어떻게 하나요?
노드가 영상을 ComfyUI 출력 폴더에 저장하고 그 경로를 돌려줍니다. 영상 로더 노드로 불러오면 프레임을 얻을 수 있습니다.

