> ## Documentation Index
> Fetch the complete documentation index at: https://dripart-feat-openapi-i18n.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 대용량 파일의 배경 다운로드 시작

> Huggingface 또는 Civitai에서 대용량 파일을 위한 배경 다운로드 작업을 시작합니다.

파일이 저장소에 이미 존재하는 경우, 에셋 레코드가 즉시 생성되어 반환됩니다 (200 OK).
파일이 존재하지 않는 경우, 배경 작업이 생성되고 작업 ID가 반환됩니다 (202 Accepted).
프론트엔드는 GET /api/tasks/{task_id}를 사용하여 진행 상황을 추적할 수 있습니다.




## OpenAPI

````yaml /openapi/cloud.ko.yaml post /api/assets/download
openapi: 3.0.3
info:
  title: Comfy Cloud API
  description: >
    <Warning>

    **실험적 API:** 이 API는 실험적이며 변경될 수 있습니다. 

    엔드포인트, 요청/응답 형식 및 동작은 사전 통지 없이 수정될 수 있습니다.

    </Warning>


    Comfy Cloud용 API - 클라우드 인프라에서 ComfyUI 워크플로를 실행합니다.


    이 API를 사용하여 Comfy Cloud와 프로그래밍 방식으로 상호작용할 수 있습니다:

    - 워크플로 제출 및 관리

    - 파일 업로드 및 다운로드

    - 작업 상태 및 진행 상황 모니터링


    ## Cloud vs OSS ComfyUI 호환성


    Comfy Cloud는 최대 호환성을 위해 OSS ComfyUI와 동일한 API 인터페이스를 구현하지만,

    일부 필드는 호환성을 위해 허용되지만 다르게 처리되거나 무시됩니다:


    | 필드 | 엔드포인트 | Cloud 동작 |

    |-------|-----------|----------------|

    | `subfolder` | `/api/view`, `/api/upload/*` | **무시됨** - Cloud는 콘텐츠 주소 지정
    저장소(해시 기반)를 사용합니다. 클라이언트 측 구성을 위해 응답에 반환됩니다. |

    | `type` (input/output/temp) | `/api/view`, `/api/upload/*` | 부분적으로 사용됨 - 모든
    파일은 디렉토리 구조 대신 태그 기반 조직으로 저장됩니다. |

    | `overwrite` | `/api/upload/*` | **무시됨** - 콘텐츠 주소 지정 저장소는 동일한 콘텐츠가 항상 동일한
    해시를 갖도록 합니다. |

    | `number`, `front` | `/api/prompt` | **무시됨** - Cloud는 사용자별로 자체 공정 실행 대기열
    스케줄링을 사용합니다. |

    | `split`, `full_info` | `/api/userdata` | **무시됨** - Cloud는 항상 전체 파일 메타데이터를
    반환합니다. |


    이러한 필드는 기존 ComfyUI 클라이언트 및 워크플로와의 드롭인 호환성을 위해 API 스키마에 유지됩니다.
  version: 1.0.0
  license:
    name: GNU General Public License v3.0
    url: https://github.com/Comfy-Org/ComfyUI/blob/master/LICENSE
servers:
  - url: https://cloud.comfy.org
    description: Comfy Cloud API
security:
  - ApiKeyAuth: []
tags:
  - name: workflow
    description: |
      워크플로를 제출하여 실행하고, 실행 대기열을 관리합니다.
      클라우드에서 ComfyUI 워크플로를 실행하는 주요 방법입니다.
  - name: job
    description: |
      작업 상태를 모니터링하고, 실행 기록을 확인하며, 실행 중인 작업을 관리합니다.
      작업은 POST /api/prompt를 통해 워크플로를 제출할 때 생성됩니다.
  - name: asset
    description: |
      지속적 에셋(이미지, 모델, 출력)을 업로드, 다운로드 및 관리합니다.
      에셋은 태그 지정 및 메타데이터 지원과 함께 내구성 있는 스토리지를 제공합니다.
  - name: file
    description: |
      로컬 ComfyUI와 호환되는 레거시 파일 업로드 및 다운로드 엔드포인트입니다.
      새로운 통합의 경우 Assets API 사용을 고려하세요.
  - name: model
    description: |
      사용 가능한 AI 모델을 찾아보세요. 모델은 클라우드 인프라에 사전 로드됩니다.
  - name: node
    description: |
      사용 가능한 ComfyUI 노드 및 해당 입력/출력에 대한 정보를 가져옵니다.
      동적 워크플로 인터페이스 구축에 유용합니다.
  - name: user
    description: |
      사용자 계정 정보 및 개인 데이터 스토리지.
  - name: system
    description: |
      서버 상태, 상태 확인 및 시스템 정보.
paths:
  /api/assets/download:
    post:
      tags:
        - asset
      summary: 대용량 파일의 배경 다운로드 시작
      description: |
        Huggingface 또는 Civitai에서 대용량 파일을 위한 배경 다운로드 작업을 시작합니다.

        파일이 저장소에 이미 존재하는 경우, 에셋 레코드가 즉시 생성되어 반환됩니다 (200 OK).
        파일이 존재하지 않는 경우, 배경 작업이 생성되고 작업 ID가 반환됩니다 (202 Accepted).
        프론트엔드는 GET /api/tasks/{task_id}를 사용하여 진행 상황을 추적할 수 있습니다.
      operationId: createAssetDownload
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - source_url
              properties:
                source_url:
                  type: string
                  format: uri
                  description: 다운로드할 파일의 URL (huggingface.co 또는 civitai.com에서 가져와야 함)
                  example: >-
                    https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned.safetensors
                tags:
                  type: array
                  items:
                    type: string
                  description: '에셋의 선택적 태그 (예: ["model", "checkpoint"])'
                user_metadata:
                  type: object
                  additionalProperties: true
                  description: 에셋에 첨부할 선택적 사용자 정의 메타데이터
                preview_id:
                  type: string
                  format: uuid
                  description: 다운로드된 에셋과 연결할 선택적 미리보기 에셋 ID
                  example: 550e8400-e29b-41d4-a716-446655440000
      responses:
        '200':
          description: 파일이 이미 스토리지에 존재함 - 에셋이 즉시 생성/반환됨
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetCreated'
        '202':
          description: 수락됨 - 다운로드 작업이 생성되어 배경에서 처리 중
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetDownloadResponse'
        '400':
          description: 잘못된 URL 또는 지원되지 않는 소스
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: 인증되지 않음
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: 검증 오류
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: 내부 서버 오류
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    AssetCreated:
      allOf:
        - $ref: '#/components/schemas/Asset'
        - type: object
          required:
            - created_new
          properties:
            created_new:
              type: boolean
              description: 이것이 새 에셋 생성(참)인지 아니면 기존 항목 반환(거짓)인지 여부
    AssetDownloadResponse:
      type: object
      required:
        - task_id
        - status
      properties:
        task_id:
          type: string
          format: uuid
          description: GET /api/tasks/{task_id}를 통해 다운로드 진행 상황을 추적하는 작업 ID
        status:
          type: string
          enum:
            - created
            - running
            - completed
            - failed
          description: 현재 작업 상태
        message:
          type: string
          description: 사람이 읽을 수 있는 메시지
          example: Download task created. Use task_id to track progress.
    ErrorResponse:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
        message:
          type: string
    Asset:
      type: object
      required:
        - id
        - name
        - size
        - created_at
        - updated_at
      properties:
        id:
          type: string
          format: uuid
          description: 에셋의 고유 식별자
        name:
          type: string
          description: 에셋 파일의 이름
        asset_hash:
          type: string
          description: 에셋 콘텐츠의 Blake3 해시
          pattern: ^blake3:[a-f0-9]{64}$
        size:
          type: integer
          format: int64
          description: 에셋의 크기(바이트 단위)
        mime_type:
          type: string
          description: 에셋의 MIME 유형
        tags:
          type: array
          items:
            type: string
          description: 에셋과 연결된 태그
        user_metadata:
          type: object
          description: 에셋의 사용자 정의 메타데이터
          additionalProperties: true
        preview_url:
          type: string
          format: uri
          description: 에셋 미리보기/썸네일 URL
        preview_id:
          type: string
          format: uuid
          description: 사용 가능한 경우 미리보기 에셋의 ID
          nullable: true
        prompt_id:
          type: string
          format: uuid
          description: 이 에셋을 생성한 작업/프롬프트의 ID (사용 가능한 경우)
          nullable: true
        created_at:
          type: string
          format: date-time
          description: 에셋이 생성된 타임스탬프
        updated_at:
          type: string
          format: date-time
          description: 에셋이 마지막으로 업데이트된 타임스탬프
        last_access_time:
          type: string
          format: date-time
          description: 에셋이 마지막으로 액세스된 타임스탬프
        is_immutable:
          type: boolean
          description: 이 에셋이 불변인지 여부 (수정 또는 삭제할 수 없음)
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: >
        API 키 인증. 계정 설정에서 API 키를 생성하세요.

        https://platform.comfy.org/profile/api-keys 에서 생성할 수 있습니다. X-API-Key 헤더에
        키를 전달하세요.

````