{
  "config": {},
  "extra": {
    "VHS_KeepIntermediate": true,
    "VHS_MetadataImage": true,
    "VHS_latentpreview": false,
    "VHS_latentpreviewrate": 0,
    "ds": {
      "offset": [
        -2609.9204820963287,
        -579.3048608960792
      ],
      "scale": 1.4733038965494536
    },
    "frontendVersion": "1.47.7"
  },
  "groups": [],
  "id": "0554fad1-8303-48a4-a743-62aa09426887",
  "last_link_id": 5,
  "last_node_id": 8,
  "links": [
    [
      1,
      3,
      0,
      2,
      2,
      "IMAGE"
    ],
    [
      3,
      5,
      0,
      2,
      4,
      "VIDEO"
    ],
    [
      4,
      2,
      0,
      6,
      0,
      "VIDEO"
    ],
    [
      5,
      7,
      0,
      2,
      1,
      "STRING"
    ]
  ],
  "nodes": [
    {
      "bgcolor": "#653",
      "color": "#432",
      "flags": {},
      "id": 2,
      "inputs": [
        {
          "link": null,
          "localized_name": "model",
          "name": "model",
          "type": "COMFY_DYNAMICCOMBO_V3",
          "widget": {
            "name": "model"
          }
        },
        {
          "link": 5,
          "localized_name": "prompt",
          "name": "model.prompt",
          "type": "STRING",
          "widget": {
            "name": "model.prompt"
          }
        },
        {
          "label": "image_1",
          "link": 1,
          "localized_name": "model.images.image_1",
          "name": "model.images.image_1",
          "shape": 7,
          "type": "IMAGE"
        },
        {
          "label": "image_2",
          "link": null,
          "localized_name": "model.images.image_2",
          "name": "model.images.image_2",
          "shape": 7,
          "type": "IMAGE"
        },
        {
          "label": "video_1",
          "link": 3,
          "localized_name": "model.videos.video_1",
          "name": "model.videos.video_1",
          "shape": 7,
          "type": "VIDEO"
        },
        {
          "label": "video_2",
          "link": null,
          "localized_name": "model.videos.video_2",
          "name": "model.videos.video_2",
          "shape": 7,
          "type": "VIDEO"
        },
        {
          "link": null,
          "localized_name": "temperature",
          "name": "model.temperature",
          "type": "FLOAT",
          "widget": {
            "name": "model.temperature"
          }
        },
        {
          "link": null,
          "localized_name": "top_p",
          "name": "model.top_p",
          "type": "FLOAT",
          "widget": {
            "name": "model.top_p"
          }
        },
        {
          "link": null,
          "localized_name": "seed",
          "name": "seed",
          "type": "INT",
          "widget": {
            "name": "seed"
          }
        }
      ],
      "mode": 0,
      "order": 4,
      "outputs": [
        {
          "links": [
            4
          ],
          "localized_name": "VIDEO",
          "name": "VIDEO",
          "type": "VIDEO"
        },
        {
          "links": null,
          "localized_name": "STRING",
          "name": "STRING",
          "type": "STRING"
        }
      ],
      "pos": [
        3500.111393559569,
        763.0359912140922
      ],
      "properties": {
        "Node name for S&R": "GeminiVideoOmni"
      },
      "showAdvanced": true,
      "size": [
        485.234375,
        361.8125
      ],
      "type": "GeminiVideoOmni",
      "widgets_values": [
        "Omni Flash",
        "change my outfit to the outfit in image_1. Keep everything else exactly the same.",
        1,
        0.95,
        2116897663,
        "randomize"
      ]
    },
    {
      "flags": {},
      "id": 3,
      "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
          ],
          "localized_name": "IMAGE",
          "name": "IMAGE",
          "type": "IMAGE"
        },
        {
          "links": null,
          "localized_name": "MASK",
          "name": "MASK",
          "type": "MASK"
        }
      ],
      "pos": [
        3162.909969832303,
        762.1046223100217
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "size": [
        282,
        321.890625
      ],
      "title": "Outfit Reference",
      "type": "LoadImage",
      "widgets_values": [
        "a937395c27b7d6724e4b6f046456e931d87addaf374a72f71772b7086c1e6e2c.png",
        "image"
      ]
    },
    {
      "flags": {},
      "id": 5,
      "inputs": [
        {
          "link": null,
          "localized_name": "file",
          "name": "file",
          "type": "COMBO",
          "widget": {
            "name": "file"
          }
        },
        {
          "link": null,
          "localized_name": "choose file to upload",
          "name": "upload",
          "type": "IMAGEUPLOAD",
          "widget": {
            "name": "upload"
          }
        }
      ],
      "mode": 0,
      "order": 1,
      "outputs": [
        {
          "links": [
            3
          ],
          "localized_name": "VIDEO",
          "name": "VIDEO",
          "type": "VIDEO"
        }
      ],
      "pos": [
        3163.119919627457,
        1132.6370576442707
      ],
      "properties": {
        "Node name for S&R": "LoadVideo"
      },
      "size": [
        283.484375,
        309.359375
      ],
      "title": "Your Footage",
      "type": "LoadVideo",
      "widgets_values": [
        "d3d9ceb20c7433bb9b137c3ef4700e43f725d25e086ba1be3b62d6abb7e1a009.mp4",
        "image"
      ]
    },
    {
      "flags": {
        "collapsed": false
      },
      "id": 6,
      "inputs": [
        {
          "link": 4,
          "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": 5,
      "outputs": [
        {
          "links": null,
          "localized_name": "video",
          "name": "video",
          "type": "VIDEO"
        }
      ],
      "pos": [
        4036.4213388640023,
        762.5684500508542
      ],
      "properties": {},
      "size": [
        327.296875,
        681.609375
      ],
      "type": "SaveVideo",
      "widgets_values": [
        "video/OmniOutfitSwap",
        "auto",
        "auto"
      ]
    },
    {
      "flags": {},
      "id": 7,
      "inputs": [],
      "mode": 0,
      "order": 2,
      "outputs": [
        {
          "links": [
            5
          ],
          "name": "STRING",
          "type": "STRING",
          "widget": {
            "name": "model.prompt"
          }
        }
      ],
      "pos": [
        3501.27098367805,
        1174.6095225093773
      ],
      "properties": {
        "Run widget replace on values": false
      },
      "size": [
        485.21875,
        268.171875
      ],
      "title": "Prompt",
      "type": "PrimitiveNode",
      "widgets_values": [
        "change my outfit to the outfit in image_1. Keep everything else exactly the same."
      ]
    },
    {
      "bgcolor": "#000",
      "color": "#222",
      "flags": {},
      "id": 8,
      "inputs": [],
      "mode": 0,
      "order": 3,
      "outputs": [],
      "pos": [
        2733.900377709793,
        767.5777218605734
      ],
      "properties": {},
      "size": [
        382.59375,
        678.5625
      ],
      "title": "Notes",
      "type": "MarkdownNote",
      "widgets_values": [
        "OUTFIT CHANGE — GEMINI OMNI\n\nThis workflow transfers the clothing from an outfit reference onto the person in your video while preserving their movement and the original scene.\n\nHOW TO USE\n\n1. Upload your source video to Your Footage.\n2. Add an outfit photo or screenshot to Outfit Reference.\n3. Run the workflow and review the saved video.\n\nCHOOSING A REFERENCE\n\nUse a clear image that shows the complete outfit. References with a similar pose and camera angle generally produce better proportions and perspective.\n\nSimple outfits usually work directly. Complex clothing, unusual silhouettes and detailed accessories may need a frame-matched reference.\n\nFOR THE BEST RESULTS\n\n1. Export a full-resolution frame from your source video.\n2. Use GPT Image 2 to apply the desired outfit to that frame.\n3. Keep the original person, pose, framing, lighting and background unchanged.\n4. Export at the exact resolution of the source frame.\n5. Use the edited frame as Outfit Reference.\n\nThis gives Gemini a reference that already matches the scene, improving outfit cohesion and helping preserve the original video.\n\nTROUBLESHOOTING\n\n- Distorted outfit: use a clearer full-body reference with a similar pose.\n\n- Scene or subject changes: use the frame-matched GPT Image 2 method.\n\n- Identity restriction: use authorized footage and crop or blur the face in the reference image. A clothing-only image may also help.\n\n- Input problems: re-encode the video or add very subtle digital grain.\n\n- Test a short section before processing the complete video."
      ]
    }
  ],
  "revision": 0,
  "version": 0.4
}