{
  "config": {},
  "extra": {
    "ds": {
      "offset": [
        3043.1887722834667,
        239.48474614118933
      ],
      "scale": 1.1892046757851096
    }
  },
  "groups": [
    {
      "bounding": [
        -2097.3578335399984,
        0.24558931482667187,
        410,
        600
      ],
      "flags": {},
      "id": 1,
      "title": "Input"
    },
    {
      "bounding": [
        -1600,
        -200,
        950,
        2550
      ],
      "color": "#8a6fb1",
      "flags": {},
      "id": 2,
      "title": "Generated VFX Passes"
    },
    {
      "bounding": [
        -600,
        0,
        750,
        1260
      ],
      "color": "#7a7a41",
      "flags": {},
      "id": 3,
      "title": "Blend Controls"
    },
    {
      "bounding": [
        1000,
        0,
        1650,
        1260
      ],
      "color": "#88A",
      "flags": {},
      "id": 4,
      "title": "Seedance 2.0 Output"
    }
  ],
  "id": "a0fc9ae3-8f6c-4a99-9a88-0dd6473076d5",
  "last_link_id": 30,
  "last_node_id": 27,
  "links": [
    [
      1,
      1,
      0,
      2,
      0,
      "IMAGE"
    ],
    [
      2,
      1,
      0,
      3,
      0,
      "IMAGE"
    ],
    [
      3,
      1,
      0,
      4,
      0,
      "IMAGE"
    ],
    [
      4,
      1,
      0,
      5,
      0,
      "IMAGE"
    ],
    [
      5,
      1,
      0,
      7,
      0,
      "IMAGE"
    ],
    [
      6,
      2,
      0,
      7,
      1,
      "IMAGE"
    ],
    [
      7,
      6,
      0,
      7,
      2,
      "FLOAT"
    ],
    [
      8,
      3,
      0,
      9,
      1,
      "IMAGE"
    ],
    [
      9,
      7,
      0,
      9,
      0,
      "IMAGE"
    ],
    [
      10,
      8,
      0,
      9,
      2,
      "FLOAT"
    ],
    [
      11,
      4,
      0,
      11,
      1,
      "IMAGE"
    ],
    [
      12,
      9,
      0,
      11,
      0,
      "IMAGE"
    ],
    [
      13,
      10,
      0,
      11,
      2,
      "FLOAT"
    ],
    [
      14,
      5,
      0,
      13,
      1,
      "IMAGE"
    ],
    [
      15,
      11,
      0,
      13,
      0,
      "IMAGE"
    ],
    [
      16,
      12,
      0,
      13,
      2,
      "FLOAT"
    ],
    [
      17,
      13,
      0,
      14,
      0,
      "IMAGE"
    ],
    [
      19,
      13,
      0,
      16,
      0,
      "IMAGE"
    ],
    [
      20,
      16,
      0,
      17,
      0,
      "STRING"
    ],
    [
      21,
      17,
      0,
      20,
      1,
      "STRING"
    ],
    [
      22,
      13,
      0,
      20,
      6,
      "IMAGE"
    ],
    [
      23,
      1,
      0,
      20,
      7,
      "IMAGE"
    ],
    [
      26,
      20,
      0,
      21,
      0,
      "VIDEO"
    ],
    [
      27,
      2,
      0,
      23,
      0,
      "IMAGE"
    ],
    [
      28,
      3,
      0,
      24,
      0,
      "IMAGE"
    ],
    [
      29,
      4,
      0,
      25,
      0,
      "IMAGE"
    ],
    [
      30,
      5,
      0,
      26,
      0,
      "IMAGE"
    ]
  ],
  "nodes": [
    {
      "flags": {},
      "id": 1,
      "inputs": [
        {
          "link": null,
          "localized_name": "image",
          "name": "image",
          "type": "COMBO",
          "widget": {
            "name": "image"
          }
        },
        {
          "link": null,
          "localized_name": "choose file to upload",
          "name": "upload",
          "type": "IMAGEUPLOAD",
          "widget": {
            "name": "upload"
          }
        }
      ],
      "mode": 0,
      "order": 0,
      "outputs": [
        {
          "links": [
            1,
            2,
            3,
            4,
            5,
            23
          ],
          "localized_name": "IMAGE",
          "name": "IMAGE",
          "type": "IMAGE"
        },
        {
          "links": null,
          "localized_name": "MASK",
          "name": "MASK",
          "type": "MASK"
        }
      ],
      "pos": [
        -2050,
        90
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "size": [
        300,
        396.171875
      ],
      "title": "Input reference image",
      "type": "LoadImage",
      "widgets_values": [
        "0a7de162b039a84850dfbff6b319c67bea78a97aaff0c1d2fc979d68914586f8.png",
        "image"
      ]
    },
    {
      "bgcolor": "#653",
      "color": "#432",
      "flags": {},
      "id": 2,
      "inputs": [
        {
          "link": 1,
          "localized_name": "images",
          "name": "images",
          "shape": 7,
          "type": "IMAGE"
        },
        {
          "link": null,
          "localized_name": "files",
          "name": "files",
          "shape": 7,
          "type": "GEMINI_INPUT_FILES"
        },
        {
          "link": null,
          "localized_name": "prompt",
          "name": "prompt",
          "type": "STRING",
          "widget": {
            "name": "prompt"
          }
        },
        {
          "link": null,
          "localized_name": "model",
          "name": "model",
          "type": "COMBO",
          "widget": {
            "name": "model"
          }
        },
        {
          "link": null,
          "localized_name": "seed",
          "name": "seed",
          "type": "INT",
          "widget": {
            "name": "seed"
          }
        },
        {
          "link": null,
          "localized_name": "aspect_ratio",
          "name": "aspect_ratio",
          "type": "COMBO",
          "widget": {
            "name": "aspect_ratio"
          }
        },
        {
          "link": null,
          "localized_name": "resolution",
          "name": "resolution",
          "type": "COMBO",
          "widget": {
            "name": "resolution"
          }
        },
        {
          "link": null,
          "localized_name": "response_modalities",
          "name": "response_modalities",
          "type": "COMBO",
          "widget": {
            "name": "response_modalities"
          }
        },
        {
          "link": null,
          "localized_name": "system_prompt",
          "name": "system_prompt",
          "shape": 7,
          "type": "STRING",
          "widget": {
            "name": "system_prompt"
          }
        }
      ],
      "mode": 0,
      "order": 6,
      "outputs": [
        {
          "links": [
            6,
            27
          ],
          "localized_name": "IMAGE",
          "name": "IMAGE",
          "type": "IMAGE"
        },
        {
          "links": null,
          "localized_name": "STRING",
          "name": "STRING",
          "type": "STRING"
        }
      ],
      "pos": [
        -1560,
        -130
      ],
      "properties": {
        "Node name for S&R": "GeminiImage2Node"
      },
      "showAdvanced": true,
      "size": [
        460,
        500
      ],
      "title": "Pass 1 - Chromatic aberration",
      "type": "GeminiImage2Node",
      "widgets_values": [
        "Using the uploaded image as a strict reference, create a full-frame chromatic aberration pass. Preserve the exact subject, composition, lighting, geometry, identity, colors, and aspect ratio. Add only subtle optical RGB edge separation, prism fringing on high-contrast edges, slight red/cyan fringe near the image borders, and restrained glass dispersion. Do not add text, logos, watermarks, new objects, duplicate subjects, or change the scene.",
        "Nano Banana 2 (Gemini 3.1 Flash Image)",
        947627340135294,
        "randomize",
        "auto",
        "2K",
        "IMAGE",
        "You are a precise VFX image-pass generator. Preserve the input image exactly except for the requested optical effect. Return an image only."
      ]
    },
    {
      "flags": {},
      "id": 3,
      "inputs": [
        {
          "link": 2,
          "localized_name": "image",
          "name": "image",
          "type": "IMAGE"
        },
        {
          "link": null,
          "localized_name": "blur_radius",
          "name": "blur_radius",
          "type": "INT",
          "widget": {
            "name": "blur_radius"
          }
        },
        {
          "link": null,
          "localized_name": "sigma",
          "name": "sigma",
          "type": "FLOAT",
          "widget": {
            "name": "sigma"
          }
        }
      ],
      "mode": 0,
      "order": 7,
      "outputs": [
        {
          "links": [
            8,
            28
          ],
          "localized_name": "IMAGE",
          "name": "IMAGE",
          "type": "IMAGE"
        }
      ],
      "pos": [
        -1560,
        440
      ],
      "properties": {
        "Node name for S&R": "ImageBlur"
      },
      "size": [
        460,
        200.3125
      ],
      "title": "Pass 2 - Bloom blur source",
      "type": "ImageBlur",
      "widgets_values": [
        19,
        5
      ]
    },
    {
      "bgcolor": "#653",
      "color": "#432",
      "flags": {
        "collapsed": false
      },
      "id": 4,
      "inputs": [
        {
          "link": 3,
          "localized_name": "images",
          "name": "images",
          "shape": 7,
          "type": "IMAGE"
        },
        {
          "link": null,
          "localized_name": "files",
          "name": "files",
          "shape": 7,
          "type": "GEMINI_INPUT_FILES"
        },
        {
          "link": null,
          "localized_name": "prompt",
          "name": "prompt",
          "type": "STRING",
          "widget": {
            "name": "prompt"
          }
        },
        {
          "link": null,
          "localized_name": "model",
          "name": "model",
          "type": "COMBO",
          "widget": {
            "name": "model"
          }
        },
        {
          "link": null,
          "localized_name": "seed",
          "name": "seed",
          "type": "INT",
          "widget": {
            "name": "seed"
          }
        },
        {
          "link": null,
          "localized_name": "aspect_ratio",
          "name": "aspect_ratio",
          "type": "COMBO",
          "widget": {
            "name": "aspect_ratio"
          }
        },
        {
          "link": null,
          "localized_name": "resolution",
          "name": "resolution",
          "type": "COMBO",
          "widget": {
            "name": "resolution"
          }
        },
        {
          "link": null,
          "localized_name": "response_modalities",
          "name": "response_modalities",
          "type": "COMBO",
          "widget": {
            "name": "response_modalities"
          }
        },
        {
          "link": null,
          "localized_name": "system_prompt",
          "name": "system_prompt",
          "shape": 7,
          "type": "STRING",
          "widget": {
            "name": "system_prompt"
          }
        }
      ],
      "mode": 0,
      "order": 8,
      "outputs": [
        {
          "links": [
            11,
            29
          ],
          "localized_name": "IMAGE",
          "name": "IMAGE",
          "type": "IMAGE"
        },
        {
          "links": null,
          "localized_name": "STRING",
          "name": "STRING",
          "type": "STRING"
        }
      ],
      "pos": [
        -1560,
        849.764585458697
      ],
      "properties": {
        "Node name for S&R": "GeminiImage2Node"
      },
      "showAdvanced": true,
      "size": [
        460,
        656.046875
      ],
      "title": "Pass 3 - Lens flare overlay",
      "type": "GeminiImage2Node",
      "widgets_values": [
        "Create a same-aspect-ratio black-background lens flare overlay matched to the uploaded reference image. The output should mostly be pure black with only realistic optical elements: soft anamorphic streaks, highlight glints, flare ghosts, subtle halation around existing bright light directions, and a few faint dust/sensor sparkle artifacts. Do not reproduce the scene itself. Do not add text, logos, UI, captions, or new objects. This will be blended with Screen/Add mode over the original image.",
        "Nano Banana 2 (Gemini 3.1 Flash Image)",
        148534497297643,
        "randomize",
        "auto",
        "2K",
        "IMAGE",
        "You generate optical overlay passes for compositing. Keep non-flare areas black so the pass can be screen-blended."
      ]
    },
    {
      "bgcolor": "#653",
      "color": "#432",
      "flags": {},
      "id": 5,
      "inputs": [
        {
          "link": 4,
          "localized_name": "images",
          "name": "images",
          "shape": 7,
          "type": "IMAGE"
        },
        {
          "link": null,
          "localized_name": "files",
          "name": "files",
          "shape": 7,
          "type": "GEMINI_INPUT_FILES"
        },
        {
          "link": null,
          "localized_name": "prompt",
          "name": "prompt",
          "type": "STRING",
          "widget": {
            "name": "prompt"
          }
        },
        {
          "link": null,
          "localized_name": "model",
          "name": "model",
          "type": "COMBO",
          "widget": {
            "name": "model"
          }
        },
        {
          "link": null,
          "localized_name": "seed",
          "name": "seed",
          "type": "INT",
          "widget": {
            "name": "seed"
          }
        },
        {
          "link": null,
          "localized_name": "aspect_ratio",
          "name": "aspect_ratio",
          "type": "COMBO",
          "widget": {
            "name": "aspect_ratio"
          }
        },
        {
          "link": null,
          "localized_name": "resolution",
          "name": "resolution",
          "type": "COMBO",
          "widget": {
            "name": "resolution"
          }
        },
        {
          "link": null,
          "localized_name": "response_modalities",
          "name": "response_modalities",
          "type": "COMBO",
          "widget": {
            "name": "response_modalities"
          }
        },
        {
          "link": null,
          "localized_name": "system_prompt",
          "name": "system_prompt",
          "shape": 7,
          "type": "STRING",
          "widget": {
            "name": "system_prompt"
          }
        }
      ],
      "mode": 0,
      "order": 9,
      "outputs": [
        {
          "links": [
            14,
            30
          ],
          "localized_name": "IMAGE",
          "name": "IMAGE",
          "type": "IMAGE"
        },
        {
          "links": null,
          "localized_name": "STRING",
          "name": "STRING",
          "type": "STRING"
        }
      ],
      "pos": [
        -1560,
        1580
      ],
      "properties": {
        "Node name for S&R": "GeminiImage2Node"
      },
      "showAdvanced": true,
      "size": [
        460,
        726.796875
      ],
      "title": "Pass 4 - Film finish",
      "type": "GeminiImage2Node",
      "widgets_values": [
        "Using the uploaded image as a strict reference, create a film finishing pass version of the same frame. Preserve all content, identity, framing, and object layout exactly. Add subtle highlight rolloff, soft halation, restrained film grain, very mild vignette, faint gate texture, and a cinematic color finish. Do not add text, logos, captions, watermarks, new people, new props, or change the scene.",
        "Nano Banana 2 (Gemini 3.1 Flash Image)",
        685209943797967,
        "randomize",
        "auto",
        "2K",
        "IMAGE",
        "You are a finishing artist producing a restrained full-frame grade pass. Preserve scene content exactly and return an image only."
      ]
    },
    {
      "flags": {},
      "id": 6,
      "inputs": [
        {
          "link": null,
          "localized_name": "value",
          "name": "value",
          "type": "FLOAT",
          "widget": {
            "name": "value"
          }
        }
      ],
      "mode": 0,
      "order": 1,
      "outputs": [
        {
          "links": [
            7
          ],
          "localized_name": "FLOAT",
          "name": "FLOAT",
          "type": "FLOAT"
        }
      ],
      "pos": [
        -560,
        100
      ],
      "properties": {
        "Node name for S&R": "PrimitiveFloat"
      },
      "size": [
        225,
        104.390625
      ],
      "title": "Chromatic strength",
      "type": "PrimitiveFloat",
      "widgets_values": [
        0.18
      ]
    },
    {
      "flags": {},
      "id": 7,
      "inputs": [
        {
          "link": 5,
          "localized_name": "image1",
          "name": "image1",
          "type": "IMAGE"
        },
        {
          "link": 6,
          "localized_name": "image2",
          "name": "image2",
          "type": "IMAGE"
        },
        {
          "link": 7,
          "localized_name": "blend_factor",
          "name": "blend_factor",
          "type": "FLOAT",
          "widget": {
            "name": "blend_factor"
          }
        },
        {
          "link": null,
          "localized_name": "blend_mode",
          "name": "blend_mode",
          "type": "COMBO",
          "widget": {
            "name": "blend_mode"
          }
        }
      ],
      "mode": 0,
      "order": 10,
      "outputs": [
        {
          "links": [
            9
          ],
          "localized_name": "IMAGE",
          "name": "IMAGE",
          "type": "IMAGE"
        }
      ],
      "pos": [
        -260,
        100
      ],
      "properties": {
        "Node name for S&R": "ImageBlend"
      },
      "size": [
        340,
        226.953125
      ],
      "title": "Blend chromatic",
      "type": "ImageBlend",
      "widgets_values": [
        0.18,
        "normal"
      ]
    },
    {
      "flags": {},
      "id": 8,
      "inputs": [
        {
          "link": null,
          "localized_name": "value",
          "name": "value",
          "type": "FLOAT",
          "widget": {
            "name": "value"
          }
        }
      ],
      "mode": 0,
      "order": 2,
      "outputs": [
        {
          "links": [
            10
          ],
          "localized_name": "FLOAT",
          "name": "FLOAT",
          "type": "FLOAT"
        }
      ],
      "pos": [
        -560,
        400
      ],
      "properties": {
        "Node name for S&R": "PrimitiveFloat"
      },
      "size": [
        225,
        104.390625
      ],
      "title": "Glow strength",
      "type": "PrimitiveFloat",
      "widgets_values": [
        0.28
      ]
    },
    {
      "flags": {},
      "id": 9,
      "inputs": [
        {
          "link": 9,
          "localized_name": "image1",
          "name": "image1",
          "type": "IMAGE"
        },
        {
          "link": 8,
          "localized_name": "image2",
          "name": "image2",
          "type": "IMAGE"
        },
        {
          "link": 10,
          "localized_name": "blend_factor",
          "name": "blend_factor",
          "type": "FLOAT",
          "widget": {
            "name": "blend_factor"
          }
        },
        {
          "link": null,
          "localized_name": "blend_mode",
          "name": "blend_mode",
          "type": "COMBO",
          "widget": {
            "name": "blend_mode"
          }
        }
      ],
      "mode": 0,
      "order": 15,
      "outputs": [
        {
          "links": [
            12
          ],
          "localized_name": "IMAGE",
          "name": "IMAGE",
          "type": "IMAGE"
        }
      ],
      "pos": [
        -260,
        400
      ],
      "properties": {
        "Node name for S&R": "ImageBlend"
      },
      "size": [
        340,
        210
      ],
      "title": "Blend bloom/glow",
      "type": "ImageBlend",
      "widgets_values": [
        0.28,
        "screen"
      ]
    },
    {
      "flags": {},
      "id": 10,
      "inputs": [
        {
          "link": null,
          "localized_name": "value",
          "name": "value",
          "type": "FLOAT",
          "widget": {
            "name": "value"
          }
        }
      ],
      "mode": 0,
      "order": 3,
      "outputs": [
        {
          "links": [
            13
          ],
          "localized_name": "FLOAT",
          "name": "FLOAT",
          "type": "FLOAT"
        }
      ],
      "pos": [
        -560,
        700
      ],
      "properties": {
        "Node name for S&R": "PrimitiveFloat"
      },
      "size": [
        225,
        104.390625
      ],
      "title": "Lens flare strength",
      "type": "PrimitiveFloat",
      "widgets_values": [
        0.6
      ]
    },
    {
      "flags": {},
      "id": 11,
      "inputs": [
        {
          "link": 12,
          "localized_name": "image1",
          "name": "image1",
          "type": "IMAGE"
        },
        {
          "link": 11,
          "localized_name": "image2",
          "name": "image2",
          "type": "IMAGE"
        },
        {
          "link": 13,
          "localized_name": "blend_factor",
          "name": "blend_factor",
          "type": "FLOAT",
          "widget": {
            "name": "blend_factor"
          }
        },
        {
          "link": null,
          "localized_name": "blend_mode",
          "name": "blend_mode",
          "type": "COMBO",
          "widget": {
            "name": "blend_mode"
          }
        }
      ],
      "mode": 0,
      "order": 16,
      "outputs": [
        {
          "links": [
            15
          ],
          "localized_name": "IMAGE",
          "name": "IMAGE",
          "type": "IMAGE"
        }
      ],
      "pos": [
        -260,
        700
      ],
      "properties": {
        "Node name for S&R": "ImageBlend"
      },
      "size": [
        340,
        210
      ],
      "title": "Blend lens flare",
      "type": "ImageBlend",
      "widgets_values": [
        0.42,
        "screen"
      ]
    },
    {
      "flags": {},
      "id": 12,
      "inputs": [
        {
          "link": null,
          "localized_name": "value",
          "name": "value",
          "type": "FLOAT",
          "widget": {
            "name": "value"
          }
        }
      ],
      "mode": 0,
      "order": 4,
      "outputs": [
        {
          "links": [
            16
          ],
          "localized_name": "FLOAT",
          "name": "FLOAT",
          "type": "FLOAT"
        }
      ],
      "pos": [
        -560,
        1000
      ],
      "properties": {
        "Node name for S&R": "PrimitiveFloat"
      },
      "size": [
        225,
        104.390625
      ],
      "title": "Film finish strength",
      "type": "PrimitiveFloat",
      "widgets_values": [
        0.25
      ]
    },
    {
      "flags": {},
      "id": 13,
      "inputs": [
        {
          "link": 15,
          "localized_name": "image1",
          "name": "image1",
          "type": "IMAGE"
        },
        {
          "link": 14,
          "localized_name": "image2",
          "name": "image2",
          "type": "IMAGE"
        },
        {
          "link": 16,
          "localized_name": "blend_factor",
          "name": "blend_factor",
          "type": "FLOAT",
          "widget": {
            "name": "blend_factor"
          }
        },
        {
          "link": null,
          "localized_name": "blend_mode",
          "name": "blend_mode",
          "type": "COMBO",
          "widget": {
            "name": "blend_mode"
          }
        }
      ],
      "mode": 0,
      "order": 17,
      "outputs": [
        {
          "links": [
            17,
            19,
            22
          ],
          "localized_name": "IMAGE",
          "name": "IMAGE",
          "type": "IMAGE"
        }
      ],
      "pos": [
        -260,
        1000
      ],
      "properties": {
        "Node name for S&R": "ImageBlend"
      },
      "size": [
        340,
        210
      ],
      "title": "Final VFX composite",
      "type": "ImageBlend",
      "widgets_values": [
        0.25,
        "soft_light"
      ]
    },
    {
      "flags": {
        "collapsed": false
      },
      "id": 14,
      "inputs": [
        {
          "link": 17,
          "localized_name": "images",
          "name": "images",
          "type": "IMAGE"
        },
        {
          "link": null,
          "localized_name": "filename_prefix",
          "name": "filename_prefix",
          "type": "STRING",
          "widget": {
            "name": "filename_prefix"
          }
        }
      ],
      "mode": 0,
      "order": 18,
      "outputs": [],
      "pos": [
        200,
        30
      ],
      "properties": {
        "Node name for S&R": "SaveImage"
      },
      "size": [
        750,
        670
      ],
      "title": "Save final reference",
      "type": "SaveImage",
      "widgets_values": [
        "vfx_passes_seedance2/final_vfx_reference"
      ]
    },
    {
      "bgcolor": "#653",
      "color": "#432",
      "flags": {},
      "id": 16,
      "inputs": [
        {
          "link": 19,
          "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"
        },
        {
          "link": null,
          "localized_name": "prompt",
          "name": "prompt",
          "type": "STRING",
          "widget": {
            "name": "prompt"
          }
        },
        {
          "link": null,
          "localized_name": "model",
          "name": "model",
          "type": "COMBO",
          "widget": {
            "name": "model"
          }
        },
        {
          "link": null,
          "localized_name": "seed",
          "name": "seed",
          "type": "INT",
          "widget": {
            "name": "seed"
          }
        },
        {
          "link": null,
          "localized_name": "system_prompt",
          "name": "system_prompt",
          "shape": 7,
          "type": "STRING",
          "widget": {
            "name": "system_prompt"
          }
        }
      ],
      "mode": 0,
      "order": 19,
      "outputs": [
        {
          "links": [
            20
          ],
          "localized_name": "STRING",
          "name": "STRING",
          "type": "STRING"
        }
      ],
      "pos": [
        1040,
        100
      ],
      "properties": {
        "Node name for S&R": "GeminiNode"
      },
      "showAdvanced": true,
      "size": [
        500,
        620
      ],
      "title": "Write Seedance motion prompt",
      "type": "GeminiNode",
      "widgets_values": [
        "Analyze the final VFX reference image and write one vivid Seedance 2.0 reference-to-video motion prompt that makes the shot feel cinematic, dimensional, and high contrast rather than flat. Preserve the exact subject, identity, composition, object layout, and baked VFX look, including chromatic aberration, bloom/glow, lens flare glints, halation, film grain, vignette, and polished cinematic color. Infer the strongest scene-appropriate camera move and describe it with concrete film language: foreground/background parallax, dolly or orbital movement, slight roll or tilt where useful, rack focus, lens compression, motion blur, volumetric light, shadow sweeps, highlight pulses, atmospheric particles, and layered depth. Add purposeful movement in the scene elements so the frame has scale and energy, but avoid chaotic motion. Include strict constraints against text, logo changes, object morphing, extra subjects, warped geometry, scene redesign, and washed-out low-contrast lighting. Return only one 80-120 word prompt.",
        "gemini-3-1-flash-lite",
        824781862334978,
        "randomize",
        "You are a senior cinematic motion prompt writer for Seedance 2.0. Convert a still VFX reference into a film-trailer-quality video direction with strong depth, lighting contrast, camera motivation, and layered motion while preserving the reference frame exactly. Do not write generic or flat motion such as only subtle drift; choose a controlled cinematic move that reveals scale and parallax. Return exactly one prompt with no markdown."
      ]
    },
    {
      "flags": {},
      "id": 17,
      "inputs": [
        {
          "link": 20,
          "localized_name": "source",
          "name": "source",
          "type": "*"
        }
      ],
      "mode": 0,
      "order": 20,
      "outputs": [
        {
          "links": [
            21
          ],
          "localized_name": "STRING",
          "name": "STRING",
          "type": "STRING"
        }
      ],
      "pos": [
        1600,
        100
      ],
      "properties": {
        "Node name for S&R": "PreviewAny"
      },
      "size": [
        390,
        370
      ],
      "title": "Review generated prompt",
      "type": "PreviewAny",
      "widgets_values": [
        null,
        null,
        null
      ]
    },
    {
      "bgcolor": "#653",
      "color": "#432",
      "flags": {},
      "id": 20,
      "inputs": [
        {
          "link": null,
          "localized_name": "model",
          "name": "model",
          "type": "COMFY_DYNAMICCOMBO_V3",
          "widget": {
            "name": "model"
          }
        },
        {
          "link": 21,
          "localized_name": "prompt",
          "name": "model.prompt",
          "type": "STRING",
          "widget": {
            "name": "model.prompt"
          }
        },
        {
          "link": null,
          "localized_name": "resolution",
          "name": "model.resolution",
          "type": "COMBO",
          "widget": {
            "name": "model.resolution"
          }
        },
        {
          "link": null,
          "localized_name": "ratio",
          "name": "model.ratio",
          "type": "COMBO",
          "widget": {
            "name": "model.ratio"
          }
        },
        {
          "link": null,
          "localized_name": "duration",
          "name": "model.duration",
          "type": "INT",
          "widget": {
            "name": "model.duration"
          }
        },
        {
          "link": null,
          "localized_name": "generate_audio",
          "name": "model.generate_audio",
          "type": "BOOLEAN",
          "widget": {
            "name": "model.generate_audio"
          }
        },
        {
          "label": "image_1",
          "link": 22,
          "localized_name": "model.reference_images.image_1",
          "name": "model.reference_images.image_1",
          "shape": 7,
          "type": "IMAGE"
        },
        {
          "label": "image_2",
          "link": 23,
          "localized_name": "model.reference_images.image_2",
          "name": "model.reference_images.image_2",
          "shape": 7,
          "type": "IMAGE"
        },
        {
          "label": "image_3",
          "link": null,
          "localized_name": "model.reference_images.image_3",
          "name": "model.reference_images.image_3",
          "shape": 7,
          "type": "IMAGE"
        },
        {
          "label": "video_1",
          "link": null,
          "localized_name": "model.reference_videos.video_1",
          "name": "model.reference_videos.video_1",
          "shape": 7,
          "type": "VIDEO"
        },
        {
          "label": "audio_1",
          "link": null,
          "localized_name": "model.reference_audios.audio_1",
          "name": "model.reference_audios.audio_1",
          "shape": 7,
          "type": "AUDIO"
        },
        {
          "label": "asset_1",
          "link": null,
          "localized_name": "model.reference_assets.asset_1",
          "name": "model.reference_assets.asset_1",
          "shape": 7,
          "type": "STRING"
        },
        {
          "link": null,
          "localized_name": "auto_downscale",
          "name": "model.auto_downscale",
          "shape": 7,
          "type": "BOOLEAN",
          "widget": {
            "name": "model.auto_downscale"
          }
        },
        {
          "link": null,
          "localized_name": "model.auto_upscale",
          "name": "model.auto_upscale",
          "shape": 7,
          "type": "BOOLEAN",
          "widget": {
            "name": "model.auto_upscale"
          }
        },
        {
          "link": null,
          "localized_name": "seed",
          "name": "seed",
          "type": "INT",
          "widget": {
            "name": "seed"
          }
        },
        {
          "link": null,
          "localized_name": "watermark",
          "name": "watermark",
          "type": "BOOLEAN",
          "widget": {
            "name": "watermark"
          }
        }
      ],
      "mode": 0,
      "order": 21,
      "outputs": [
        {
          "links": [
            26
          ],
          "localized_name": "VIDEO",
          "name": "VIDEO",
          "type": "VIDEO"
        }
      ],
      "pos": [
        2050.0181150266835,
        99.52486733683367
      ],
      "properties": {
        "Node name for S&R": "ByteDance2ReferenceNode"
      },
      "showAdvanced": true,
      "size": [
        550,
        569.5625
      ],
      "title": "Seedance 2.0 reference to video",
      "type": "ByteDance2ReferenceNode",
      "widgets_values": [
        "Seedance 2.0",
        "",
        "720p",
        "adaptive",
        6,
        true,
        false,
        false,
        20481295,
        false,
        false
      ]
    },
    {
      "flags": {},
      "id": 21,
      "inputs": [
        {
          "link": 26,
          "localized_name": "video",
          "name": "video",
          "type": "VIDEO"
        },
        {
          "link": null,
          "localized_name": "filename_prefix",
          "name": "filename_prefix",
          "type": "STRING",
          "widget": {
            "name": "filename_prefix"
          }
        },
        {
          "link": null,
          "localized_name": "format",
          "name": "format",
          "type": "COMBO",
          "widget": {
            "name": "format"
          }
        },
        {
          "link": null,
          "localized_name": "codec",
          "name": "codec",
          "type": "COMBO",
          "widget": {
            "name": "codec"
          }
        }
      ],
      "mode": 0,
      "order": 22,
      "outputs": [],
      "pos": [
        2700,
        100
      ],
      "properties": {
        "Node name for S&R": "SaveVideo"
      },
      "size": [
        1170,
        707.078125
      ],
      "title": "Save Seedance MP4",
      "type": "SaveVideo",
      "widgets_values": [
        "video/vfx_passes_seedance2",
        "mp4",
        "h264"
      ]
    },
    {
      "bgcolor": "#000",
      "color": "#222",
      "flags": {},
      "id": 22,
      "inputs": [],
      "mode": 0,
      "order": 5,
      "outputs": [],
      "pos": [
        -2600,
        30
      ],
      "properties": {
        "Node name for S&R": "MarkdownNote"
      },
      "size": [
        400,
        570
      ],
      "title": "VFX Passes to Video",
      "type": "MarkdownNote",
      "widgets_values": [
        "# VFX Passes to Video\n\nUpload a reference image, then run the workflow.\n\nPasses:\n1. **Chromatic aberration** full-frame pass, blended with Normal.\n2. **Glow/bloom** blur pass, blended with Screen.\n3. Black **lens-flare** overlay, blended with Screen.\n4. Film finish pass with **halation, grain, vignette, and color finish**, blended with Soft Light.\n\nSet any strength primitive to 0 to disable that pass. The final composite is saved and sent to Seedance 2.0 as image_1. The original image is also sent as image_2 to help preserve identity and structure.\n\nThe Seedance seed and watermark inputs are wired as primitives so the cloud API receives them as real graph inputs."
      ]
    },
    {
      "flags": {},
      "id": 23,
      "inputs": [
        {
          "link": 27,
          "localized_name": "images",
          "name": "images",
          "type": "IMAGE"
        },
        {
          "link": null,
          "localized_name": "filename_prefix",
          "name": "filename_prefix",
          "type": "STRING",
          "widget": {
            "name": "filename_prefix"
          }
        }
      ],
      "mode": 0,
      "order": 11,
      "outputs": [],
      "pos": [
        -1000,
        -140
      ],
      "properties": {
        "Node name for S&R": "SaveImage"
      },
      "size": [
        300,
        340.328125
      ],
      "title": "Save chromatic pass",
      "type": "SaveImage",
      "widgets_values": [
        "vfx_passes_seedance2/chromatic_aberration_pass"
      ]
    },
    {
      "flags": {},
      "id": 24,
      "inputs": [
        {
          "link": 28,
          "localized_name": "images",
          "name": "images",
          "type": "IMAGE"
        },
        {
          "link": null,
          "localized_name": "filename_prefix",
          "name": "filename_prefix",
          "type": "STRING",
          "widget": {
            "name": "filename_prefix"
          }
        }
      ],
      "mode": 0,
      "order": 12,
      "outputs": [],
      "pos": [
        -1000,
        440
      ],
      "properties": {
        "Node name for S&R": "SaveImage"
      },
      "size": [
        300,
        340.328125
      ],
      "title": "Save glow pass",
      "type": "SaveImage",
      "widgets_values": [
        "vfx_passes_seedance2/glow_blur_pass"
      ]
    },
    {
      "flags": {},
      "id": 25,
      "inputs": [
        {
          "link": 29,
          "localized_name": "images",
          "name": "images",
          "type": "IMAGE"
        },
        {
          "link": null,
          "localized_name": "filename_prefix",
          "name": "filename_prefix",
          "type": "STRING",
          "widget": {
            "name": "filename_prefix"
          }
        }
      ],
      "mode": 0,
      "order": 13,
      "outputs": [],
      "pos": [
        -1000,
        850
      ],
      "properties": {
        "Node name for S&R": "SaveImage"
      },
      "size": [
        300,
        340.328125
      ],
      "title": "Save lens flare pass",
      "type": "SaveImage",
      "widgets_values": [
        "vfx_passes_seedance2/lens_flare_overlay_pass"
      ]
    },
    {
      "flags": {},
      "id": 26,
      "inputs": [
        {
          "link": 30,
          "localized_name": "images",
          "name": "images",
          "type": "IMAGE"
        },
        {
          "link": null,
          "localized_name": "filename_prefix",
          "name": "filename_prefix",
          "type": "STRING",
          "widget": {
            "name": "filename_prefix"
          }
        }
      ],
      "mode": 0,
      "order": 14,
      "outputs": [],
      "pos": [
        -1000,
        1580
      ],
      "properties": {
        "Node name for S&R": "SaveImage"
      },
      "size": [
        300,
        340.328125
      ],
      "title": "Save film finish pass",
      "type": "SaveImage",
      "widgets_values": [
        "vfx_passes_seedance2/film_finish_pass"
      ]
    }
  ],
  "revision": 0,
  "version": 0.4
}