{
  "config": {},
  "extra": {
    "VHS_KeepIntermediate": true,
    "VHS_MetadataImage": true,
    "VHS_latentpreview": false,
    "VHS_latentpreviewrate": 0,
    "ds": {
      "offset": [
        -452.1043391112039,
        -282.13320167339305
      ],
      "scale": 0.5280674722668658
    },
    "frontendVersion": "1.56.0",
    "links_added_by_ue": [],
    "ue_links": [],
    "workflowRendererVersion": "LG"
  },
  "groups": [
    {
      "bounding": [
        1790,
        1020,
        610,
        470
      ],
      "color": "#3f789e",
      "flags": {},
      "id": 1,
      "title": "Option 2: Create a Voice Clone"
    },
    {
      "bounding": [
        1790,
        660,
        608.3333333333334,
        325
      ],
      "color": "#3f789e",
      "flags": {},
      "id": 2,
      "title": "Option 1: Use Preset Voice"
    }
  ],
  "id": "91f6bbe2-ed41-4fd6-bac7-71d5b5864ecb",
  "last_link_id": 306,
  "last_node_id": 221,
  "links": [
    [
      296,
      210,
      0,
      212,
      0,
      "AUDIO"
    ],
    [
      302,
      218,
      0,
      220,
      0,
      "AUDIO"
    ],
    [
      299,
      211,
      0,
      218,
      0,
      "ELEVENLABS_VOICE"
    ],
    [
      304,
      219,
      0,
      218,
      1,
      "ELEVENLABS_VOICE"
    ],
    [
      305,
      211,
      0,
      218,
      2,
      "ELEVENLABS_VOICE"
    ],
    [
      306,
      219,
      0,
      218,
      3,
      "ELEVENLABS_VOICE"
    ]
  ],
  "nodes": [
    {
      "flags": {},
      "id": 210,
      "inputs": [],
      "mode": 4,
      "order": 0,
      "outputs": [
        {
          "links": [
            296
          ],
          "name": "AUDIO",
          "type": "AUDIO"
        }
      ],
      "pos": [
        1820,
        1090
      ],
      "properties": {
        "Node name for S&R": "LoadAudio",
        "cnr_id": "comfy-core",
        "ver": "0.14.1"
      },
      "size": [
        240,
        170
      ],
      "type": "LoadAudio",
      "widgets_values": [
        "long_demo.mp3",
        null
      ],
      "widgets_values_named": {
        "audio": "long_demo.mp3",
        "upload": null
      }
    },
    {
      "bgcolor": "#653",
      "color": "#432",
      "flags": {},
      "id": 212,
      "inputs": [
        {
          "label": "audio0",
          "link": 296,
          "name": "files.audio0",
          "type": "AUDIO"
        },
        {
          "link": null,
          "name": "files.audio1",
          "shape": 7,
          "type": "AUDIO"
        }
      ],
      "mode": 4,
      "order": 6,
      "outputs": [
        {
          "links": null,
          "name": "voice",
          "type": "ELEVENLABS_VOICE"
        }
      ],
      "pos": [
        2110,
        1090
      ],
      "properties": {
        "Node name for S&R": "ElevenLabsInstantVoiceClone",
        "cnr_id": "comfy-core",
        "ver": "0.14.1"
      },
      "size": [
        270,
        110
      ],
      "type": "ElevenLabsInstantVoiceClone",
      "widgets_values": [
        true
      ],
      "widgets_values_named": {
        "remove_background_noise": true
      }
    },
    {
      "bgcolor": "#000",
      "color": "#222",
      "flags": {},
      "id": 217,
      "inputs": [],
      "mode": 0,
      "order": 1,
      "outputs": [],
      "pos": [
        2120,
        1260
      ],
      "properties": {},
      "size": [
        260,
        110
      ],
      "title": "How to enable bypassed nodes",
      "type": "Note",
      "widgets_values": [
        "Please select and use Ctrl-B to enable the bypassed nodes."
      ],
      "widgets_values_named": {
        "text": "Please select and use Ctrl-B to enable the bypassed nodes."
      }
    },
    {
      "flags": {},
      "id": 211,
      "inputs": [],
      "mode": 0,
      "order": 2,
      "outputs": [
        {
          "links": [
            299,
            305
          ],
          "name": "voice",
          "type": "ELEVENLABS_VOICE"
        }
      ],
      "pos": [
        1940,
        740
      ],
      "properties": {
        "Node name for S&R": "ElevenLabsVoiceSelector",
        "cnr_id": "comfy-core",
        "ver": "0.14.1"
      },
      "size": [
        320,
        90
      ],
      "type": "ElevenLabsVoiceSelector",
      "widgets_values": [
        "Roger (male, american)"
      ],
      "widgets_values_named": {
        "voice": "Roger (male, american)"
      }
    },
    {
      "flags": {},
      "id": 219,
      "inputs": [],
      "mode": 0,
      "order": 3,
      "outputs": [
        {
          "links": [
            304,
            306
          ],
          "name": "voice",
          "type": "ELEVENLABS_VOICE"
        }
      ],
      "pos": [
        1940,
        880
      ],
      "properties": {
        "Node name for S&R": "ElevenLabsVoiceSelector",
        "cnr_id": "comfy-core",
        "ver": "0.14.1"
      },
      "size": [
        320,
        90
      ],
      "type": "ElevenLabsVoiceSelector",
      "widgets_values": [
        "Laura (female, american)"
      ],
      "widgets_values_named": {
        "voice": "Laura (female, american)"
      }
    },
    {
      "bgcolor": "#653",
      "color": "#432",
      "flags": {},
      "id": 218,
      "inputs": [
        {
          "link": 299,
          "name": "inputs.voice1",
          "type": "ELEVENLABS_VOICE"
        },
        {
          "link": 304,
          "name": "inputs.voice2",
          "type": "ELEVENLABS_VOICE"
        },
        {
          "link": 305,
          "name": "inputs.voice3",
          "type": "ELEVENLABS_VOICE"
        },
        {
          "link": 306,
          "name": "inputs.voice4",
          "type": "ELEVENLABS_VOICE"
        }
      ],
      "mode": 0,
      "order": 7,
      "outputs": [
        {
          "links": [
            302
          ],
          "name": "AUDIO",
          "type": "AUDIO"
        }
      ],
      "pos": [
        2450,
        690
      ],
      "properties": {
        "Node name for S&R": "ElevenLabsTextToDialogue",
        "cnr_id": "comfy-core",
        "ver": "0.14.1"
      },
      "size": [
        340,
        354
      ],
      "type": "ElevenLabsTextToDialogue",
      "widgets_values": [
        0.5,
        "auto",
        "eleven_v4",
        "4",
        "[quietly, close to the mic] I ran the numbers twice... the engine is holding steady. Wait, why is the alarm light-",
        "[jumping in] -because I already started it. [laughs] You were taking too long. [deadpan] We have forty seconds.",
        "[sighs, then firmly] Then stop smiling and seal the hatch. [urgent] I need the console live before the countdown hits twenty.",
        "[amused] Already sealed. [quickly] The console is yours... and there goes the countdown.",
        "",
        2061518140,
        "randomize",
        "mp3_44100_192"
      ],
      "widgets_values_named": {
        "apply_text_normalization": "auto",
        "control_after_generate": "randomize",
        "inputs": "4",
        "inputs.text1": "[quietly, close to the mic] I ran the numbers twice... the engine is holding steady. Wait, why is the alarm light-",
        "inputs.text2": "[jumping in] -because I already started it. [laughs] You were taking too long. [deadpan] We have forty seconds.",
        "inputs.text3": "[sighs, then firmly] Then stop smiling and seal the hatch. [urgent] I need the console live before the countdown hits twenty.",
        "inputs.text4": "[amused] Already sealed. [quickly] The console is yours... and there goes the countdown.",
        "language_code": "",
        "model": "eleven_v4",
        "output_format": "mp3_44100_192",
        "seed": 2061518140,
        "stability": 0.5
      }
    },
    {
      "flags": {},
      "id": 214,
      "inputs": [],
      "mode": 4,
      "order": 4,
      "outputs": [
        {
          "links": null,
          "name": "AUDIO",
          "type": "AUDIO"
        }
      ],
      "pos": [
        1820,
        1320
      ],
      "properties": {
        "Node name for S&R": "RecordAudio",
        "cnr_id": "comfy-core",
        "ver": "0.14.1"
      },
      "size": [
        240,
        150
      ],
      "type": "RecordAudio",
      "widgets_values": [
        "",
        ""
      ],
      "widgets_values_named": {
        "audio": "",
        "audio#1": ""
      }
    },
    {
      "flags": {},
      "id": 220,
      "inputs": [
        {
          "link": 302,
          "name": "audio",
          "type": "AUDIO"
        }
      ],
      "mode": 0,
      "order": 8,
      "outputs": [
        {
          "links": null,
          "name": "audio",
          "type": "AUDIO"
        }
      ],
      "pos": [
        2820,
        690
      ],
      "properties": {},
      "size": [
        680,
        180
      ],
      "type": "SaveAudioAdvanced",
      "widgets_values": [
        "audio/ComfyUI",
        "mp3",
        "V0"
      ],
      "widgets_values_named": {
        "filename_prefix": "audio/ComfyUI",
        "format": "mp3",
        "format.quality": "V0"
      }
    },
    {
      "bgcolor": "#000",
      "color": "#222",
      "flags": {},
      "id": 221,
      "inputs": [],
      "mode": 0,
      "order": 5,
      "outputs": [],
      "pos": [
        1280,
        690
      ],
      "properties": {},
      "size": [
        480,
        230
      ],
      "type": "MarkdownNote",
      "widgets_values": [
        "## How to use this template\n\n- `inputs` sets how many turns the dialogue has, 1 to 10: every entry is one turn with its own line and its own voice, and the turns are generated in order as a single audio file. This template ships 4 turns that alternate between the two voices.\n- Connect a voice to every entry. One Voice Selector can feed several entries, so two selectors (Roger and Laura) already drive a conversation of any length: raise `inputs` and alternate A, B, A, B.\n- Option 1, preset voice, is the active path. Option 2, voice clone, is bypassed: select the **Load Audio** (or **Record Audio**) and **ElevenLabs Instant Voice Clone** nodes, press Ctrl+B, then replace that entry's Voice Selector link with the clone's voice output. Use 1 to 2 minutes of clean single-speaker audio for a usable clone: it copies the voice, not the words.\n\n## How to write the lines\n\n- Audio tags inside an entry affect only that turn: `[quietly]`, `[laughs]`, `[deadpan]`. Describe the voice quality rather than a sound cue.\n- Punctuation does the timing: `...` trails off, a dash cuts a line short. An interruption is a dash at the end of one entry and at the start of the next. SSML break tags are not supported.\n- Keep each entry to one breath, and keep all entries together under 2,000 characters per request.\n\nPrompting guide: [ElevenLabs best practices](https://elevenlabs.io/docs/overview/capabilities/text-to-speech/best-practices#prompting-eleven-v4)\n\n\n## Input Asset\n\n- [long_demo.mp3](https://raw.githubusercontent.com/Comfy-Org/workflow_templates/refs/heads/main/input/long_demo.mp3)\n\n\n## Report Issue\n\nNote: Please update ComfyUI first ([guide](https://docs.comfy.org/installation/update_comfyui)) and prepare required models. Desktop/Cloud updates follow stable releases, so some nightly-supported models may not be available yet.\n\n- Cannot run / runtime errors: [ComfyUI/issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- UI / frontend issues: [ComfyUI_frontend/issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- Workflow issues: [workflow_templates/issues](https://github.com/Comfy-Org/workflow_templates/issues)\n"
      ],
      "widgets_values_named": {
        "text": "## How to use this template\n\n- `inputs` sets how many turns the dialogue has, 1 to 10: every entry is one turn with its own line and its own voice, and the turns are generated in order as a single audio file. This template ships 4 turns that alternate between the two voices.\n- Connect a voice to every entry. One Voice Selector can feed several entries, so two selectors (Roger and Laura) already drive a conversation of any length: raise `inputs` and alternate A, B, A, B.\n- Option 1, preset voice, is the active path. Option 2, voice clone, is bypassed: select the **Load Audio** (or **Record Audio**) and **ElevenLabs Instant Voice Clone** nodes, press Ctrl+B, then replace that entry's Voice Selector link with the clone's voice output. Use 1 to 2 minutes of clean single-speaker audio for a usable clone: it copies the voice, not the words.\n\n## How to write the lines\n\n- Audio tags inside an entry affect only that turn: `[quietly]`, `[laughs]`, `[deadpan]`. Describe the voice quality rather than a sound cue.\n- Punctuation does the timing: `...` trails off, a dash cuts a line short. An interruption is a dash at the end of one entry and at the start of the next. SSML break tags are not supported.\n- Keep each entry to one breath, and keep all entries together under 2,000 characters per request.\n\nPrompting guide: [ElevenLabs best practices](https://elevenlabs.io/docs/overview/capabilities/text-to-speech/best-practices#prompting-eleven-v4)\n\n\n## Input Asset\n\n- [long_demo.mp3](https://raw.githubusercontent.com/Comfy-Org/workflow_templates/refs/heads/main/input/long_demo.mp3)\n\n\n## Report Issue\n\nNote: Please update ComfyUI first ([guide](https://docs.comfy.org/installation/update_comfyui)) and prepare required models. Desktop/Cloud updates follow stable releases, so some nightly-supported models may not be available yet.\n\n- Cannot run / runtime errors: [ComfyUI/issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- UI / frontend issues: [ComfyUI_frontend/issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- Workflow issues: [workflow_templates/issues](https://github.com/Comfy-Org/workflow_templates/issues)\n"
      }
    }
  ],
  "revision": 0,
  "version": 0.4
}