{
  "last_node_id": 12,
  "last_link_id": 14,
  "nodes": [
    {
      "id": 1,
      "type": "CheckpointLoaderSimple",
      "pos": [
        50,
        100
      ],
      "size": [
        315,
        98
      ],
      "properties": {
        "Node name for S&R": "CheckpointLoaderSimple"
      },
      "widgets_values": [
        "sd_xl_turbo_1.0_fp16.safetensors"
      ]
    },
    {
      "id": 2,
      "type": "IPAdapterModelLoader",
      "pos": [
        50,
        300
      ],
      "size": [
        315,
        58
      ],
      "properties": {
        "Node name for S&R": "IPAdapterModelLoader"
      },
      "widgets_values": [
        "ip-adapter-plus_sdxl_vit-h.safetensors"
      ],
      "title": "IP-Adapter Model (requires ComfyUI_IPAdapter_plus)"
    },
    {
      "id": 3,
      "type": "CLIPVisionLoader",
      "pos": [
        50,
        450
      ],
      "size": [
        315,
        58
      ],
      "properties": {
        "Node name for S&R": "CLIPVisionLoader"
      },
      "widgets_values": [
        "CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors"
      ]
    },
    {
      "id": 4,
      "type": "LoadImage",
      "pos": [
        50,
        600
      ],
      "size": [
        315,
        314
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "style_reference.png",
        "image"
      ],
      "title": "Style Reference Image"
    },
    {
      "id": 5,
      "type": "IPAdapterApply",
      "pos": [
        450,
        200
      ],
      "size": [
        315,
        200
      ],
      "properties": {
        "Node name for S&R": "IPAdapterApply"
      },
      "widgets_values": [
        0.8,
        0.0,
        1.0,
        "standard"
      ],
      "title": "Apply IP-Adapter (weight controls style strength)"
    },
    {
      "id": 6,
      "type": "CLIPTextEncode",
      "pos": [
        450,
        50
      ],
      "size": [
        450,
        100
      ],
      "properties": {
        "Node name for S&R": "CLIPTextEncode"
      },
      "widgets_values": [
        "professional image in the same style as reference, high quality, detailed"
      ]
    },
    {
      "id": 7,
      "type": "CLIPTextEncode",
      "pos": [
        450,
        450
      ],
      "size": [
        450,
        100
      ],
      "properties": {
        "Node name for S&R": "CLIPTextEncode"
      },
      "widgets_values": [
        "blurry, low quality, watermark, ugly"
      ]
    },
    {
      "id": 8,
      "type": "EmptyLatentImage",
      "pos": [
        450,
        600
      ],
      "size": [
        315,
        106
      ],
      "properties": {
        "Node name for S&R": "EmptyLatentImage"
      },
      "widgets_values": [
        1024,
        1024,
        1
      ]
    },
    {
      "id": 9,
      "type": "KSampler",
      "pos": [
        950,
        100
      ],
      "size": [
        315,
        262
      ],
      "properties": {
        "Node name for S&R": "KSampler"
      },
      "widgets_values": [
        42,
        "randomize",
        8,
        7.0,
        "euler_ancestral",
        "normal",
        1.0
      ]
    },
    {
      "id": 10,
      "type": "VAEDecode",
      "pos": [
        1350,
        100
      ],
      "size": [
        210,
        46
      ],
      "properties": {
        "Node name for S&R": "VAEDecode"
      }
    },
    {
      "id": 11,
      "type": "SaveImage",
      "pos": [
        1600,
        100
      ],
      "size": [
        315,
        270
      ],
      "properties": {
        "Node name for S&R": "SaveImage"
      },
      "widgets_values": [
        "ipadapter_style_output"
      ]
    }
  ],
  "links": [
    [
      1,
      1,
      0,
      5,
      0,
      "MODEL"
    ],
    [
      2,
      2,
      0,
      5,
      1,
      "IPADAPTER"
    ],
    [
      3,
      3,
      0,
      5,
      2,
      "CLIP_VISION"
    ],
    [
      4,
      4,
      0,
      5,
      3,
      "IMAGE"
    ],
    [
      5,
      5,
      0,
      9,
      0,
      "MODEL"
    ],
    [
      6,
      1,
      1,
      6,
      0,
      "CLIP"
    ],
    [
      7,
      1,
      1,
      7,
      0,
      "CLIP"
    ],
    [
      8,
      6,
      0,
      9,
      1,
      "CONDITIONING"
    ],
    [
      9,
      7,
      0,
      9,
      2,
      "CONDITIONING"
    ],
    [
      10,
      8,
      0,
      9,
      3,
      "LATENT"
    ],
    [
      11,
      9,
      0,
      10,
      0,
      "LATENT"
    ],
    [
      12,
      1,
      2,
      10,
      1,
      "VAE"
    ],
    [
      13,
      10,
      0,
      11,
      0,
      "IMAGE"
    ]
  ],
  "groups": [
    {
      "title": "IP-Adapter Style Transfer - Generate images matching reference style",
      "bounding": [
        30,
        30,
        1950,
        900
      ],
      "color": "#8e44ad"
    },
    {
      "title": "REQUIRES: ComfyUI_IPAdapter_plus + CLIP Vision model",
      "bounding": [
        30,
        950,
        1950,
        50
      ],
      "color": "#7d3c98"
    }
  ],
  "config": {},
  "extra": {
    "workflow_description": "IP-Adapter style transfer workflow. Load a reference image and generate new images in the same style.",
    "workflow_category": "ip-adapter",
    "workflow_tags": [
      "ip-adapter",
      "style-transfer",
      "reference",
      "consistency"
    ],
    "required_custom_nodes": [
      "https://github.com/cubiq/ComfyUI_IPAdapter_plus"
    ],
    "required_models": [
      "IP-Adapter Plus SDXL (ip-adapter-plus_sdxl_vit-h.safetensors)",
      "CLIP Vision (CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors)"
    ]
  },
  "version": 0.4
}