{
  "id": "yue2-sheetsage2-transcribe",
  "revision": 0,
  "last_node_id": 5,
  "last_link_id": 3,
  "nodes": [
    {
      "id": 1,
      "type": "LoadAudio",
      "pos": [
        40,
        120
      ],
      "size": [
        300,
        100
      ],
      "flags": {},
      "order": 0,
      "mode": 0,
      "inputs": [
        {
          "name": "audio",
          "type": "COMBO",
          "widget": {
            "name": "audio"
          },
          "link": null
        }
      ],
      "outputs": [
        {
          "name": "AUDIO",
          "type": "AUDIO",
          "links": [
            1
          ],
          "slot_index": 0
        }
      ],
      "widgets_values": [
        "ref-song.flac"
      ],
      "properties": {
        "Node name for S&R": "LoadAudio"
      },
      "title": "参考音频（选 input 目录里的文件）"
    },
    {
      "id": 2,
      "type": "SheetSage2Loader",
      "pos": [
        40,
        300
      ],
      "size": [
        330,
        130
      ],
      "flags": {},
      "order": 1,
      "mode": 0,
      "inputs": [
        {
          "name": "model",
          "type": "COMBO",
          "widget": {
            "name": "model"
          },
          "link": null
        },
        {
          "name": "device",
          "type": "COMBO",
          "widget": {
            "name": "device"
          },
          "link": null
        },
        {
          "name": "dtype",
          "type": "COMBO",
          "widget": {
            "name": "dtype"
          },
          "link": null
        },
        {
          "name": "mert2_model",
          "type": "COMBO",
          "widget": {
            "name": "mert2_model"
          },
          "link": null
        }
      ],
      "outputs": [
        {
          "name": "model",
          "type": "SS2_MODEL",
          "links": [
            2
          ],
          "slot_index": 0
        }
      ],
      "widgets_values": [
        "SheetSage2",
        "cuda",
        "bfloat16",
        "MERT-v2-FullSong"
      ],
      "properties": {
        "Node name for S&R": "SheetSage2Loader"
      },
      "title": "SheetSage2 模型加载"
    },
    {
      "id": 3,
      "type": "SheetSage2Transcribe",
      "pos": [
        440,
        120
      ],
      "size": [
        420,
        320
      ],
      "flags": {},
      "order": 2,
      "mode": 0,
      "inputs": [
        {
          "name": "model",
          "type": "SS2_MODEL",
          "link": 2
        },
        {
          "name": "audio",
          "type": "AUDIO",
          "link": 1
        },
        {
          "name": "melody_only",
          "type": "BOOLEAN",
          "widget": {
            "name": "melody_only"
          },
          "link": null
        },
        {
          "name": "preset",
          "type": "COMBO",
          "widget": {
            "name": "preset"
          },
          "link": null
        },
        {
          "name": "max_seconds",
          "type": "FLOAT",
          "widget": {
            "name": "max_seconds"
          },
          "link": null
        },
        {
          "name": "save_outputs",
          "type": "BOOLEAN",
          "widget": {
            "name": "save_outputs"
          },
          "link": null
        },
        {
          "name": "abc_error_mode",
          "type": "COMBO",
          "widget": {
            "name": "abc_error_mode"
          },
          "link": null
        },
        {
          "name": "overlap_seconds",
          "type": "FLOAT",
          "widget": {
            "name": "overlap_seconds"
          },
          "link": null
        },
        {
          "name": "lookahead_seconds",
          "type": "FLOAT",
          "widget": {
            "name": "lookahead_seconds"
          },
          "link": null
        },
        {
          "name": "auto_unload",
          "type": "BOOLEAN",
          "widget": {
            "name": "auto_unload"
          },
          "link": null
        }
      ],
      "outputs": [
        {
          "name": "abc",
          "type": "STRING",
          "links": [],
          "slot_index": 0
        },
        {
          "name": "structure",
          "type": "STRING",
          "links": [],
          "slot_index": 1
        },
        {
          "name": "info",
          "type": "STRING",
          "links": [],
          "slot_index": 2
        },
        {
          "name": "midi",
          "type": "YUE2_MIDI",
          "links": [
            3
          ],
          "slot_index": 3
        }
      ],
      "widgets_values": [
        false,
        "default",
        0.0,
        true,
        "strict",
        -1.0,
        -1.0,
        false
      ],
      "properties": {
        "Node name for S&R": "SheetSage2Transcribe"
      },
      "title": "转谱（出 ABC / MIDI / 分段）"
    },
    {
      "id": 4,
      "type": "YuE2SaveMidiFile",
      "pos": [
        920,
        140
      ],
      "size": [
        300,
        80
      ],
      "flags": {},
      "order": 3,
      "mode": 0,
      "inputs": [
        {
          "name": "midi",
          "type": "YUE2_MIDI",
          "link": 3
        },
        {
          "name": "filename_prefix",
          "type": "STRING",
          "widget": {
            "name": "filename_prefix"
          },
          "link": null
        }
      ],
      "outputs": [
        {
          "name": "path",
          "type": "STRING",
          "links": [],
          "slot_index": 0
        }
      ],
      "widgets_values": [
        "YuE2/ref-midi"
      ],
      "properties": {
        "Node name for S&R": "YuE2SaveMidiFile"
      },
      "title": "保存 MIDI"
    },
    {
      "id": 5,
      "type": "Note",
      "pos": [
        40,
        -300
      ],
      "size": [
        640,
        340
      ],
      "flags": {},
      "order": 4,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "widgets_values": [
        "【参考音频 → 乐谱】SheetSage2 单独跑，不需要 YuE2\n\n步骤：\n  1) 把参考音频拷进 ComfyUI/input/（mp3/wav/flac 都行）\n  2) LoadAudio 的下拉里选它\n  3) Queue 就出：ABC 乐谱 + MIDI + 分段结构 + 和弦\n     产物落在 ComfyUI/output/SheetSage2/<时间戳>/\n\n实测（本机）：63 秒的歌 → 2.9 秒出谱（F 调 70BPM，19 个和弦，Vocal 35 音符）\n\n选项：\n  • melody_only=true 只出旋律声部（做改编/翻唱用，配 YuE2 的 cot=melody）\n  • max_seconds>0 可只转前 N 秒（长歌省时间）\n  • abc_error_mode：ABC 导出失败时的兜底策略\n      default=strict，可改 snap_invalid_notes / return_midi_only\n\nMERT2 父模型用的是本地 models/MERT2/MERT-v2-FullSong\n（完整性校验通过，无需改任何哈希）。\n"
      ],
      "properties": {
        "Node name for S&R": "Note"
      }
    }
  ],
  "links": [
    [
      1,
      1,
      0,
      3,
      1,
      "AUDIO"
    ],
    [
      2,
      2,
      0,
      3,
      0,
      "SS2_MODEL"
    ],
    [
      3,
      3,
      3,
      4,
      0,
      "YUE2_MIDI"
    ]
  ],
  "groups": [],
  "config": {},
  "extra": {
    "ds": {
      "scale": 1.0,
      "offset": [
        0,
        0
      ]
    }
  },
  "version": 0.4
}