구독 필요: API를 통해 워크플로우를 실행하려면 활성 Comfy Cloud 구독이 필요합니다. 자세한 내용은 가격 계획을 참조하세요.
설정
모든 예제는 다음과 같은 공통 임포트와 구성을 사용합니다:객체 정보
사용 가능한 노드 정의를 가져옵니다. 이는 어떤 노드들이 있는지, 그리고 그 입력과 출력 사양을 이해하는 데 유용합니다.입력 업로드
워크플로우에서 사용할 이미지, 마스크 또는 기타 파일을 업로드합니다.직접 업로드 (멀티파트)
마스크 업로드
subfolder 매개변수는 API 호환성을 위해 허용되지만 클라우드 스토리지에서는 무시됩니다. 모든 파일은 평탄하고 콘텐츠 주소 기반 네임스페이스에 저장됩니다.워크플로우 실행
워크플로우를 제출하여 실행합니다.동시 제출 지원: 구독 등급에 따라 이전 작업이 완료될 때까지 기다리지 않고 여러 워크플로우를 제출할 수 있습니다. 등급 한도 내에서 작업이 병렬로 실행되며, 초과 작업은 자동으로 대기열에 추가됩니다. 자세한 내용과 동시성 한도는 병렬 실행을 참조하세요.
워크플로우 제출
파트너 노드 사용
워크플로우에 파트너 노드 (Flux Pro, Ideogram 등 외부 AI 서비스를 호출하는 노드)가 포함된 경우, 요청 페이로드의extra_data 필드에 Comfy API 키를 포함해야 합니다.
ComfyUI 프론트엔드는 브라우저에서 워크플로우를 실행할 때 자동으로 API 키를
extra_data에 패키징합니다. 이 섹션은 직접 API를 호출할 때만 관련이 있습니다.platform.comfy.org에서 API 키를 생성하세요. 이는 클라우드 API 인증에 사용되는 키(
X-API-Key 헤더)와 동일합니다. 자세한 가이드는 API 키 받기를 참조하세요.워크플로우 입력 수정
작업 상태 확인
작업 완료 여부를 확인합니다. 작업 상태 값: API는 다음 상태 값을 반환합니다:| 상태 | 설명 |
|---|---|
pending | 작업이 대기 중이며 시작을 기다리고 있습니다 |
in_progress | 작업이 현재 실행 중입니다 |
completed | 작업이 성공적으로 완료되었습니다 |
failed | 작업 중 오류가 발생했습니다 |
cancelled | 사용자가 작업을 취소했습니다 |
실시간 진행 상황을 위한 WebSocket
WebSocket 연결을 통해 실시간 실행 업데이트를 받습니다.clientId 매개변수는 현재 무시됩니다—사용자당 모든 연결이 동일한 메시지를 받습니다. 앞으로의 호환성을 위해 고유한 clientId를 전달하세요.WebSocket 메시지 유형
메시지는 특별히 언급되지 않은 한 JSON 텍스트 프레임으로 전송됩니다.| 유형 | 설명 |
|---|---|
status | 대기열 상태 업데이트, queue_remaining 카운트 포함 |
notification | 사용자 친화적 상태 메시지 (value 필드에는 “워크플로우 실행 중…”과 같은 텍스트 포함) |
execution_start | 워크플로우 실행 시작 |
executing | 특정 노드가 현재 실행 중 (노드 ID는 node 필드에 있음) |
progress | 노드 내 단계 진행 상황 (value/max는 샘플링 단계) |
progress_state | 노드 메타데이터를 포함한 확장된 진행 상태 (중첩된 nodes 객체) |
executed | 노드가 완료되고 출력물(이미지, 비디오 등 output 필드에 있음) 생성 |
execution_cached | 출력물이 캐시되어 건너뛴 노드 (nodes 배열) |
execution_success | 전체 워크플로우 성공적으로 완료 |
execution_error | 워크플로우 실패 (exception_type, exception_message, traceback 포함) |
execution_interrupted | 사용자가 워크플로우를 취소함 |
바이너리 메시지 (미리보기 이미지)
이미지 생성 중에 ComfyUI는 미리보기 이미지를 포함한 바이너리 WebSocket 프레임을 전송합니다. 이는 원시 바이너리 데이터(JSON 아님)입니다:| 바이너리 유형 | 값 | 설명 |
|---|---|---|
PREVIEW_IMAGE | 1 | 디퓨전 샘플링 중 진행 중인 미리보기 |
TEXT | 3 | 노드에서 출력된 텍스트 (진행률 텍스트) |
PREVIEW_IMAGE_WITH_METADATA | 4 | 노드 컨텍스트 메타데이터를 포함한 미리보기 이미지 |
- PREVIEW_IMAGE (1)
- TEXT (3)
- PREVIEW_WITH_METADATA (4)
| 오프셋 | 크기 | 필드 | 설명 |
|---|---|---|---|
| 0 | 4바이트 | type | 0x00000001 |
| 4 | 4바이트 | image_type | 포맷 코드 (1=JPEG, 2=PNG) |
| 8 | 변수 | image_data | 이미지 바이트 원시 데이터 |
각 JSON 메시지 유형의 완전한 스키마 정의는 OpenAPI 사양을 참조하세요.
출력 다운로드
작업 완료 후 생성된 파일을 가져옵니다.완전한 엔드투엔드 예제
모든 것을 하나로 묶은 전체 예제는 다음과 같습니다:대기열 관리
대기열 상태 가져오기
작업 취소
현재 실행 중단
오류 처리
HTTP 오류
REST API 엔드포인트는 표준 HTTP 상태 코드를 반환합니다:| 상태 | 설명 |
|---|---|
400 | 잘못된 요청 (잘못된 워크플로우, 필드 누락) |
401 | 인증되지 않음 (잘못된 또는 누락된 API 키) |
402 | 크레딧 부족 |
429 | 구독 비활성 |
500 | 내부 서버 오류 |
실행 오류
워크플로우 실행 중 오류는execution_error WebSocket 메��지를 통해 전달됩니다. exception_type 필드는 오류 범주를 식별합니다:
| 예외 유형 | 설명 |
|---|---|
ValidationError | 유효하지 않은 워크플로우 또는 입력 |
ModelDownloadError | 필요한 모델이 없거나 다운로드 실패 |
ImageDownloadError | URL에서 입력 이미지 다운로드 실패 |
OOMError | GPU 메모리 부족 |
InsufficientFundsError | 계정 잔액 부족 (파트너 노드용) |
InactiveSubscriptionError | 구독 비활성 |