{
 "id": "a1df4c7c-cf36-4efd-8b1c-706c6bee607b",
 "revision": 0,
 "last_node_id": 16,
 "last_link_id": 15,
 "nodes": [
  {
   "id": 1,
   "type": "UNETLoader",
   "pos": [
    -20,
    80
   ],
   "size": [
    430,
    82
   ],
   "flags": {},
   "order": 1,
   "mode": 0,
   "inputs": [
    {
     "name": "unet_name",
     "type": "COMBO",
     "widget": {
      "name": "unet_name"
     },
     "link": null
    },
    {
     "name": "weight_dtype",
     "type": "COMBO",
     "widget": {
      "name": "weight_dtype"
     },
     "link": null
    }
   ],
   "outputs": [
    {
     "name": "MODEL",
     "type": "MODEL",
     "links": [
      1
     ]
    }
   ],
   "properties": {
    "Node name for S&R": "UNETLoader"
   },
   "widgets_values": [
    "qwen_image_2.1_turbo_int8_convrot.safetensors",
    "default"
   ],
   "title": "Load Qwen-Image 2.1 Turbo (int8)"
  },
  {
   "id": 2,
   "type": "CLIPLoader",
   "pos": [
    -20,
    220
   ],
   "size": [
    430,
    106
   ],
   "flags": {},
   "order": 2,
   "mode": 0,
   "inputs": [
    {
     "name": "clip_name",
     "type": "COMBO",
     "widget": {
      "name": "clip_name"
     },
     "link": null
    },
    {
     "name": "type",
     "type": "COMBO",
     "widget": {
      "name": "type"
     },
     "link": null
    },
    {
     "name": "device",
     "type": "COMBO",
     "widget": {
      "name": "device"
     },
     "link": null
    }
   ],
   "outputs": [
    {
     "name": "CLIP",
     "type": "CLIP",
     "links": [
      5
     ]
    }
   ],
   "properties": {
    "Node name for S&R": "CLIPLoader"
   },
   "widgets_values": [
    "qwen3vl_8b_int8_convrot.safetensors",
    "qwen_image",
    "default"
   ],
   "title": "Load Qwen3-VL 8B text encoder"
  },
  {
   "id": 3,
   "type": "VAELoader",
   "pos": [
    -20,
    380
   ],
   "size": [
    430,
    58
   ],
   "flags": {},
   "order": 3,
   "mode": 0,
   "inputs": [
    {
     "name": "vae_name",
     "type": "COMBO",
     "widget": {
      "name": "vae_name"
     },
     "link": null
    }
   ],
   "outputs": [
    {
     "name": "VAE",
     "type": "VAE",
     "links": [
      14
     ]
    }
   ],
   "properties": {
    "Node name for S&R": "VAELoader"
   },
   "widgets_values": [
    "qwen_image_2.1_vae_bf16.safetensors"
   ]
  },
  {
   "id": 4,
   "type": "QwenImage21Cache",
   "pos": [
    470,
    80
   ],
   "size": [
    300,
    82
   ],
   "flags": {},
   "order": 4,
   "mode": 0,
   "inputs": [
    {
     "name": "model",
     "type": "MODEL",
     "link": 1
    },
    {
     "name": "device",
     "type": "COMBO",
     "widget": {
      "name": "device"
     },
     "link": null
    },
    {
     "name": "dtype",
     "type": "COMBO",
     "widget": {
      "name": "dtype"
     },
     "link": null
    }
   ],
   "outputs": [
    {
     "name": "MODEL",
     "type": "MODEL",
     "links": [
      2
     ]
    }
   ],
   "properties": {
    "Node name for S&R": "QwenImage21Cache"
   },
   "widgets_values": [
    "auto",
    "int8"
   ],
   "title": "Prefix cache (int8 saves memory at 2K)"
  },
  {
   "id": 5,
   "type": "APG",
   "pos": [
    820,
    80
   ],
   "size": [
    300,
    106
   ],
   "flags": {},
   "order": 5,
   "mode": 0,
   "inputs": [
    {
     "name": "model",
     "type": "MODEL",
     "link": 2
    },
    {
     "name": "eta",
     "type": "FLOAT",
     "widget": {
      "name": "eta"
     },
     "link": null
    },
    {
     "name": "norm_threshold",
     "type": "FLOAT",
     "widget": {
      "name": "norm_threshold"
     },
     "link": null
    },
    {
     "name": "momentum",
     "type": "FLOAT",
     "widget": {
      "name": "momentum"
     },
     "link": null
    }
   ],
   "outputs": [
    {
     "name": "MODEL",
     "type": "MODEL",
     "links": [
      3
     ]
    }
   ],
   "properties": {
    "Node name for S&R": "APG"
   },
   "widgets_values": [
    1.0,
    10.0,
    0.3
   ],
   "title": "APG: keeps CFG 3 from oversaturating"
  },
  {
   "id": 6,
   "type": "FreSca",
   "pos": [
    1170,
    80
   ],
   "size": [
    300,
    106
   ],
   "flags": {},
   "order": 6,
   "mode": 0,
   "inputs": [
    {
     "name": "model",
     "type": "MODEL",
     "link": 3
    },
    {
     "name": "scale_low",
     "type": "FLOAT",
     "widget": {
      "name": "scale_low"
     },
     "link": null
    },
    {
     "name": "scale_high",
     "type": "FLOAT",
     "widget": {
      "name": "scale_high"
     },
     "link": null
    },
    {
     "name": "freq_cutoff",
     "type": "INT",
     "widget": {
      "name": "freq_cutoff"
     },
     "link": null
    }
   ],
   "outputs": [
    {
     "name": "MODEL",
     "type": "MODEL",
     "links": [
      4
     ]
    }
   ],
   "properties": {
    "Node name for S&R": "FreSca"
   },
   "widgets_values": [
    1.0,
    2.0,
    8
   ],
   "title": "FreSca: sharpens high frequencies"
  },
  {
   "id": 7,
   "type": "TextEncodeQwenImage21",
   "pos": [
    470,
    230
   ],
   "size": [
    650,
    260
   ],
   "flags": {},
   "order": 7,
   "mode": 0,
   "inputs": [
    {
     "name": "clip",
     "type": "CLIP",
     "link": 5
    },
    {
     "name": "images.image_1",
     "type": "IMAGE",
     "link": null,
     "shape": 7
    },
    {
     "name": "vae",
     "type": "VAE",
     "link": null,
     "shape": 7
    },
    {
     "name": "prompt",
     "type": "STRING",
     "widget": {
      "name": "prompt"
     },
     "link": null
    },
    {
     "name": "negative_prompt",
     "type": "STRING",
     "widget": {
      "name": "negative_prompt"
     },
     "link": null
    },
    {
     "name": "resolution",
     "type": "INT",
     "widget": {
      "name": "resolution"
     },
     "link": null
    }
   ],
   "outputs": [
    {
     "name": "positive",
     "type": "CONDITIONING",
     "links": [
      6
     ]
    },
    {
     "name": "negative",
     "type": "CONDITIONING",
     "links": [
      7
     ]
    },
    {
     "name": "latent",
     "type": "LATENT",
     "links": []
    }
   ],
   "properties": {
    "Node name for S&R": "TextEncodeQwenImage21"
   },
   "widgets_values": [
    "An art nouveau illustration of Motoko Kusanagi standing in falling cherry blossoms, a halo of circuit traces around her head like a stained glass window. Lit from the front by soft diffuse light, with gentle shadows. Close-up of the subject, looking at the viewer. Rendered with flowing ink lines, flat gold leaf background, muted jade and plum, fine ornamental borders. The atmosphere is calm and melancholic. Natural proportions, the face in focus. No text, no watermark.",
    "artifacts, washed-out colors, low quality, low resolution, blurry, extra fingers, missing fingers, deformed hands, bad anatomy, extra limbs, text, watermark, signature",
    1024
   ],
   "title": "Prompt and negative prompt"
  },
  {
   "id": 8,
   "type": "EmptyLatentImage",
   "pos": [
    470,
    540
   ],
   "size": [
    300,
    106
   ],
   "flags": {},
   "order": 8,
   "mode": 0,
   "inputs": [
    {
     "name": "width",
     "type": "INT",
     "widget": {
      "name": "width"
     },
     "link": null
    },
    {
     "name": "height",
     "type": "INT",
     "widget": {
      "name": "height"
     },
     "link": null
    },
    {
     "name": "batch_size",
     "type": "INT",
     "widget": {
      "name": "batch_size"
     },
     "link": null
    }
   ],
   "outputs": [
    {
     "name": "LATENT",
     "type": "LATENT",
     "links": [
      12
     ]
    }
   ],
   "properties": {
    "Node name for S&R": "EmptyLatentImage"
   },
   "widgets_values": [
    1664,
    2432,
    1
   ],
   "title": "Latent 1664 x 2432 (4 MP, multiples of 32)"
  },
  {
   "id": 9,
   "type": "CFGGuider",
   "pos": [
    1520,
    230
   ],
   "size": [
    300,
    98
   ],
   "flags": {},
   "order": 9,
   "mode": 0,
   "inputs": [
    {
     "name": "model",
     "type": "MODEL",
     "link": 4
    },
    {
     "name": "positive",
     "type": "CONDITIONING",
     "link": 6
    },
    {
     "name": "negative",
     "type": "CONDITIONING",
     "link": 7
    },
    {
     "name": "cfg",
     "type": "FLOAT",
     "widget": {
      "name": "cfg"
     },
     "link": null
    }
   ],
   "outputs": [
    {
     "name": "GUIDER",
     "type": "GUIDER",
     "links": [
      9
     ]
    }
   ],
   "properties": {
    "Node name for S&R": "CFGGuider"
   },
   "widgets_values": [
    3.0
   ],
   "title": "CFG 3 (the template uses 1)"
  },
  {
   "id": 10,
   "type": "ManualSigmas",
   "pos": [
    1170,
    420
   ],
   "size": [
    300,
    58
   ],
   "flags": {},
   "order": 10,
   "mode": 0,
   "inputs": [
    {
     "name": "sigmas",
     "type": "STRING",
     "widget": {
      "name": "sigmas"
     },
     "link": null
    }
   ],
   "outputs": [
    {
     "name": "SIGMAS",
     "type": "SIGMAS",
     "links": [
      11
     ]
    }
   ],
   "properties": {
    "Node name for S&R": "ManualSigmas"
   },
   "widgets_values": [
    "1.0, 0.978453, 0.95418, 0.926626, 0.89508, 0.845148, 0.704534, 0.414568, 0"
   ],
   "title": "The 8 sigmas of the Turbo template"
  },
  {
   "id": 11,
   "type": "KSamplerSelect",
   "pos": [
    1170,
    520
   ],
   "size": [
    300,
    58
   ],
   "flags": {},
   "order": 11,
   "mode": 0,
   "inputs": [
    {
     "name": "sampler_name",
     "type": "COMBO",
     "widget": {
      "name": "sampler_name"
     },
     "link": null
    }
   ],
   "outputs": [
    {
     "name": "SAMPLER",
     "type": "SAMPLER",
     "links": [
      10
     ]
    }
   ],
   "properties": {
    "Node name for S&R": "KSamplerSelect"
   },
   "widgets_values": [
    "euler"
   ]
  },
  {
   "id": 12,
   "type": "RandomNoise",
   "pos": [
    1170,
    620
   ],
   "size": [
    300,
    82
   ],
   "flags": {},
   "order": 12,
   "mode": 0,
   "inputs": [
    {
     "name": "noise_seed",
     "type": "INT",
     "widget": {
      "name": "noise_seed"
     },
     "link": null
    }
   ],
   "outputs": [
    {
     "name": "NOISE",
     "type": "NOISE",
     "links": [
      8
     ]
    }
   ],
   "properties": {
    "Node name for S&R": "RandomNoise"
   },
   "widgets_values": [
    57658043,
    "randomize"
   ],
   "title": "Seed of the illustration (then a new seed each run)"
  },
  {
   "id": 13,
   "type": "SamplerCustomAdvanced",
   "pos": [
    1520,
    400
   ],
   "size": [
    300,
    106
   ],
   "flags": {},
   "order": 13,
   "mode": 0,
   "inputs": [
    {
     "name": "noise",
     "type": "NOISE",
     "link": 8
    },
    {
     "name": "guider",
     "type": "GUIDER",
     "link": 9
    },
    {
     "name": "sampler",
     "type": "SAMPLER",
     "link": 10
    },
    {
     "name": "sigmas",
     "type": "SIGMAS",
     "link": 11
    },
    {
     "name": "latent_image",
     "type": "LATENT",
     "link": 12
    }
   ],
   "outputs": [
    {
     "name": "output",
     "type": "LATENT",
     "links": [
      13
     ]
    },
    {
     "name": "denoised_output",
     "type": "LATENT",
     "links": []
    }
   ],
   "properties": {
    "Node name for S&R": "SamplerCustomAdvanced"
   },
   "widgets_values": []
  },
  {
   "id": 14,
   "type": "VAEDecode",
   "pos": [
    1870,
    400
   ],
   "size": [
    230,
    58
   ],
   "flags": {},
   "order": 14,
   "mode": 0,
   "inputs": [
    {
     "name": "samples",
     "type": "LATENT",
     "link": 13
    },
    {
     "name": "vae",
     "type": "VAE",
     "link": 14
    }
   ],
   "outputs": [
    {
     "name": "IMAGE",
     "type": "IMAGE",
     "links": [
      15
     ]
    }
   ],
   "properties": {
    "Node name for S&R": "VAEDecode"
   },
   "widgets_values": []
  },
  {
   "id": 15,
   "type": "SaveImage",
   "pos": [
    2150,
    400
   ],
   "size": [
    420,
    500
   ],
   "flags": {},
   "order": 15,
   "mode": 0,
   "inputs": [
    {
     "name": "images",
     "type": "IMAGE",
     "link": 15
    },
    {
     "name": "filename_prefix",
     "type": "STRING",
     "widget": {
      "name": "filename_prefix"
     },
     "link": null
    }
   ],
   "outputs": [],
   "properties": {
    "Node name for S&R": "SaveImage"
   },
   "widgets_values": [
    "qwen-image-2-1-turbo-guided"
   ]
  },
  {
   "id": 16,
   "type": "MarkdownNote",
   "pos": [
    -20,
    500
   ],
   "size": [
    430,
    330
   ],
   "flags": {},
   "order": 16,
   "mode": 0,
   "inputs": [],
   "outputs": [],
   "properties": {
    "Node name for S&R": "MarkdownNote"
   },
   "widgets_values": [
    "## Qwen-Image 2.1, guided Turbo\n\nThe Turbo checkpoint and its 8 sigmas, guided at CFG 3 with a negative prompt, APG then FreSca on the model path: the detail of the base model at CFG 3, in 66 to 71 s for a 4-megapixel image on a 16 GB card.\n\nMeasurements, prompt structure and the comparison with the base model: https://stablediffusion.fr/guide/qwen-image-2-1\n\nModel files (Comfy-Org repackaging): qwen_image_2.1_turbo_int8_convrot.safetensors (diffusion_models), qwen3vl_8b_int8_convrot.safetensors (text_encoders), qwen_image_2.1_vae_bf16.safetensors (vae).\n\nCC BY 4.0, stablediffusion.fr"
   ],
   "title": "About this workflow"
  }
 ],
 "links": [
  [
   1,
   1,
   0,
   4,
   0,
   "MODEL"
  ],
  [
   2,
   4,
   0,
   5,
   0,
   "MODEL"
  ],
  [
   3,
   5,
   0,
   6,
   0,
   "MODEL"
  ],
  [
   4,
   6,
   0,
   9,
   0,
   "MODEL"
  ],
  [
   5,
   2,
   0,
   7,
   0,
   "CLIP"
  ],
  [
   6,
   7,
   0,
   9,
   1,
   "CONDITIONING"
  ],
  [
   7,
   7,
   1,
   9,
   2,
   "CONDITIONING"
  ],
  [
   8,
   12,
   0,
   13,
   0,
   "NOISE"
  ],
  [
   9,
   9,
   0,
   13,
   1,
   "GUIDER"
  ],
  [
   10,
   11,
   0,
   13,
   2,
   "SAMPLER"
  ],
  [
   11,
   10,
   0,
   13,
   3,
   "SIGMAS"
  ],
  [
   12,
   8,
   0,
   13,
   4,
   "LATENT"
  ],
  [
   13,
   13,
   0,
   14,
   0,
   "LATENT"
  ],
  [
   14,
   3,
   0,
   14,
   1,
   "VAE"
  ],
  [
   15,
   14,
   0,
   15,
   0,
   "IMAGE"
  ]
 ],
 "groups": [],
 "config": {},
 "extra": {
  "ds": {
   "scale": 0.6,
   "offset": [
    60,
    40
   ]
  }
 },
 "version": 0.4
}