{
  "id": "9994178c-856f-479e-8ba6-cda3daf4a117",
  "revision": 0,
  "last_node_id": 368,
  "last_link_id": 671,
  "nodes": [
    {
      "id": 344,
      "type": "SaveVideo",
      "pos": [
        2440,
        180
      ],
      "size": [
        520,
        370
      ],
      "flags": {
        "collapsed": false
      },
      "order": 8,
      "mode": 0,
      "inputs": [
        {
          "name": "video",
          "type": "VIDEO",
          "link": 671
        }
      ],
      "outputs": [],
      "properties": {
        "cnr_id": "comfy-core",
        "ver": "0.19.3",
        "enableTabs": false,
        "tabWidth": 65,
        "tabXOffset": 10,
        "hasSecondTab": false,
        "secondTabText": "Send Back",
        "secondTabOffset": 80,
        "secondTabWidth": 65,
        "Node name for S&R": "SaveVideo",
        "ue_properties": {
          "input_ue_unconnectable": {},
          "version": "7.7",
          "widget_ue_connectable": {}
        }
      },
      "widgets_values": [
        "video/Seedance2.0_r2v",
        "auto",
        "auto"
      ]
    },
    {
      "id": 352,
      "type": "LoadImage",
      "pos": [
        -880,
        240
      ],
      "size": [
        290,
        370
      ],
      "flags": {},
      "order": 0,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            664,
            670
          ]
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": null
        }
      ],
      "properties": {
        "cnr_id": "comfy-core",
        "ver": "0.19.3",
        "enableTabs": false,
        "tabWidth": 65,
        "tabXOffset": 10,
        "hasSecondTab": false,
        "secondTabText": "Send Back",
        "secondTabOffset": 80,
        "secondTabWidth": 65,
        "Node name for S&R": "LoadImage",
        "ue_properties": {
          "input_ue_unconnectable": {},
          "version": "7.7",
          "widget_ue_connectable": {}
        }
      },
      "widgets_values": [
        "freezer.png",
        "image"
      ]
    },
    {
      "id": 356,
      "type": "LoadImage",
      "pos": [
        -490,
        240
      ],
      "size": [
        290,
        370
      ],
      "flags": {},
      "order": 1,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            663,
            669
          ]
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": null
        }
      ],
      "properties": {
        "cnr_id": "comfy-core",
        "ver": "0.19.3",
        "enableTabs": false,
        "tabWidth": 65,
        "tabXOffset": 10,
        "hasSecondTab": false,
        "secondTabText": "Send Back",
        "secondTabOffset": 80,
        "secondTabWidth": 65,
        "Node name for S&R": "LoadImage",
        "ue_properties": {
          "input_ue_unconnectable": {},
          "version": "7.7",
          "widget_ue_connectable": {}
        }
      },
      "widgets_values": [
        "snowboarder.png",
        "image"
      ]
    },
    {
      "id": 360,
      "type": "GeminiNode",
      "pos": [
        670,
        190
      ],
      "size": [
        460,
        780
      ],
      "flags": {},
      "order": 5,
      "mode": 0,
      "showAdvanced": true,
      "inputs": [
        {
          "name": "images",
          "shape": 7,
          "type": "IMAGE",
          "link": 666
        },
        {
          "name": "audio",
          "shape": 7,
          "type": "AUDIO",
          "link": null
        },
        {
          "name": "video",
          "shape": 7,
          "type": "VIDEO",
          "link": null
        },
        {
          "name": "files",
          "shape": 7,
          "type": "GEMINI_INPUT_FILES",
          "link": null
        }
      ],
      "outputs": [
        {
          "name": "STRING",
          "type": "STRING",
          "links": [
            655
          ]
        }
      ],
      "properties": {
        "cnr_id": "comfy-core",
        "ver": "0.22.0",
        "enableTabs": false,
        "tabWidth": 65,
        "tabXOffset": 10,
        "hasSecondTab": false,
        "secondTabText": "Send Back",
        "secondTabOffset": 80,
        "secondTabWidth": 65,
        "Node name for S&R": "GeminiNode"
      },
      "widgets_values": [
        "Create a ~15-second cinematic action sequence of a tiny snowboarder racing at high speed through a freezer environment designed like a chaotic obstacle course. The camera stays low and tightly behind him in one continuous shot with no cuts, maintaining constant forward motion.\n\nFocus on intensity and unpredictability: unstable terrain, falling and shifting objects, frequent near-collisions, and moments where he nearly loses balance but quickly recovers. The scene should feel dynamic, reactive, and alive, with realistic physics and environmental interaction rather than smooth or controlled movement.",
        "gemini-3-1-pro",
        66746703903294,
        "fixed",
        "You are a cinematic prompt generator. Your task is to convert user ideas into structured prompts for high-fidelity video generation using a strict format and physically grounded cinematic logic. Always output using exactly these five sections in this order: Subject, Action, Camera, Style, Constraints. Do not include any extra commentary, explanations, or text outside these sections.\n\nSubject: Define a single dominant subject unless the user explicitly requests multiple. Describe the subject in precise visual detail including physical traits, clothing, and distinguishing features. Maintain subject identity consistently throughout the entire sequence and do not introduce new primary subjects.\n\nAction: This is the most important section. All motion must be physically grounded and follow clear cause-and-effect logic. Structure the entire sequence as a continuous timeline using explicit timestamps formatted like 0.0–X.Xs. Actions must flow as a chain: start, progression, escalation, peak, recovery, continuation. The subject must remain in continuous motion unless explicitly stated otherwise. Include environmental interaction where the subject affects surroundings (collisions, displacement, shifting objects), and those surroundings react accordingly. Incorporate instability, loss of balance, and recovery where appropriate. Add micro-detail layering such as particles, fabric movement, subtle adjustments, and secondary reactions. Avoid vague, symbolic, or abstract actions. No teleportation or discontinuity.\n\nCamera: Always specify shot size, angle, and movement. Ensure the camera maintains spatial continuity with no cuts unless explicitly requested. The subject must remain clearly visible and trackable at all times. Camera motion must feel physically plausible, including inertia and subtle shake when appropriate (e.g., at high speed). The camera should enhance depth using foreground, midground, and background parallax.\n\nStyle: Use exactly one strong visual anchor such as a film stock, cinematic style, or artist reference. Do not combine multiple styles. This style must consistently influence lighting, color, texture, and depth of field across the entire sequence.\n\nConstraints: Always include negative prompts such as no distortion, no flicker, no artifacts, no extra limbs or deformities. Include temporal definition specifying total duration and pacing of the shot. Enforce continuity rules including stable lighting direction, coherent shadows, preserved subject identity, and no morphing unless explicitly requested. Include any explicit constraints provided by the user (e.g., snowboard only, no skis or poles).\n\nCinematic principles must always be enforced: physical realism (weight, inertia, momentum), environmental interaction (surfaces and objects react to motion), depth and parallax (layered scene behavior), lighting continuity, and clear visual readability of the subject. Motion should escalate in intensity over time when appropriate.\n\nHard rules: never output anything outside the five required sections, never omit timestamps in the Action section, never introduce multiple subjects unless requested, never use abstract or symbolic motion, never include impossible camera behavior, and never stack multiple styles."
      ],
      "color": "#432",
      "bgcolor": "#653"
    },
    {
      "id": 361,
      "type": "PreviewAny",
      "pos": [
        1210,
        190
      ],
      "size": [
        460,
        550
      ],
      "flags": {},
      "order": 6,
      "mode": 0,
      "inputs": [
        {
          "name": "source",
          "type": "*",
          "link": 655
        }
      ],
      "outputs": [
        {
          "name": "STRING",
          "type": "STRING",
          "links": [
            668
          ]
        }
      ],
      "properties": {
        "cnr_id": "comfy-core",
        "ver": "0.22.0",
        "enableTabs": false,
        "tabWidth": 65,
        "tabXOffset": 10,
        "hasSecondTab": false,
        "secondTabText": "Send Back",
        "secondTabOffset": 80,
        "secondTabWidth": 65,
        "Node name for S&R": "PreviewAny"
      },
      "widgets_values": [
        null,
        null,
        null
      ]
    },
    {
      "id": 363,
      "type": "PreviewImage",
      "pos": [
        230,
        260
      ],
      "size": [
        230,
        310
      ],
      "flags": {},
      "order": 4,
      "mode": 0,
      "inputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "link": 665
        }
      ],
      "outputs": [],
      "properties": {
        "cnr_id": "comfy-core",
        "ver": "0.22.0",
        "enableTabs": false,
        "tabWidth": 65,
        "tabXOffset": 10,
        "hasSecondTab": false,
        "secondTabText": "Send Back",
        "secondTabOffset": 80,
        "secondTabWidth": 65,
        "Node name for S&R": "PreviewImage"
      },
      "widgets_values": []
    },
    {
      "id": 365,
      "type": "MarkdownNote",
      "pos": [
        -1380,
        140
      ],
      "size": [
        370,
        820
      ],
      "flags": {},
      "order": 2,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "# Workflow Instructions\n\n1. Upload Reference Images  (e.g., location, subject, or style).\n\n2. (Optional) Use the LLM for Prompt Generation  \nThe LLM can help generate a Seedance 2.0–style prompt based on your inputs.  \n- Select the Seedance node and press Ctrl + B to bypass it (so it doesn’t run).  \n- Click Run to execute the LLM.\n\n3. Guide Google Gemini  \nWhen using the Google Gemini node, provide a clear description of what you want, including the duration (time).  \nGemini will generate a Seedance 2.0–style prompt based on your input.\n\n4. Review and Apply the Prompt  \n- Once you’re happy with the generated prompt, select the Google Gemini node and press Ctrl + B to bypass it.  \n- Go back to the Seedance node and press Ctrl + B again to enable it.  \n- Paste the generated prompt into the prompt field.\n\n5. Adjust Settings  \nSet your desired resolution, aspect ratio, and video duration in the Seedance node.\n\n6. Generate the Video  \nRun the workflow again to generate your final output.\n"
      ],
      "color": "#222",
      "bgcolor": "#000"
    },
    {
      "id": 366,
      "type": "ImageStitch",
      "pos": [
        -130,
        260
      ],
      "size": [
        270,
        190
      ],
      "flags": {},
      "order": 3,
      "mode": 0,
      "inputs": [
        {
          "name": "image1",
          "type": "IMAGE",
          "link": 663
        },
        {
          "name": "image2",
          "shape": 7,
          "type": "IMAGE",
          "link": 664
        }
      ],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            665,
            666
          ]
        }
      ],
      "properties": {
        "cnr_id": "comfy-core",
        "ver": "0.22.0",
        "enableTabs": false,
        "tabWidth": 65,
        "tabXOffset": 10,
        "hasSecondTab": false,
        "secondTabText": "Send Back",
        "secondTabOffset": 80,
        "secondTabWidth": 65,
        "Node name for S&R": "ImageStitch"
      },
      "widgets_values": [
        "right",
        true,
        0,
        "white"
      ]
    },
    {
      "id": 368,
      "type": "ByteDance2ReferenceNode",
      "pos": [
        1800,
        180
      ],
      "size": [
        400,
        428
      ],
      "flags": {},
      "order": 7,
      "mode": 0,
      "inputs": [
        {
          "name": "model.prompt",
          "type": "STRING",
          "widget": {
            "name": "model.prompt"
          },
          "link": 668
        },
        {
          "label": "image_1",
          "name": "model.reference_images.image_1",
          "shape": 7,
          "type": "IMAGE",
          "link": 669
        },
        {
          "label": "image_2",
          "name": "model.reference_images.image_2",
          "shape": 7,
          "type": "IMAGE",
          "link": 670
        },
        {
          "label": "image_3",
          "name": "model.reference_images.image_3",
          "shape": 7,
          "type": "IMAGE",
          "link": null
        },
        {
          "label": "video_1",
          "name": "model.reference_videos.video_1",
          "shape": 7,
          "type": "VIDEO",
          "link": null
        },
        {
          "label": "audio_1",
          "name": "model.reference_audios.audio_1",
          "shape": 7,
          "type": "AUDIO",
          "link": null
        },
        {
          "label": "asset_1",
          "name": "model.reference_assets.asset_1",
          "shape": 7,
          "type": "STRING",
          "link": null
        }
      ],
      "outputs": [
        {
          "name": "VIDEO",
          "type": "VIDEO",
          "links": [
            671
          ]
        }
      ],
      "properties": {
        "cnr_id": "comfy-core",
        "ver": "0.22.0",
        "enableTabs": false,
        "tabWidth": 65,
        "tabXOffset": 10,
        "hasSecondTab": false,
        "secondTabText": "Send Back",
        "secondTabOffset": 80,
        "secondTabWidth": 65,
        "Node name for S&R": "ByteDance2ReferenceNode"
      },
      "widgets_values": [
        "Seedance 2.0",
        "",
        "720p",
        "9:16",
        15,
        true,
        true,
        false,
        0,
        "randomize",
        false
      ],
      "color": "#432",
      "bgcolor": "#653"
    }
  ],
  "links": [
    [
      655,
      360,
      0,
      361,
      0,
      "STRING"
    ],
    [
      663,
      356,
      0,
      366,
      0,
      "IMAGE"
    ],
    [
      664,
      352,
      0,
      366,
      1,
      "IMAGE"
    ],
    [
      665,
      366,
      0,
      363,
      0,
      "IMAGE"
    ],
    [
      666,
      366,
      0,
      360,
      0,
      "IMAGE"
    ],
    [
      668,
      361,
      0,
      368,
      0,
      "STRING"
    ],
    [
      669,
      356,
      0,
      368,
      1,
      "IMAGE"
    ],
    [
      670,
      352,
      0,
      368,
      2,
      "IMAGE"
    ],
    [
      671,
      368,
      0,
      344,
      0,
      "VIDEO"
    ]
  ],
  "groups": [
    {
      "id": 1,
      "title": "LLM",
      "bounding": [
        640,
        100,
        1054.2587669146694,
        944.5034801612671
      ],
      "color": "#3f789e",
      "flags": {}
    },
    {
      "id": 2,
      "title": "Reference Images",
      "bounding": [
        -980,
        100,
        1590.8887888228949,
        580.4792451483988
      ],
      "color": "#3f789e",
      "flags": {}
    },
    {
      "id": 3,
      "title": "Seedance 2.0",
      "bounding": [
        1740,
        100,
        1254.2917698408892,
        931.3079389592615
      ],
      "color": "#3f789e",
      "flags": {}
    }
  ],
  "config": {},
  "extra": {
    "ds": {
      "scale": 0.36674994644198305,
      "offset": [
        2162.1612341212594,
        811.5556670296681
      ]
    },
    "frontendVersion": "1.44.19",
    "workflowRendererVersion": "Vue-corrected",
    "VHS_KeepIntermediate": true,
    "VHS_MetadataImage": true,
    "VHS_latentpreview": false,
    "VHS_latentpreviewrate": 0,
    "ue_links": []
  },
  "version": 0.4
}