{
 "666": {
  "inputs": {
   "image": "bd2d530258429d526971cb5f3f90fa966b2984bc4770158288baffa527e9299f.png"
  },
  "class_type": "LoadImage",
  "_meta": {
   "title": "Load Image"
  }
 },
 "754": {
  "inputs": {
   "source": [
    "753",
    0
   ]
  },
  "class_type": "PreviewAny",
  "_meta": {
   "title": "Preview as Text"
  }
 },
 "753": {
  "inputs": {
   "prompt": "",
   "model": "gemini-3-1-flash-lite",
   "seed": 452941233867679,
   "system_prompt": "You are a prompt-only camera-motion transfer assistant.\n\nYou receive two inputs:\n1. an input image\n2. an input video\n\nYour task is to output one video-generation prompt in exactly this format:\n\n[VISUAL]: <scene and appearance description>\n[SPEECH]: <exact words the person should say>\n[SOUNDS]: <speaker vocal style + ambient/environmental sounds>\n\nDo not output anything before or after these three fields.\n\nThe input image is the visual source. The input video is the camera-motion source.\n\nThe prompt must focus on applying the camera motion from the video to the image while keeping the image content unchanged.\n\nThe [VISUAL] field must:\n- describe the camera motion transferred from the input video\n- state that the provided image remains visually unchanged\n- avoid detailed descriptions of the image\u2019s subject, clothing, identity, setting, objects, lighting, colors, mood, or style\n- refer to the image only with neutral terms such as \u201cthe provided image,\u201d \u201cthe original image,\u201d \u201cthe image scene,\u201d or \u201cthe original composition\u201d\n- clearly state that only the camera motion is transferred from the video\n- clearly state that no visual elements from the video are transferred\n- include the camera movement\u2019s direction, speed, angle, stabilization, framing change, zoom behavior, and any pan, tilt, dolly, orbit, crane, or handheld qualities when visible\n- describe sequential camera changes in chronological order if the video contains multiple movements\n- keep the image\u2019s composition, subject appearance, lighting, colors, and style unchanged without describing them in detail\n\nThe [SPEECH] field must:\n- contain the exact spoken words only\n- be empty if the user has not provided speech\n- never invent dialogue\n- never describe speech in prose\n- never include quotation marks unless they are part of the spoken words\n\nThe [SOUNDS] field must:\n- describe speaker vocal style only if speech is provided or explicitly requested\n- describe ambient or environmental sounds only if the user asks for sound design\n- otherwise use \u201cNone\u201d\n- never invent specific sounds from the image or video\n- never describe camera motion here\n\nDo not describe the input image in detail. Do not summarize the image. Do not describe the visual contents of the input video. Use the input video strictly to infer camera motion.\n\nDo not begin with broad setup phrases such as:\n- \u201cUsing the provided image as the visual source\u201d\n- \u201cGenerate a video that preserves\u201d\n- \u201cCreate a video based on\u201d\n- \u201cThe image shows\u201d\n\nDo not add subject actions, environmental movement, new objects, new people, visual effects, lighting changes, style changes, or narrative elements unless explicitly requested by the user.\n\nAnalyze the input video only for:\n- camera direction\n- camera path\n- camera speed\n- camera acceleration or deceleration\n- camera height\n- camera angle\n- pan\n- tilt\n- dolly\n- push-in\n- pull-back\n- truck left or right\n- crane movement\n- orbit movement\n- handheld drift\n- zoom behavior\n- stabilization style\n- parallax behavior\n- start framing\n- end framing\n- sequential movement changes\n\nOutput constraints:\n- output exactly three lines\n- line 1 must start with \u201c[VISUAL]:\u201d\n- line 2 must start with \u201c[SPEECH]:\u201d\n- line 3 must start with \u201c[SOUNDS]:\u201d\n- no markdown\n- no headings\n- no bullets\n- no explanations\n- no alternatives\n- no placeholders\n- no negative prompt section\n\nDefault output pattern:\n\n[VISUAL]: Apply only the camera motion from the reference video to the provided image: <precise camera movement description>. Keep the original image content, composition, lighting, colors, style, and subject appearance unchanged. Do not transfer any visual elements from the video; use it strictly as a camera-motion reference.\n[SPEECH]: \n[SOUNDS]: None\n\nDo not copy the default pattern mechanically. Replace the camera-motion portion with the actual motion observed in the input video.",
   "images": [
    "666",
    0
   ],
   "video": [
    "5352",
    0
   ]
  },
  "class_type": "GeminiNode",
  "_meta": {
   "title": "Google Gemini"
  }
 },
 "683": {
  "inputs": {
   "filename_prefix": "video/ComfyUI",
   "format": "auto",
   "video": [
    "5345:823",
    0
   ],
   "format.codec": "auto"
  },
  "class_type": "SaveVideo",
  "_meta": {
   "title": "Save Video"
  }
 },
 "5345:794": {
  "inputs": {
   "noise_seed": 42
  },
  "class_type": "RandomNoise",
  "_meta": {
   "title": "RandomNoise"
  }
 },
 "5345:795": {
  "inputs": {
   "noise_seed": 920645811960812
  },
  "class_type": "RandomNoise",
  "_meta": {
   "title": "RandomNoise"
  }
 },
 "5345:796": {
  "inputs": {
   "video_latent": [
    "5345:803",
    0
   ],
   "audio_latent": [
    "5345:809",
    1
   ]
  },
  "class_type": "LTXVConcatAVLatent",
  "_meta": {
   "title": "Concat AV Latent"
  }
 },
 "5345:797": {
  "inputs": {
   "sampler_name": "euler_cfg_pp"
  },
  "class_type": "KSamplerSelect",
  "_meta": {
   "title": "KSamplerSelect"
  }
 },
 "5345:798": {
  "inputs": {
   "sigmas": "0.85, 0.7250, 0.4219, 0.0"
  },
  "class_type": "ManualSigmas",
  "_meta": {
   "title": "ManualSigmas"
  }
 },
 "5345:799": {
  "inputs": {
   "cfg": 1,
   "model": [
    "5345:293",
    0
   ],
   "positive": [
    "5345:801",
    0
   ],
   "negative": [
    "5345:801",
    1
   ]
  },
  "class_type": "CFGGuider",
  "_meta": {
   "title": "CFG Guider"
  }
 },
 "5345:800": {
  "inputs": {
   "noise": [
    "5345:795",
    0
   ],
   "guider": [
    "5345:813",
    0
   ],
   "sampler": [
    "5345:804",
    0
   ],
   "sigmas": [
    "5345:808",
    0
   ],
   "latent_image": [
    "5345:5331",
    0
   ]
  },
  "class_type": "SamplerCustomAdvanced",
  "_meta": {
   "title": "SamplerCustomAdvanced"
  }
 },
 "5345:801": {
  "inputs": {
   "positive": [
    "5345:5343",
    0
   ],
   "negative": [
    "5345:5343",
    1
   ],
   "latent": [
    "5345:809",
    0
   ]
  },
  "class_type": "LTXVCropGuides",
  "_meta": {
   "title": "LTXVCropGuides"
  }
 },
 "5345:802": {
  "inputs": {
   "samples": [
    "5345:801",
    2
   ],
   "upscale_model": [
    "5345:313",
    0
   ],
   "vae": [
    "5345:317",
    2
   ]
  },
  "class_type": "LTXVLatentUpsampler",
  "_meta": {
   "title": "LTXVLatentUpsampler"
  }
 },
 "5345:803": {
  "inputs": {
   "strength": 1,
   "bypass": false,
   "vae": [
    "5345:317",
    2
   ],
   "image": [
    "5345:819",
    0
   ],
   "latent": [
    "5345:802",
    0
   ]
  },
  "class_type": "LTXVImgToVideoInplace",
  "_meta": {
   "title": "LTXVImgToVideoInplace"
  }
 },
 "5345:804": {
  "inputs": {
   "sampler_name": "euler_ancestral_cfg_pp"
  },
  "class_type": "KSamplerSelect",
  "_meta": {
   "title": "KSamplerSelect"
  }
 },
 "5345:805": {
  "inputs": {
   "samples": [
    "5345:811",
    1
   ],
   "audio_vae": [
    "5345:335",
    0
   ]
  },
  "class_type": "LTXVAudioVAEDecode",
  "_meta": {
   "title": "LTXV Audio VAE Decode"
  }
 },
 "5345:806": {
  "inputs": {
   "text": [
    "5345:829",
    0
   ],
   "clip": [
    "5345:318",
    0
   ]
  },
  "class_type": "CLIPTextEncode",
  "_meta": {
   "title": "CLIP Text Encode (Prompt)"
  }
 },
 "5345:807": {
  "inputs": {
   "positive": [
    "5345:349",
    1
   ],
   "negative": [
    "5345:349",
    2
   ],
   "frame_rate": [
    "5345:822",
    0
   ]
  },
  "class_type": "LTXVConditioning",
  "_meta": {
   "title": "LTXVConditioning"
  }
 },
 "5345:808": {
  "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"
  }
 },
 "5345:809": {
  "inputs": {
   "av_latent": [
    "5345:800",
    0
   ]
  },
  "class_type": "LTXVSeparateAVLatent",
  "_meta": {
   "title": "Separate AV Latent"
  }
 },
 "5345:810": {
  "inputs": {
   "noise": [
    "5345:794",
    0
   ],
   "guider": [
    "5345:799",
    0
   ],
   "sampler": [
    "5345:797",
    0
   ],
   "sigmas": [
    "5345:798",
    0
   ],
   "latent_image": [
    "5345:796",
    0
   ]
  },
  "class_type": "SamplerCustomAdvanced",
  "_meta": {
   "title": "SamplerCustomAdvanced"
  }
 },
 "5345:811": {
  "inputs": {
   "av_latent": [
    "5345:810",
    0
   ]
  },
  "class_type": "LTXVSeparateAVLatent",
  "_meta": {
   "title": "Separate AV Latent"
  }
 },
 "5345:812": {
  "inputs": {
   "text": "pc game, console game, video game, cartoon, childish, ugly",
   "clip": [
    "5345:318",
    0
   ]
  },
  "class_type": "CLIPTextEncode",
  "_meta": {
   "title": "CLIP Text Encode (Prompt)"
  }
 },
 "5345:813": {
  "inputs": {
   "cfg": 1,
   "model": [
    "5345:349",
    0
   ],
   "positive": [
    "5345:5343",
    0
   ],
   "negative": [
    "5345:5343",
    1
   ]
  },
  "class_type": "CFGGuider",
  "_meta": {
   "title": "CFG Guider"
  }
 },
 "5345:814": {
  "inputs": {
   "tile_size": 768,
   "overlap": 64,
   "temporal_size": 4096,
   "temporal_overlap": 4,
   "samples": [
    "5345:811",
    0
   ],
   "vae": [
    "5345:317",
    2
   ]
  },
  "class_type": "VAEDecodeTiled",
  "_meta": {
   "title": "VAE Decode (Tiled)"
  }
 },
 "5345:815": {
  "inputs": {
   "strength": 0.7,
   "bypass": false,
   "vae": [
    "5345:317",
    2
   ],
   "image": [
    "5345:819",
    0
   ],
   "latent": [
    "5345:826",
    0
   ]
  },
  "class_type": "LTXVImgToVideoInplace",
  "_meta": {
   "title": "LTXVImgToVideoInplace"
  }
 },
 "5345:816": {
  "inputs": {
   "value": 1280
  },
  "class_type": "PrimitiveInt",
  "_meta": {
   "title": "Width"
  }
 },
 "5345:817": {
  "inputs": {
   "value": 0,
   "width": [
    "5345:816",
    0
   ],
   "height": [
    "5345:828",
    0
   ]
  },
  "class_type": "SolidMask",
  "_meta": {
   "title": "Create Solid Mask"
  }
 },
 "5345:335": {
  "inputs": {
   "ckpt_name": "ltx-2.3-22b-dev-fp8.safetensors"
  },
  "class_type": "LTXVAudioVAELoader",
  "_meta": {
   "title": "Load LTXV Audio VAE"
  }
 },
 "5345:818": {
  "inputs": {
   "longer_edge": 1536,
   "images": [
    "5345:830",
    0
   ]
  },
  "class_type": "ResizeImagesByLongerEdge",
  "_meta": {
   "title": "Resize Images by Longer Edge (DEPRECATED)"
  }
 },
 "5345:819": {
  "inputs": {
   "img_compression": 18,
   "image": [
    "5345:818",
    0
   ]
  },
  "class_type": "LTXVPreprocess",
  "_meta": {
   "title": "LTXV Preprocess"
  }
 },
 "5345:820": {
  "inputs": {
   "expression": "a/2",
   "values.a": [
    "5345:828",
    0
   ]
  },
  "class_type": "ComfyMathExpression",
  "_meta": {
   "title": "Math Expression"
  }
 },
 "5345:821": {
  "inputs": {
   "expression": "a/2",
   "values.a": [
    "5345:816",
    0
   ]
  },
  "class_type": "ComfyMathExpression",
  "_meta": {
   "title": "Math Expression"
  }
 },
 "5345:822": {
  "inputs": {
   "expression": "a",
   "values.a": [
    "5345:825",
    0
   ]
  },
  "class_type": "ComfyMathExpression",
  "_meta": {
   "title": "Math Expression"
  }
 },
 "5345:823": {
  "inputs": {
   "bit_depth": "auto",
   "color_space": "sRGB",
   "codec": "none",
   "images": [
    "5345:814",
    0
   ],
   "fps": [
    "5345:822",
    0
   ],
   "audio": [
    "5345:805",
    0
   ]
  },
  "class_type": "CreateVideo",
  "_meta": {
   "title": "Create Video"
  }
 },
 "5345:824": {
  "inputs": {
   "value": 7
  },
  "class_type": "PrimitiveFloat",
  "_meta": {
   "title": "Duration"
  }
 },
 "5345:825": {
  "inputs": {
   "value": 25
  },
  "class_type": "PrimitiveInt",
  "_meta": {
   "title": "Frame Rate"
  }
 },
 "5345:826": {
  "inputs": {
   "batch_size": 1,
   "width": [
    "5345:821",
    1
   ],
   "height": [
    "5345:820",
    1
   ],
   "length": [
    "5345:827",
    1
   ]
  },
  "class_type": "EmptyLTXVLatentVideo",
  "_meta": {
   "title": "Empty LTXV Latent Video"
  }
 },
 "5345:827": {
  "inputs": {
   "expression": "a * b + 1",
   "values.a": [
    "5345:824",
    0
   ],
   "values.b": [
    "5345:825",
    0
   ]
  },
  "class_type": "ComfyMathExpression",
  "_meta": {
   "title": "Math Expression"
  }
 },
 "5345:828": {
  "inputs": {
   "value": 720
  },
  "class_type": "PrimitiveInt",
  "_meta": {
   "title": "Height"
  }
 },
 "5345:313": {
  "inputs": {
   "model_name": "ltx-2.3-spatial-upscaler-x2-1.1.safetensors"
  },
  "class_type": "LatentUpscaleModelLoader",
  "_meta": {
   "title": "Load Latent Upscale Model"
  }
 },
 "5345:293": {
  "inputs": {
   "lora_name": "ltx-2.3-22b-distilled-lora-384.safetensors",
   "strength_model": 0.5,
   "model": [
    "5345:317",
    0
   ]
  },
  "class_type": "LoraLoaderModelOnly",
  "_meta": {
   "title": "Load LoRA"
  }
 },
 "5345:317": {
  "inputs": {
   "ckpt_name": "ltx-2.3-22b-dev-fp8.safetensors"
  },
  "class_type": "CheckpointLoaderSimple",
  "_meta": {
   "title": "Load Checkpoint"
  }
 },
 "5345: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"
  }
 },
 "5345:829": {
  "inputs": {
   "value": [
    "754",
    0
   ]
  },
  "class_type": "PrimitiveStringMultiline",
  "_meta": {
   "title": "Prompt"
  }
 },
 "5345:830": {
  "inputs": {
   "resize_type": "scale dimensions",
   "scale_method": "lanczos",
   "input": [
    "666",
    0
   ],
   "resize_type.crop": "center",
   "resize_type.width": [
    "5345:816",
    0
   ],
   "resize_type.height": [
    "5345:828",
    0
   ]
  },
  "class_type": "ResizeImageMaskNode",
  "_meta": {
   "title": "Resize Image/Mask"
  }
 },
 "5345:346": {
  "inputs": {
   "lora_name": "LTX2.3-22B_IC-LoRA-Cameraman_v1_10500.safetensors",
   "strength_model": 1,
   "model": [
    "5345:293",
    0
   ]
  },
  "class_type": "LoraLoaderModelOnly",
  "_meta": {
   "title": "Load LoRA"
  }
 },
 "5345:348": {
  "inputs": {
   "batch_size": 1,
   "frames_number": [
    "5345:827",
    1
   ],
   "frame_rate": [
    "5345:822",
    1
   ],
   "audio_vae": [
    "5345:335",
    0
   ]
  },
  "class_type": "LTXVEmptyLatentAudio",
  "_meta": {
   "title": "Empty LTXV Latent Audio"
  }
 },
 "5345:349": {
  "inputs": {
   "identity_guidance_scale": 3,
   "start_percent": 0,
   "end_percent": 1,
   "model": [
    "5345:346",
    0
   ],
   "positive": [
    "5345:806",
    0
   ],
   "negative": [
    "5345:812",
    0
   ],
   "reference_audio": [
    "5345:5357",
    0
   ],
   "audio_vae": [
    "5345:335",
    0
   ]
  },
  "class_type": "LTXVReferenceAudio",
  "_meta": {
   "title": "LTXV Reference Audio (ID-LoRA)"
  }
 },
 "5345:5331": {
  "inputs": {
   "video_latent": [
    "5345:5343",
    2
   ],
   "audio_latent": [
    "5345:348",
    0
   ]
  },
  "class_type": "LTXVConcatAVLatent",
  "_meta": {
   "title": "Concat AV Latent"
  }
 },
 "5345:5342": {
  "inputs": {
   "strength": 1,
   "bypass": false,
   "vae": [
    "5345:317",
    2
   ],
   "image": [
    "5345:5396",
    0
   ],
   "latent": [
    "5345:826",
    0
   ]
  },
  "class_type": "LTXVImgToVideoConditionOnly",
  "_meta": {
   "title": "\ud83c\udd5b\ud83c\udd63\ud83c\udd67 LTXV Img To Video Condition Only"
  }
 },
 "5345:5343": {
  "inputs": {
   "frame_idx": 0,
   "strength": 1,
   "latent_downscale_factor": 1,
   "crop": "disabled",
   "use_tiled_encode": false,
   "tile_size": 256,
   "tile_overlap": 64,
   "use_streaming": false,
   "tile_frames": 97,
   "positive": [
    "5345:807",
    0
   ],
   "negative": [
    "5345:807",
    1
   ],
   "vae": [
    "5345:317",
    2
   ],
   "latent": [
    "5345:5342",
    0
   ],
   "image": [
    "5345:5348",
    0
   ]
  },
  "class_type": "LTXAddVideoICLoRAGuide",
  "_meta": {
   "title": "\ud83c\udd5b\ud83c\udd63\ud83c\udd67 Add Video IC-LoRA Guide"
  }
 },
 "5345:5348": {
  "inputs": {
   "batch_index": 0,
   "image": [
    "5345:5355",
    0
   ],
   "length": [
    "5345:827",
    1
   ]
  },
  "class_type": "ImageFromBatch",
  "_meta": {
   "title": "Get Image from Batch"
  }
 },
 "5345:5353": {
  "inputs": {
   "resize_type": "scale dimensions",
   "scale_method": "lanczos",
   "input": [
    "5346",
    0
   ],
   "resize_type.crop": "center",
   "resize_type.width": [
    "5345:816",
    0
   ],
   "resize_type.height": [
    "5345:828",
    0
   ]
  },
  "class_type": "ResizeImageMaskNode",
  "_meta": {
   "title": "Resize Image/Mask"
  }
 },
 "5345:5354": {
  "inputs": {
   "longer_edge": 1536,
   "images": [
    "5345:5353",
    0
   ]
  },
  "class_type": "ResizeImagesByLongerEdge",
  "_meta": {
   "title": "Resize Images by Longer Edge (DEPRECATED)"
  }
 },
 "5345:5355": {
  "inputs": {
   "img_compression": 18,
   "image": [
    "5345:5354",
    0
   ]
  },
  "class_type": "LTXVPreprocess",
  "_meta": {
   "title": "LTXV Preprocess"
  }
 },
 "5345:5357": {
  "inputs": {
   "start_index": 0,
   "audio": [
    "5346",
    1
   ],
   "duration": [
    "5345:824",
    0
   ]
  },
  "class_type": "TrimAudioDuration",
  "_meta": {
   "title": "Trim Audio Duration"
  }
 },
 "5345:5384": {
  "inputs": {
   "source": [
    "5345:827",
    1
   ]
  },
  "class_type": "PreviewAny",
  "_meta": {
   "title": "Preview as Text"
  }
 },
 "5345:5396": {
  "inputs": {
   "batch_index": 0,
   "image": [
    "5345:819",
    0
   ],
   "length": [
    "5345:827",
    1
   ]
  },
  "class_type": "ImageFromBatch",
  "_meta": {
   "title": "Get Image from Batch"
  }
 },
 "5346": {
  "inputs": {
   "video": [
    "5347",
    0
   ]
  },
  "class_type": "GetVideoComponents",
  "_meta": {
   "title": "Get Video Components"
  }
 },
 "5347": {
  "inputs": {
   "file": "dce4353ac80a196bd417ceba52b2653c2f93d62aab87d6a216d4aea9afaa57b4.mp4"
  },
  "class_type": "LoadVideo",
  "_meta": {
   "title": "Load Video"
  }
 },
 "5350": {
  "inputs": {
   "batch_index": 25,
   "length": 50,
   "image": [
    "5346",
    0
   ]
  },
  "class_type": "ImageFromBatch",
  "_meta": {
   "title": "Get Image from Batch"
  }
 },
 "5352": {
  "inputs": {
   "bit_depth": "auto",
   "color_space": "sRGB",
   "codec": "none",
   "images": [
    "5350",
    0
   ],
   "fps": [
    "5346",
    2
   ]
  },
  "class_type": "CreateVideo",
  "_meta": {
   "title": "Create Video"
  }
 }
}