Every block in api/blocks names what it gives a block after it ("gives": its sampler and its
output node; {} for one that changes the step it is put on) and its own model loader
("own_model"). api/block_chain.py builds a list of steps on a new tab: the picture first, each
next block anchored to what the step before gave, by near_node_id and a new page-only
save_node_id (canvas_roles.js findRoles pins the output node), so a canvas with several
samplers and outputs is no guess. add_nodes' answer names the block it built.
Redraw with another model and face/hand detailing now take the step before's picture
("$save.images") instead of the sampler's decode, which after an enlargement is the older
picture. The two-model routes are built as two-step chains; routes.json no longer names the
loaders.
Checked through the real page on the test ComfyUI: the Tile route on two Anima models (base on
Harem 1.5, Tile redraw on Kirazuri v4, from the base's picture and prompts), then face and hand
detailing after it took the Tile step's colour-matched picture.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
155 lines
3.3 KiB
JSON
155 lines
3.3 KiB
JSON
{
|
||
"job": "upscale",
|
||
"rank": 1,
|
||
"short": "1.25×",
|
||
"title": {
|
||
"zh": "放大",
|
||
"en": "Upscale"
|
||
},
|
||
"about": {
|
||
"zh": "用放大模型放到 1.25 倍,再轻轻重画补细节。",
|
||
"en": "An upscale model to 1.25×, then a light redraw for detail."
|
||
},
|
||
"source": {
|
||
"zh": "参考工作流的「通用放大」组",
|
||
"en": "The reference workflow's general upscale group"
|
||
},
|
||
"packs": {},
|
||
"upscaler": true,
|
||
"after": "run_workflow saves the picture as before and the larger one beside it (prefix upscaled). The redraw sampler has the first one's steps and cfg at denoise 0.35: lower keeps more of the picture, higher adds more (and above 0.5 may change it). For 2× or more use upscale_tiled.",
|
||
"gives": {
|
||
"sampler": "redraw",
|
||
"save": "save"
|
||
},
|
||
"notes": "1.25× and denoise 0.35: the source used 1.25 and 0.32; its author says more than 1.5× goes wrong, and 1.5× of 832×1216 is too much for a 6 GB card. ColorMatch mkl after the redraw is the source's, optional (KJNodes).",
|
||
"upscale_by": 1.25,
|
||
"nodes": {
|
||
"upscaler": {
|
||
"class_type": "UpscaleModelLoader",
|
||
"inputs": {
|
||
"model_name": "$upscaler"
|
||
}
|
||
},
|
||
"enlarge": {
|
||
"class_type": "ImageUpscaleWithModel",
|
||
"inputs": {
|
||
"upscale_model": [
|
||
"upscaler",
|
||
0
|
||
],
|
||
"image": [
|
||
"$save.images",
|
||
"*"
|
||
]
|
||
}
|
||
},
|
||
"fit": {
|
||
"class_type": "ImageScaleBy",
|
||
"inputs": {
|
||
"image": [
|
||
"enlarge",
|
||
0
|
||
],
|
||
"upscale_method": "lanczos",
|
||
"scale_by": "$fit"
|
||
}
|
||
},
|
||
"encode": {
|
||
"class_type": "VAEEncode",
|
||
"inputs": {
|
||
"pixels": [
|
||
"fit",
|
||
0
|
||
],
|
||
"vae": [
|
||
"$decode.vae",
|
||
"*"
|
||
]
|
||
}
|
||
},
|
||
"redraw": {
|
||
"class_type": "KSampler",
|
||
"like": "$sampler",
|
||
"inputs": {
|
||
"model": [
|
||
"$sampler.model",
|
||
"*"
|
||
],
|
||
"positive": [
|
||
"$sampler.positive",
|
||
"*"
|
||
],
|
||
"negative": [
|
||
"$sampler.negative",
|
||
"*"
|
||
],
|
||
"latent_image": [
|
||
"encode",
|
||
0
|
||
],
|
||
"denoise": 0.35
|
||
}
|
||
},
|
||
"decode": {
|
||
"class_type": "VAEDecode",
|
||
"inputs": {
|
||
"samples": [
|
||
"redraw",
|
||
0
|
||
],
|
||
"vae": [
|
||
"$decode.vae",
|
||
"*"
|
||
]
|
||
}
|
||
},
|
||
"match": {
|
||
"class_type": "ColorMatch",
|
||
"optional": true,
|
||
"inputs": {
|
||
"image_ref": [
|
||
"fit",
|
||
0
|
||
],
|
||
"image_target": [
|
||
"decode",
|
||
0
|
||
],
|
||
"method": "mkl",
|
||
"strength": 1.0,
|
||
"multithread": true
|
||
}
|
||
},
|
||
"save": {
|
||
"class_type": "SaveImage",
|
||
"inputs": {
|
||
"images": [
|
||
"match|decode",
|
||
0
|
||
],
|
||
"filename_prefix": "upscaled"
|
||
}
|
||
}
|
||
},
|
||
"extras": {
|
||
"ColorMatch": "ComfyUI-KJNodes"
|
||
},
|
||
"models": [
|
||
"2x_animesharp_v4",
|
||
"4x_ultrasharp",
|
||
"4x_animesharp"
|
||
],
|
||
"tested": {
|
||
"gpu": "RTX 4050 Laptop",
|
||
"vram_gb": 6,
|
||
"date": "2026-10-27",
|
||
"runs": [
|
||
{
|
||
"model": "SDXL (Illustrious)",
|
||
"size": "832×1216 → 1.25×",
|
||
"seconds": 43
|
||
}
|
||
]
|
||
}
|
||
}
|