{
 "443": {
  "inputs": {
   "source": [
    "441",
    0
   ]
  },
  "class_type": "PreviewAny",
  "_meta": {
   "title": "Preview as Text"
  }
 },
 "440": {
  "inputs": {
   "image": "49ab569f7e5fa851e9c07b83a311af0f63f39e805665c38ad5940ce567306fce.png"
  },
  "class_type": "LoadImage",
  "_meta": {
   "title": "Load Image"
  }
 },
 "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"
  }
 },
 "441": {
  "inputs": {
   "prompt": "talking into the camera about peace and silence",
   "model": "gemini-3-1-pro",
   "seed": 1101794556747325,
   "system_prompt": "Role: You are a professional prompt writer for ID-LoRA prompt generation.\n\nTask: Generate a two-part output 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 to sound natural when spoken aloud.\nPart 2: the same concept rewritten in the exact ID-LoRA tagged format using these three sections only:\n[VISUAL]: ...\n[SPEECH]: ...\n[SOUNDS]: ...\nDo NOT output anything before Part 1 or after Part 2.\n\nGlobal Length Rule:\n\nKeep the spoken content short enough to produce about 10 seconds of speech unless the user explicitly asks otherwise.\nAim for roughly 20 to 35 spoken words in Part 1.\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.\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.\nUse punctuation, pauses, ellipses, 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.\nPrefer one clear hook, one core message or benefit, and one short closing beat.\n\nPart 2 Rules:\n\nPart 2 must contain exactly three tagged sections in this exact order:\n[VISUAL]:\n[SPEECH]:\n[SOUNDS]:\n\n[VISUAL] Rules:\nDescribe the shot type, subject appearance, clothing, setting, lighting, framing, and visible actions.\nBe descriptive enough to guide generation clearly, but keep it compact and production-useful.\nExplicitly indicate that the person is speaking or talking to camera so the line is generated as on-screen speech rather than voice-over.\nDefault toward believable UGC-style behavior unless the user asks otherwise:\ndirect-to-camera delivery\nhandheld or phone-like framing\nselfie or testimonial feel\nnatural gestures\nauthentic facial expression\nslight body movement\ncasual presenting or showing when relevant\nAvoid cinematic, polished, theatrical, or overly staged action unless the user explicitly asks for that.\n\n[SPEECH] Rules:\nWrite the exact words the person should say.\nThis must be the literal transcript, not a summary.\nKeep it closely aligned with Part 1, ideally verbatim except for minor punctuation cleanup if needed.\nDo NOT add scene description, camera notes, or sound cues inside [SPEECH].\n\n[SOUNDS] Rules:\nDescribe both the vocal delivery and the ambient/background audio.\nInclude speaker qualities such as tone, volume, pace, energy, and mic proximity or distance.\nInclude relevant environmental sounds, room tone, music, nature sounds, or other ambience when appropriate.\nKeep the audio grounded, coherent with the visual scene, and not overly busy unless requested.\n\nConsistency Rules:\n\nPart 1 and Part 2 must describe the same idea, message, tone, and scene.\n[SPEECH] in Part 2 should match Part 1 as closely as possible.\n[VISUAL], [SPEECH], and [SOUNDS] must feel like one unified prompt, not separate concepts.\nDo not introduce unrelated ideas, props, settings, or actions that were not implied by the user\u2019s request.\nIf the user provides exact wording, preserve it in Part 1 and [SPEECH] unless the user asks for rewriting or shortening.\n\nSafety and Quality Rules:\n\nDo not introduce sensitive, explicit, hateful, political, or unsafe content that was not already in the user input.\nEnsure the final output always contains exactly two parts separated by ---.\nEnsure Part 2 always uses the exact three ID-LoRA tags and includes all three of them once.",
   "images": [
    "440",
    0
   ]
  },
  "class_type": "GeminiNode",
  "_meta": {
   "title": "Google Gemini"
  }
 },
 "479": {
  "inputs": {
   "filename_prefix": "video/ComfyUI",
   "format": "auto",
   "video": [
    "662:653",
    0
   ],
   "format.codec": "auto"
  },
  "class_type": "SaveVideo",
  "_meta": {
   "title": "Save Video"
  }
 },
 "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"
  }
 },
 "621": {
  "inputs": {
   "speaker": "Vivian",
   "model_choice": "1.7B",
   "device": "cuda",
   "precision": "bf16",
   "language": "Auto",
   "seed": 193948051206350,
   "max_new_tokens": 2048,
   "top_p": 0.8,
   "top_k": 20,
   "temperature": 1,
   "repetition_penalty": 1.05,
   "attention": "auto",
   "unload_model_after_generate": false,
   "custom_model_path": "",
   "custom_speaker_name": "",
   "text": [
    "474",
    0
   ],
   "instruct": [
    "473",
    0
   ]
  },
  "class_type": "FB_Qwen3TTSCustomVoice",
  "_meta": {
   "title": "\ud83c\udfb5 Qwen3-TTS CustomVoice"
  }
 },
 "622": {
  "inputs": {
   "filename_prefix": "audio/ComfyUI",
   "quality": "V0",
   "audio": [
    "621",
    0
   ]
  },
  "class_type": "SaveAudioMP3",
  "_meta": {
   "title": "Save Audio (MP3) (DEPRECATED)"
  }
 },
 "662:624": {
  "inputs": {
   "noise_seed": 42
  },
  "class_type": "RandomNoise",
  "_meta": {
   "title": "RandomNoise"
  }
 },
 "662:625": {
  "inputs": {
   "noise_seed": 953776337212690
  },
  "class_type": "RandomNoise",
  "_meta": {
   "title": "RandomNoise"
  }
 },
 "662:626": {
  "inputs": {
   "video_latent": [
    "662:633",
    0
   ],
   "audio_latent": [
    "662:639",
    1
   ]
  },
  "class_type": "LTXVConcatAVLatent",
  "_meta": {
   "title": "Concat AV Latent"
  }
 },
 "662:627": {
  "inputs": {
   "sampler_name": "euler_cfg_pp"
  },
  "class_type": "KSamplerSelect",
  "_meta": {
   "title": "KSamplerSelect"
  }
 },
 "662:628": {
  "inputs": {
   "sigmas": "0.85, 0.7250, 0.4219, 0.0"
  },
  "class_type": "ManualSigmas",
  "_meta": {
   "title": "ManualSigmas"
  }
 },
 "662:629": {
  "inputs": {
   "cfg": 1,
   "model": [
    "662:293",
    0
   ],
   "positive": [
    "662:631",
    0
   ],
   "negative": [
    "662:631",
    1
   ]
  },
  "class_type": "CFGGuider",
  "_meta": {
   "title": "CFG Guider"
  }
 },
 "662:630": {
  "inputs": {
   "noise": [
    "662:625",
    0
   ],
   "guider": [
    "662:643",
    0
   ],
   "sampler": [
    "662:634",
    0
   ],
   "sigmas": [
    "662:638",
    0
   ],
   "latent_image": [
    "662:659",
    0
   ]
  },
  "class_type": "SamplerCustomAdvanced",
  "_meta": {
   "title": "SamplerCustomAdvanced"
  }
 },
 "662:631": {
  "inputs": {
   "positive": [
    "662:637",
    0
   ],
   "negative": [
    "662:637",
    1
   ],
   "latent": [
    "662:639",
    0
   ]
  },
  "class_type": "LTXVCropGuides",
  "_meta": {
   "title": "LTXVCropGuides"
  }
 },
 "662:632": {
  "inputs": {
   "samples": [
    "662:639",
    0
   ],
   "upscale_model": [
    "662:313",
    0
   ],
   "vae": [
    "662:317",
    2
   ]
  },
  "class_type": "LTXVLatentUpsampler",
  "_meta": {
   "title": "LTXVLatentUpsampler"
  }
 },
 "662:633": {
  "inputs": {
   "strength": 1,
   "bypass": false,
   "vae": [
    "662:317",
    2
   ],
   "image": [
    "662:649",
    0
   ],
   "latent": [
    "662:632",
    0
   ]
  },
  "class_type": "LTXVImgToVideoInplace",
  "_meta": {
   "title": "LTXVImgToVideoInplace"
  }
 },
 "662:634": {
  "inputs": {
   "sampler_name": "euler_ancestral_cfg_pp"
  },
  "class_type": "KSamplerSelect",
  "_meta": {
   "title": "KSamplerSelect"
  }
 },
 "662:635": {
  "inputs": {
   "samples": [
    "662:641",
    1
   ],
   "audio_vae": [
    "662:335",
    0
   ]
  },
  "class_type": "LTXVAudioVAEDecode",
  "_meta": {
   "title": "LTXV Audio VAE Decode"
  }
 },
 "662:636": {
  "inputs": {
   "text": [
    "662:660",
    0
   ],
   "clip": [
    "662:318",
    0
   ]
  },
  "class_type": "CLIPTextEncode",
  "_meta": {
   "title": "CLIP Text Encode (Prompt)"
  }
 },
 "662:637": {
  "inputs": {
   "positive": [
    "662:349",
    1
   ],
   "negative": [
    "662:349",
    2
   ],
   "frame_rate": [
    "662:652",
    0
   ]
  },
  "class_type": "LTXVConditioning",
  "_meta": {
   "title": "LTXVConditioning"
  }
 },
 "662:638": {
  "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"
  }
 },
 "662:639": {
  "inputs": {
   "av_latent": [
    "662:630",
    0
   ]
  },
  "class_type": "LTXVSeparateAVLatent",
  "_meta": {
   "title": "Separate AV Latent"
  }
 },
 "662:640": {
  "inputs": {
   "noise": [
    "662:624",
    0
   ],
   "guider": [
    "662:629",
    0
   ],
   "sampler": [
    "662:627",
    0
   ],
   "sigmas": [
    "662:628",
    0
   ],
   "latent_image": [
    "662:626",
    0
   ]
  },
  "class_type": "SamplerCustomAdvanced",
  "_meta": {
   "title": "SamplerCustomAdvanced"
  }
 },
 "662:641": {
  "inputs": {
   "av_latent": [
    "662:640",
    0
   ]
  },
  "class_type": "LTXVSeparateAVLatent",
  "_meta": {
   "title": "Separate AV Latent"
  }
 },
 "662:642": {
  "inputs": {
   "text": "pc game, console game, video game, cartoon, childish, ugly",
   "clip": [
    "662:318",
    0
   ]
  },
  "class_type": "CLIPTextEncode",
  "_meta": {
   "title": "CLIP Text Encode (Prompt)"
  }
 },
 "662:643": {
  "inputs": {
   "cfg": 1,
   "model": [
    "662:349",
    0
   ],
   "positive": [
    "662:637",
    0
   ],
   "negative": [
    "662:637",
    1
   ]
  },
  "class_type": "CFGGuider",
  "_meta": {
   "title": "CFG Guider"
  }
 },
 "662:644": {
  "inputs": {
   "tile_size": 768,
   "overlap": 64,
   "temporal_size": 4096,
   "temporal_overlap": 4,
   "samples": [
    "662:641",
    0
   ],
   "vae": [
    "662:317",
    2
   ]
  },
  "class_type": "VAEDecodeTiled",
  "_meta": {
   "title": "VAE Decode (Tiled)"
  }
 },
 "662:645": {
  "inputs": {
   "strength": 0.7,
   "bypass": false,
   "vae": [
    "662:317",
    2
   ],
   "image": [
    "662:649",
    0
   ],
   "latent": [
    "662:656",
    0
   ]
  },
  "class_type": "LTXVImgToVideoInplace",
  "_meta": {
   "title": "LTXVImgToVideoInplace"
  }
 },
 "662:646": {
  "inputs": {
   "value": 1280
  },
  "class_type": "PrimitiveInt",
  "_meta": {
   "title": "Width"
  }
 },
 "662:647": {
  "inputs": {
   "value": 0,
   "width": [
    "662:646",
    0
   ],
   "height": [
    "662:658",
    0
   ]
  },
  "class_type": "SolidMask",
  "_meta": {
   "title": "Create Solid Mask"
  }
 },
 "662:335": {
  "inputs": {
   "ckpt_name": "ltx-2.3-22b-dev-fp8.safetensors"
  },
  "class_type": "LTXVAudioVAELoader",
  "_meta": {
   "title": "Load LTXV Audio VAE"
  }
 },
 "662:648": {
  "inputs": {
   "longer_edge": 1536,
   "images": [
    "662:661",
    0
   ]
  },
  "class_type": "ResizeImagesByLongerEdge",
  "_meta": {
   "title": "Resize Images by Longer Edge (DEPRECATED)"
  }
 },
 "662:649": {
  "inputs": {
   "img_compression": 18,
   "image": [
    "662:648",
    0
   ]
  },
  "class_type": "LTXVPreprocess",
  "_meta": {
   "title": "LTXV Preprocess"
  }
 },
 "662:650": {
  "inputs": {
   "expression": "a/2",
   "values.a": [
    "662:658",
    0
   ]
  },
  "class_type": "ComfyMathExpression",
  "_meta": {
   "title": "Math Expression"
  }
 },
 "662:651": {
  "inputs": {
   "expression": "a/2",
   "values.a": [
    "662:646",
    0
   ]
  },
  "class_type": "ComfyMathExpression",
  "_meta": {
   "title": "Math Expression"
  }
 },
 "662:652": {
  "inputs": {
   "expression": "a",
   "values.a": [
    "662:655",
    0
   ]
  },
  "class_type": "ComfyMathExpression",
  "_meta": {
   "title": "Math Expression"
  }
 },
 "662:653": {
  "inputs": {
   "bit_depth": "auto",
   "color_space": "sRGB",
   "codec": "none",
   "images": [
    "662:644",
    0
   ],
   "fps": [
    "662:652",
    0
   ],
   "audio": [
    "662:635",
    0
   ]
  },
  "class_type": "CreateVideo",
  "_meta": {
   "title": "Create Video"
  }
 },
 "662:654": {
  "inputs": {
   "value": 9
  },
  "class_type": "PrimitiveFloat",
  "_meta": {
   "title": "Duration"
  }
 },
 "662:655": {
  "inputs": {
   "value": 25
  },
  "class_type": "PrimitiveInt",
  "_meta": {
   "title": "Frame Rate"
  }
 },
 "662:656": {
  "inputs": {
   "batch_size": 1,
   "width": [
    "662:651",
    1
   ],
   "height": [
    "662:650",
    1
   ],
   "length": [
    "662:657",
    1
   ]
  },
  "class_type": "EmptyLTXVLatentVideo",
  "_meta": {
   "title": "Empty LTXV Latent Video"
  }
 },
 "662:657": {
  "inputs": {
   "expression": "a * b + 1",
   "values.a": [
    "662:654",
    0
   ],
   "values.b": [
    "662:655",
    0
   ]
  },
  "class_type": "ComfyMathExpression",
  "_meta": {
   "title": "Math Expression"
  }
 },
 "662:658": {
  "inputs": {
   "value": 720
  },
  "class_type": "PrimitiveInt",
  "_meta": {
   "title": "Height"
  }
 },
 "662:659": {
  "inputs": {
   "video_latent": [
    "662:645",
    0
   ],
   "audio_latent": [
    "662:348",
    0
   ]
  },
  "class_type": "LTXVConcatAVLatent",
  "_meta": {
   "title": "Concat AV Latent"
  }
 },
 "662:313": {
  "inputs": {
   "model_name": "ltx-2.3-spatial-upscaler-x2-1.1.safetensors"
  },
  "class_type": "LatentUpscaleModelLoader",
  "_meta": {
   "title": "Load Latent Upscale Model"
  }
 },
 "662:293": {
  "inputs": {
   "lora_name": "ltx-2.3-22b-distilled-lora-384.safetensors",
   "strength_model": 0.5,
   "model": [
    "662:317",
    0
   ]
  },
  "class_type": "LoraLoaderModelOnly",
  "_meta": {
   "title": "Load LoRA"
  }
 },
 "662:317": {
  "inputs": {
   "ckpt_name": "ltx-2.3-22b-dev-fp8.safetensors"
  },
  "class_type": "CheckpointLoaderSimple",
  "_meta": {
   "title": "Load Checkpoint"
  }
 },
 "662: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"
  }
 },
 "662:660": {
  "inputs": {
   "value": [
    "473",
    0
   ]
  },
  "class_type": "PrimitiveStringMultiline",
  "_meta": {
   "title": "Prompt"
  }
 },
 "662:661": {
  "inputs": {
   "resize_type": "scale dimensions",
   "scale_method": "lanczos",
   "input": [
    "440",
    0
   ],
   "resize_type.crop": "center",
   "resize_type.width": [
    "662:646",
    0
   ],
   "resize_type.height": [
    "662:658",
    0
   ]
  },
  "class_type": "ResizeImageMaskNode",
  "_meta": {
   "title": "Resize Image/Mask"
  }
 },
 "662:346": {
  "inputs": {
   "lora_name": "ltx-2.3-id-lora-celebvhq-3k.safetensors",
   "strength_model": 1,
   "model": [
    "662:293",
    0
   ]
  },
  "class_type": "LoraLoaderModelOnly",
  "_meta": {
   "title": "Load LoRA"
  }
 },
 "662:348": {
  "inputs": {
   "batch_size": 1,
   "frames_number": [
    "662:657",
    1
   ],
   "frame_rate": [
    "662:652",
    1
   ],
   "audio_vae": [
    "662:335",
    0
   ]
  },
  "class_type": "LTXVEmptyLatentAudio",
  "_meta": {
   "title": "Empty LTXV Latent Audio"
  }
 },
 "662:349": {
  "inputs": {
   "identity_guidance_scale": 3,
   "start_percent": 0,
   "end_percent": 1,
   "model": [
    "662:346",
    0
   ],
   "positive": [
    "662:636",
    0
   ],
   "negative": [
    "662:642",
    0
   ],
   "reference_audio": [
    "621",
    0
   ],
   "audio_vae": [
    "662:335",
    0
   ]
  },
  "class_type": "LTXVReferenceAudio",
  "_meta": {
   "title": "LTXV Reference Audio (ID-LoRA)"
  }
 }
}