Upscale held by Tile takes in the tile upscale, the Anima Tile detail upscale and the second-model upscale: its redraw has its own copy of the canvas's model line (copy_of "$sampler.model": loader and LoRAs, titled "Upscale model"), so a second model is one set_model and the LoRAs stay; on Anima it is the user's tested route (latent 1.22x, Tile LLLite, denoise 0.85). The iterative upscale goes. add_nodes no longer lists every block name, and the repaint hints name the use, not a block. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
340 lines
8.9 KiB
JSON
340 lines
8.9 KiB
JSON
{
|
||
"job": "upscale",
|
||
"want": "detail",
|
||
"rank": 2,
|
||
"short": "held by Tile, own model",
|
||
"title": {
|
||
"zh": "Tile 锁图放大",
|
||
"en": "Upscale held by Tile"
|
||
},
|
||
"about": {
|
||
"zh": "放大时用 Tile 钉住画面,重画得更狠、细节更多。放大这一段有自己的一份模型(默认和底图同一个,LoRA 一起带上),想换第二个模型只要换这一格;Anima 上用 Anima 的 Tile LLLite。",
|
||
"en": "A Tile holds the picture while it is enlarged and redrawn, so the redraw can go stronger: more detail. The redraw has its own copy of the model (the base's, its LoRAs too); a second model is one swap of that loader. On Anima, Anima's Tile LLLite holds it."
|
||
},
|
||
"source": {
|
||
"zh": "参考工作流的「通用放大」组(平铺控制网 0.6,到 80% 的步数)和它的放大加载器;Anima 是你验证过的两段放大卡(潜空间 1.22 倍 + Tile LLLite,降噪 0.85)",
|
||
"en": "The reference workflow's general upscale (tile ControlNet 0.6, to 80% of the steps) and its upscale loader; on Anima the user's tested two-pass card (latent 1.22x, Tile LLLite, denoise 0.85)"
|
||
},
|
||
"packs": {},
|
||
"upscaler": true,
|
||
"upscale_by": 1.25,
|
||
"control": "tile",
|
||
"extras": {
|
||
"ColorMatch": "ComfyUI-KJNodes"
|
||
},
|
||
"nodes": {
|
||
"own": {
|
||
"class_type": "CheckpointLoaderSimple",
|
||
"copy_of": "$sampler.model",
|
||
"_meta": {
|
||
"title": "Upscale model"
|
||
},
|
||
"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"
|
||
}
|
||
},
|
||
"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": [
|
||
"own",
|
||
0
|
||
],
|
||
"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"
|
||
},
|
||
"upscaler": false,
|
||
"control": null,
|
||
"lllite": "tile",
|
||
"nodes": {
|
||
"own": {
|
||
"class_type": "UNETLoader",
|
||
"copy_of": "$sampler.model",
|
||
"_meta": {
|
||
"title": "Upscale model"
|
||
},
|
||
"inputs": {}
|
||
},
|
||
"encode": {
|
||
"class_type": "VAEEncodeTiled",
|
||
"inputs": {
|
||
"pixels": [
|
||
"$save.images",
|
||
"*"
|
||
],
|
||
"vae": [
|
||
"$decode.vae",
|
||
"*"
|
||
],
|
||
"tile_size": 512,
|
||
"overlap": 64,
|
||
"temporal_size": 64,
|
||
"temporal_overlap": 8
|
||
}
|
||
},
|
||
"enlarge": {
|
||
"class_type": "LatentUpscaleBy",
|
||
"inputs": {
|
||
"samples": [
|
||
"encode",
|
||
0
|
||
],
|
||
"upscale_method": "bislerp",
|
||
"scale_by": 1.22
|
||
}
|
||
},
|
||
"tile": {
|
||
"class_type": "AnimaLLLiteApply_sdscripts",
|
||
"inputs": {
|
||
"model": [
|
||
"own",
|
||
0
|
||
],
|
||
"lllite_name": "$lllite",
|
||
"image": [
|
||
"$save.images",
|
||
"*"
|
||
],
|
||
"strength": 0.7,
|
||
"start_percent": 0.0,
|
||
"end_percent": 0.8,
|
||
"preserve_wrapper": true
|
||
}
|
||
},
|
||
"redraw": {
|
||
"class_type": "KSampler",
|
||
"like": "$sampler",
|
||
"inputs": {
|
||
"model": [
|
||
"tile",
|
||
0
|
||
],
|
||
"positive": [
|
||
"$sampler.positive",
|
||
"*"
|
||
],
|
||
"negative": [
|
||
"$sampler.negative",
|
||
"*"
|
||
],
|
||
"latent_image": [
|
||
"enlarge",
|
||
0
|
||
],
|
||
"steps": 30,
|
||
"cfg": 4.4,
|
||
"sampler_name": "dpmpp_2m_sde_gpu",
|
||
"scheduler": "sgm_uniform",
|
||
"denoise": 0.85
|
||
}
|
||
},
|
||
"decode": {
|
||
"class_type": "VAEDecodeTiled",
|
||
"inputs": {
|
||
"samples": [
|
||
"redraw",
|
||
0
|
||
],
|
||
"vae": [
|
||
"$decode.vae",
|
||
"*"
|
||
],
|
||
"tile_size": 512,
|
||
"overlap": 64,
|
||
"temporal_size": 64,
|
||
"temporal_overlap": 8
|
||
}
|
||
},
|
||
"match": {
|
||
"class_type": "ColorMatch",
|
||
"optional": true,
|
||
"inputs": {
|
||
"image_ref": [
|
||
"$save.images",
|
||
"*"
|
||
],
|
||
"image_target": [
|
||
"decode",
|
||
0
|
||
],
|
||
"method": "mkl",
|
||
"strength": 1.0,
|
||
"multithread": true
|
||
}
|
||
},
|
||
"save": {
|
||
"class_type": "SaveImage",
|
||
"inputs": {
|
||
"images": [
|
||
"match|decode",
|
||
0
|
||
],
|
||
"filename_prefix": "upscaled"
|
||
}
|
||
}
|
||
},
|
||
"after": "On this Anima model the picture is enlarged 1.22x in latent space and redrawn at denoise 0.85, held by Anima's Tile LLLite (0.7, to 80% of the steps), with its own copy of the canvas's model and LoRAs (the loader titled Upscale model). For a second model (steadier, other skin or texture), set_model that loader to another Anima model; the LoRAs stay. Then run_workflow; the larger one is saved beside it (prefix upscaled). Compare face, hands and clothes with the base: Tile guides, it does not guarantee."
|
||
}
|
||
},
|
||
"after": "run_workflow saves the picture as before and the 1.25x 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 with its own copy of the canvas's model and LoRAs (the loader titled Upscale model). For a second model (steadier, another look), set_model that loader to one of the same family (it reuses the first model's prompts); the LoRAs stay. 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 redraw's own model line replaced the separate second-model way (2026-11-04): same model by default, one swap for another. On Anima the user's tested route: Harem 1.5 base, Realskin 1.3 for the Tile upscale, its style LoRA on both, 832x1216 to 1016x1480, 116 s for the upscale on 6 GB.",
|
||
"models": [
|
||
"union_promax_sdxl",
|
||
"noob_tile",
|
||
"anima_tile_repair",
|
||
"2x_animesharp_v4",
|
||
"4x_ultrasharp"
|
||
],
|
||
"tested": {
|
||
"gpu": "RTX 4050 Laptop",
|
||
"vram_gb": 6,
|
||
"date": "2026-11-02",
|
||
"runs": [
|
||
{
|
||
"model": "SDXL (Illustrious)",
|
||
"size": "832×1216 → 1.25×",
|
||
"seconds": 77
|
||
},
|
||
{
|
||
"model": "Anima (Kirazuri → Realskin 1.3, Tile)",
|
||
"size": "1216×832 → 1.22×",
|
||
"seconds": 127
|
||
}
|
||
]
|
||
}
|
||
}
|