Files
DemonGatanjieu-Anomalous_Mo…/api/blocks/upscale_two_models.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

155 lines
3.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": 3,
"short": "second model",
"title": {
"zh": "双模型放大",
"en": "Upscale with a second model"
},
"about": {
"zh": "和「放大」一样,但重画换一个模型:底模放大时不稳(眼睛走样、多出肚脐)就换一个更稳的。新加的模型加载器先是同一个模型,由 AI 按你的意思换。 装了 KJNodes 时,还会把颜色对齐到原图,防止放大后颜色跑偏。",
"en": "Like Upscale, but the redraw uses a second model, for a base model that goes wrong when enlarged. The new loader starts as the same model; the AI changes it as you say. With KJNodes, its colours are matched to the original, so they don't drift."
},
"source": {
"zh": "参考工作流的「Refiner/放大」加载器和作者的说明",
"en": "The reference workflow's upscale loader and its author's note"
},
"packs": {},
"upscaler": true,
"after": "The redraw's model comes from a new loader (second_model), for now the same checkpoint as the first: set_model it to the steadier one the user wants (ask_user, search_models), of the same family (SDXL with SDXL: it reuses the first model's prompts). Then run_workflow; the larger one is saved beside it (prefix upscaled).",
"notes": "The source keeps a second loader for upscaling; its author: switch to it when the base model goes wrong enlarged. ColorMatch mkl after the redraw is the source's, optional (KJNodes).",
"upscale_by": 1.25,
"nodes": {
"second_model": {
"class_type": "CheckpointLoaderSimple",
"like": "$loader",
"inputs": {}
},
"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": [
"second_model",
0
],
"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"
],
"tested": {
"gpu": "RTX 4050 Laptop",
"vram_gb": 6,
"date": "2026-10-27",
"runs": [
{
"model": "SDXL (Illustrious)",
"size": "832×1216 → 1.25×",
"seconds": 44
}
]
}
}