Upscale — Latent 2× (hires fix) upscale
Generate at base resolution, upscale the latent 2×, then a second low-denoise KSampler pass for crisp detail. The classic "hires fix" pipeline.
Models: any SD1.5/SDXL checkpoint · 9 nodes
Workflow JSON
{
"3": {
"class_type": "KSampler",
"inputs": {
"seed": 0,
"steps": 20,
"cfg": 7,
"sampler_name": "euler",
"scheduler": "normal",
"denoise": 1,
"model": [
"4",
0
],
"positive": [
"6",
0
],
"negative": [
"7",
0
],
"latent_image": [
"5",
0
]
}
},
"4": {
"class_type": "CheckpointLoaderSimple",
"inputs": {
"ckpt_name": "v1-5-pruned-emaonly.safetensors"
}
},
"5": {
"class_type": "EmptyLatentImage",
"inputs": {
"width": 512,
"height": 512,
"batch_size": 1
}
},
"6": {
"class_type": "CLIPTextEncode",
"inputs": {
"text": "an ornate manuscript page, illuminated, intricate detail",
"clip": [
"4",
1
]
}
},
"7": {
"class_type": "CLIPTextEncode",
"inputs": {
"text": "blurry, low quality",
"clip": [
"4",
1
]
}
},
"8": {
"class_type": "VAEDecode",
"inputs": {
"samples": [
"11",
0
],
"vae": [
"4",
2
]
}
},
"9": {
"class_type": "SaveImage",
"inputs": {
"filename_prefix": "MELEK-hires",
"images": [
"8",
0
]
}
},
"10": {
"class_type": "LatentUpscale",
"inputs": {
"upscale_method": "nearest-exact",
"width": 1024,
"height": 1024,
"crop": "disabled",
"samples": [
"3",
0
]
}
},
"11": {
"class_type": "KSampler",
"inputs": {
"seed": 0,
"steps": 14,
"cfg": 7,
"sampler_name": "euler",
"scheduler": "normal",
"denoise": 0.5,
"model": [
"4",
0
],
"positive": [
"6",
0
],
"negative": [
"7",
0
],
"latent_image": [
"10",
0
]
}
}
}