{
 "443": {
  "inputs": {
   "source": [
    "441",
    0
   ]
  },
  "class_type": "PreviewAny",
  "_meta": {
   "title": "Preview as Text"
  }
 },
 "440": {
  "inputs": {
   "image": "template_image_speech_to_video_woman_holding_face_oil.png"
  },
  "class_type": "LoadImage",
  "_meta": {
   "title": "Load Image"
  }
 },
 "3": {
  "inputs": {
   "stability": 0.5,
   "apply_text_normalization": "auto",
   "model": "eleven_v3",
   "language_code": "",
   "seed": 3333,
   "output_format": "mp3_44100_192",
   "voice": [
    "442",
    0
   ],
   "text": [
    "475",
    0
   ],
   "model.speed": 1,
   "model.similarity_boost": 0.75
  },
  "class_type": "ElevenLabsTextToSpeech",
  "_meta": {
   "title": "ElevenLabs Text to Speech"
  }
 },
 "476": {
  "inputs": {
   "regex_pattern": "(?s)(?<=\\n---\\n)([\\s\\S]*)$",
   "mode": "First Group",
   "case_insensitive": true,
   "multiline": false,
   "dotall": false,
   "group_index": 1,
   "string": [
    "441",
    0
   ]
  },
  "class_type": "RegexExtract",
  "_meta": {
   "title": "Extract Text"
  }
 },
 "473": {
  "inputs": {
   "source": [
    "476",
    0
   ]
  },
  "class_type": "PreviewAny",
  "_meta": {
   "title": "Preview as Text"
  }
 },
 "474": {
  "inputs": {
   "source": [
    "475",
    0
   ]
  },
  "class_type": "PreviewAny",
  "_meta": {
   "title": "Preview as Text"
  }
 },
 "445": {
  "inputs": {
   "filename_prefix": "audio/text2speech2video",
   "quality": "V0",
   "audio": [
    "3",
    0
   ]
  },
  "class_type": "SaveAudioMP3",
  "_meta": {
   "title": "Save Audio (MP3) (DEPRECATED)"
  }
 },
 "441": {
  "inputs": {
   "prompt": "",
   "model": "gemini-3-1-pro",
   "seed": 967822922709019,
   "system_prompt": "Role: You are a professional prompt writer for Eleven Labs v3 two-part generation.\n\nTask: Generate a two-part prompt from the user\u2019s input.\n\nStrict Output Constraint (IMPORTANT):\n\nReturn the output as RAW PLAIN TEXT only.\nDO NOT use Markdown code blocks.\nDO NOT use any headers, labels, or bold text outside of the generated two-part output.\nUse ONLY the separator --- to divide the two parts.\nPart 1: spoken dialogue/performance text only, optimized for Eleven v3.\nPart 2: a structured scene breakdown in short field lines.\nDo NOT output anything before Part 1 or after Part 2.\n\nGlobal Length Rule:\n\nKeep the final generated prompt short enough to produce about 10 seconds of audio.\nAim for roughly 20 to 35 spoken words in Part 1 unless the user explicitly asks otherwise.\nCondense long inputs aggressively while preserving the core meaning, tone, and key message.\nPrioritize brevity, clarity, speakability, and a strong opening hook over completeness.\nRemove repetition, side details, filler, and nonessential context.\nIf the input is too long, compress it into a concise spoken version rather than preserving everything.\nDo not create Part 1 output that would likely exceed about 10 seconds of speech.\n\nPart 1 Rules:\n\nPart 1 must contain ONLY the words meant to be spoken aloud.\nDo NOT begin Part 1 with visual description, scene-setting narration, character description, or action description.\nStart immediately with the most attention-grabbing, high-impact spoken hook.\nThe hook should appear as early as possible, ideally in the first sentence or phrase.\nDo NOT describe what the character looks like, where they are, what they are wearing, what they are holding, or what is happening visually unless that information is spoken by the character as part of the dialogue itself.\nPart 1 should read like a real spoken performance, monologue, ad read, or direct address.\nPart 1 may use Eleven v3-compatible vocal tags in square brackets, such as [laughs], [whispers], [sighs], [excited], [curious], [sarcastic], [exhales], [crying], [snorts], [mischievously], [sings], when helpful.\nUse punctuation, ellipses, pauses, and selective capitalization to improve spoken delivery when useful.\nDo NOT use SSML.\nDo NOT use non-voice tags such as music, ambience, sound effects, camera notes, or technical markup.\nCompress long user text into the shortest strong spoken version that preserves the selling point or core message.\nPrefer one clear hook, one core benefit, and one short closing beat.\n\nPart 2 Rules:\n\nPart 2 must transform the same idea into a compact structured format.\nPart 2 must strongly bias toward UGC-style action and framing and prnounce the character is talking into the camera.\nPart 2 must describe the subject as if they are casually filming a real user-generated testimonial, ad, or selfie-style clip.\nPrioritize natural human behavior such as:\ntalking directly to camera\nhandheld or phone-like framing\ncasual presenting of product\nnatural gestures\nauthentic facial expression\nslight body movement\nconversational delivery\nAvoid cinematic, polished commercial, theatrical, or overly staged action unless the user explicitly asks for that.\nKeep the action grounded, believable, and creator-like rather than scripted or broadcast-like.\nEach line should follow this pattern: field name, colon, content.\nUse only concise production-style descriptors.\nKeep Part 2 aligned with Part 1 and do not introduce unrelated ideas.\nPrefer fields such as:\nscene:\ncharacter:\naction:\ncamera:\ntone:\nUse action: to emphasize the UGC performance behavior most strongly.\nUse camera: to emphasize casual capture style, such as handheld, selfie framing, direct-to-camera, slight natural movement, or eye-level creator framing.\nKeep wardrobe and appearance brief unless they are essential to the concept.\nKeep Part 2 compact and production-friendly.\n\nUGC Bias Rules for Part 2:\n\nDefault to direct-to-camera testimonial energy unless the user asks otherwise.\nDefault to natural handheld realism unless the user asks otherwise.\nDefault to real-person creator behavior instead of actor blocking unless the user asks otherwise.\nPrefer verbs like:\ntalking, holding, showing, gesturing, reacting, smiling, leaning in, presenting, pointing\nAvoid verbs like:\nposing, performing choreography, dramatically turning, stylized modeling\nMake the structured breakdown help the model generate believable UGC action, not just static appearance.\n\nConsistency Rules:\n\nPart 1 and Part 2 must describe the same scene and intent.\nPart 2 is a clean structural breakdown of Part 1.\nDo not make Part 1 and Part 2 feel like separate concepts.\nPreserve the user\u2019s intent, subject, tone, setting, and spoken energy across both parts.\n\nSafety and Quality Rules:\n\nDo not introduce sensitive, explicit, hateful, political, or unsafe content that was not already in the user input.\nKeep vocal tags contextually appropriate and naturally speakable.\nUse expressive enhancements sparingly and intentionally.\nEnsure the final output always contains exactly two parts separated by ---.",
   "images": [
    "440",
    0
   ]
  },
  "class_type": "GeminiNode",
  "_meta": {
   "title": "Google Gemini"
  }
 },
 "479": {
  "inputs": {
   "filename_prefix": "video/ComfyUI",
   "format": "auto",
   "video": [
    "478:312",
    0
   ],
   "format.codec": "auto"
  },
  "class_type": "SaveVideo",
  "_meta": {
   "title": "Save Video"
  }
 },
 "478:285": {
  "inputs": {
   "noise_seed": 42
  },
  "class_type": "RandomNoise",
  "_meta": {
   "title": "RandomNoise"
  }
 },
 "478:286": {
  "inputs": {
   "noise_seed": 3333
  },
  "class_type": "RandomNoise",
  "_meta": {
   "title": "RandomNoise"
  }
 },
 "478:288": {
  "inputs": {
   "sampler_name": "euler_cfg_pp"
  },
  "class_type": "KSamplerSelect",
  "_meta": {
   "title": "KSamplerSelect"
  }
 },
 "478:289": {
  "inputs": {
   "sigmas": "0.85, 0.7250, 0.4219, 0.0"
  },
  "class_type": "ManualSigmas",
  "_meta": {
   "title": "ManualSigmas"
  }
 },
 "478:290": {
  "inputs": {
   "cfg": 1,
   "model": [
    "478:601",
    0
   ],
   "positive": [
    "478:292",
    0
   ],
   "negative": [
    "478:292",
    1
   ]
  },
  "class_type": "CFGGuider",
  "_meta": {
   "title": "CFG Guider"
  }
 },
 "478:291": {
  "inputs": {
   "noise": [
    "478:286",
    0
   ],
   "guider": [
    "478:315",
    0
   ],
   "sampler": [
    "478:298",
    0
   ],
   "sigmas": [
    "478:308",
    0
   ],
   "latent_image": [
    "478:326",
    0
   ]
  },
  "class_type": "SamplerCustomAdvanced",
  "_meta": {
   "title": "SamplerCustomAdvanced"
  }
 },
 "478:298": {
  "inputs": {
   "sampler_name": "euler_ancestral_cfg_pp"
  },
  "class_type": "KSamplerSelect",
  "_meta": {
   "title": "KSamplerSelect"
  }
 },
 "478:303": {
  "inputs": {
   "samples": [
    "478:311",
    1
   ],
   "audio_vae": [
    "478:335",
    0
   ]
  },
  "class_type": "LTXVAudioVAEDecode",
  "_meta": {
   "title": "LTXV Audio VAE Decode"
  }
 },
 "478:306": {
  "inputs": {
   "text": [
    "478:319",
    0
   ],
   "clip": [
    "478:318",
    0
   ]
  },
  "class_type": "CLIPTextEncode",
  "_meta": {
   "title": "CLIP Text Encode (Prompt)"
  }
 },
 "478:307": {
  "inputs": {
   "positive": [
    "478:306",
    0
   ],
   "negative": [
    "478:314",
    0
   ],
   "frame_rate": [
    "478:304",
    0
   ]
  },
  "class_type": "LTXVConditioning",
  "_meta": {
   "title": "LTXVConditioning"
  }
 },
 "478:308": {
  "inputs": {
   "sigmas": "1.0, 0.99375, 0.9875, 0.98125, 0.975, 0.909375, 0.725, 0.421875, 0.0"
  },
  "class_type": "ManualSigmas",
  "_meta": {
   "title": "ManualSigmas"
  }
 },
 "478:310": {
  "inputs": {
   "noise": [
    "478:285",
    0
   ],
   "guider": [
    "478:290",
    0
   ],
   "sampler": [
    "478:288",
    0
   ],
   "sigmas": [
    "478:289",
    0
   ],
   "latent_image": [
    "478:287",
    0
   ]
  },
  "class_type": "SamplerCustomAdvanced",
  "_meta": {
   "title": "SamplerCustomAdvanced"
  }
 },
 "478:311": {
  "inputs": {
   "av_latent": [
    "478:310",
    0
   ]
  },
  "class_type": "LTXVSeparateAVLatent",
  "_meta": {
   "title": "Separate AV Latent"
  }
 },
 "478:314": {
  "inputs": {
   "text": "pc game, console game, video game, cartoon, childish, ugly",
   "clip": [
    "478:318",
    0
   ]
  },
  "class_type": "CLIPTextEncode",
  "_meta": {
   "title": "CLIP Text Encode (Prompt)"
  }
 },
 "478:315": {
  "inputs": {
   "cfg": 1,
   "model": [
    "478:601",
    0
   ],
   "positive": [
    "478:307",
    0
   ],
   "negative": [
    "478:307",
    1
   ]
  },
  "class_type": "CFGGuider",
  "_meta": {
   "title": "CFG Guider"
  }
 },
 "478:316": {
  "inputs": {
   "tile_size": 768,
   "overlap": 64,
   "temporal_size": 4096,
   "temporal_overlap": 4,
   "samples": [
    "478:311",
    0
   ],
   "vae": [
    "478:317",
    2
   ]
  },
  "class_type": "VAEDecodeTiled",
  "_meta": {
   "title": "VAE Decode (Tiled)"
  }
 },
 "478:325": {
  "inputs": {
   "strength": 0.7,
   "vae": [
    "478:317",
    2
   ],
   "image": [
    "478:334",
    0
   ],
   "latent": [
    "478:302",
    0
   ],
   "bypass": [
    "478:305",
    0
   ]
  },
  "class_type": "LTXVImgToVideoInplace",
  "_meta": {
   "title": "LTXVImgToVideoInplace"
  }
 },
 "478:330": {
  "inputs": {
   "value": 720
  },
  "class_type": "PrimitiveInt",
  "_meta": {
   "title": "Width"
  }
 },
 "478:333": {
  "inputs": {
   "value": 0,
   "width": [
    "478:330",
    0
   ],
   "height": [
    "478:324",
    0
   ]
  },
  "class_type": "SolidMask",
  "_meta": {
   "title": "Create Solid Mask"
  }
 },
 "478:305": {
  "inputs": {
   "value": false
  },
  "class_type": "PrimitiveBoolean",
  "_meta": {
   "title": "Switch to Text to Video?"
  }
 },
 "478:294": {
  "inputs": {
   "longer_edge": 1536,
   "images": [
    "478:297",
    0
   ]
  },
  "class_type": "ResizeImagesByLongerEdge",
  "_meta": {
   "title": "Resize Images by Longer Edge (DEPRECATED)"
  }
 },
 "478:334": {
  "inputs": {
   "img_compression": 18,
   "image": [
    "478:294",
    0
   ]
  },
  "class_type": "LTXVPreprocess",
  "_meta": {
   "title": "LTXV Preprocess"
  }
 },
 "478:301": {
  "inputs": {
   "expression": "a/2",
   "values.a": [
    "478:324",
    0
   ]
  },
  "class_type": "ComfyMathExpression",
  "_meta": {
   "title": "Math Expression"
  }
 },
 "478:299": {
  "inputs": {
   "expression": "a/2",
   "values.a": [
    "478:330",
    0
   ]
  },
  "class_type": "ComfyMathExpression",
  "_meta": {
   "title": "Math Expression"
  }
 },
 "478:304": {
  "inputs": {
   "expression": "a",
   "values.a": [
    "478:323",
    0
   ]
  },
  "class_type": "ComfyMathExpression",
  "_meta": {
   "title": "Math Expression"
  }
 },
 "478:312": {
  "inputs": {
   "bit_depth": "auto",
   "color_space": "sRGB",
   "codec": "none",
   "images": [
    "478:316",
    0
   ],
   "fps": [
    "478:304",
    0
   ],
   "audio": [
    "478:303",
    0
   ]
  },
  "class_type": "CreateVideo",
  "_meta": {
   "title": "Create Video"
  }
 },
 "478:331": {
  "inputs": {
   "value": 9
  },
  "class_type": "PrimitiveFloat",
  "_meta": {
   "title": "Duration"
  }
 },
 "478:323": {
  "inputs": {
   "value": 24
  },
  "class_type": "PrimitiveInt",
  "_meta": {
   "title": "Frame Rate"
  }
 },
 "478:302": {
  "inputs": {
   "batch_size": 1,
   "width": [
    "478:299",
    1
   ],
   "height": [
    "478:301",
    1
   ],
   "length": [
    "478:329",
    1
   ]
  },
  "class_type": "EmptyLTXVLatentVideo",
  "_meta": {
   "title": "Empty LTXV Latent Video"
  }
 },
 "478:329": {
  "inputs": {
   "expression": "a * b + 1",
   "values.a": [
    "478:331",
    0
   ],
   "values.b": [
    "478:323",
    0
   ]
  },
  "class_type": "ComfyMathExpression",
  "_meta": {
   "title": "Math Expression"
  }
 },
 "478:324": {
  "inputs": {
   "value": 1280
  },
  "class_type": "PrimitiveInt",
  "_meta": {
   "title": "Height"
  }
 },
 "478:332": {
  "inputs": {
   "start_index": 0,
   "audio": [
    "3",
    0
   ],
   "duration": [
    "478:331",
    0
   ]
  },
  "class_type": "TrimAudioDuration",
  "_meta": {
   "title": "Trim Audio Duration"
  }
 },
 "478:328": {
  "inputs": {
   "audio": [
    "478:332",
    0
   ],
   "audio_vae": [
    "478:335",
    0
   ]
  },
  "class_type": "LTXVAudioVAEEncode",
  "_meta": {
   "title": "LTXV Audio VAE Encode"
  }
 },
 "478:326": {
  "inputs": {
   "video_latent": [
    "478:325",
    0
   ],
   "audio_latent": [
    "478:327",
    0
   ]
  },
  "class_type": "LTXVConcatAVLatent",
  "_meta": {
   "title": "Concat AV Latent"
  }
 },
 "478:327": {
  "inputs": {
   "samples": [
    "478:328",
    0
   ],
   "mask": [
    "478:333",
    0
   ]
  },
  "class_type": "SetLatentNoiseMask",
  "_meta": {
   "title": "Set Latent Noise Mask"
  }
 },
 "478:313": {
  "inputs": {
   "model_name": "ltx-2.3-spatial-upscaler-x2-1.1.safetensors"
  },
  "class_type": "LatentUpscaleModelLoader",
  "_meta": {
   "title": "Load Latent Upscale Model"
  }
 },
 "478:318": {
  "inputs": {
   "text_encoder": "gemma_3_12B_it_fp4_mixed.safetensors",
   "ckpt_name": "ltx-2.3-22b-dev-fp8.safetensors",
   "device": "default"
  },
  "class_type": "LTXAVTextEncoderLoader",
  "_meta": {
   "title": "Load LTXV Audio Text Encoder"
  }
 },
 "478:319": {
  "inputs": {
   "value": [
    "476",
    0
   ]
  },
  "class_type": "PrimitiveStringMultiline",
  "_meta": {
   "title": "Prompt"
  }
 },
 "478:297": {
  "inputs": {
   "resize_type": "scale dimensions",
   "scale_method": "lanczos",
   "input": [
    "440",
    0
   ],
   "resize_type.crop": "center",
   "resize_type.width": [
    "478:330",
    0
   ],
   "resize_type.height": [
    "478:324",
    0
   ]
  },
  "class_type": "ResizeImageMaskNode",
  "_meta": {
   "title": "Resize Image/Mask"
  }
 },
 "478:317": {
  "inputs": {
   "ckpt_name": "ltx-2.3-22b-dev-fp8.safetensors"
  },
  "class_type": "CheckpointLoaderSimple",
  "_meta": {
   "title": "Load Checkpoint"
  }
 },
 "478:293": {
  "inputs": {
   "lora_name": "ltx-2.3-22b-distilled-lora-384.safetensors",
   "strength_model": 0.5,
   "model": [
    "478:317",
    0
   ]
  },
  "class_type": "LoraLoaderModelOnly",
  "_meta": {
   "title": "Load LoRA"
  }
 },
 "478:335": {
  "inputs": {
   "ckpt_name": "ltx-2.3-22b-dev-fp8.safetensors"
  },
  "class_type": "LTXVAudioVAELoader",
  "_meta": {
   "title": "Load LTXV Audio VAE"
  }
 },
 "478:292": {
  "inputs": {
   "positive": [
    "478:307",
    0
   ],
   "negative": [
    "478:307",
    1
   ],
   "latent": [
    "478:309",
    0
   ]
  },
  "class_type": "LTXVCropGuides",
  "_meta": {
   "title": "LTXVCropGuides"
  }
 },
 "478:295": {
  "inputs": {
   "samples": [
    "478:309",
    0
   ],
   "upscale_model": [
    "478:313",
    0
   ],
   "vae": [
    "478:317",
    2
   ]
  },
  "class_type": "LTXVLatentUpsampler",
  "_meta": {
   "title": "LTXVLatentUpsampler"
  }
 },
 "478:296": {
  "inputs": {
   "strength": 1,
   "vae": [
    "478:317",
    2
   ],
   "image": [
    "478:334",
    0
   ],
   "latent": [
    "478:295",
    0
   ],
   "bypass": [
    "478:305",
    0
   ]
  },
  "class_type": "LTXVImgToVideoInplace",
  "_meta": {
   "title": "LTXVImgToVideoInplace"
  }
 },
 "478:287": {
  "inputs": {
   "video_latent": [
    "478:296",
    0
   ],
   "audio_latent": [
    "478:309",
    1
   ]
  },
  "class_type": "LTXVConcatAVLatent",
  "_meta": {
   "title": "Concat AV Latent"
  }
 },
 "478:309": {
  "inputs": {
   "av_latent": [
    "478:291",
    0
   ]
  },
  "class_type": "LTXVSeparateAVLatent",
  "_meta": {
   "title": "Separate AV Latent"
  }
 },
 "478:601": {
  "inputs": {
   "lora_name": "ltx-2.3-id-lora-talkvid-3k.safetensors",
   "strength_model": 1,
   "model": [
    "478:293",
    0
   ]
  },
  "class_type": "LoraLoaderModelOnly",
  "_meta": {
   "title": "Load LoRA"
  }
 },
 "442": {
  "inputs": {
   "voice": "Bella (female, american)"
  },
  "class_type": "ElevenLabsVoiceSelector",
  "_meta": {
   "title": "ElevenLabs Voice Selector"
  }
 },
 "475": {
  "inputs": {
   "regex_pattern": "(?sm)^(.*?)^---$(.*)",
   "mode": "First Group",
   "case_insensitive": true,
   "multiline": false,
   "dotall": false,
   "group_index": 1,
   "string": [
    "441",
    0
   ]
  },
  "class_type": "RegexExtract",
  "_meta": {
   "title": "Extract Text"
  }
 }
}