{
  "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": ["lustifySDXLNSFW_endgame.safetensors"],
      "title": "LUSTIFY v7.0 GGWP Checkpoint"
    },
    {
      "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": ["photorealistic, professional photography, high quality, detailed skin texture, natural lighting, 8k, masterpiece, best quality, sharp details"],
      "title": "API Positive Prompt (Enhancement)"
    },
    {
      "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": ["(worst quality, low quality:1.4), blurry, pixelated, jpeg artifacts, bad anatomy, deformed, watermark, text"],
      "title": "API Negative Prompt (Refinement)"
    },
    {
      "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 (2x)"
    },
    {
      "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, 7.0, "dpmpp_2m_sde", "exponential", 0.25, "Linear", 512, 512, 8, 32, "None", 1.0, 64, 8, 16, true, false],
      "title": "Ultimate SD Upscale NSFW (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": ["nsfw_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": "NSFW Ultimate SD Upscale Production",
      "version": "1.0",
      "description": "Professional 2x upscaling for NSFW images using Ultimate SD Upscale with LUSTIFY checkpoint. Combines RealESRGAN upscaling with diffusion refinement for superior detail, skin texture, and photorealistic quality in adult content.",
      "category": "nsfw",
      "model": "lustifySDXLNSFW_endgame.safetensors",
      "recommended_settings": {
        "upscale_factor": "2x (use RealESRGAN_x2.pth)",
        "denoise": "0.2-0.3 (lower preserves original, higher adds detail)",
        "sampler": "dpmpp_2m_sde",
        "scheduler": "exponential",
        "steps": 20,
        "cfg_scale": "6.0-8.0",
        "tile_size": "512x512 (optimal for SDXL)"
      },
      "features": [
        "2x upscaling with RealESRGAN + diffusion refinement",
        "LUSTIFY checkpoint for photorealistic NSFW enhancement",
        "Tiled processing for handling large images",
        "Optimized for detailed skin texture and natural lighting",
        "Low denoise (0.25) preserves original composition",
        "Can swap checkpoint for different styles (Pony, RealVisXL)"
      ],
      "tags": ["nsfw", "upscaling", "ultimate-sd-upscale", "lustify", "enhancement", "production"],
      "requirements": {
        "models": ["lustifySDXLNSFW_endgame.safetensors", "RealESRGAN_x2.pth"],
        "custom_nodes": ["ComfyUI_UltimateSDUpscale"],
        "vram_min": "18GB"
      },
      "usage_notes": {
        "checkpoint_swap": "Change node 2 to use different NSFW models (pony, realvisxl, etc.)",
        "denoise_tuning": "0.2 = subtle enhancement, 0.3 = moderate refinement, 0.4+ = creative upscaling",
        "prompt_matching": "Match enhancement prompt to original generation prompt for best results",
        "tile_overlap": "8px overlap prevents visible seams in large upscales"
      },
      "performance": {
        "avg_generation_time": "90-150 seconds (1024x1024 -> 2048x2048)",
        "vram_usage": "~20-22GB (LUSTIFY + tiled processing)"
      }
    }
  },
  "version": 0.4
}
