{
  "_comment": "SDXL img2img: load an input image, encode to latent, denoise partially. Use --input-image image=./photo.png with run_workflow.py. Lower 'denoise' value preserves more of the source image.",
  "1": {
    "class_type": "LoadImage",
    "_meta": {"title": "Load Source Image"},
    "inputs": {"image": "REPLACE_WITH_UPLOADED_FILENAME.png"}
  },
  "3": {
    "class_type": "KSampler",
    "_meta": {"title": "KSampler"},
    "inputs": {
      "seed": 42,
      "steps": 30,
      "cfg": 7.5,
      "sampler_name": "dpmpp_2m",
      "scheduler": "karras",
      "denoise": 0.65,
      "model": ["4", 0],
      "positive": ["6", 0],
      "negative": ["7", 0],
      "latent_image": ["12", 0]
    }
  },
  "4": {
    "class_type": "CheckpointLoaderSimple",
    "_meta": {"title": "Load SDXL Base"},
    "inputs": {"ckpt_name": "sd_xl_base_1.0.safetensors"}
  },
  "6": {
    "class_type": "CLIPTextEncode",
    "_meta": {"title": "Positive Prompt"},
    "inputs": {"text": "make it cyberpunk, neon lights, futuristic", "clip": ["4", 1]}
  },
  "7": {
    "class_type": "CLIPTextEncode",
    "_meta": {"title": "Negative Prompt"},
    "inputs": {"text": "ugly, blurry, low quality, deformed", "clip": ["4", 1]}
  },
  "8": {
    "class_type": "VAEDecode",
    "_meta": {"title": "VAE Decode"},
    "inputs": {"samples": ["3", 0], "vae": ["4", 2]}
  },
  "9": {
    "class_type": "SaveImage",
    "_meta": {"title": "Save Image"},
    "inputs": {"filename_prefix": "sdxl_img2img", "images": ["8", 0]}
  },
  "12": {
    "class_type": "VAEEncode",
    "_meta": {"title": "VAE Encode"},
    "inputs": {"pixels": ["1", 0], "vae": ["4", 2]}
  }
}
