Router가 지원하는 기능
대기 중 제출
동기 경로는 모델이 실행되는 동안 연결을 유지합니다. 비동기 공급자의 경우 Router가 작업을 제출하고 내부적으로 폴링합니다. 대기 중 전달(제출,request_id 받기, 폴링, 수집)이 대안입니다. 큐 전송을 참고하세요. 이는 자격 증명 뒤의 워크스페이스로 범위가 지정되므로, Comfy 워크스페이스에서 생성된 키가 필요합니다. 워크스페이스가 없는 레거시 키, 자체 키 사용(bring-your-own-key) 요청, 또는 실행 대기열이 실행할 수 없는 모델은 제출 경로에서 403과 함께 not_enabled를 반환합니다. 어느 모드도 콜백이나 웹훅을 제공하지 않습니다.
요청을 충분히 오래 열어 둘 수 없다면 실행 대기열에 넣으세요. 공급자 자체의 제출 및 폴링 제어가 필요할 때는 파트너 프록시를 사용하세요.
현재 두 모델은 동기 전용이며, 실행 대기열에 제출하면 403 / not_enabled로 거부됩니다: elevenlabs/eleven_sfx_v2 및 elevenlabs/eleven_v3. 이들은 JSON 결과 문서가 아닌 원시 오디오 바이트를 반환하며, 대기 중 전달은 이를 저장할 곳이 없습니다. 동기 경로에서 실행하세요. 그러면 해당 바이트가 정상적으로 반환됩니다.
LTX v1 텍스트 기반 비디오 생성 및 이미지 기반 비디오 생성 연산도 같은 이유로 원시 비디오 바이트를 반환하며, 대기 중 전달은 이를 저장할 수 없습니다. 하지만 이들은 Router 모델 id가 아니라 /proxy/ltx/v1/…의 파트너 프록시를 통해서만 접근할 수 있습니다. 모든 ltx/* 카탈로그 모델은 대기열에 넣을 수 있는 v2 제출 및 폴링 연산으로 해석됩니다.
서버 데드라인에 도달하면 호출이 끊깁니다
Router의 기본 데드라인은 10분이며, 배포 시 구성할 수 있습니다. Router가 먼저 오류와 요청 ID를 반환할 수 있도록 클라이언트 타임아웃을 그보다 길게 설정하세요.504 / deadline_exceeded는 Router가 대기를 중단했음을 의미하고, 504 / provider_timeout은 공급자가 타임아웃했음을 의미합니다. 타임아웃이나 연결 끊김은 해당 생성에 대한 비용이 청구되지 않았다는 증거가 되지 않으며, 수락된 공급자 작업을 취소하지도 않습니다. 재시도하기 전에 타임아웃과 청구를 읽어보세요.
복구는 공급자에 따라 달라집니다
Router는 수락된 submit-and-poll 생성에 대해 공급자 핸들을 보유할 수 있습니다. 동일한Idempotency-Key를 재사용하면 나중에 이를 수집할 수 있으며, 완료된 재생 가능 응답도 키 기록에서 가져올 수 있습니다.
연결 해제된 모든 호출이 복구 가능한 것은 아닙니다. 전송하기 전에 요청과 키를 보존한 다음, 재시도 결과 표를 사용하십시오. 새 키는 새 호출을 생성하며 추가 요금이 발생할 수 있습니다.
요청 본문 크기 상한
Router는 본문이 **100 MiB(104,857,600바이트)**보다 큰 요청을 거부합니다. 이 상한은 Router가 무엇이든 파싱하기 전에 측정한, 전송한 원시 바이트에 적용되므로 모든 라우트와 동기 및 대기 중 전달 모두에 적용됩니다. 인라인 미디어는 호출자가 이 상한을 마주치는 지점입니다. Base64 인코딩은 바이너리 데이터를 약 4/3로 부풀리므로, 인코딩된 미디어를 담은 본문은 대략 실제 이미지, 오디오, 비디오 바이트 75 MB에서 상한에 도달합니다. 디스크상의 파일이 아니라 인코딩된 문자열의 크기를 기준으로 하고, 한 번의 호출에 포함된 모든 입력을 계산하세요. 참조 이미지 두 개를 담은 요청은 두 이미지 모두에 여유분을 사용하며, 프롬프트, 파라미터, JSON 구조도 포함됩니다. 거부의 형태.413, X-Comfy-Error-Type에 invalid_input, 그리고 다른 응답과 마찬가지로 X-Comfy-Request-Id가 설정됩니다. 본문은 RouterErrorResponse이며, 이 응답의 detail은 초과된 상한을 설명합니다. detail을 파싱하기보다 error_type을 기준으로 분기하고, API가 반환하는 수치와 이 페이지의 수치가 다르면 API가 반환하는 값을 권위 있는 것으로 취급하세요. Router는 무엇이든 전달하기 전에 거부를 발생시키므로 생성이 실행되지 않았고 아무것도 청구되지 않았습니다.
이 상한은 Idempotency-Key를 포함하든 하지 않든 모든 요청에 적용됩니다. 이는 멱등성 제한이 아니며, 동일한 키를 다시 보내도 결과는 달라지지 않습니다. 너무 큰 본문은 시도할 때마다 너무 큽니다.
공급자는 자체적으로 더 낮은 제한을 부과할 수 있으며, 이 상한에 이르면 대개 그렇게 합니다. 공급자는 인라인 미디어에 대한 자체 상한을 게시하며, 구속력 있는 제약은 둘 중 더 작은 쪽입니다. 예를 들어 Google의 모델은 최대 20 MB(십진수 20,000,000바이트)의 인라인 페이로드를 허용하며, Google 모델 페이지의 Size limit: 20MB 줄은 전체 요청 본문에 대한 Router의 상한이 아니라 Google 자체 사양에서 인용된 Google의 필드별 상한입니다. Router의 상한은 Router가 앞에 두고 있는 모든 파트너 상한보다 의도적으로 높게 설정되어 있으므로, 단일 인라인 에셋에 대해서는 보통 공급자의 자체 제한에 먼저 부딪힙니다. Router의 상한은 하나의 본문에 여러 에셋이 담길 때 구속력을 가집니다. Router의 상한은 통과하지만 공급자의 자체 제한을 초과하는 본문은 Router가 아니라 공급자가 거부하며, 413이 아닌 공급자 오류로 반환됩니다.
요청은 호출자별로 속도 제한됨
요청 속도 제한은 호출(invocation)과 카탈로그/스키마 읽기에 적용되며, 생성 이전에 거부된 요청도 포함합니다. 이 제한은 소스 IP가 아니라 인증된 호출자를 따릅니다. 호출자의 공급자 키를 사용한 호출은 예외이며, 공급자 측 제한은 여전히 적용됩니다.
카탈로그와 스키마 읽기는 캐시하세요. 스키마는
ETag와 If-None-Match로 재검증하세요. 재시도 및 약정 지출 필드에 대해서는 Headers를 참고하세요.
호출이 실행되는 동안에는 진행 상황이 표시되지 않음
Router는 최종 응답만 반환하며, 스트리밍되는 토큰, 서버 전송 이벤트(Server-Sent Events), 백분율 업데이트, 중간 미리보기 프레임은 제공하지 않습니다. 요청이 처리되는 동안 공급자의 내부 폴링 상태는 전달되지 않습니다. 불확정 진행 표시기를 사용하세요. 진행 상황이나 스트리밍이 필요하다면 이를 노출하는 파트너 프록시 작업을 사용하세요.Comfy 요금 및 사용량
응답에는 공급자 사용량 또는 비용 필드가 포함될 수 있습니다. 이는 보편적인 Comfy 요금을 나타내지 않습니다.X-Comfy-Credits-Used는 선택 사항이며 재전송되지 않습니다. 잔액, 사용량, 청구서는 Comfy 플랫폼에서 확인하세요.
카탈로그는 가격 대신 billing.charges_on_policy_rejection을 포함한 청구 관련 사실 정보를 제공합니다. yes, no, unknown은 명시적으로 처리하세요. 자세한 내용은 billing을 참조하세요.
Router는 모든 파트너 작업을 다루지 않습니다
Router는 모델을 실행합니다. 파일 업로드, 계정 읽기, 에셋 관리, 스트리밍, 공급자 작업 제어에는/proxy/… 아래의 파트너 프록시 라우트가 필요할 수 있습니다. Comfy API 명세를 확인하세요. 지원 여부는 공급자마다 다릅니다.
모델 출력 및 저장된 에셋
입력과 출력 필드는 모델에 따라 다릅니다. 공급자 SDK나 프록시에서 옮겨오면 라우트와 결과를 읽는 방식이 모두 달라질 수 있습니다. 일부 에셋은 Comfy 스토리지에 다시 호스팅되고, 다른 에셋은 공급자 URL이거나 인라인 바이트입니다. 수명과 재생 동작은 결과 에셋을 참조하세요.다음
빠른 시작
Comfy Router를 통해 첫 번째 이미지를 생성해 보세요.
Router API 사용하기
모델을 선택하고 스키마를 확인한 뒤 결과와 재시도를 처리합니다.