{
  "last_node_id": 14,
  "last_link_id": 16,
  "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": "ControlNetLoader",
      "pos": [
        50,
        300
      ],
      "size": [
        315,
        58
      ],
      "properties": {
        "Node name for S&R": "ControlNetLoader"
      },
      "widgets_values": [
        "control-lora-canny-rank256.safetensors"
      ]
    },
    {
      "id": 3,
      "type": "LoadImage",
      "pos": [
        50,
        450
      ],
      "size": [
        315,
        314
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "input_image.png",
        "image"
      ],
      "title": "Load reference image for edge detection"
    },
    {
      "id": 4,
      "type": "CannyEdgePreprocessor",
      "pos": [
        450,
        450
      ],
      "size": [
        315,
        106
      ],
      "properties": {
        "Node name for S&R": "CannyEdgePreprocessor"
      },
      "widgets_values": [
        100,
        200,
        512
      ],
      "title": "Canny Edge Detection (requires comfyui_controlnet_aux)"
    },
    {
      "id": 5,
      "type": "CLIPTextEncode",
      "pos": [
        450,
        50
      ],
      "size": [
        450,
        150
      ],
      "properties": {
        "Node name for S&R": "CLIPTextEncode"
      },
      "widgets_values": [
        "professional photograph, high quality, detailed, sharp focus, studio lighting"
      ]
    },
    {
      "id": 6,
      "type": "CLIPTextEncode",
      "pos": [
        450,
        250
      ],
      "size": [
        450,
        100
      ],
      "properties": {
        "Node name for S&R": "CLIPTextEncode"
      },
      "widgets_values": [
        "blurry, low quality, watermark, ugly, deformed"
      ]
    },
    {
      "id": 7,
      "type": "ControlNetApplyAdvanced",
      "pos": [
        900,
        200
      ],
      "size": [
        315,
        166
      ],
      "properties": {
        "Node name for S&R": "ControlNetApplyAdvanced"
      },
      "widgets_values": [
        0.85,
        0.0,
        1.0
      ]
    },
    {
      "id": 8,
      "type": "EmptyLatentImage",
      "pos": [
        900,
        450
      ],
      "size": [
        315,
        106
      ],
      "properties": {
        "Node name for S&R": "EmptyLatentImage"
      },
      "widgets_values": [
        1024,
        1024,
        1
      ]
    },
    {
      "id": 9,
      "type": "KSampler",
      "pos": [
        1300,
        100
      ],
      "size": [
        315,
        262
      ],
      "properties": {
        "Node name for S&R": "KSampler"
      },
      "widgets_values": [
        42,
        "randomize",
        8,
        7.5,
        "euler_ancestral",
        "normal",
        1.0
      ]
    },
    {
      "id": 10,
      "type": "VAEDecode",
      "pos": [
        1700,
        100
      ],
      "size": [
        210,
        46
      ],
      "properties": {
        "Node name for S&R": "VAEDecode"
      }
    },
    {
      "id": 11,
      "type": "SaveImage",
      "pos": [
        1950,
        100
      ],
      "size": [
        315,
        270
      ],
      "properties": {
        "Node name for S&R": "SaveImage"
      },
      "widgets_values": [
        "controlnet_output"
      ]
    }
  ],
  "links": [
    [
      1,
      1,
      0,
      9,
      0,
      "MODEL"
    ],
    [
      2,
      1,
      1,
      5,
      0,
      "CLIP"
    ],
    [
      3,
      1,
      1,
      6,
      0,
      "CLIP"
    ],
    [
      4,
      5,
      0,
      7,
      0,
      "CONDITIONING"
    ],
    [
      5,
      6,
      0,
      7,
      1,
      "CONDITIONING"
    ],
    [
      6,
      2,
      0,
      7,
      2,
      "CONTROL_NET"
    ],
    [
      7,
      3,
      0,
      4,
      0,
      "IMAGE"
    ],
    [
      8,
      4,
      0,
      7,
      3,
      "IMAGE"
    ],
    [
      9,
      7,
      0,
      9,
      1,
      "CONDITIONING"
    ],
    [
      10,
      7,
      1,
      9,
      2,
      "CONDITIONING"
    ],
    [
      11,
      8,
      0,
      9,
      3,
      "LATENT"
    ],
    [
      12,
      9,
      0,
      10,
      0,
      "LATENT"
    ],
    [
      13,
      1,
      2,
      10,
      1,
      "VAE"
    ],
    [
      14,
      10,
      0,
      11,
      0,
      "IMAGE"
    ]
  ],
  "groups": [
    {
      "title": "ControlNet Canny Edge - Guide generation with reference image structure",
      "bounding": [
        30,
        30,
        2300,
        750
      ],
      "color": "#3498db"
    },
    {
      "title": "REQUIRES: comfyui_controlnet_aux for preprocessors",
      "bounding": [
        30,
        800,
        2300,
        50
      ],
      "color": "#2980b9"
    }
  ],
  "config": {},
  "extra": {
    "workflow_description": "ControlNet Canny edge detection workflow. Load reference image, extract edges, generate new image following the structure.",
    "workflow_category": "controlnet",
    "workflow_tags": [
      "controlnet",
      "canny",
      "edge-detection",
      "guided-generation"
    ],
    "required_custom_nodes": [
      "https://github.com/Fannovel16/comfyui_controlnet_aux"
    ]
  },
  "version": 0.4
}