Ctrl K
ComunidadGuías…

bootstrapper/schemas/comfyui-manifest.schema.json

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "ComfyUI active-model manifest",
  "description": "Validates the manifest YAML written by bootstrapper/utils/comfyui_resolver.py. Consumed by comfyui-init (download_models.sh: name, type, filename, download_url, sha256) and the backend GET /comfyui/db/models (full row as JSON). additionalProperties: false is intentional — any typo in field names must be caught before the downloader runs.",
  "type": "object",
  "required": ["models"],
  "additionalProperties": false,
  "properties": {
    "models": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/manifest_entry"
      }
    }
  },
  "definitions": {
    "manifest_entry": {
      "type": "object",
      "required": ["name", "type", "filename", "download_url"],
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "description": "Stable unique identifier — matches the catalog name column."
        },
        "type": {
          "type": "string",
          "enum": [
            "checkpoint",
            "vae",
            "lora",
            "controlnet",
            "ipadapter",
            "instantid",
            "upscaler",
            "embedding",
            "clip",
            "animatediff",
            "motion_lora",
            "video_model",
            "voice_model",
            "audio_model",
            "mesh_model",
            "diffusion_models",
            "text_encoders"
          ],
          "description": "Model category. Mapped from ComfyUILibraryEntry.category (category→type). Drives the in-container target directory."
        },
        "filename": {
          "type": "string",
          "minLength": 1,
          "description": "On-disk filename inside the target directory. Derived from ComfyUILibraryEntry.filename or the URL path. Used by download_models.sh to name the downloaded file and by ComfyUI's extension scanner to list it."
        },
        "download_url": {
          "type": "string",
          "pattern": "^https?://",
          "description": "Direct download URL. Mapped from ComfyUILibraryEntry.url (url→download_url). Used by download_models.sh's curl/wget call."
        },
        "sha256": {
          "type": ["string", "null"],
          "description": "Hex SHA-256 digest. Verified by download_models.sh when present and non-null."
        },
        "file_size_gb": {
          "type": ["number", "null"],
          "minimum": 0,
          "description": "Approximate disk size in GB. Mapped from ComfyUILibraryEntry.size_gb (size_gb→file_size_gb). Surfaced in the backend GET response and used for disk-space warnings."
        },
        "file_size_bytes": {
          "type": ["integer", "null"],
          "minimum": 0,
          "description": "Exact artifact size in bytes when supplied by the catalog."
        },
        "family": {
          "type": ["string", "null"],
          "description": "Display family label (e.g. 'SDXL', 'AnimateDiff'). Passed through from ComfyUILibraryEntry.family."
        },
        "target_dir": {
          "type": ["string", "null"],
          "description": "In-container subdirectory under /models where the file is placed. Passed through from ComfyUILibraryEntry.target_dir."
        },
        "min_vram_gb": {
          "type": ["number", "null"],
          "minimum": 0,
          "description": "Minimum GPU VRAM in GB. Passed through from ComfyUILibraryEntry.min_vram_gb."
        },
        "min_ram_gb": {
          "type": ["number", "null"],
          "minimum": 0,
          "description": "Recommended host or unified memory in GB."
        },
        "cpu_supported": {
          "type": "boolean",
          "description": "Whether the model runs on CPU. Passed through from ComfyUILibraryEntry.cpu_supported."
        },
        "requires_custom_node": {
          "type": "array",
          "items": {"type": "string"},
          "description": "ComfyUI custom-node repo names required to use this model. Passed through from ComfyUILibraryEntry.requires_custom_node."
        },
        "popularity": {
          "type": "integer",
          "minimum": 0,
          "description": "Approximate popularity score. Passed through from ComfyUILibraryEntry.popularity."
        },
        "source": {
          "type": ["string", "null"],
          "description": "Catalog origin: 'huggingface' | 'civitai' | 'curated' | 'fallback' | 'custom'. Passed through from ComfyUILibraryEntry.source."
        },
        "active": {
          "type": "boolean",
          "description": "Always true for manifest entries — every row in the manifest is an active model. Written as true by manifest_dict()."
        },
        "essential": {
          "type": "boolean",
          "description": "Whether this is an essential model (activated even with empty COMFYUI_USER_MODELS). Always false in manifest rows — essential is a catalog attribute, not a manifest attribute. Written as false by manifest_dict()."
        },
        "provisioning_required": {
          "type": "boolean",
          "description": "Whether failure to provision this selected physical artifact blocks readiness."
        },
        "description": {
          "type": ["string", "null"],
          "description": "Human-readable notes. Mapped from ComfyUILibraryEntry.notes (notes→description). Returned in the backend GET /comfyui/db/models JSON row."
        },
        "bundle_id": {
          "type": ["string", "null"],
          "description": "Logical catalog entry name when this row is one file of a multi-file bundle."
        },
        "bundle_file_role": {
          "type": ["string", "null"],
          "description": "Stable role of this file inside its bundle, such as diffusion, text_encoder, vae, or checkpoint."
        },
        "precision": {
          "type": ["string", "null"],
          "enum": ["bf16", "fp16", "fp8", null],
          "description": "Preferred precision inherited from the logical entry or file."
        },
        "variant": {
          "type": ["string", "null"],
          "description": "Artifact variant inherited from the logical entry or file."
        },
        "host_constraints": {
          "type": "array",
          "items": {"type": "string"},
          "description": "Host constraints inherited from the logical catalog entry."
        },
        "license_name": {
          "type": ["string", "null"],
          "description": "Human-readable model-weight license name."
        },
        "license_url": {
          "type": ["string", "null"],
          "pattern": "^https?://",
          "description": "Pinned authoritative model-weight license URL."
        },
        "license_restrictions": {
          "type": "array",
          "items": {"type": "string"},
          "description": "Material operator obligations inherited from the logical catalog entry."
        }
      }
    }
  }
}