경로
서버는get 및 post 메소드의 일련을 정의하며, 이는 server.py에서 @routes를 검색하여 찾을 수 있습니다. 웹 클라이언트에서 워크플로우를 제출하면 /prompt로 게시되며, 이는 프롬프트를 검증하고 실행 대기열에 추가한 후 prompt_id와 번호(대기열 내 위치) 또는 검증 실패 시 error와 node_errors를 반환합니다. 프롬프트 대기열은 execution.py에 정의되어 있으며, 여기에는 PromptExecutor 클래스도 포함됩니다.
기본 제공 경로
server.py는 다음과 같은 경로를 정의합니다:
핵심 API 경로
| 경로 | get/post/ws | 목적 |
|---|---|---|
/ | get | 컴피 웹페이지 로드 |
/ws | websocket | 서버와 실시간 통신을 위한 WebSocket 엔드포인트 |
/embeddings | get | 사용 가능한 임베딩 이름 목록 조회 |
/extensions | get | WEB_DIRECTORY를 등록하는 확장 프로그램 목록 조회 |
/features | get | 서버 기능 및 역량 조회 |
/models | get | 사용 가능한 모델 유형 목록 조회 |
/models/{folder} | get | 특정 폴더의 모델 조회 |
/workflow_templates | get | 커스텀 노드 모듈과 관련 템플릿 워크플로우 맵 조회 |
/upload/image | post | 이미지 업로드 |
/upload/mask | post | 마스크 업로드 |
/view | get | 이미지 보기. 다양한 옵션 참조, server.py의 @routes.get("/view") 확인 |
/view_metadata/ | get | 모델의 메타데이터 조회 |
/system_stats | get | 시스템 정보 조회 (파이썬 버전, 장치, VRAM 등) |
/prompt | get | 현재 대기열 상태 및 실행 정보 조회 |
/prompt | post | 프롬프트를 대기열에 제출 |
/object_info | get | 모든 노드 유형의 세부 정보 조회 |
/object_info/{node_class} | get | 특정 노드 유형의 세부 정보 조회 |
/history | get | 대기열의 이력 조회 |
/history/{prompt_id} | get | 특정 프롬프트의 대기열 이력 조회 |
/history | post | 이력을 지우거나 이력 항목 삭제 |
/queue | get | 현재 실행 대기열 상태 조회 |
/queue | post | 대기열 작업 관리 (대기/실행 중인 작업 지우기) |
/interrupt | post | 현재 워크플로우 실행 중단 |
/free | post | 특정 모델 언로드로 메모리 해제 |
/userdata | get | 지정된 디렉터리의 사용자 데이터 파일 목록 조회 |
/v2/userdata | get | 구조화된 형식으로 파일 및 디렉터리를 나열하는 강화된 버전 |
/userdata/{file} | get | 특정 사용자 데이터 파일 조회 |
/userdata/{file} | post | 사용자 데이터 파일 업로드 또는 업데이트 |
/userdata/{file} | delete | 특정 사용자 데이터 파일 삭제 |
/userdata/{file}/move/{dest} | post | 사용자 데이터 파일 이동 또는 이름 변경 |
/users | get | 사용자 정보 조회 |
/users | post | 새 사용자 생성 (다중 사용자 모드만 가능) |
WebSocket 통신
/ws 엔드포인트는 클라이언트와 서버 간의 양방향 실시간 통신을 제공합니다. 이는 다음을 위해 사용됩니다:
- 실행 진행 상황 업데이트 수신
- 노드 실행 상태 실시간 조회
- 오류 메시지 및 디버깅 정보 수신
- 대기열 상태 변경 시 라이브 업데이트
status- 전체 시스템 상태 업데이트execution_start- 프롬프트 실행 시작 시execution_cached- 캐시된 결과 사용 시executing- 노드 실행 중 업데이트progress- 장시간 실행 작업의 진행률 업데이트executed- 노드 실행 완료 시
맞춤 경로
실행 중 클라이언트에서 서버로 메시지를 보내고 싶다면 서버에 맞춤 경로를 추가해야 합니다. 복잡한 경우 aiohttp 프레임워크 문서를 살펴봐야 하지만, 대부분의 경우 다음과 같이 처리할 수 있습니다:FormData 객체를 보내면 새로운 경로를 사용할 수 있으며, 이는 위 코드에서 the_data가 message와 node_id 키를 포함하게 됩니다: