{
  "last_node_id": 8,
  "last_link_id": 10,
  "nodes": [
    {
      "id": 1,
      "type": "LoadImage",
      "pos": [50, 100],
      "size": [350, 100],
      "flags": {},
      "order": 0,
      "mode": 0,
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [1],
          "slot_index": 0
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": null,
          "slot_index": 1
        }
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": ["input_image.png", "image"],
      "title": "API Input Image"
    },
    {
      "id": 2,
      "type": "CheckpointLoaderSimple",
      "pos": [50, 250],
      "size": [350, 100],
      "flags": {},
      "order": 1,
      "mode": 0,
      "outputs": [
        {
          "name": "MODEL",
          "type": "MODEL",
          "links": [2],
          "slot_index": 0
        },
        {
          "name": "CLIP",
          "type": "CLIP",
          "links": [3, 4],
          "slot_index": 1
        },
        {
          "name": "VAE",
          "type": "VAE",
          "links": [5],
          "slot_index": 2
        }
      ],
      "properties": {
        "Node name for S&R": "CheckpointLoaderSimple"
      },
      "widgets_values": ["sd_xl_base_1.0.safetensors"],
      "title": "SDXL Checkpoint Loader"
    },
    {
      "id": 3,
      "type": "CLIPTextEncode",
      "pos": [450, 100],
      "size": [400, 200],
      "flags": {},
      "order": 2,
      "mode": 0,
      "inputs": [
        {
          "name": "clip",
          "type": "CLIP",
          "link": 3
        }
      ],
      "outputs": [
        {
          "name": "CONDITIONING",
          "type": "CONDITIONING",
          "links": [6],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "CLIPTextEncode"
      },
      "widgets_values": ["high quality, detailed, sharp"],
      "title": "API Positive Prompt"
    },
    {
      "id": 4,
      "type": "CLIPTextEncode",
      "pos": [450, 350],
      "size": [400, 200],
      "flags": {},
      "order": 3,
      "mode": 0,
      "inputs": [
        {
          "name": "clip",
          "type": "CLIP",
          "link": 4
        }
      ],
      "outputs": [
        {
          "name": "CONDITIONING",
          "type": "CONDITIONING",
          "links": [7],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "CLIPTextEncode"
      },
      "widgets_values": ["blurry, low quality"],
      "title": "API Negative Prompt"
    },
    {
      "id": 8,
      "type": "UpscaleModelLoader",
      "pos": [50, 400],
      "size": [350, 100],
      "flags": {},
      "order": 4,
      "mode": 0,
      "outputs": [
        {
          "name": "UPSCALE_MODEL",
          "type": "UPSCALE_MODEL",
          "links": [10],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "UpscaleModelLoader"
      },
      "widgets_values": ["RealESRGAN_x2.pth"],
      "title": "Upscale Model Loader"
    },
    {
      "id": 5,
      "type": "UltimateSDUpscale",
      "pos": [900, 100],
      "size": [315, 100],
      "flags": {},
      "order": 5,
      "mode": 0,
      "inputs": [
        {
          "name": "image",
          "type": "IMAGE",
          "link": 1
        },
        {
          "name": "model",
          "type": "MODEL",
          "link": 2
        },
        {
          "name": "positive",
          "type": "CONDITIONING",
          "link": 6
        },
        {
          "name": "negative",
          "type": "CONDITIONING",
          "link": 7
        },
        {
          "name": "vae",
          "type": "VAE",
          "link": 5
        },
        {
          "name": "upscale_model",
          "type": "UPSCALE_MODEL",
          "link": 10
        }
      ],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [8, 9],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "UltimateSDUpscale"
      },
      "widgets_values": [2, 42, "randomize", 20, 8.0, "dpmpp_2m", "karras", 0.3, "Linear", 512, 512, 8, 32, "None", 1.0, 64, 8, 16, true, false],
      "title": "Ultimate SD Upscale (2x)"
    },
    {
      "id": 6,
      "type": "PreviewImage",
      "pos": [1270, 100],
      "size": [315, 100],
      "flags": {},
      "order": 6,
      "mode": 0,
      "inputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "link": 8
        }
      ],
      "properties": {
        "Node name for S&R": "PreviewImage"
      },
      "title": "Preview Output"
    },
    {
      "id": 7,
      "type": "SaveImage",
      "pos": [1270, 400],
      "size": [315, 100],
      "flags": {},
      "order": 7,
      "mode": 0,
      "inputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "link": 9
        }
      ],
      "properties": {
        "Node name for S&R": "SaveImage"
      },
      "widgets_values": ["ultimate_upscale_output"],
      "title": "API Image Output"
    }
  ],
  "links": [
    [1, 1, 0, 5, 0, "IMAGE"],
    [2, 2, 0, 5, 1, "MODEL"],
    [3, 2, 1, 3, 0, "CLIP"],
    [4, 2, 1, 4, 0, "CLIP"],
    [5, 2, 2, 5, 4, "VAE"],
    [6, 3, 0, 5, 2, "CONDITIONING"],
    [7, 4, 0, 5, 3, "CONDITIONING"],
    [8, 5, 0, 6, 0, "IMAGE"],
    [9, 5, 0, 7, 0, "IMAGE"],
    [10, 8, 0, 5, 5, "UPSCALE_MODEL"]
  ],
  "groups": [],
  "config": {},
  "extra": {
    "workflow_info": {
      "name": "Ultimate SD Upscale Production",
      "version": "1.1.0",
      "description": "Professional upscaling with Ultimate SD Upscale. Combines AI upscaling with diffusion refinement for superior detail and quality.",
      "category": "upscaling",
      "tags": ["ultimate-sd-upscale", "upscaling", "enhancement", "production"],
      "requirements": {
        "models": ["stable-diffusion-xl-base-1.0", "RealESRGAN"],
        "custom_nodes": ["ComfyUI_UltimateSDUpscale"],
        "vram_min": "18GB"
      },
      "parameters": {
        "input_image": {
          "node_id": 1,
          "type": "image",
          "required": true
        },
        "positive_prompt": {
          "node_id": 3,
          "widget_index": 0,
          "type": "string",
          "default": "high quality, detailed, sharp",
          "description": "Enhancement prompt"
        },
        "negative_prompt": {
          "node_id": 4,
          "widget_index": 0,
          "type": "string",
          "default": "blurry, low quality",
          "description": "Qualities to avoid"
        },
        "upscale_model": {
          "node_id": 8,
          "widget_index": 0,
          "type": "string",
          "default": "RealESRGAN_x2.pth",
          "options": ["RealESRGAN_x2.pth", "RealESRGAN_x4.pth"],
          "description": "Upscale model to use"
        },
        "upscale_by": {
          "node_id": 5,
          "widget_index": 0,
          "type": "float",
          "default": 2,
          "min": 0.05,
          "max": 4,
          "description": "Upscale factor"
        },
        "denoise": {
          "node_id": 5,
          "widget_index": 6,
          "type": "float",
          "default": 0.3,
          "description": "Refinement strength"
        },
        "tile_width": {
          "node_id": 5,
          "widget_index": 8,
          "type": "integer",
          "default": 512,
          "description": "Tile width for processing"
        },
        "tile_height": {
          "node_id": 5,
          "widget_index": 9,
          "type": "integer",
          "default": 512,
          "description": "Tile height for processing"
        }
      },
      "performance": {
        "avg_generation_time": "60-120 seconds (depending on input size)",
        "vram_usage": "~16-20GB"
      }
    }
  },
  "version": 0.4
}
