{
  "config": {},
  "extra": {
    "VHS_KeepIntermediate": true,
    "VHS_MetadataImage": true,
    "VHS_latentpreview": false,
    "VHS_latentpreviewrate": 0,
    "ds": {
      "offset": [
        2023.9183970432728,
        500.497443710502
      ],
      "scale": 0.5875498691146271
    },
    "frontendVersion": "1.37.10",
    "workflowRendererVersion": "LG"
  },
  "groups": [],
  "id": "18bb6f1f-5453-484d-9a6d-260b40f4e887",
  "last_link_id": 11,
  "last_node_id": 7,
  "links": [
    [
      4,
      1,
      0,
      4,
      0,
      "AUDIO"
    ],
    [
      5,
      3,
      0,
      5,
      0,
      "AUDIO"
    ],
    [
      10,
      5,
      0,
      1,
      0,
      "AUDIO"
    ],
    [
      11,
      2,
      0,
      1,
      1,
      "AUDIO"
    ]
  ],
  "nodes": [
    {
      "flags": {},
      "id": 2,
      "inputs": [],
      "mode": 0,
      "order": 0,
      "outputs": [
        {
          "links": [
            11
          ],
          "name": "AUDIO",
          "type": "AUDIO"
        }
      ],
      "pos": [
        -1062.0764835957827,
        359.223383951974
      ],
      "properties": {
        "Node name for S&R": "LoadAudio"
      },
      "size": [
        282.798828125,
        136
      ],
      "type": "LoadAudio",
      "widgets_values": [
        "chatterbox_input_target_voice.mp3",
        null,
        null
      ]
    },
    {
      "flags": {},
      "id": 5,
      "inputs": [
        {
          "link": 5,
          "name": "audio",
          "type": "AUDIO"
        }
      ],
      "mode": 0,
      "order": 3,
      "outputs": [
        {
          "links": [
            10
          ],
          "name": "AUDIO",
          "type": "AUDIO"
        }
      ],
      "pos": [
        -738.5534728009812,
        170.18822419548158
      ],
      "properties": {
        "Node name for S&R": "AudioCrop"
      },
      "size": [
        270,
        82
      ],
      "type": "AudioCrop",
      "widgets_values": [
        "0:00",
        "0:27"
      ]
    },
    {
      "flags": {},
      "id": 1,
      "inputs": [
        {
          "link": 10,
          "name": "input_audio",
          "type": "AUDIO"
        },
        {
          "link": 11,
          "name": "target_voice",
          "type": "AUDIO"
        }
      ],
      "mode": 0,
      "order": 4,
      "outputs": [
        {
          "links": [
            4
          ],
          "name": "audio",
          "type": "AUDIO"
        },
        {
          "links": null,
          "name": "message",
          "type": "STRING"
        }
      ],
      "pos": [
        -427.25661449685225,
        167.3668274611146
      ],
      "properties": {
        "Node name for S&R": "FL_ChatterboxVC"
      },
      "size": [
        277.015625,
        150
      ],
      "type": "FL_ChatterboxVC",
      "widgets_values": [
        1956129161,
        "randomize",
        false,
        false
      ]
    },
    {
      "bgcolor": "#000",
      "color": "#222",
      "flags": {},
      "id": 7,
      "inputs": [],
      "mode": 0,
      "order": 1,
      "outputs": [],
      "pos": [
        -1500,
        170
      ],
      "properties": {},
      "size": [
        402.81050958333503,
        667.0051882662111
      ],
      "title": "🎙️ Chatterbox Voice Cloning (Audio → Audio)",
      "type": "MarkdownNote",
      "widgets_values": [
        "This workflow takes one audio clip and converts it into another voice while preserving the original timing and performance.\n\n---\n\n## What This Does\n\n- **Input audio**: the speech or performance you want to convert  \n- **Target voice**: a short reference clip of the voice you want to clone  \n- **Output**: the original audio re-spoken in the target voice\n\n---\n\n## How to Use\n\n### 1. Load the Source Audio\n- Upload the audio you want to convert into the **top Load Audio** node  \n- This is the performance that will be re-voiced\n\n### 2. (Optional) Trim the Audio\n- Use **AudioCrop** to select a specific section  \n- Adjust `start_time` and `end_time` to isolate the part you want\n- You can bypass the **AudioCrop** node if you don't need to trim your clip\n\n### 3. Load the Target Voice\n- Upload a short reference clip into the **bottom Load Audio** node  \n- 5–10 seconds of clean speech works well  \n- This audio defines the cloned voice\n\n### 4. Generate the Voice Conversion\n- The **FL Chatterbox VC** node takes:\n  - `input_audio` → the source performance\n  - `target_voice` → the voice reference\n- Click **Run** to generate\n\n### 5. Listen or Export\n- Preview the result in **Save Audio (MP3)**  \n- The output keeps the original timing, phrasing, and cadence\n\n---\n\n## Tips\n\n- Clean, single-speaker reference clips give the best results  \n- Shorter, well-cropped segments are more reliable  \n- If results sound off, try trimming silence or reducing background noise\n\n---\n"
      ]
    },
    {
      "flags": {},
      "id": 4,
      "inputs": [
        {
          "link": 4,
          "name": "audio",
          "type": "AUDIO"
        }
      ],
      "mode": 0,
      "order": 5,
      "outputs": [],
      "pos": [
        -116.61273975353727,
        165.40033076921117
      ],
      "properties": {
        "Node name for S&R": "SaveAudioMP3"
      },
      "size": [
        270,
        136
      ],
      "type": "SaveAudioMP3",
      "widgets_values": [
        "audio/ComfyUI",
        "V0"
      ]
    },
    {
      "flags": {},
      "id": 3,
      "inputs": [],
      "mode": 0,
      "order": 2,
      "outputs": [
        {
          "links": [
            5
          ],
          "name": "AUDIO",
          "type": "AUDIO"
        }
      ],
      "pos": [
        -1063.0168912935958,
        168.30728251554427
      ],
      "properties": {
        "Node name for S&R": "LoadAudio"
      },
      "size": [
        282.798828125,
        136
      ],
      "type": "LoadAudio",
      "widgets_values": [
        "chatterbox_input_gettysburg.wav",
        null,
        null
      ]
    }
  ],
  "revision": 0,
  "version": 0.4
}