{
  "config": {},
  "definitions": {
    "subgraphs": [
      {
        "config": {},
        "extra": {
          "workflowRendererVersion": "LG"
        },
        "groups": [],
        "id": "ba9a7b30-cca0-4afc-9b44-ebfdc6121d4a",
        "inputNode": {
          "bounding": [
            1530,
            -330,
            120,
            80
          ],
          "id": -10
        },
        "inputs": [
          {
            "id": "b623a375-a6dc-4f9c-8e82-e71b94507a75",
            "linkIds": [
              70,
              74
            ],
            "localized_name": "image1",
            "name": "image1",
            "pos": [
              1630,
              -310
            ],
            "type": "IMAGE"
          },
          {
            "id": "7a04f7ae-97c2-4afe-9acf-9f990c80524c",
            "linkIds": [
              71,
              75
            ],
            "localized_name": "image2",
            "name": "image2",
            "pos": [
              1630,
              -290
            ],
            "type": "IMAGE"
          }
        ],
        "links": [
          {
            "id": 70,
            "origin_id": -10,
            "origin_slot": 0,
            "target_id": 42,
            "target_slot": 0,
            "type": "IMAGE"
          },
          {
            "id": 71,
            "origin_id": -10,
            "origin_slot": 1,
            "target_id": 42,
            "target_slot": 1,
            "type": "IMAGE"
          },
          {
            "id": 72,
            "origin_id": 42,
            "origin_slot": 0,
            "target_id": -20,
            "target_slot": 0,
            "type": "VIDEO"
          },
          {
            "id": 73,
            "origin_id": 42,
            "origin_slot": 0,
            "target_id": -20,
            "target_slot": 0,
            "type": "VIDEO"
          },
          {
            "id": 74,
            "origin_id": -10,
            "origin_slot": 0,
            "target_id": 45,
            "target_slot": 0,
            "type": "IMAGE"
          },
          {
            "id": 75,
            "origin_id": -10,
            "origin_slot": 1,
            "target_id": 45,
            "target_slot": 1,
            "type": "IMAGE"
          },
          {
            "id": 77,
            "origin_id": 50,
            "origin_slot": 0,
            "target_id": 48,
            "target_slot": 0,
            "type": "STRING"
          },
          {
            "id": 78,
            "origin_id": 48,
            "origin_slot": 0,
            "target_id": 47,
            "target_slot": 0,
            "type": "STRING"
          },
          {
            "id": 79,
            "origin_id": 48,
            "origin_slot": 0,
            "target_id": 42,
            "target_slot": 3,
            "type": "STRING"
          },
          {
            "id": 80,
            "origin_id": 45,
            "origin_slot": 0,
            "target_id": 50,
            "target_slot": 0,
            "type": "IMAGE"
          },
          {
            "id": 81,
            "origin_id": 49,
            "origin_slot": 0,
            "target_id": 46,
            "target_slot": 0,
            "type": "STRING"
          },
          {
            "id": 82,
            "origin_id": 50,
            "origin_slot": 0,
            "target_id": 49,
            "target_slot": 0,
            "type": "STRING"
          },
          {
            "id": 83,
            "origin_id": 49,
            "origin_slot": 0,
            "target_id": 42,
            "target_slot": 2,
            "type": "STRING"
          }
        ],
        "name": "Generate Video",
        "nodes": [
          {
            "flags": {},
            "id": 45,
            "inputs": [
              {
                "label": "image0",
                "link": 74,
                "localized_name": "images.image0",
                "name": "images.image0",
                "type": "IMAGE"
              },
              {
                "label": "image1",
                "link": 75,
                "localized_name": "images.image1",
                "name": "images.image1",
                "type": "IMAGE"
              },
              {
                "label": "image2",
                "link": null,
                "localized_name": "images.image2",
                "name": "images.image2",
                "shape": 7,
                "type": "IMAGE"
              }
            ],
            "mode": 0,
            "order": 1,
            "outputs": [
              {
                "links": [
                  80
                ],
                "localized_name": "IMAGE",
                "name": "IMAGE",
                "type": "IMAGE"
              }
            ],
            "pos": [
              1670,
              -130
            ],
            "properties": {
              "Node name for S&R": "BatchImagesNode"
            },
            "size": [
              169.23046875,
              66
            ],
            "type": "BatchImagesNode",
            "widgets_values": []
          },
          {
            "bgcolor": "#653",
            "color": "#432",
            "flags": {},
            "id": 42,
            "inputs": [
              {
                "link": 70,
                "localized_name": "start_frame",
                "name": "start_frame",
                "type": "IMAGE"
              },
              {
                "link": 71,
                "localized_name": "end_frame",
                "name": "end_frame",
                "type": "IMAGE"
              },
              {
                "link": 83,
                "localized_name": "prompt",
                "name": "prompt",
                "type": "STRING",
                "widget": {
                  "name": "prompt"
                }
              },
              {
                "link": 79,
                "localized_name": "negative_prompt",
                "name": "negative_prompt",
                "type": "STRING",
                "widget": {
                  "name": "negative_prompt"
                }
              }
            ],
            "mode": 0,
            "order": 0,
            "outputs": [
              {
                "links": [
                  72,
                  73
                ],
                "localized_name": "VIDEO",
                "name": "VIDEO",
                "type": "VIDEO"
              },
              {
                "links": null,
                "localized_name": "video_id",
                "name": "video_id",
                "type": "STRING"
              },
              {
                "links": null,
                "localized_name": "duration",
                "name": "duration",
                "type": "STRING"
              }
            ],
            "pos": [
              2890,
              -320
            ],
            "properties": {
              "Node name for S&R": "KlingStartEndFrameNode",
              "cnr_id": "comfy-core",
              "ver": "0.4.0"
            },
            "size": [
              400,
              254
            ],
            "type": "KlingStartEndFrameNode",
            "widgets_values": [
              "",
              "",
              0.5,
              "16:9",
              "pro mode / 5s duration / kling-v2-5-turbo"
            ]
          },
          {
            "bgcolor": "#653",
            "color": "#432",
            "flags": {},
            "id": 50,
            "inputs": [
              {
                "link": 80,
                "localized_name": "images",
                "name": "images",
                "shape": 7,
                "type": "IMAGE"
              },
              {
                "link": null,
                "localized_name": "audio",
                "name": "audio",
                "shape": 7,
                "type": "AUDIO"
              },
              {
                "link": null,
                "localized_name": "video",
                "name": "video",
                "shape": 7,
                "type": "VIDEO"
              },
              {
                "link": null,
                "localized_name": "files",
                "name": "files",
                "shape": 7,
                "type": "GEMINI_INPUT_FILES"
              }
            ],
            "mode": 0,
            "order": 6,
            "outputs": [
              {
                "links": [
                  77,
                  82
                ],
                "localized_name": "STRING",
                "name": "STRING",
                "type": "STRING"
              }
            ],
            "pos": [
              1860,
              -130
            ],
            "properties": {
              "Node name for S&R": "GeminiNode",
              "cnr_id": "comfy-core",
              "ver": "0.3.76"
            },
            "size": [
              360,
              550
            ],
            "type": "GeminiNode",
            "widgets_values": [
              "STEP 1: ANALYZE BOTH IMAGES\nBefore crafting the prompt, analyze both images to understand:\n\n\nCamera distance (wide shot, medium, close-up, extreme close-up, macro)\nCamera angle (low-angle, high-angle, eye-level, overhead, Dutch, worm's eye, bird's eye)\nCamera position relative to subject (front, side profile, 3/4 view, back, overhead)\nFraming (full body, torso, chest-up, face only, detail/macro)\nSubject position and pose\nLighting setup and direction\nBackground elements and depth\nFocal length characteristics (wide-angle distortion vs telephoto compression)\n\nSTEP 2: DETERMINE CAMERA MOVEMENT\nBased on the differences between images, identify the primary camera movement:\n\n\nDistance change: Dolly-in (closer) or Dolly-out (farther)\nVertical angle change: Tilt up/down or Crane up/down\nHorizontal angle change: Pan left/right or Orbit/Arc around subject\nHeight change: Crane/Pedestal up or down\nLateral movement: Truck/Track left or right\n\nSTEP 3: OUTPUT ONLY THE PROMPT\nDo not include explanations, commentary, or additional text.\nOutput ONLY the transition prompt in this format:\n\n\n[CAMERA MOVEMENT] from [START POSITION] to [END POSITION]. Subject remains stationary and consistent throughout. Camera [MOVEMENT VERB] fluidly, maintaining [FOCUS BEHAVIOR] on [KEY ELEMENT]. Lighting stays constant, background [BACKGROUND BEHAVIOR]. [TECHNICAL SPECS]. --no [NEGATIVE ELEMENTS]\n\nCore Principle\n\nFor transitions where the subject/scene remains consistent and only the camera position changes, use this structured approach to ensure smooth, cinematic results.\n\n\nPrompt Structure Template\n\n[CAMERA MOVEMENT] from [START POSITION] to [END POSITION]. Subject remains stationary and consistent throughout. Camera [MOVEMENT VERB] fluidly, maintaining [FOCUS BEHAVIOR] on [KEY ELEMENT]. Lighting stays constant, background [BACKGROUND BEHAVIOR]. [TECHNICAL SPECS]. --no [NEGATIVE ELEMENTS]\n\nComponent Breakdown\n\n1. CAMERA MOVEMENT TYPES\n\n\nDolly-in/Push-in: Camera moves forward toward subject\nDolly-out/Pull-back: Camera moves backward away from subject\nOrbit/Arc: Camera circles around subject (specify left/right)\nTilt: Camera angles up or down on fixed position\nPan: Camera swivels left or right horizontally\nCrane/Pedestal: Camera moves vertically up or down\nTracking/Trucking: Camera moves parallel to subject\n\n2. POSITION DESCRIPTORS\n\n\nDistance: wide shot, medium shot, close-up, extreme close-up, macro\nAngle: low-angle, high-angle, eye-level, overhead, Dutch angle, worm's eye view, bird's eye view\nFraming: full body, three-quarter, torso, chest-up, face, detail\n\n3. MOVEMENT VERBS (choose intensity)\n\n\nSlowly, steadily, smoothly, gradually, fluidly\nRapidly, dynamically, swiftly\nElegantly, dramatically, confidently\n\n4. FOCUS BEHAVIOR\n\n\nSharp focus throughout\nRack focus from [A] to [B]\nMaintains focus on [element]\nShallow depth of field\nDeep focus\nProgressive focus shift\n\n5. BACKGROUND BEHAVIOR\n\n\nStays consistent\nBlurs to bokeh\nSharpens into view\nFades to [color]\nRemains sharp throughout\n\n6. TECHNICAL SPECS (standard cinematic quality)\n\n\nCinematic depth of field\nStable gimbal/dolly movement\nProfessional commercial grade\n24fps (or 30fps, 60fps for slow-motion feel)\nClean sensor, no grain (or \"film grain\" if desired)\n\n\nExample Prompts by Movement Type\n\nDOLLY-IN (Wide → Close-up)\n\n\nSmooth camera dolly-in from wide establishing shot to extreme close-up. Subject remains stationary. Camera pushes forward steadily, transitioning focus from [background element] to [detail]. Lighting stays constant, background softly blurs to bokeh. Cinematic depth of field, stable gimbal movement, 24fps. --no shake, cuts, warping, distortion\n\nDOLLY-OUT (Close-up → Wide)\n\n\nSmooth camera pull-back from extreme close-up to wide establishing shot. Subject remains centered and stationary. Camera retreats steadily, revealing environment progressively. Focus maintains on subject while background sharpens into view. Even lighting, cinematic depth of field, 24fps. --no shake, cuts, jump, warping\n\nORBIT (Circular movement)\n\n\nSmooth camera orbit from front view to side profile. Subject remains stationary at center. Camera arcs left fluidly in 90-degree rotation, maintaining constant distance and eye-level angle. Lighting stays consistent, sharp focus throughout. Gimbal stabilized circular tracking, 24fps. --no shake, warping, speed changes, distortion\n\nTILT (Vertical angle change)\n\n\nSmooth camera tilt from low-angle to high-angle. Subject remains stationary. Camera tilts upward gradually, shifting perspective from worm's eye view to bird's eye view. Distance stays constant, lighting consistent. Stable tripod tilt, cinematic framing, 24fps. --no shake, panning, horizontal movement, warping\n\nPAN (Horizontal swivel)\n\n\nSmooth camera pan from left profile to right profile. Subject remains stationary. Camera swivels horizontally across 180 degrees, maintaining constant distance and eye-level. Sharp focus throughout, even lighting. Fluid tripod pan, 24fps. --no shake, tilting, vertical movement, cuts\n\nCRANE UP/DOWN\n\n\nSmooth camera crane from ground-level to overhead view. Subject remains stationary at center. Camera elevates vertically, angle shifting from eye-level to bird's eye view. Distance adjusts proportionally, lighting consistent. Stabilized crane movement, 24fps. --no shake, lateral movement, warping, distortion\n\nKey Rules for Camera-Only Transitions\n\nAlways specify subject remains stationary - This prevents unwanted morphing\nDescribe start AND end positions clearly - Gives model clear targets\nUse specific movement verbs - \"Dolly-in\" is clearer than \"moves closer\"\nLock down what DOESN'T change - Lighting, subject, clothing, expression\nInclude technical quality markers - Gimbal, 24fps, cinematic, stable\nNegative prompts are critical - Prevents warping/morphing/distortion\nKeep prompts under 75 words - Model weights early words heavier\nOne primary movement per transition - Don't combine dolly + pan + tilt\n\nAdvanced Techniques\n\nSpeed Ramping:\n\"Camera begins slow dolly-in, accelerates midway, then decelerates smoothly into final close-up\"\n\n\nCombined Movements (use sparingly):\n\"Camera dollies in while simultaneously tilting down, maintaining subject center-frame\"\n\n\nFocus Pulls:\n\"Rack focus from foreground [element] to background [element] as camera remains locked\"\n\n\nLens Simulation:\n\"Wide-angle 24mm distortion gradually compresses to telephoto 85mm compression\"\n\n\n\nCritical Output Rule\n\nOUTPUT ONLY THE PROMPT. NO EXPLANATIONS. NO COMMENTARY. NO ADDITIONAL TEXT.",
              "gemini-2.5-flash",
              123,
              "fixed",
              ""
            ]
          },
          {
            "flags": {},
            "id": 49,
            "inputs": [
              {
                "link": 82,
                "localized_name": "string",
                "name": "string",
                "type": "STRING",
                "widget": {
                  "name": "string"
                }
              }
            ],
            "mode": 0,
            "order": 5,
            "outputs": [
              {
                "links": [
                  81,
                  83
                ],
                "localized_name": "STRING",
                "name": "STRING",
                "type": "STRING"
              }
            ],
            "pos": [
              2280,
              -130
            ],
            "properties": {
              "Node name for S&R": "RegexExtract",
              "cnr_id": "comfy-core",
              "ver": "0.4.0"
            },
            "size": [
              230,
              270
            ],
            "type": "RegexExtract",
            "widgets_values": [
              "",
              "^(.+?)(?=\\s+--no)",
              "First Match",
              true,
              false,
              false,
              1
            ]
          },
          {
            "flags": {},
            "id": 46,
            "inputs": [
              {
                "link": 81,
                "localized_name": "source",
                "name": "source",
                "type": "*"
              }
            ],
            "mode": 0,
            "order": 2,
            "outputs": [],
            "pos": [
              2620,
              -130
            ],
            "properties": {
              "Node name for S&R": "PreviewAny",
              "cnr_id": "comfy-core",
              "ver": "0.3.76"
            },
            "size": [
              220,
              280
            ],
            "title": "Preview Positive Prompt",
            "type": "PreviewAny",
            "widgets_values": [
              null,
              null,
              null
            ]
          },
          {
            "flags": {},
            "id": 48,
            "inputs": [
              {
                "link": 77,
                "localized_name": "string",
                "name": "string",
                "type": "STRING",
                "widget": {
                  "name": "string"
                }
              }
            ],
            "mode": 0,
            "order": 4,
            "outputs": [
              {
                "links": [
                  78,
                  79
                ],
                "localized_name": "STRING",
                "name": "STRING",
                "type": "STRING"
              }
            ],
            "pos": [
              2280,
              190
            ],
            "properties": {
              "Node name for S&R": "RegexExtract",
              "cnr_id": "comfy-core",
              "ver": "0.4.0"
            },
            "size": [
              230,
              280
            ],
            "type": "RegexExtract",
            "widgets_values": [
              "",
              "(?<=--no\\s)(.+)$",
              "First Match",
              true,
              false,
              false,
              1
            ]
          },
          {
            "flags": {},
            "id": 47,
            "inputs": [
              {
                "link": 78,
                "localized_name": "source",
                "name": "source",
                "type": "*"
              }
            ],
            "mode": 0,
            "order": 3,
            "outputs": [],
            "pos": [
              2620,
              200
            ],
            "properties": {
              "Node name for S&R": "PreviewAny",
              "cnr_id": "comfy-core",
              "ver": "0.3.76"
            },
            "size": [
              220,
              280
            ],
            "title": "Preview Negative Prompt",
            "type": "PreviewAny",
            "widgets_values": [
              null,
              null,
              null
            ]
          }
        ],
        "outputNode": {
          "bounding": [
            3370,
            -320,
            120,
            60
          ],
          "id": -20
        },
        "outputs": [
          {
            "id": "dbfad197-36c3-4cc9-aa60-d01c9477d144",
            "linkIds": [
              73
            ],
            "localized_name": "VIDEO",
            "name": "VIDEO",
            "pos": [
              3390,
              -300
            ],
            "type": "VIDEO"
          }
        ],
        "revision": 0,
        "state": {
          "lastGroupId": 0,
          "lastLinkId": 83,
          "lastNodeId": 50,
          "lastRerouteId": 0
        },
        "version": 1,
        "widgets": []
      },
      {
        "config": {},
        "extra": {
          "workflowRendererVersion": "LG"
        },
        "groups": [],
        "id": "11a1a6b5-aeba-4ca8-af71-f4f52dc2ccc6",
        "inputNode": {
          "bounding": [
            1530,
            -330,
            120,
            80
          ],
          "id": -10
        },
        "inputs": [
          {
            "id": "b623a375-a6dc-4f9c-8e82-e71b94507a75",
            "linkIds": [
              70,
              74
            ],
            "localized_name": "image1",
            "name": "image1",
            "pos": [
              1630,
              -310
            ],
            "type": "IMAGE"
          },
          {
            "id": "7a04f7ae-97c2-4afe-9acf-9f990c80524c",
            "linkIds": [
              71,
              75
            ],
            "localized_name": "image2",
            "name": "image2",
            "pos": [
              1630,
              -290
            ],
            "type": "IMAGE"
          }
        ],
        "links": [
          {
            "id": 70,
            "origin_id": -10,
            "origin_slot": 0,
            "target_id": 42,
            "target_slot": 0,
            "type": "IMAGE"
          },
          {
            "id": 71,
            "origin_id": -10,
            "origin_slot": 1,
            "target_id": 42,
            "target_slot": 1,
            "type": "IMAGE"
          },
          {
            "id": 72,
            "origin_id": 42,
            "origin_slot": 0,
            "target_id": -20,
            "target_slot": 0,
            "type": "VIDEO"
          },
          {
            "id": 73,
            "origin_id": 42,
            "origin_slot": 0,
            "target_id": -20,
            "target_slot": 0,
            "type": "VIDEO"
          },
          {
            "id": 74,
            "origin_id": -10,
            "origin_slot": 0,
            "target_id": 45,
            "target_slot": 0,
            "type": "IMAGE"
          },
          {
            "id": 75,
            "origin_id": -10,
            "origin_slot": 1,
            "target_id": 45,
            "target_slot": 1,
            "type": "IMAGE"
          },
          {
            "id": 77,
            "origin_id": 50,
            "origin_slot": 0,
            "target_id": 48,
            "target_slot": 0,
            "type": "STRING"
          },
          {
            "id": 78,
            "origin_id": 48,
            "origin_slot": 0,
            "target_id": 47,
            "target_slot": 0,
            "type": "STRING"
          },
          {
            "id": 79,
            "origin_id": 48,
            "origin_slot": 0,
            "target_id": 42,
            "target_slot": 3,
            "type": "STRING"
          },
          {
            "id": 80,
            "origin_id": 45,
            "origin_slot": 0,
            "target_id": 50,
            "target_slot": 0,
            "type": "IMAGE"
          },
          {
            "id": 81,
            "origin_id": 49,
            "origin_slot": 0,
            "target_id": 46,
            "target_slot": 0,
            "type": "STRING"
          },
          {
            "id": 82,
            "origin_id": 50,
            "origin_slot": 0,
            "target_id": 49,
            "target_slot": 0,
            "type": "STRING"
          },
          {
            "id": 83,
            "origin_id": 49,
            "origin_slot": 0,
            "target_id": 42,
            "target_slot": 2,
            "type": "STRING"
          }
        ],
        "name": "Generate Video",
        "nodes": [
          {
            "flags": {},
            "id": 45,
            "inputs": [
              {
                "label": "image0",
                "link": 74,
                "localized_name": "images.image0",
                "name": "images.image0",
                "type": "IMAGE"
              },
              {
                "label": "image1",
                "link": 75,
                "localized_name": "images.image1",
                "name": "images.image1",
                "type": "IMAGE"
              },
              {
                "label": "image2",
                "link": null,
                "localized_name": "images.image2",
                "name": "images.image2",
                "shape": 7,
                "type": "IMAGE"
              }
            ],
            "mode": 0,
            "order": 1,
            "outputs": [
              {
                "links": [
                  80
                ],
                "localized_name": "IMAGE",
                "name": "IMAGE",
                "type": "IMAGE"
              }
            ],
            "pos": [
              1670,
              -130
            ],
            "properties": {
              "Node name for S&R": "BatchImagesNode"
            },
            "size": [
              169.23046875,
              66
            ],
            "type": "BatchImagesNode",
            "widgets_values": []
          },
          {
            "bgcolor": "#653",
            "color": "#432",
            "flags": {},
            "id": 42,
            "inputs": [
              {
                "link": 70,
                "localized_name": "start_frame",
                "name": "start_frame",
                "type": "IMAGE"
              },
              {
                "link": 71,
                "localized_name": "end_frame",
                "name": "end_frame",
                "type": "IMAGE"
              },
              {
                "link": 83,
                "localized_name": "prompt",
                "name": "prompt",
                "type": "STRING",
                "widget": {
                  "name": "prompt"
                }
              },
              {
                "link": 79,
                "localized_name": "negative_prompt",
                "name": "negative_prompt",
                "type": "STRING",
                "widget": {
                  "name": "negative_prompt"
                }
              }
            ],
            "mode": 0,
            "order": 0,
            "outputs": [
              {
                "links": [
                  72,
                  73
                ],
                "localized_name": "VIDEO",
                "name": "VIDEO",
                "type": "VIDEO"
              },
              {
                "links": null,
                "localized_name": "video_id",
                "name": "video_id",
                "type": "STRING"
              },
              {
                "links": null,
                "localized_name": "duration",
                "name": "duration",
                "type": "STRING"
              }
            ],
            "pos": [
              2890,
              -320
            ],
            "properties": {
              "Node name for S&R": "KlingStartEndFrameNode",
              "cnr_id": "comfy-core",
              "ver": "0.4.0"
            },
            "size": [
              400,
              254
            ],
            "type": "KlingStartEndFrameNode",
            "widgets_values": [
              "",
              "",
              0.5,
              "16:9",
              "pro mode / 5s duration / kling-v2-5-turbo"
            ]
          },
          {
            "bgcolor": "#653",
            "color": "#432",
            "flags": {},
            "id": 50,
            "inputs": [
              {
                "link": 80,
                "localized_name": "images",
                "name": "images",
                "shape": 7,
                "type": "IMAGE"
              },
              {
                "link": null,
                "localized_name": "audio",
                "name": "audio",
                "shape": 7,
                "type": "AUDIO"
              },
              {
                "link": null,
                "localized_name": "video",
                "name": "video",
                "shape": 7,
                "type": "VIDEO"
              },
              {
                "link": null,
                "localized_name": "files",
                "name": "files",
                "shape": 7,
                "type": "GEMINI_INPUT_FILES"
              }
            ],
            "mode": 0,
            "order": 6,
            "outputs": [
              {
                "links": [
                  77,
                  82
                ],
                "localized_name": "STRING",
                "name": "STRING",
                "type": "STRING"
              }
            ],
            "pos": [
              1860,
              -130
            ],
            "properties": {
              "Node name for S&R": "GeminiNode",
              "cnr_id": "comfy-core",
              "ver": "0.3.76"
            },
            "size": [
              360,
              550
            ],
            "type": "GeminiNode",
            "widgets_values": [
              "STEP 1: ANALYZE BOTH IMAGES\nBefore crafting the prompt, analyze both images to understand:\n\n\nCamera distance (wide shot, medium, close-up, extreme close-up, macro)\nCamera angle (low-angle, high-angle, eye-level, overhead, Dutch, worm's eye, bird's eye)\nCamera position relative to subject (front, side profile, 3/4 view, back, overhead)\nFraming (full body, torso, chest-up, face only, detail/macro)\nSubject position and pose\nLighting setup and direction\nBackground elements and depth\nFocal length characteristics (wide-angle distortion vs telephoto compression)\n\nSTEP 2: DETERMINE CAMERA MOVEMENT\nBased on the differences between images, identify the primary camera movement:\n\n\nDistance change: Dolly-in (closer) or Dolly-out (farther)\nVertical angle change: Tilt up/down or Crane up/down\nHorizontal angle change: Pan left/right or Orbit/Arc around subject\nHeight change: Crane/Pedestal up or down\nLateral movement: Truck/Track left or right\n\nSTEP 3: OUTPUT ONLY THE PROMPT\nDo not include explanations, commentary, or additional text.\nOutput ONLY the transition prompt in this format:\n\n\n[CAMERA MOVEMENT] from [START POSITION] to [END POSITION]. Subject remains stationary and consistent throughout. Camera [MOVEMENT VERB] fluidly, maintaining [FOCUS BEHAVIOR] on [KEY ELEMENT]. Lighting stays constant, background [BACKGROUND BEHAVIOR]. [TECHNICAL SPECS]. --no [NEGATIVE ELEMENTS]\n\nCore Principle\n\nFor transitions where the subject/scene remains consistent and only the camera position changes, use this structured approach to ensure smooth, cinematic results.\n\n\nPrompt Structure Template\n\n[CAMERA MOVEMENT] from [START POSITION] to [END POSITION]. Subject remains stationary and consistent throughout. Camera [MOVEMENT VERB] fluidly, maintaining [FOCUS BEHAVIOR] on [KEY ELEMENT]. Lighting stays constant, background [BACKGROUND BEHAVIOR]. [TECHNICAL SPECS]. --no [NEGATIVE ELEMENTS]\n\nComponent Breakdown\n\n1. CAMERA MOVEMENT TYPES\n\n\nDolly-in/Push-in: Camera moves forward toward subject\nDolly-out/Pull-back: Camera moves backward away from subject\nOrbit/Arc: Camera circles around subject (specify left/right)\nTilt: Camera angles up or down on fixed position\nPan: Camera swivels left or right horizontally\nCrane/Pedestal: Camera moves vertically up or down\nTracking/Trucking: Camera moves parallel to subject\n\n2. POSITION DESCRIPTORS\n\n\nDistance: wide shot, medium shot, close-up, extreme close-up, macro\nAngle: low-angle, high-angle, eye-level, overhead, Dutch angle, worm's eye view, bird's eye view\nFraming: full body, three-quarter, torso, chest-up, face, detail\n\n3. MOVEMENT VERBS (choose intensity)\n\n\nSlowly, steadily, smoothly, gradually, fluidly\nRapidly, dynamically, swiftly\nElegantly, dramatically, confidently\n\n4. FOCUS BEHAVIOR\n\n\nSharp focus throughout\nRack focus from [A] to [B]\nMaintains focus on [element]\nShallow depth of field\nDeep focus\nProgressive focus shift\n\n5. BACKGROUND BEHAVIOR\n\n\nStays consistent\nBlurs to bokeh\nSharpens into view\nFades to [color]\nRemains sharp throughout\n\n6. TECHNICAL SPECS (standard cinematic quality)\n\n\nCinematic depth of field\nStable gimbal/dolly movement\nProfessional commercial grade\n24fps (or 30fps, 60fps for slow-motion feel)\nClean sensor, no grain (or \"film grain\" if desired)\n\n\nExample Prompts by Movement Type\n\nDOLLY-IN (Wide → Close-up)\n\n\nSmooth camera dolly-in from wide establishing shot to extreme close-up. Subject remains stationary. Camera pushes forward steadily, transitioning focus from [background element] to [detail]. Lighting stays constant, background softly blurs to bokeh. Cinematic depth of field, stable gimbal movement, 24fps. --no shake, cuts, warping, distortion\n\nDOLLY-OUT (Close-up → Wide)\n\n\nSmooth camera pull-back from extreme close-up to wide establishing shot. Subject remains centered and stationary. Camera retreats steadily, revealing environment progressively. Focus maintains on subject while background sharpens into view. Even lighting, cinematic depth of field, 24fps. --no shake, cuts, jump, warping\n\nORBIT (Circular movement)\n\n\nSmooth camera orbit from front view to side profile. Subject remains stationary at center. Camera arcs left fluidly in 90-degree rotation, maintaining constant distance and eye-level angle. Lighting stays consistent, sharp focus throughout. Gimbal stabilized circular tracking, 24fps. --no shake, warping, speed changes, distortion\n\nTILT (Vertical angle change)\n\n\nSmooth camera tilt from low-angle to high-angle. Subject remains stationary. Camera tilts upward gradually, shifting perspective from worm's eye view to bird's eye view. Distance stays constant, lighting consistent. Stable tripod tilt, cinematic framing, 24fps. --no shake, panning, horizontal movement, warping\n\nPAN (Horizontal swivel)\n\n\nSmooth camera pan from left profile to right profile. Subject remains stationary. Camera swivels horizontally across 180 degrees, maintaining constant distance and eye-level. Sharp focus throughout, even lighting. Fluid tripod pan, 24fps. --no shake, tilting, vertical movement, cuts\n\nCRANE UP/DOWN\n\n\nSmooth camera crane from ground-level to overhead view. Subject remains stationary at center. Camera elevates vertically, angle shifting from eye-level to bird's eye view. Distance adjusts proportionally, lighting consistent. Stabilized crane movement, 24fps. --no shake, lateral movement, warping, distortion\n\nKey Rules for Camera-Only Transitions\n\nAlways specify subject remains stationary - This prevents unwanted morphing\nDescribe start AND end positions clearly - Gives model clear targets\nUse specific movement verbs - \"Dolly-in\" is clearer than \"moves closer\"\nLock down what DOESN'T change - Lighting, subject, clothing, expression\nInclude technical quality markers - Gimbal, 24fps, cinematic, stable\nNegative prompts are critical - Prevents warping/morphing/distortion\nKeep prompts under 75 words - Model weights early words heavier\nOne primary movement per transition - Don't combine dolly + pan + tilt\n\nAdvanced Techniques\n\nSpeed Ramping:\n\"Camera begins slow dolly-in, accelerates midway, then decelerates smoothly into final close-up\"\n\n\nCombined Movements (use sparingly):\n\"Camera dollies in while simultaneously tilting down, maintaining subject center-frame\"\n\n\nFocus Pulls:\n\"Rack focus from foreground [element] to background [element] as camera remains locked\"\n\n\nLens Simulation:\n\"Wide-angle 24mm distortion gradually compresses to telephoto 85mm compression\"\n\n\n\nCritical Output Rule\n\nOUTPUT ONLY THE PROMPT. NO EXPLANATIONS. NO COMMENTARY. NO ADDITIONAL TEXT.",
              "gemini-2.5-flash",
              123,
              "fixed",
              ""
            ]
          },
          {
            "flags": {},
            "id": 49,
            "inputs": [
              {
                "link": 82,
                "localized_name": "string",
                "name": "string",
                "type": "STRING",
                "widget": {
                  "name": "string"
                }
              }
            ],
            "mode": 0,
            "order": 5,
            "outputs": [
              {
                "links": [
                  81,
                  83
                ],
                "localized_name": "STRING",
                "name": "STRING",
                "type": "STRING"
              }
            ],
            "pos": [
              2280,
              -130
            ],
            "properties": {
              "Node name for S&R": "RegexExtract",
              "cnr_id": "comfy-core",
              "ver": "0.4.0"
            },
            "size": [
              230,
              270
            ],
            "type": "RegexExtract",
            "widgets_values": [
              "",
              "^(.+?)(?=\\s+--no)",
              "First Match",
              true,
              false,
              false,
              1
            ]
          },
          {
            "flags": {},
            "id": 46,
            "inputs": [
              {
                "link": 81,
                "localized_name": "source",
                "name": "source",
                "type": "*"
              }
            ],
            "mode": 0,
            "order": 2,
            "outputs": [],
            "pos": [
              2620,
              -130
            ],
            "properties": {
              "Node name for S&R": "PreviewAny",
              "cnr_id": "comfy-core",
              "ver": "0.3.76"
            },
            "size": [
              220,
              280
            ],
            "title": "Preview Positive Prompt",
            "type": "PreviewAny",
            "widgets_values": [
              null,
              null,
              null
            ]
          },
          {
            "flags": {},
            "id": 48,
            "inputs": [
              {
                "link": 77,
                "localized_name": "string",
                "name": "string",
                "type": "STRING",
                "widget": {
                  "name": "string"
                }
              }
            ],
            "mode": 0,
            "order": 4,
            "outputs": [
              {
                "links": [
                  78,
                  79
                ],
                "localized_name": "STRING",
                "name": "STRING",
                "type": "STRING"
              }
            ],
            "pos": [
              2280,
              190
            ],
            "properties": {
              "Node name for S&R": "RegexExtract",
              "cnr_id": "comfy-core",
              "ver": "0.4.0"
            },
            "size": [
              230,
              280
            ],
            "type": "RegexExtract",
            "widgets_values": [
              "",
              "(?<=--no\\s)(.+)$",
              "First Match",
              true,
              false,
              false,
              1
            ]
          },
          {
            "flags": {},
            "id": 47,
            "inputs": [
              {
                "link": 78,
                "localized_name": "source",
                "name": "source",
                "type": "*"
              }
            ],
            "mode": 0,
            "order": 3,
            "outputs": [],
            "pos": [
              2620,
              200
            ],
            "properties": {
              "Node name for S&R": "PreviewAny",
              "cnr_id": "comfy-core",
              "ver": "0.3.76"
            },
            "size": [
              220,
              280
            ],
            "title": "Preview Negative Prompt",
            "type": "PreviewAny",
            "widgets_values": [
              null,
              null,
              null
            ]
          }
        ],
        "outputNode": {
          "bounding": [
            3370,
            -320,
            120,
            60
          ],
          "id": -20
        },
        "outputs": [
          {
            "id": "dbfad197-36c3-4cc9-aa60-d01c9477d144",
            "linkIds": [
              73
            ],
            "localized_name": "VIDEO",
            "name": "VIDEO",
            "pos": [
              3390,
              -300
            ],
            "type": "VIDEO"
          }
        ],
        "revision": 0,
        "state": {
          "lastGroupId": 0,
          "lastLinkId": 83,
          "lastNodeId": 50,
          "lastRerouteId": 0
        },
        "version": 1,
        "widgets": []
      },
      {
        "config": {},
        "extra": {
          "workflowRendererVersion": "LG"
        },
        "groups": [],
        "id": "60386633-e2b8-4772-8649-0b125045c63a",
        "inputNode": {
          "bounding": [
            1530,
            -330,
            120,
            80
          ],
          "id": -10
        },
        "inputs": [
          {
            "id": "b623a375-a6dc-4f9c-8e82-e71b94507a75",
            "linkIds": [
              70,
              74
            ],
            "localized_name": "image1",
            "name": "image1",
            "pos": [
              1630,
              -310
            ],
            "type": "IMAGE"
          },
          {
            "id": "7a04f7ae-97c2-4afe-9acf-9f990c80524c",
            "linkIds": [
              71,
              75
            ],
            "localized_name": "image2",
            "name": "image2",
            "pos": [
              1630,
              -290
            ],
            "type": "IMAGE"
          }
        ],
        "links": [
          {
            "id": 70,
            "origin_id": -10,
            "origin_slot": 0,
            "target_id": 42,
            "target_slot": 0,
            "type": "IMAGE"
          },
          {
            "id": 71,
            "origin_id": -10,
            "origin_slot": 1,
            "target_id": 42,
            "target_slot": 1,
            "type": "IMAGE"
          },
          {
            "id": 72,
            "origin_id": 42,
            "origin_slot": 0,
            "target_id": -20,
            "target_slot": 0,
            "type": "VIDEO"
          },
          {
            "id": 73,
            "origin_id": 42,
            "origin_slot": 0,
            "target_id": -20,
            "target_slot": 0,
            "type": "VIDEO"
          },
          {
            "id": 74,
            "origin_id": -10,
            "origin_slot": 0,
            "target_id": 45,
            "target_slot": 0,
            "type": "IMAGE"
          },
          {
            "id": 75,
            "origin_id": -10,
            "origin_slot": 1,
            "target_id": 45,
            "target_slot": 1,
            "type": "IMAGE"
          },
          {
            "id": 77,
            "origin_id": 50,
            "origin_slot": 0,
            "target_id": 48,
            "target_slot": 0,
            "type": "STRING"
          },
          {
            "id": 78,
            "origin_id": 48,
            "origin_slot": 0,
            "target_id": 47,
            "target_slot": 0,
            "type": "STRING"
          },
          {
            "id": 79,
            "origin_id": 48,
            "origin_slot": 0,
            "target_id": 42,
            "target_slot": 3,
            "type": "STRING"
          },
          {
            "id": 80,
            "origin_id": 45,
            "origin_slot": 0,
            "target_id": 50,
            "target_slot": 0,
            "type": "IMAGE"
          },
          {
            "id": 81,
            "origin_id": 49,
            "origin_slot": 0,
            "target_id": 46,
            "target_slot": 0,
            "type": "STRING"
          },
          {
            "id": 82,
            "origin_id": 50,
            "origin_slot": 0,
            "target_id": 49,
            "target_slot": 0,
            "type": "STRING"
          },
          {
            "id": 83,
            "origin_id": 49,
            "origin_slot": 0,
            "target_id": 42,
            "target_slot": 2,
            "type": "STRING"
          }
        ],
        "name": "Generate Video",
        "nodes": [
          {
            "flags": {},
            "id": 45,
            "inputs": [
              {
                "label": "image0",
                "link": 74,
                "localized_name": "images.image0",
                "name": "images.image0",
                "type": "IMAGE"
              },
              {
                "label": "image1",
                "link": 75,
                "localized_name": "images.image1",
                "name": "images.image1",
                "type": "IMAGE"
              },
              {
                "label": "image2",
                "link": null,
                "localized_name": "images.image2",
                "name": "images.image2",
                "shape": 7,
                "type": "IMAGE"
              }
            ],
            "mode": 0,
            "order": 1,
            "outputs": [
              {
                "links": [
                  80
                ],
                "localized_name": "IMAGE",
                "name": "IMAGE",
                "type": "IMAGE"
              }
            ],
            "pos": [
              1670,
              -130
            ],
            "properties": {
              "Node name for S&R": "BatchImagesNode"
            },
            "size": [
              169.23046875,
              66
            ],
            "type": "BatchImagesNode",
            "widgets_values": []
          },
          {
            "bgcolor": "#653",
            "color": "#432",
            "flags": {},
            "id": 42,
            "inputs": [
              {
                "link": 70,
                "localized_name": "start_frame",
                "name": "start_frame",
                "type": "IMAGE"
              },
              {
                "link": 71,
                "localized_name": "end_frame",
                "name": "end_frame",
                "type": "IMAGE"
              },
              {
                "link": 83,
                "localized_name": "prompt",
                "name": "prompt",
                "type": "STRING",
                "widget": {
                  "name": "prompt"
                }
              },
              {
                "link": 79,
                "localized_name": "negative_prompt",
                "name": "negative_prompt",
                "type": "STRING",
                "widget": {
                  "name": "negative_prompt"
                }
              }
            ],
            "mode": 0,
            "order": 0,
            "outputs": [
              {
                "links": [
                  72,
                  73
                ],
                "localized_name": "VIDEO",
                "name": "VIDEO",
                "type": "VIDEO"
              },
              {
                "links": null,
                "localized_name": "video_id",
                "name": "video_id",
                "type": "STRING"
              },
              {
                "links": null,
                "localized_name": "duration",
                "name": "duration",
                "type": "STRING"
              }
            ],
            "pos": [
              2890,
              -320
            ],
            "properties": {
              "Node name for S&R": "KlingStartEndFrameNode",
              "cnr_id": "comfy-core",
              "ver": "0.4.0"
            },
            "size": [
              400,
              254
            ],
            "type": "KlingStartEndFrameNode",
            "widgets_values": [
              "",
              "",
              0.5,
              "16:9",
              "pro mode / 5s duration / kling-v2-5-turbo"
            ]
          },
          {
            "bgcolor": "#653",
            "color": "#432",
            "flags": {},
            "id": 50,
            "inputs": [
              {
                "link": 80,
                "localized_name": "images",
                "name": "images",
                "shape": 7,
                "type": "IMAGE"
              },
              {
                "link": null,
                "localized_name": "audio",
                "name": "audio",
                "shape": 7,
                "type": "AUDIO"
              },
              {
                "link": null,
                "localized_name": "video",
                "name": "video",
                "shape": 7,
                "type": "VIDEO"
              },
              {
                "link": null,
                "localized_name": "files",
                "name": "files",
                "shape": 7,
                "type": "GEMINI_INPUT_FILES"
              }
            ],
            "mode": 0,
            "order": 6,
            "outputs": [
              {
                "links": [
                  77,
                  82
                ],
                "localized_name": "STRING",
                "name": "STRING",
                "type": "STRING"
              }
            ],
            "pos": [
              1860,
              -130
            ],
            "properties": {
              "Node name for S&R": "GeminiNode",
              "cnr_id": "comfy-core",
              "ver": "0.3.76"
            },
            "size": [
              360,
              550
            ],
            "type": "GeminiNode",
            "widgets_values": [
              "STEP 1: ANALYZE BOTH IMAGES\nBefore crafting the prompt, analyze both images to understand:\n\n\nCamera distance (wide shot, medium, close-up, extreme close-up, macro)\nCamera angle (low-angle, high-angle, eye-level, overhead, Dutch, worm's eye, bird's eye)\nCamera position relative to subject (front, side profile, 3/4 view, back, overhead)\nFraming (full body, torso, chest-up, face only, detail/macro)\nSubject position and pose\nLighting setup and direction\nBackground elements and depth\nFocal length characteristics (wide-angle distortion vs telephoto compression)\n\nSTEP 2: DETERMINE CAMERA MOVEMENT\nBased on the differences between images, identify the primary camera movement:\n\n\nDistance change: Dolly-in (closer) or Dolly-out (farther)\nVertical angle change: Tilt up/down or Crane up/down\nHorizontal angle change: Pan left/right or Orbit/Arc around subject\nHeight change: Crane/Pedestal up or down\nLateral movement: Truck/Track left or right\n\nSTEP 3: OUTPUT ONLY THE PROMPT\nDo not include explanations, commentary, or additional text.\nOutput ONLY the transition prompt in this format:\n\n\n[CAMERA MOVEMENT] from [START POSITION] to [END POSITION]. Subject remains stationary and consistent throughout. Camera [MOVEMENT VERB] fluidly, maintaining [FOCUS BEHAVIOR] on [KEY ELEMENT]. Lighting stays constant, background [BACKGROUND BEHAVIOR]. [TECHNICAL SPECS]. --no [NEGATIVE ELEMENTS]\n\nCore Principle\n\nFor transitions where the subject/scene remains consistent and only the camera position changes, use this structured approach to ensure smooth, cinematic results.\n\n\nPrompt Structure Template\n\n[CAMERA MOVEMENT] from [START POSITION] to [END POSITION]. Subject remains stationary and consistent throughout. Camera [MOVEMENT VERB] fluidly, maintaining [FOCUS BEHAVIOR] on [KEY ELEMENT]. Lighting stays constant, background [BACKGROUND BEHAVIOR]. [TECHNICAL SPECS]. --no [NEGATIVE ELEMENTS]\n\nComponent Breakdown\n\n1. CAMERA MOVEMENT TYPES\n\n\nDolly-in/Push-in: Camera moves forward toward subject\nDolly-out/Pull-back: Camera moves backward away from subject\nOrbit/Arc: Camera circles around subject (specify left/right)\nTilt: Camera angles up or down on fixed position\nPan: Camera swivels left or right horizontally\nCrane/Pedestal: Camera moves vertically up or down\nTracking/Trucking: Camera moves parallel to subject\n\n2. POSITION DESCRIPTORS\n\n\nDistance: wide shot, medium shot, close-up, extreme close-up, macro\nAngle: low-angle, high-angle, eye-level, overhead, Dutch angle, worm's eye view, bird's eye view\nFraming: full body, three-quarter, torso, chest-up, face, detail\n\n3. MOVEMENT VERBS (choose intensity)\n\n\nSlowly, steadily, smoothly, gradually, fluidly\nRapidly, dynamically, swiftly\nElegantly, dramatically, confidently\n\n4. FOCUS BEHAVIOR\n\n\nSharp focus throughout\nRack focus from [A] to [B]\nMaintains focus on [element]\nShallow depth of field\nDeep focus\nProgressive focus shift\n\n5. BACKGROUND BEHAVIOR\n\n\nStays consistent\nBlurs to bokeh\nSharpens into view\nFades to [color]\nRemains sharp throughout\n\n6. TECHNICAL SPECS (standard cinematic quality)\n\n\nCinematic depth of field\nStable gimbal/dolly movement\nProfessional commercial grade\n24fps (or 30fps, 60fps for slow-motion feel)\nClean sensor, no grain (or \"film grain\" if desired)\n\n\nExample Prompts by Movement Type\n\nDOLLY-IN (Wide → Close-up)\n\n\nSmooth camera dolly-in from wide establishing shot to extreme close-up. Subject remains stationary. Camera pushes forward steadily, transitioning focus from [background element] to [detail]. Lighting stays constant, background softly blurs to bokeh. Cinematic depth of field, stable gimbal movement, 24fps. --no shake, cuts, warping, distortion\n\nDOLLY-OUT (Close-up → Wide)\n\n\nSmooth camera pull-back from extreme close-up to wide establishing shot. Subject remains centered and stationary. Camera retreats steadily, revealing environment progressively. Focus maintains on subject while background sharpens into view. Even lighting, cinematic depth of field, 24fps. --no shake, cuts, jump, warping\n\nORBIT (Circular movement)\n\n\nSmooth camera orbit from front view to side profile. Subject remains stationary at center. Camera arcs left fluidly in 90-degree rotation, maintaining constant distance and eye-level angle. Lighting stays consistent, sharp focus throughout. Gimbal stabilized circular tracking, 24fps. --no shake, warping, speed changes, distortion\n\nTILT (Vertical angle change)\n\n\nSmooth camera tilt from low-angle to high-angle. Subject remains stationary. Camera tilts upward gradually, shifting perspective from worm's eye view to bird's eye view. Distance stays constant, lighting consistent. Stable tripod tilt, cinematic framing, 24fps. --no shake, panning, horizontal movement, warping\n\nPAN (Horizontal swivel)\n\n\nSmooth camera pan from left profile to right profile. Subject remains stationary. Camera swivels horizontally across 180 degrees, maintaining constant distance and eye-level. Sharp focus throughout, even lighting. Fluid tripod pan, 24fps. --no shake, tilting, vertical movement, cuts\n\nCRANE UP/DOWN\n\n\nSmooth camera crane from ground-level to overhead view. Subject remains stationary at center. Camera elevates vertically, angle shifting from eye-level to bird's eye view. Distance adjusts proportionally, lighting consistent. Stabilized crane movement, 24fps. --no shake, lateral movement, warping, distortion\n\nKey Rules for Camera-Only Transitions\n\nAlways specify subject remains stationary - This prevents unwanted morphing\nDescribe start AND end positions clearly - Gives model clear targets\nUse specific movement verbs - \"Dolly-in\" is clearer than \"moves closer\"\nLock down what DOESN'T change - Lighting, subject, clothing, expression\nInclude technical quality markers - Gimbal, 24fps, cinematic, stable\nNegative prompts are critical - Prevents warping/morphing/distortion\nKeep prompts under 75 words - Model weights early words heavier\nOne primary movement per transition - Don't combine dolly + pan + tilt\n\nAdvanced Techniques\n\nSpeed Ramping:\n\"Camera begins slow dolly-in, accelerates midway, then decelerates smoothly into final close-up\"\n\n\nCombined Movements (use sparingly):\n\"Camera dollies in while simultaneously tilting down, maintaining subject center-frame\"\n\n\nFocus Pulls:\n\"Rack focus from foreground [element] to background [element] as camera remains locked\"\n\n\nLens Simulation:\n\"Wide-angle 24mm distortion gradually compresses to telephoto 85mm compression\"\n\n\n\nCritical Output Rule\n\nOUTPUT ONLY THE PROMPT. NO EXPLANATIONS. NO COMMENTARY. NO ADDITIONAL TEXT.",
              "gemini-2.5-flash",
              123,
              "fixed",
              ""
            ]
          },
          {
            "flags": {},
            "id": 49,
            "inputs": [
              {
                "link": 82,
                "localized_name": "string",
                "name": "string",
                "type": "STRING",
                "widget": {
                  "name": "string"
                }
              }
            ],
            "mode": 0,
            "order": 5,
            "outputs": [
              {
                "links": [
                  81,
                  83
                ],
                "localized_name": "STRING",
                "name": "STRING",
                "type": "STRING"
              }
            ],
            "pos": [
              2280,
              -130
            ],
            "properties": {
              "Node name for S&R": "RegexExtract",
              "cnr_id": "comfy-core",
              "ver": "0.4.0"
            },
            "size": [
              230,
              270
            ],
            "type": "RegexExtract",
            "widgets_values": [
              "",
              "^(.+?)(?=\\s+--no)",
              "First Match",
              true,
              false,
              false,
              1
            ]
          },
          {
            "flags": {},
            "id": 46,
            "inputs": [
              {
                "link": 81,
                "localized_name": "source",
                "name": "source",
                "type": "*"
              }
            ],
            "mode": 0,
            "order": 2,
            "outputs": [],
            "pos": [
              2620,
              -130
            ],
            "properties": {
              "Node name for S&R": "PreviewAny",
              "cnr_id": "comfy-core",
              "ver": "0.3.76"
            },
            "size": [
              220,
              280
            ],
            "title": "Preview Positive Prompt",
            "type": "PreviewAny",
            "widgets_values": [
              null,
              null,
              null
            ]
          },
          {
            "flags": {},
            "id": 48,
            "inputs": [
              {
                "link": 77,
                "localized_name": "string",
                "name": "string",
                "type": "STRING",
                "widget": {
                  "name": "string"
                }
              }
            ],
            "mode": 0,
            "order": 4,
            "outputs": [
              {
                "links": [
                  78,
                  79
                ],
                "localized_name": "STRING",
                "name": "STRING",
                "type": "STRING"
              }
            ],
            "pos": [
              2280,
              190
            ],
            "properties": {
              "Node name for S&R": "RegexExtract",
              "cnr_id": "comfy-core",
              "ver": "0.4.0"
            },
            "size": [
              230,
              280
            ],
            "type": "RegexExtract",
            "widgets_values": [
              "",
              "(?<=--no\\s)(.+)$",
              "First Match",
              true,
              false,
              false,
              1
            ]
          },
          {
            "flags": {},
            "id": 47,
            "inputs": [
              {
                "link": 78,
                "localized_name": "source",
                "name": "source",
                "type": "*"
              }
            ],
            "mode": 0,
            "order": 3,
            "outputs": [],
            "pos": [
              2620,
              200
            ],
            "properties": {
              "Node name for S&R": "PreviewAny",
              "cnr_id": "comfy-core",
              "ver": "0.3.76"
            },
            "size": [
              220,
              280
            ],
            "title": "Preview Negative Prompt",
            "type": "PreviewAny",
            "widgets_values": [
              null,
              null,
              null
            ]
          }
        ],
        "outputNode": {
          "bounding": [
            3370,
            -320,
            120,
            60
          ],
          "id": -20
        },
        "outputs": [
          {
            "id": "dbfad197-36c3-4cc9-aa60-d01c9477d144",
            "linkIds": [
              73
            ],
            "localized_name": "VIDEO",
            "name": "VIDEO",
            "pos": [
              3390,
              -300
            ],
            "type": "VIDEO"
          }
        ],
        "revision": 0,
        "state": {
          "lastGroupId": 0,
          "lastLinkId": 83,
          "lastNodeId": 50,
          "lastRerouteId": 0
        },
        "version": 1,
        "widgets": []
      }
    ]
  },
  "extra": {
    "VHS_KeepIntermediate": true,
    "VHS_MetadataImage": true,
    "VHS_latentpreview": false,
    "VHS_latentpreviewrate": 0,
    "ds": {
      "offset": [
        1819.1380937248587,
        1649.0672503933533
      ],
      "scale": 0.18255033928362413
    },
    "frontendVersion": "1.37.11",
    "workflowRendererVersion": "LG"
  },
  "groups": [],
  "id": "6e9f36f5-f3ec-4ad3-9da1-02fad3ce9cde",
  "last_link_id": 119,
  "last_node_id": 59,
  "links": [
    [
      10,
      10,
      0,
      11,
      0,
      "IMAGE"
    ],
    [
      12,
      14,
      0,
      13,
      0,
      "IMAGE"
    ],
    [
      13,
      10,
      0,
      14,
      0,
      "IMAGE"
    ],
    [
      15,
      10,
      0,
      16,
      0,
      "IMAGE"
    ],
    [
      17,
      10,
      0,
      18,
      0,
      "IMAGE"
    ],
    [
      25,
      11,
      0,
      23,
      0,
      "IMAGE"
    ],
    [
      26,
      16,
      0,
      24,
      0,
      "IMAGE"
    ],
    [
      27,
      18,
      0,
      25,
      0,
      "IMAGE"
    ],
    [
      47,
      11,
      0,
      36,
      0,
      "IMAGE"
    ],
    [
      50,
      14,
      0,
      37,
      0,
      "IMAGE"
    ],
    [
      55,
      16,
      0,
      38,
      0,
      "IMAGE"
    ],
    [
      58,
      18,
      0,
      39,
      0,
      "IMAGE"
    ],
    [
      68,
      36,
      0,
      42,
      0,
      "IMAGE"
    ],
    [
      69,
      37,
      0,
      42,
      1,
      "IMAGE"
    ],
    [
      70,
      42,
      0,
      22,
      0,
      "VIDEO"
    ],
    [
      90,
      47,
      0,
      48,
      0,
      "VIDEO"
    ],
    [
      95,
      42,
      0,
      51,
      0,
      "VIDEO"
    ],
    [
      98,
      51,
      2,
      47,
      2,
      "FLOAT"
    ],
    [
      100,
      51,
      0,
      54,
      0,
      "IMAGE"
    ],
    [
      101,
      49,
      0,
      54,
      1,
      "IMAGE"
    ],
    [
      102,
      50,
      0,
      54,
      2,
      "IMAGE"
    ],
    [
      103,
      54,
      0,
      47,
      0,
      "IMAGE"
    ],
    [
      112,
      58,
      0,
      26,
      0,
      "VIDEO"
    ],
    [
      113,
      58,
      0,
      49,
      0,
      "VIDEO"
    ],
    [
      114,
      37,
      0,
      58,
      0,
      "IMAGE"
    ],
    [
      115,
      38,
      0,
      58,
      1,
      "IMAGE"
    ],
    [
      116,
      59,
      0,
      27,
      0,
      "VIDEO"
    ],
    [
      117,
      59,
      0,
      50,
      0,
      "VIDEO"
    ],
    [
      118,
      38,
      0,
      59,
      0,
      "IMAGE"
    ],
    [
      119,
      39,
      0,
      59,
      1,
      "IMAGE"
    ]
  ],
  "nodes": [
    {
      "flags": {
        "collapsed": false
      },
      "id": 23,
      "inputs": [
        {
          "link": 25,
          "name": "images",
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 5,
      "outputs": [],
      "pos": [
        1320,
        -640
      ],
      "properties": {
        "Node name for S&R": "SaveImage",
        "cnr_id": "comfy-core",
        "ver": "0.4.0"
      },
      "size": [
        700,
        610
      ],
      "type": "SaveImage",
      "widgets_values": [
        "ComfyUI-image_1"
      ]
    },
    {
      "flags": {
        "collapsed": false
      },
      "id": 24,
      "inputs": [
        {
          "link": 26,
          "name": "images",
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 9,
      "outputs": [],
      "pos": [
        1320,
        810
      ],
      "properties": {
        "Node name for S&R": "SaveImage",
        "cnr_id": "comfy-core",
        "ver": "0.4.0"
      },
      "size": [
        700,
        610
      ],
      "type": "SaveImage",
      "widgets_values": [
        "ComfyUI-image_3"
      ]
    },
    {
      "flags": {
        "collapsed": false
      },
      "id": 13,
      "inputs": [
        {
          "link": 12,
          "name": "images",
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 7,
      "outputs": [],
      "pos": [
        1320,
        80
      ],
      "properties": {
        "Node name for S&R": "SaveImage",
        "cnr_id": "comfy-core",
        "ver": "0.4.0"
      },
      "size": [
        700,
        610
      ],
      "type": "SaveImage",
      "widgets_values": [
        "ComfyUI-image_2"
      ]
    },
    {
      "flags": {
        "collapsed": false
      },
      "id": 25,
      "inputs": [
        {
          "link": 27,
          "name": "images",
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 11,
      "outputs": [],
      "pos": [
        1320,
        1550
      ],
      "properties": {
        "Node name for S&R": "SaveImage",
        "cnr_id": "comfy-core",
        "ver": "0.4.0"
      },
      "size": [
        700,
        610
      ],
      "type": "SaveImage",
      "widgets_values": [
        "ComfyUI-image_4"
      ]
    },
    {
      "flags": {},
      "id": 36,
      "inputs": [
        {
          "link": 47,
          "name": "",
          "type": "*"
        }
      ],
      "mode": 0,
      "order": 6,
      "outputs": [
        {
          "links": [
            68
          ],
          "name": "",
          "type": "IMAGE"
        }
      ],
      "pos": [
        2050,
        -640
      ],
      "properties": {
        "horizontal": false,
        "showOutputText": false
      },
      "size": [
        75,
        26
      ],
      "type": "Reroute"
    },
    {
      "bgcolor": "#353",
      "color": "#232",
      "flags": {},
      "id": 10,
      "inputs": [],
      "mode": 0,
      "order": 0,
      "outputs": [
        {
          "links": [
            10,
            13,
            15,
            17
          ],
          "name": "IMAGE",
          "type": "IMAGE"
        },
        {
          "links": null,
          "name": "MASK",
          "type": "MASK"
        }
      ],
      "pos": [
        -160,
        510
      ],
      "properties": {
        "Node name for S&R": "LoadImage",
        "cnr_id": "comfy-core",
        "ver": "0.4.0"
      },
      "size": [
        770,
        670
      ],
      "type": "LoadImage",
      "widgets_values": [
        "product_car.jpg",
        "image"
      ]
    },
    {
      "flags": {},
      "id": 22,
      "inputs": [
        {
          "link": 70,
          "name": "video",
          "type": "VIDEO"
        }
      ],
      "mode": 0,
      "order": 16,
      "outputs": [],
      "pos": [
        2600,
        -320
      ],
      "properties": {
        "Node name for S&R": "SaveVideo",
        "cnr_id": "comfy-core",
        "ver": "0.4.0"
      },
      "size": [
        700,
        610
      ],
      "type": "SaveVideo",
      "widgets_values": [
        "video/ComfyUI-video_1",
        "auto",
        "auto"
      ]
    },
    {
      "flags": {},
      "id": 26,
      "inputs": [
        {
          "link": 112,
          "name": "video",
          "type": "VIDEO"
        }
      ],
      "mode": 0,
      "order": 18,
      "outputs": [],
      "pos": [
        2600,
        410
      ],
      "properties": {
        "Node name for S&R": "SaveVideo",
        "cnr_id": "comfy-core",
        "ver": "0.4.0"
      },
      "size": [
        700,
        610
      ],
      "type": "SaveVideo",
      "widgets_values": [
        "video/ComfyUI-video_2",
        "auto",
        "auto"
      ]
    },
    {
      "flags": {},
      "id": 27,
      "inputs": [
        {
          "link": 116,
          "name": "video",
          "type": "VIDEO"
        }
      ],
      "mode": 0,
      "order": 20,
      "outputs": [],
      "pos": [
        2600,
        1170
      ],
      "properties": {
        "Node name for S&R": "SaveVideo",
        "cnr_id": "comfy-core",
        "ver": "0.4.0"
      },
      "size": [
        700,
        610
      ],
      "type": "SaveVideo",
      "widgets_values": [
        "video/ComfyUI-video_3",
        "auto",
        "auto"
      ]
    },
    {
      "flags": {},
      "id": 39,
      "inputs": [
        {
          "link": 58,
          "name": "",
          "type": "*"
        }
      ],
      "mode": 0,
      "order": 12,
      "outputs": [
        {
          "links": [
            119
          ],
          "name": "",
          "type": "IMAGE"
        }
      ],
      "pos": [
        2050,
        1550
      ],
      "properties": {
        "horizontal": false,
        "showOutputText": false
      },
      "size": [
        75,
        26
      ],
      "type": "Reroute"
    },
    {
      "bgcolor": "#653",
      "color": "#432",
      "flags": {},
      "id": 16,
      "inputs": [
        {
          "link": 15,
          "name": "image",
          "shape": 7,
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 3,
      "outputs": [
        {
          "links": [
            26,
            55
          ],
          "name": "IMAGE",
          "type": "IMAGE"
        }
      ],
      "pos": [
        880,
        810
      ],
      "properties": {
        "Node name for S&R": "ByteDanceSeedreamNode",
        "cnr_id": "comfy-core",
        "ver": "0.4.0"
      },
      "size": [
        400,
        610
      ],
      "type": "ByteDanceSeedreamNode",
      "widgets_values": [
        "seedream-4-5-251128",
        "Side view of the main subject in the scene. Studio scene with a white background.",
        "2560x1440 (16:9)",
        2048,
        2048,
        "disabled",
        1,
        3,
        "fixed",
        false,
        true
      ]
    },
    {
      "bgcolor": "#653",
      "color": "#432",
      "flags": {},
      "id": 11,
      "inputs": [
        {
          "link": 10,
          "name": "image",
          "shape": 7,
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 1,
      "outputs": [
        {
          "links": [
            25,
            47
          ],
          "name": "IMAGE",
          "type": "IMAGE"
        }
      ],
      "pos": [
        880,
        -640
      ],
      "properties": {
        "Node name for S&R": "ByteDanceSeedreamNode",
        "cnr_id": "comfy-core",
        "ver": "0.4.0"
      },
      "size": [
        400,
        610
      ],
      "type": "ByteDanceSeedreamNode",
      "widgets_values": [
        "seedream-4-5-251128",
        "Create an extreme close up view of the main element in the scene. Studio scene with a white background.",
        "2560x1440 (16:9)",
        2048,
        2048,
        "disabled",
        1,
        1,
        "fixed",
        false,
        true
      ]
    },
    {
      "bgcolor": "#653",
      "color": "#432",
      "flags": {},
      "id": 14,
      "inputs": [
        {
          "link": 13,
          "name": "image",
          "shape": 7,
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 2,
      "outputs": [
        {
          "links": [
            12,
            50
          ],
          "name": "IMAGE",
          "type": "IMAGE"
        }
      ],
      "pos": [
        880,
        80
      ],
      "properties": {
        "Node name for S&R": "ByteDanceSeedreamNode",
        "cnr_id": "comfy-core",
        "ver": "0.4.0"
      },
      "size": [
        400,
        610
      ],
      "type": "ByteDanceSeedreamNode",
      "widgets_values": [
        "seedream-4-5-251128",
        "Create a low view, super-wide shot of the main subject in this scene. Studio scene with a white background.",
        "2560x1440 (16:9)",
        2048,
        2048,
        "disabled",
        1,
        2,
        "fixed",
        false,
        true
      ]
    },
    {
      "bgcolor": "#653",
      "color": "#432",
      "flags": {},
      "id": 18,
      "inputs": [
        {
          "link": 17,
          "name": "image",
          "shape": 7,
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 4,
      "outputs": [
        {
          "links": [
            27,
            58
          ],
          "name": "IMAGE",
          "type": "IMAGE"
        }
      ],
      "pos": [
        880,
        1550
      ],
      "properties": {
        "Node name for S&R": "ByteDanceSeedreamNode",
        "cnr_id": "comfy-core",
        "ver": "0.4.0"
      },
      "size": [
        400,
        610
      ],
      "type": "ByteDanceSeedreamNode",
      "widgets_values": [
        "seedream-4-5-251128",
        "Create an extreme wide shot from behind the subject near the passenger side of the back rims. Studio scene with a white background.",
        "2560x1440 (16:9)",
        2048,
        2048,
        "disabled",
        1,
        4,
        "fixed",
        false,
        true
      ]
    },
    {
      "flags": {},
      "id": 51,
      "inputs": [
        {
          "link": 95,
          "name": "video",
          "type": "VIDEO"
        }
      ],
      "mode": 0,
      "order": 17,
      "outputs": [
        {
          "links": [
            100
          ],
          "name": "images",
          "type": "IMAGE"
        },
        {
          "links": [],
          "name": "audio",
          "type": "AUDIO"
        },
        {
          "links": [
            98
          ],
          "name": "fps",
          "type": "FLOAT"
        }
      ],
      "pos": [
        3460,
        320
      ],
      "properties": {
        "Node name for S&R": "GetVideoComponents",
        "cnr_id": "comfy-core",
        "ver": "0.4.0"
      },
      "size": [
        193.530859375,
        66
      ],
      "type": "GetVideoComponents",
      "widgets_values": []
    },
    {
      "flags": {},
      "id": 50,
      "inputs": [
        {
          "link": 117,
          "name": "video",
          "type": "VIDEO"
        }
      ],
      "mode": 0,
      "order": 21,
      "outputs": [
        {
          "links": [
            102
          ],
          "name": "images",
          "type": "IMAGE"
        },
        {
          "links": [],
          "name": "audio",
          "type": "AUDIO"
        },
        {
          "links": [],
          "name": "fps",
          "type": "FLOAT"
        }
      ],
      "pos": [
        3460,
        550
      ],
      "properties": {
        "Node name for S&R": "GetVideoComponents",
        "cnr_id": "comfy-core",
        "ver": "0.4.0"
      },
      "size": [
        193.530859375,
        66
      ],
      "type": "GetVideoComponents",
      "widgets_values": []
    },
    {
      "flags": {},
      "id": 54,
      "inputs": [
        {
          "label": "image0",
          "link": 100,
          "name": "images.image0",
          "type": "IMAGE"
        },
        {
          "label": "image1",
          "link": 101,
          "name": "images.image1",
          "type": "IMAGE"
        },
        {
          "label": "image2",
          "link": 102,
          "name": "images.image2",
          "shape": 7,
          "type": "IMAGE"
        },
        {
          "label": "image3",
          "link": null,
          "name": "images.image3",
          "shape": 7,
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 22,
      "outputs": [
        {
          "links": [
            103
          ],
          "name": "IMAGE",
          "type": "IMAGE"
        }
      ],
      "pos": [
        3750,
        410
      ],
      "properties": {
        "Node name for S&R": "BatchImagesNode"
      },
      "size": [
        169.32421875,
        86
      ],
      "type": "BatchImagesNode",
      "widgets_values": []
    },
    {
      "flags": {},
      "id": 47,
      "inputs": [
        {
          "link": 103,
          "name": "images",
          "type": "IMAGE"
        },
        {
          "link": null,
          "name": "audio",
          "shape": 7,
          "type": "AUDIO"
        },
        {
          "link": 98,
          "name": "fps",
          "type": "FLOAT",
          "widget": {
            "name": "fps"
          }
        }
      ],
      "mode": 0,
      "order": 23,
      "outputs": [
        {
          "links": [
            90
          ],
          "name": "VIDEO",
          "type": "VIDEO"
        }
      ],
      "pos": [
        3970,
        410
      ],
      "properties": {
        "Node name for S&R": "CreateVideo"
      },
      "size": [
        270,
        78
      ],
      "type": "CreateVideo",
      "widgets_values": [
        30
      ]
    },
    {
      "flags": {},
      "id": 49,
      "inputs": [
        {
          "link": 113,
          "name": "video",
          "type": "VIDEO"
        }
      ],
      "mode": 0,
      "order": 19,
      "outputs": [
        {
          "links": [
            101
          ],
          "name": "images",
          "type": "IMAGE"
        },
        {
          "links": [],
          "name": "audio",
          "type": "AUDIO"
        },
        {
          "links": [],
          "name": "fps",
          "type": "FLOAT"
        }
      ],
      "pos": [
        3460,
        435
      ],
      "properties": {
        "Node name for S&R": "GetVideoComponents",
        "cnr_id": "comfy-core",
        "ver": "0.4.0"
      },
      "size": [
        193.530859375,
        66
      ],
      "type": "GetVideoComponents",
      "widgets_values": []
    },
    {
      "flags": {},
      "id": 37,
      "inputs": [
        {
          "link": 50,
          "name": "",
          "type": "*"
        }
      ],
      "mode": 0,
      "order": 8,
      "outputs": [
        {
          "links": [
            69,
            114
          ],
          "name": "",
          "type": "IMAGE"
        }
      ],
      "pos": [
        2050,
        80
      ],
      "properties": {
        "horizontal": false,
        "showOutputText": false
      },
      "size": [
        75,
        26
      ],
      "type": "Reroute"
    },
    {
      "flags": {},
      "id": 38,
      "inputs": [
        {
          "link": 55,
          "name": "",
          "type": "*"
        }
      ],
      "mode": 0,
      "order": 10,
      "outputs": [
        {
          "links": [
            115,
            118
          ],
          "name": "",
          "type": "IMAGE"
        }
      ],
      "pos": [
        2050,
        810
      ],
      "properties": {
        "horizontal": false,
        "showOutputText": false
      },
      "size": [
        75,
        26
      ],
      "type": "Reroute"
    },
    {
      "flags": {},
      "id": 48,
      "inputs": [
        {
          "link": 90,
          "name": "video",
          "type": "VIDEO"
        }
      ],
      "mode": 0,
      "order": 24,
      "outputs": [],
      "pos": [
        4300,
        410
      ],
      "properties": {},
      "size": [
        780,
        480
      ],
      "type": "SaveVideo",
      "widgets_values": [
        "video/ComfyUI",
        "auto",
        "auto"
      ]
    },
    {
      "flags": {},
      "id": 42,
      "inputs": [
        {
          "link": 68,
          "name": "image1",
          "type": "IMAGE"
        },
        {
          "link": 69,
          "name": "image2",
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 13,
      "outputs": [
        {
          "links": [
            70,
            95
          ],
          "name": "VIDEO",
          "type": "VIDEO"
        }
      ],
      "pos": [
        2320,
        -320
      ],
      "properties": {
        "cnr_id": "comfy-core",
        "proxyWidgets": [],
        "ver": "0.4.0"
      },
      "size": [
        210,
        78
      ],
      "type": "ba9a7b30-cca0-4afc-9b44-ebfdc6121d4a",
      "widgets_values": []
    },
    {
      "flags": {},
      "id": 58,
      "inputs": [
        {
          "link": 114,
          "name": "image1",
          "type": "IMAGE"
        },
        {
          "link": 115,
          "name": "image2",
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 14,
      "outputs": [
        {
          "links": [
            112,
            113
          ],
          "name": "VIDEO",
          "type": "VIDEO"
        }
      ],
      "pos": [
        2320,
        410
      ],
      "properties": {
        "cnr_id": "comfy-core",
        "proxyWidgets": [],
        "ver": "0.4.0"
      },
      "size": [
        210,
        78
      ],
      "type": "11a1a6b5-aeba-4ca8-af71-f4f52dc2ccc6",
      "widgets_values": []
    },
    {
      "flags": {},
      "id": 59,
      "inputs": [
        {
          "link": 118,
          "name": "image1",
          "type": "IMAGE"
        },
        {
          "link": 119,
          "name": "image2",
          "type": "IMAGE"
        }
      ],
      "mode": 0,
      "order": 15,
      "outputs": [
        {
          "links": [
            116,
            117
          ],
          "name": "VIDEO",
          "type": "VIDEO"
        }
      ],
      "pos": [
        2320,
        1170
      ],
      "properties": {
        "cnr_id": "comfy-core",
        "proxyWidgets": [],
        "ver": "0.4.0"
      },
      "size": [
        210,
        78
      ],
      "type": "60386633-e2b8-4772-8649-0b125045c63a",
      "widgets_values": []
    }
  ],
  "revision": 0,
  "version": 0.4
}