Files
DemonGatanjieu-Anomalous_Mo…/api/blocks/upscale_tile.json
T
DemonGatanjieuandClaude Opus 5.5 ce4b8a8a49 Ways: put a character into a given picture
place_in_scene takes two pictures (add_nodes' new scene argument, $scene in
a block marked "scene"): the character is cut out (inspyrenet-rembg), the
place scaled and cropped to its size (GetImageSize, ImageScale), the
character pasted on (ImageCompositeMasked) and everything else redrawn at
denoise 0.5 with the edge grown 6 px, so shadow and ground meet it while
the place keeps its look. Tried on an RTX 4050 6 GB with SDXL (Illustrious)
832x1216: about 40 s.

The blocks' short words are shorter so begin_task stays under 4000
characters.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 23:08:16 +08:00

328 lines
7.8 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"job": "upscale",
"rank": 2,
"short": "tile-held",
"title": {
"zh": "平铺放大",
"en": "Upscale held by tile"
},
"about": {
"zh": "和「放大」一样放大到 1.25 倍,但重画时用平铺控制网把画面钉住,所以重画强度可以调到 0.5,细节多得多,构图也不跑。SDXL 用 Union 控制网,NoobAI/Illustrious 用 NoobAI 的平铺控制网;画布上是 Anima 模型时改用 Anima 的修复 LLLite。 Anima 版比较慢(6GB 显存约 10 分钟)。",
"en": "Like Upscale to 1.25×, but a tile ControlNet holds the picture while it is redrawn, so the redraw can be stronger (0.5): much more detail, the layout kept. SDXL uses the union ControlNet, NoobAI and Illustrious NoobAI's tile one; on an Anima model, Anima's tile-repair LLLite. The Anima build is slow (about 10 minutes on a 6 GB card)."
},
"source": {
"zh": "参考工作流的「通用放大」组(作者默认开着平铺控制网:强度 0.6,到 80% 的步数)",
"en": "The reference workflow's general upscale, with its tile ControlNet on (strength 0.6, to 80% of the steps) as its author sets it"
},
"packs": {},
"upscaler": true,
"upscale_by": 1.25,
"control": "tile",
"extras": {
"ColorMatch": "ComfyUI-KJNodes"
},
"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"
}
},
"controlnet": {
"class_type": "ControlNetLoader",
"inputs": {
"control_net_name": "$controlnet"
}
},
"hold": {
"class_type": "ControlNetApplyAdvanced",
"inputs": {
"positive": [
"$sampler.positive",
"*"
],
"negative": [
"$sampler.negative",
"*"
],
"control_net": [
"controlnet",
0
],
"image": [
"fit",
0
],
"vae": [
"$decode.vae",
"*"
],
"strength": 0.6,
"start_percent": 0.0,
"end_percent": 0.8
}
},
"encode": {
"class_type": "VAEEncode",
"inputs": {
"pixels": [
"fit",
0
],
"vae": [
"$decode.vae",
"*"
]
}
},
"redraw": {
"class_type": "KSampler",
"like": "$sampler",
"inputs": {
"model": [
"$sampler.model",
"*"
],
"positive": [
"hold",
0
],
"negative": [
"hold",
1
],
"latent_image": [
"encode",
0
],
"denoise": 0.5
}
},
"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"
}
}
},
"variants": {
"anima": {
"packs": {
"AnimaLLLiteApply_sdscripts": "ComfyUI-Anima-LLLite"
},
"control": null,
"lllite": "tile",
"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": [
"hold",
0
],
"positive": [
"$sampler.positive",
"*"
],
"negative": [
"$sampler.negative",
"*"
],
"latent_image": [
"encode",
0
],
"denoise": 0.5
}
},
"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"
}
},
"hold": {
"class_type": "AnimaLLLiteApply_sdscripts",
"inputs": {
"model": [
"$sampler.model",
"*"
],
"lllite_name": "$lllite",
"image": [
"fit",
0
],
"strength": 0.9,
"start_percent": 0.0,
"end_percent": 0.8,
"preserve_wrapper": true
}
}
},
"after": "On this Anima model Anima's tile-repair LLLite holds the picture (0.9, to 80% of the steps) while it is redrawn at denoise 0.5. run_workflow; the larger one is saved beside it (prefix upscaled). It is slow on a small card (about 10 minutes on 6 GB): say so before running it."
}
},
"after": "run_workflow saves the picture as before and the 1.25× one beside it (prefix upscaled): a tile ControlNet holds it (strength 0.6, to 80% of the steps) while it is redrawn at denoise 0.5. Lower the denoise if it changes too much, raise the strength to hold it closer.",
"notes": "The source's tile values; denoise 0.5 because the tile holds the picture (the source went to 0.85 with a latent upscale).",
"models": [
"union_promax_sdxl",
"noob_tile",
"anima_tile_repair",
"2x_animesharp_v4"
],
"tested": {
"gpu": "RTX 4050 Laptop",
"vram_gb": 6,
"date": "2026-10-27",
"runs": [
{
"model": "SDXL (Illustrious)",
"size": "832×1216 → 1.25×",
"seconds": 77
},
{
"model": "Anima",
"size": "1216×832 → 1.25×",
"seconds": 710
}
]
}
}