{
  "last_node_id": 4,
  "last_link_id": 3,
  "nodes": [
    {
      "id": 1,
      "type": "LoadAudio",
      "pos": [100, 100],
      "size": [300, 100],
      "flags": {},
      "order": 0,
      "mode": 0,
      "outputs": [
        {
          "name": "AUDIO",
          "type": "AUDIO",
          "links": [1]
        }
      ],
      "properties": {
        "Node name for S&R": "LoadAudio"
      },
      "widgets_values": [
        "reference_audio.wav"
      ],
      "title": "Load Reference Audio"
    },
    {
      "id": 2,
      "type": "DiffRhythmRun",
      "pos": [500, 100],
      "size": [400, 450],
      "flags": {},
      "order": 1,
      "mode": 0,
      "inputs": [
        {
          "name": "style_audio_or_edit_song",
          "type": "AUDIO",
          "link": 1
        }
      ],
      "outputs": [
        {
          "name": "AUDIO",
          "type": "AUDIO",
          "links": [2, 3]
        }
      ],
      "properties": {
        "Node name for S&R": "DiffRhythmRun"
      },
      "widgets_values": [
        "cfm_model_v1_2.pt",
        "Energetic rock music with driving guitar riffs and powerful drums",
        true,
        "euler",
        30,
        5,
        "speed",
        456,
        "randomize",
        false,
        "[-1, 20], [60, -1]"
      ],
      "title": "DiffRhythm Reference-Based Generation"
    },
    {
      "id": 3,
      "type": "PreviewAudio",
      "pos": [1000, 100],
      "size": [300, 100],
      "flags": {},
      "order": 2,
      "mode": 0,
      "inputs": [
        {
          "name": "audio",
          "type": "AUDIO",
          "link": 2
        }
      ],
      "properties": {
        "Node name for S&R": "PreviewAudio"
      },
      "title": "Preview Generated Audio"
    },
    {
      "id": 4,
      "type": "SaveAudio",
      "pos": [1000, 250],
      "size": [300, 100],
      "flags": {},
      "order": 3,
      "mode": 0,
      "inputs": [
        {
          "name": "audio",
          "type": "AUDIO",
          "link": 3
        }
      ],
      "properties": {
        "Node name for S&R": "SaveAudio"
      },
      "widgets_values": [
        "diffrhythm_reference_output"
      ],
      "title": "Save Audio"
    }
  ],
  "links": [
    [1, 1, 0, 2, 0, "AUDIO"],
    [2, 2, 0, 3, 0, "AUDIO"],
    [3, 2, 0, 4, 0, "AUDIO"]
  ],
  "groups": [],
  "config": {},
  "extra": {
    "workflow_info": {
      "name": "DiffRhythm Reference-Based Generation v1",
      "description": "Generate new music based on a reference audio file while following text prompt guidance",
      "version": "1.0.0",
      "author": "valknar@pivoine.art",
      "category": "text-to-music",
      "tags": ["diffrhythm", "music-generation", "reference-based", "style-transfer"],
      "requirements": {
        "custom_nodes": ["ComfyUI_DiffRhythm"],
        "models": ["ASLP-lab/DiffRhythm-1_2", "ASLP-lab/DiffRhythm-vae", "OpenMuQ/MuQ-MuLan-large", "OpenMuQ/MuQ-large-msd-iter", "FacebookAI/xlm-roberta-base"],
        "vram_min": "14GB",
        "vram_recommended": "18GB",
        "system_deps": ["espeak-ng"]
      },
      "usage": {
        "reference_audio": "Path to reference audio file (WAV, MP3, or other supported formats)",
        "model": "cfm_model_v1_2.pt (DiffRhythm 1.2)",
        "style_prompt": "Text description guiding the style and characteristics of generated music",
        "unload_model": "Boolean to unload model after generation (default: true)",
        "odeint_method": "ODE solver: euler, midpoint, rk4, implicit_adams (default: euler)",
        "steps": "Number of diffusion steps: 1-100 (default: 30)",
        "cfg": "Classifier-free guidance scale: 1-10 (default: 5 for reference-based)",
        "quality_or_speed": "Generation mode: quality or speed (default: speed)",
        "seed": "Random seed for reproducibility (default: 456)",
        "edit": "Enable segment editing mode (default: false)",
        "edit_segments": "Segments to edit when edit=true"
      },
      "use_cases": [
        "Style transfer: Apply the style of reference music to new prompt",
        "Variations: Create variations of existing compositions",
        "Genre transformation: Transform music to different genre while keeping structure",
        "Mood adaptation: Change the mood/emotion while maintaining musical elements"
      ],
      "notes": [
        "This workflow combines reference audio with text prompt guidance",
        "The reference audio is connected to the style_audio_or_edit_song input",
        "Higher cfg values (7-10) = closer adherence to both prompt and reference",
        "Lower cfg values (2-4) = more creative interpretation",
        "Reference audio should ideally be similar duration to target (95s for cfm_model_v1_2.pt)",
        "Can use any format supported by ComfyUI's LoadAudio node"
      ]
    }
  },
  "version": 0.4
}
