{
  "schema_version": 1,
  "family": "yue2",
  "display_name": "YuE2",
  "description": "YuE2 music generation model with symbolic ABC planning, semantic codec generation, NAR acoustic flow synthesis, and Oobleck VAE decode.",
  "category": "audio_generation",
  "status": "supported",
  "tasks": [
    "music"
  ],
  "modes": [
    "offline"
  ],
  "languages": [
    "en"
  ],
  "capabilities": {
    "music": [
      "lyrics",
      "style_control"
    ]
  },
  "runtime": {
    "tags": [
      "gguf"
    ]
  },
  "dependencies": [],
  "ui": {
    "recommended_package": "yue2_main_q8_0",
    "tags": [
      "Music",
      "GGUF"
    ],
    "docs": [
      "docs/models/yue2.md",
      "docs/music_generation.md",
      "docs/gguf.md"
    ]
  },
  "options": {
    "request": [
      {
        "name": "style",
        "type": "string",
        "description": "Song style/tags.",
        "required": true
      },
      {
        "name": "lyrics",
        "type": "string",
        "description": "Lyrics text. Leave empty for instrumental generation; if omitted, the CLI text input is used.",
        "required": false
      },
      {
        "name": "cot",
        "type": "enum",
        "values": [
          "off",
          "melody",
          "full"
        ],
        "description": "Symbolic planning route. off skips ABC generation; melody/full generate or consume ABC before music tokens.",
        "required": false,
        "default": "full"
      },
      {
        "name": "stop_after",
        "type": "enum",
        "values": [
          "abc",
          "semantic",
          "audio"
        ],
        "description": "Last stage to run. abc writes the generated score only; semantic also writes the semantic token export; audio renders the full song.",
        "required": false,
        "default": "audio"
      },
      {
        "name": "abc",
        "type": "string",
        "description": "External ABC score text for melody/full routes.",
        "required": false
      },
      {
        "name": "abc_file",
        "type": "string",
        "description": "Path to an external ABC score file for melody/full routes.",
        "required": false
      },
      {
        "name": "semantic_prefix",
        "type": "string",
        "description": "JSON array of semantic codec indices to force as the start of the music stream.",
        "required": false
      },
      {
        "name": "semantic_prefix_file",
        "type": "string",
        "description": "Path to a JSON array of semantic codec indices to force as the start of the music stream.",
        "required": false
      },
      {
        "name": "nar_noise_file",
        "type": "string",
        "description": "Path to a raw float32 noise file for NAR generation, shaped [frames,64].",
        "required": false
      },
      {
        "name": "export_semantic",
        "type": "bool",
        "description": "Attach the semantic token stream as a semantic artifact (JSON array of codec indices); default false.",
        "required": false,
        "default": false
      },
      {
        "name": "guidance_scale",
        "type": "float",
        "description": "Semantic classifier-free guidance scale. Default follows the upstream route defaults.",
        "required": false,
        "min": 0.0,
        "max": 20.0
      },
      {
        "name": "seed",
        "type": "int",
        "description": "Generation seed.",
        "required": false,
        "min": 0,
        "default": 1234
      },
      {
        "name": "num_inference_steps",
        "type": "int",
        "description": "NAR midpoint ODE steps.",
        "required": false,
        "min": 1,
        "default": 8
      },
      {
        "name": "abc_temperature",
        "type": "float",
        "description": "ABC planner sampling temperature.",
        "required": false,
        "min": 0.0,
        "max": 5.0
      },
      {
        "name": "abc_top_p",
        "type": "float",
        "description": "ABC planner nucleus sampling probability.",
        "required": false,
        "min": 0.0,
        "max": 1.0
      },
      {
        "name": "abc_top_k",
        "type": "int",
        "description": "ABC planner top-k sampling limit.",
        "required": false,
        "min": 1
      },
      {
        "name": "abc_repetition_penalty",
        "type": "float",
        "description": "ABC planner repetition penalty.",
        "required": false,
        "min": 0.001
      },
      {
        "name": "abc_penalty_window",
        "type": "int",
        "description": "ABC planner repetition penalty window.",
        "required": false,
        "min": 1
      },
      {
        "name": "abc_min_tokens",
        "type": "int",
        "description": "Minimum ABC planner tokens before EOS is accepted.",
        "required": false,
        "min": 0
      },
      {
        "name": "abc_max_tokens",
        "type": "int",
        "description": "Maximum ABC planner tokens.",
        "required": false,
        "min": 1
      },
      {
        "name": "semantic_temperature",
        "type": "float",
        "description": "Semantic codec sampling temperature.",
        "required": false,
        "min": 0.0,
        "max": 5.0
      },
      {
        "name": "semantic_top_p",
        "type": "float",
        "description": "Semantic codec nucleus sampling probability.",
        "required": false,
        "min": 0.0,
        "max": 1.0
      },
      {
        "name": "semantic_top_k",
        "type": "int",
        "description": "Semantic codec top-k sampling limit.",
        "required": false,
        "min": 1
      },
      {
        "name": "semantic_repetition_penalty",
        "type": "float",
        "description": "Semantic codec repetition penalty.",
        "required": false,
        "min": 0.001
      },
      {
        "name": "semantic_penalty_window",
        "type": "int",
        "description": "Semantic codec repetition penalty window.",
        "required": false,
        "min": 1
      },
      {
        "name": "semantic_min_tokens",
        "type": "int",
        "description": "Minimum semantic tokens before EOS is accepted.",
        "required": false,
        "min": 0
      },
      {
        "name": "semantic_max_tokens",
        "type": "int",
        "description": "Maximum semantic codec tokens.",
        "required": false,
        "min": 1
      }
    ],
    "session": [
      {
        "name": "ar_lora",
        "type": "string",
        "description": "Unfused AR LoRA safetensors file. Absolute path or relative to the model root. Requires session reload.",
        "required": false
      },
      {
        "name": "ar_lora_scale",
        "type": "float",
        "description": "AR LoRA delta scale; zero disables the adapter. Requires session reload.",
        "required": false,
        "default": 1.0
      },
      {
        "name": "nar_lora",
        "type": "string",
        "description": "Unfused NAR adapter safetensors file. Absolute path or relative to the model root. Requires session reload.",
        "required": false
      },
      {
        "name": "nar_lora_scale",
        "type": "float",
        "description": "NAR LoRA delta scale; full vae2llm/llm2vae replacements are unscaled. Zero disables the entire adapter. Requires session reload.",
        "required": false,
        "default": 1.0
      },
      {
        "name": "weight_type",
        "type": "enum",
        "values": [
          "native",
          "f32",
          "f16",
          "bf16",
          "q8_0",
          "q4_0",
          "q4_k"
        ],
        "description": "Shared weight storage type.",
        "required": false,
        "default": "native"
      },
      {
        "name": "model_weight_type",
        "type": "enum",
        "values": [
          "native",
          "f32",
          "f16",
          "bf16",
          "q8_0",
          "q4_0",
          "q4_k"
        ],
        "description": "YuE2 MoT weight storage type.",
        "required": false,
        "default": "native"
      },
      {
        "name": "model_gguf",
        "type": "string",
        "description": "Yue2 main AR/NAR component GGUF file relative to the model root.",
        "required": false,
        "default": "yue2-3b-q8_0.gguf"
      },
      {
        "name": "vae_gguf",
        "type": "string",
        "description": "Yue2 VAE component GGUF file relative to the model root.",
        "required": false,
        "default": "yue2-vae-f16.gguf"
      },
      {
        "name": "vae_weight_type",
        "type": "enum",
        "values": [
          "native",
          "f32",
          "f16",
          "bf16",
          "q8_0",
          "q4_0",
          "q4_k"
        ],
        "description": "YuE2 VAE weight storage type.",
        "required": false,
        "default": "native"
      },
      {
        "name": "model_weight_context_mb",
        "type": "int",
        "description": "YuE2 MoT weight context size in MiB.",
        "required": false,
        "min": 1,
        "default": 32
      },
      {
        "name": "vae_weight_context_mb",
        "type": "int",
        "description": "YuE2 VAE weight context size in MiB.",
        "required": false,
        "min": 1,
        "default": 32
      },
      {
        "name": "ar_prefill_graph_arena_mb",
        "type": "int",
        "description": "AR prefill graph arena size in MiB.",
        "required": false,
        "min": 1,
        "default": 32
      },
      {
        "name": "ar_decode_graph_arena_mb",
        "type": "int",
        "description": "AR one-token decode graph arena size in MiB.",
        "required": false,
        "min": 1,
        "default": 32
      },
      {
        "name": "nar_graph_arena_mb",
        "type": "int",
        "description": "NAR acoustic flow graph arena size in MiB.",
        "required": false,
        "min": 1,
        "default": 32
      },
      {
        "name": "vae_graph_arena_mb",
        "type": "int",
        "description": "VAE decode graph arena size in MiB.",
        "required": false,
        "min": 1,
        "default": 32
      }
    ],
    "load": []
  },
  "package_defaults": {
    "download": {
      "kind": "huggingface_snapshot",
      "repo": "audio-cpp/Yue2-3B-GGUF",
      "revision": "main",
      "gated": false
    }
  },
  "packages": [
    {
      "id": "yue2_main_q8_0",
      "display_name": "Yue2 3B Main Q8_0",
      "default": true,
      "format": "gguf",
      "precision": "q8_0",
      "target_directory": "Yue2-3B-GGUF",
      "files": [
        "sidecars/yue2-model-config.json",
        "sidecars/yue2-generation-config.json",
        "sidecars/yue2-qwen.tiktoken",
        "sidecars/yue2-vae-config.json",
        "yue2-3b-q8_0.gguf"
      ]
    },
    {
      "id": "yue2_main_bf16",
      "display_name": "Yue2 3B Main BF16",
      "format": "gguf",
      "precision": "bf16",
      "target_directory": "Yue2-3B-GGUF",
      "files": [
        "sidecars/yue2-model-config.json",
        "sidecars/yue2-generation-config.json",
        "sidecars/yue2-qwen.tiktoken",
        "sidecars/yue2-vae-config.json",
        "yue2-3b-bf16.gguf"
      ]
    },
    {
      "id": "yue2_main_q4_0",
      "display_name": "Yue2 3B Main Q4_0",
      "format": "gguf",
      "precision": "q4_0",
      "target_directory": "Yue2-3B-GGUF",
      "files": [
        "sidecars/yue2-model-config.json",
        "sidecars/yue2-generation-config.json",
        "sidecars/yue2-qwen.tiktoken",
        "sidecars/yue2-vae-config.json",
        "yue2-3b-q4_0.gguf"
      ]
    },
    {
      "id": "yue2_vae_f16",
      "display_name": "Yue2 VAE F16",
      "format": "gguf",
      "precision": "f16",
      "target_directory": "Yue2-3B-GGUF",
      "files": [
        "sidecars/yue2-model-config.json",
        "sidecars/yue2-generation-config.json",
        "sidecars/yue2-qwen.tiktoken",
        "sidecars/yue2-vae-config.json",
        "yue2-vae-f16.gguf"
      ]
    },
    {
      "id": "yue2_vae_f32",
      "display_name": "Yue2 VAE F32",
      "format": "gguf",
      "precision": "f32",
      "target_directory": "Yue2-3B-GGUF",
      "files": [
        "sidecars/yue2-model-config.json",
        "sidecars/yue2-generation-config.json",
        "sidecars/yue2-qwen.tiktoken",
        "sidecars/yue2-vae-config.json",
        "yue2-vae-f32.gguf"
      ]
    }
  ],
  "sources": [
    {
      "format": "gguf",
      "roots": {
        "model": "."
      },
      "files": {
        "model_config": "model:sidecars/yue2-model-config.json",
        "generation_config": "model:sidecars/yue2-generation-config.json",
        "tiktoken": "model:sidecars/yue2-qwen.tiktoken",
        "vae_config": "model:sidecars/yue2-vae-config.json"
      }
    },
    {
      "format": "safetensors",
      "roots": {
        "model": "YuE2-3B",
        "vae": "YuE2-Vae"
      },
      "files": {
        "model_config": "model:config.json",
        "generation_config": "model:yue2_generation_config.json",
        "tiktoken": "model:qwen.tiktoken",
        "vae_config": "vae:config.json"
      },
      "tensors": {
        "model_weights": "model:model.safetensors",
        "vae_weights": "vae:model.safetensors"
      }
    }
  ]
}
