diff --git a/README.md b/README.md index 8284175..fe86f69 100644 --- a/README.md +++ b/README.md @@ -32,20 +32,20 @@ including workflows to use SDXL 1.0 with both the base and refiner checkpoints. ### Direct Downloads (from Huggingface) -- [SDXL 1.0 base](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors) -- [SDXL 1.0 refiner](https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0.safetensors) -- [Fixed SDXL 0.9 vae](https://huggingface.co/madebyollin/sdxl-vae-fp16-fix/resolve/main/sdxl_vae.safetensors) -- [4x_NMKD-Siax_200k upscaler](https://huggingface.co/uwg/upscaler/resolve/main/ESRGAN/4x_NMKD-Siax_200k.pth) -- [4x-UltraSharp upscaler](https://huggingface.co/uwg/upscaler/resolve/main/ESRGAN/4x-UltraSharp.pth) +- download [SDXL 1.0 base](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors) and copy it into `ComfyUI/models/checkpoints` +- download [SDXL 1.0 refiner](https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0.safetensors) and copy it into `ComfyUI/models/checkpoints` +- download [Fixed SDXL 0.9 vae](https://huggingface.co/madebyollin/sdxl-vae-fp16-fix/resolve/main/sdxl_vae.safetensors) and copy it into `ComfyUI/models/vae` +- download [SDXL Offset Noise LoRA](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_offset_example-lora_1.0.safetensors) and copy it into `ComfyUI/models/loras` +- download [4x_NMKD-Siax_200k upscaler](https://huggingface.co/uwg/upscaler/resolve/main/ESRGAN/4x_NMKD-Siax_200k.pth) and copy it into `ComfyUI/models/upscale_models` +- download [4x-UltraSharp upscaler](https://huggingface.co/uwg/upscaler/resolve/main/ESRGAN/4x-UltraSharp.pth) and copy it into `ComfyUI/models/upscale_models` # More Information -Now 4 workflows are included in the examples folder. -They are called *reborn*, *image2image*, *inpainting*, and *simple*. +Now 3 workflows are included in the examples folder. +They are called *reborn*, *image2image*, and *inpainting*. -The simple workflow is included as a bonus, it is great if you are just starting with SDXL and don't need -an advanced workflow. +The simple workflow has been removed. ### Positive Prompts Prompting has been improved. The main prompt and secondary prompt influence the two CLIP models @@ -103,14 +103,6 @@ Then **right click** on the *Inpainting Mask* image (the bottom one next to the Paint your mask and then press the *Save to node* button when you are done. The *Denoise* parameter works the same way as in image to image, but only masked areas will be changed. -### Simple -The main difference between *simple* and *reborn* is how the prompts are used through the CLIP models. -The *reborn* workflow has advanced options to prompt styles independently of subjects. -In the simple workflow you only have to worry about positive and negative prompts. - -For the easiest way to get started I recommend to just use the same prompt as main and secondary, -and leave the negative prompt empty. - # Available Example Workflows @@ -128,10 +120,6 @@ These the workflows included in the examples folder. -### Simple Workflow - - - ## Example images generated with these workflows @@ -148,10 +136,6 @@ These the workflows included in the examples folder. -### Simple Workflow - - - # Custom Nodes diff --git a/example/Searge-SDXL-reborn.json b/example/Searge-SDXL-reborn.json index 9cc8793..d7115f8 100644 --- a/example/Searge-SDXL-reborn.json +++ b/example/Searge-SDXL-reborn.json @@ -1,6 +1,6 @@ { - "last_node_id": 85, - "last_link_id": 153, + "last_node_id": 127, + "last_link_id": 331, "nodes": [ { "id": 3, @@ -35,7 +35,7 @@ "Node name for S&R": "SeargePromptText" }, "widgets_values": [ - "miniature figures as a realistic depictions of everyday life in a small mining town, the streets are bustling with people" + "a cat with a hat in a grass field" ], "color": "#232", "bgcolor": "#353" @@ -72,7 +72,7 @@ "Node name for S&R": "SeargePromptText" }, "widgets_values": [ - "miniature figures, realistic, everyday life, small mining town, bustling people" + "cat, hat, grass field, style of Aaron Jasinski and Alex Horley" ], "color": "#2a363b", "bgcolor": "#3f5159" @@ -105,12 +105,12 @@ "shape": 3 } ], - "title": "Style and References", + "title": "Style", "properties": { "Node name for S&R": "SeargePromptText" }, "widgets_values": [ - "~*~cinematic~*~ photo of abstraction, 35mm photograph, vibrant rusted dieselpunk, style of Brooke Shaden" + "~*~painting~*~ oil painting, vibrant colors" ], "color": "#223", "bgcolor": "#335" @@ -149,7 +149,7 @@ "Node name for S&R": "SeargePromptText" }, "widgets_values": [ - "drawing, painting, crayon, sketch" + "jpeg artifacts, noise" ], "color": "#322", "bgcolor": "#533" @@ -187,7 +187,7 @@ "Node name for S&R": "SeargePromptText" }, "widgets_values": [ - "noisy, blurry, soft, deformed" + "photograph, anime" ], "color": "#332922", "bgcolor": "#593930" @@ -232,8 +232,8 @@ "title": "Seed", "properties": {}, "widgets_values": [ - 1468615445734, - "fixed" + 1468615445810, + "randomize" ], "color": "#432", "bgcolor": "#653" @@ -259,24 +259,26 @@ "name": "value 1", "type": "INT", "links": [ - 27, - 79 + 168, + 236 ], "shape": 3, - "label": "1 - width" + "label": "1 - width", + "slot_index": 0 }, { "name": "value 2", "type": "INT", "links": [ - 28, - 80 + 169, + 234 ], "shape": 3, - "label": "2 - height" + "label": "2 - height", + "slot_index": 1 } ], - "title": "Image Resolution", + "title": "Base Resolution", "properties": { "Node name for S&R": "SeargeIntegerPair" }, @@ -309,7 +311,8 @@ "name": "COMBO", "type": "euler,euler_ancestral,heun,dpm_2,dpm_2_ancestral,lms,dpm_fast,dpm_adaptive,dpmpp_2s_ancestral,dpmpp_sde,dpmpp_sde_gpu,dpmpp_2m,dpmpp_2m_sde,dpmpp_2m_sde_gpu,ddim,uni_pc,uni_pc_bh2", "links": [ - 6 + 6, + 279 ], "widget": { "name": "sampler_name", @@ -337,13 +340,14 @@ "default": "dpmpp_2m" } ] - } + }, + "label": "sampler" } ], "title": "Sampler", "properties": {}, "widgets_values": [ - "dpmpp_2m", + "ddim", "fixed" ], "color": "#232", @@ -370,7 +374,8 @@ "name": "COMBO", "type": "normal,karras,exponential,simple,ddim_uniform", "links": [ - 7 + 7, + 280 ], "widget": { "name": "scheduler", @@ -386,13 +391,14 @@ "default": "karras" } ] - } + }, + "label": "scheduler" } ], "title": "Scheduler", "properties": {}, "widgets_values": [ - "karras", + "ddim_uniform", "fixed" ], "color": "#232", @@ -479,7 +485,7 @@ "Node name for S&R": "SeargeIntegerConstant" }, "widgets_values": [ - 30 + 25 ], "color": "#432", "bgcolor": "#653" @@ -512,7 +518,7 @@ "label": "upscale by" } ], - "title": "High Resolution Scale Factor", + "title": "Upscaler Resolution Scale Factor", "properties": { "Node name for S&R": "SeargeFloatConstant" }, @@ -536,13 +542,13 @@ "flags": { "pinned": true }, - "order": 52, + "order": 77, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", - "link": 34, + "link": 225, "slot_index": 0 } ], @@ -573,16 +579,17 @@ "name": "MODEL", "type": "MODEL", "links": [ - 68 + 184, + 274 ], - "shape": 3 + "shape": 3, + "slot_index": 0 }, { "name": "CLIP", "type": "CLIP", "links": [ - 29, - 30 + 182 ], "shape": 3, "slot_index": 1 @@ -625,9 +632,11 @@ "name": "MODEL", "type": "MODEL", "links": [ - 69 + 69, + 275 ], - "shape": 3 + "shape": 3, + "slot_index": 0 }, { "name": "CLIP", @@ -676,7 +685,8 @@ "name": "VAE", "type": "VAE", "links": [ - 33 + 33, + 269 ], "shape": 3, "slot_index": 0 @@ -713,7 +723,8 @@ "name": "value", "type": "FLOAT", "links": [ - 10 + 10, + 278 ], "shape": 3, "label": "cfg" @@ -724,7 +735,7 @@ "Node name for S&R": "SeargeFloatConstant" }, "widgets_values": [ - 7 + 8 ], "color": "#432", "bgcolor": "#653" @@ -750,7 +761,8 @@ "name": "value", "type": "FLOAT", "links": [ - 9 + 9, + 281 ], "shape": 3, "label": "base ratio", @@ -764,8 +776,8 @@ "widgets_values": [ 0.8 ], - "color": "#432", - "bgcolor": "#653" + "color": "#332922", + "bgcolor": "#593930" }, { "id": 38, @@ -791,7 +803,7 @@ 26 ], "shape": 3, - "label": "batch size" + "label": "images per batch" } ], "title": "Batch Size", @@ -801,8 +813,8 @@ "widgets_values": [ 1 ], - "color": "#233", - "bgcolor": "#355" + "color": "#223", + "bgcolor": "#335" }, { "id": 43, @@ -838,8 +850,8 @@ "widgets_values": [ 0.333 ], - "color": "#223", - "bgcolor": "#335" + "color": "#232", + "bgcolor": "#353" }, { "id": 51, @@ -855,13 +867,13 @@ "flags": { "pinned": true }, - "order": 30, + "order": 45, "mode": 0, "inputs": [ { "name": "value", "type": "INT", - "link": 125, + "link": 170, "widget": { "name": "value", "config": [ @@ -897,9 +909,12 @@ "name": "value", "type": "INT", "links": [ - 56 + 210, + 211 ], - "shape": 3 + "shape": 3, + "label": "width", + "slot_index": 0 } ], "title": "Base Width Scaler", @@ -928,13 +943,13 @@ "flags": { "pinned": true }, - "order": 31, + "order": 49, "mode": 0, "inputs": [ { "name": "value", "type": "INT", - "link": 126, + "link": 172, "widget": { "name": "value", "config": [ @@ -970,9 +985,12 @@ "name": "value", "type": "INT", "links": [ - 57 + 212, + 213 ], - "shape": 3 + "shape": 3, + "label": "height", + "slot_index": 0 } ], "title": "Base Height Scaler", @@ -1001,13 +1019,13 @@ "flags": { "pinned": true }, - "order": 32, + "order": 46, "mode": 0, "inputs": [ { "name": "value", "type": "INT", - "link": 127, + "link": 171, "widget": { "name": "value", "config": [ @@ -1043,9 +1061,12 @@ "name": "value", "type": "INT", "links": [ - 58 + 214, + 215 ], - "shape": 3 + "shape": 3, + "label": "width", + "slot_index": 0 } ], "title": "Refiner Width Scaler", @@ -1074,13 +1095,13 @@ "flags": { "pinned": true }, - "order": 33, + "order": 50, "mode": 0, "inputs": [ { "name": "value", "type": "INT", - "link": 128, + "link": 173, "widget": { "name": "value", "config": [ @@ -1116,9 +1137,12 @@ "name": "value", "type": "INT", "links": [ - 59 + 216, + 217 ], - "shape": 3 + "shape": 3, + "label": "height", + "slot_index": 0 } ], "title": "Refiner Height Scaler", @@ -1133,181 +1157,6 @@ "color": "#2a363b", "bgcolor": "#3f5159" }, - { - "id": 49, - "type": "Reroute", - "pos": [ - 320, - 1540 - ], - "size": [ - 75, - 26 - ], - "flags": { - "pinned": true - }, - "order": 35, - "mode": 0, - "inputs": [ - { - "name": "", - "type": "*", - "link": 56, - "slot_index": 0 - } - ], - "outputs": [ - { - "name": "", - "type": "INT", - "links": [ - 40, - 41, - 42, - 43 - ] - } - ], - "title": "Test", - "properties": { - "showOutputText": false, - "horizontal": false - }, - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 47, - "type": "Reroute", - "pos": [ - 320, - 1790 - ], - "size": [ - 75, - 26 - ], - "flags": { - "pinned": true - }, - "order": 37, - "mode": 0, - "inputs": [ - { - "name": "", - "type": "*", - "link": 58, - "slot_index": 0 - } - ], - "outputs": [ - { - "name": "", - "type": "INT", - "links": [ - 35, - 38 - ], - "slot_index": 0 - } - ], - "title": "Test", - "properties": { - "showOutputText": false, - "horizontal": false - }, - "color": "#2a363b", - "bgcolor": "#3f5159" - }, - { - "id": 50, - "type": "Reroute", - "pos": [ - 320, - 1660 - ], - "size": [ - 75, - 26 - ], - "flags": { - "pinned": true - }, - "order": 36, - "mode": 0, - "inputs": [ - { - "name": "", - "type": "*", - "link": 57, - "slot_index": 0 - } - ], - "outputs": [ - { - "name": "", - "type": "INT", - "links": [ - 44, - 45, - 46, - 47 - ], - "slot_index": 0 - } - ], - "title": "Test", - "properties": { - "showOutputText": false, - "horizontal": false - }, - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 48, - "type": "Reroute", - "pos": [ - 320, - 1910 - ], - "size": [ - 75, - 26 - ], - "flags": { - "pinned": true - }, - "order": 38, - "mode": 0, - "inputs": [ - { - "name": "", - "type": "*", - "link": 59, - "slot_index": 0 - } - ], - "outputs": [ - { - "name": "", - "type": "INT", - "links": [ - 37, - 39 - ], - "slot_index": 0 - } - ], - "title": "Test", - "properties": { - "showOutputText": false, - "horizontal": false - }, - "color": "#2a363b", - "bgcolor": "#3f5159" - }, { "id": 41, "type": "SeargeSDXLBasePromptEncoder", @@ -1322,13 +1171,13 @@ "flags": { "pinned": true }, - "order": 39, + "order": 55, "mode": 0, "inputs": [ { "name": "base_clip", "type": "CLIP", - "link": 30, + "link": 180, "slot_index": 0 }, { @@ -1398,7 +1247,7 @@ { "name": "base_width", "type": "INT", - "link": 40, + "link": 211, "widget": { "name": "base_width", "config": [ @@ -1416,7 +1265,7 @@ { "name": "base_height", "type": "INT", - "link": 45, + "link": 213, "widget": { "name": "base_height", "config": [ @@ -1434,7 +1283,7 @@ { "name": "target_width", "type": "INT", - "link": 41, + "link": 176, "widget": { "name": "target_width", "config": [ @@ -1452,7 +1301,7 @@ { "name": "target_height", "type": "INT", - "link": 46, + "link": 177, "widget": { "name": "target_height", "config": [ @@ -1474,7 +1323,7 @@ "type": "CONDITIONING", "links": [ 64, - 139 + 331 ], "shape": 3, "slot_index": 0 @@ -1484,7 +1333,7 @@ "type": "CONDITIONING", "links": [ 65, - 142 + 330 ], "shape": 3, "slot_index": 1 @@ -1523,7 +1372,7 @@ "flags": { "pinned": true }, - "order": 40, + "order": 57, "mode": 0, "inputs": [ { @@ -1567,7 +1416,7 @@ { "name": "refiner_width", "type": "INT", - "link": 35, + "link": 215, "widget": { "name": "refiner_width", "config": [ @@ -1584,7 +1433,7 @@ { "name": "refiner_height", "type": "INT", - "link": 37, + "link": 217, "widget": { "name": "refiner_height", "config": [ @@ -1606,7 +1455,7 @@ "type": "CONDITIONING", "links": [ 66, - 143 + 329 ], "shape": 3, "slot_index": 0 @@ -1616,7 +1465,7 @@ "type": "CONDITIONING", "links": [ 67, - 146 + 328 ], "shape": 3, "slot_index": 1 @@ -1651,13 +1500,13 @@ "flags": { "pinned": true }, - "order": 41, + "order": 56, "mode": 0, "inputs": [ { "name": "base_clip", "type": "CLIP", - "link": 29 + "link": 181 }, { "name": "refiner_clip", @@ -1758,7 +1607,7 @@ { "name": "base_width", "type": "INT", - "link": 42, + "link": 210, "widget": { "name": "base_width", "config": [ @@ -1776,7 +1625,7 @@ { "name": "base_height", "type": "INT", - "link": 44, + "link": 212, "widget": { "name": "base_height", "config": [ @@ -1794,7 +1643,7 @@ { "name": "target_width", "type": "INT", - "link": 43, + "link": 174, "widget": { "name": "target_width", "config": [ @@ -1812,7 +1661,7 @@ { "name": "target_height", "type": "INT", - "link": 47, + "link": 175, "widget": { "name": "target_height", "config": [ @@ -1830,7 +1679,7 @@ { "name": "refiner_width", "type": "INT", - "link": 38, + "link": 214, "widget": { "name": "refiner_width", "config": [ @@ -1847,7 +1696,7 @@ { "name": "refiner_height", "type": "INT", - "link": 39, + "link": 216, "widget": { "name": "refiner_height", "config": [ @@ -1869,7 +1718,7 @@ "type": "CONDITIONING", "links": [ 60, - 140 + 324 ], "shape": 3, "slot_index": 0 @@ -1879,7 +1728,7 @@ "type": "CONDITIONING", "links": [ 61, - 141 + 325 ], "shape": 3, "slot_index": 1 @@ -1889,7 +1738,7 @@ "type": "CONDITIONING", "links": [ 62, - 144 + 326 ], "shape": 3, "slot_index": 2 @@ -1899,7 +1748,7 @@ "type": "CONDITIONING", "links": [ 63, - 145 + 327 ], "shape": 3, "slot_index": 3 @@ -1944,13 +1793,13 @@ "flags": { "pinned": true }, - "order": 28, + "order": 51, "mode": 0, "inputs": [ { "name": "width", "type": "INT", - "link": 27, + "link": 218, "widget": { "name": "width", "config": [ @@ -1968,7 +1817,7 @@ { "name": "height", "type": "INT", - "link": 28, + "link": 219, "widget": { "name": "height", "config": [ @@ -2036,7 +1885,7 @@ "flags": { "pinned": true }, - "order": 42, + "order": 58, "mode": 0, "inputs": [ { @@ -2080,7 +1929,7 @@ "flags": { "pinned": true }, - "order": 44, + "order": 60, "mode": 0, "inputs": [ { @@ -2124,7 +1973,7 @@ "flags": { "pinned": true }, - "order": 46, + "order": 62, "mode": 0, "inputs": [ { @@ -2168,7 +2017,7 @@ "flags": { "pinned": true }, - "order": 48, + "order": 64, "mode": 0, "inputs": [ { @@ -2207,24 +2056,24 @@ ], "size": { "0": 350, - "1": 300 + "1": 318 }, "flags": { "pinned": true }, - "order": 50, + "order": 66, "mode": 0, "inputs": [ { "name": "base_model", "type": "MODEL", - "link": 68, + "link": 183, "slot_index": 0 }, { "name": "base_positive", "type": "CONDITIONING", - "link": 137, + "link": 202, "slot_index": 1 }, { @@ -2242,13 +2091,13 @@ { "name": "refiner_positive", "type": "CONDITIONING", - "link": 138, + "link": 205, "slot_index": 4 }, { "name": "refiner_negative", "type": "CONDITIONING", - "link": 152, + "link": 206, "slot_index": 5 }, { @@ -2260,7 +2109,7 @@ { "name": "noise_seed", "type": "INT", - "link": 12, + "link": 252, "widget": { "name": "noise_seed", "config": [ @@ -2398,6 +2247,23 @@ ] }, "slot_index": 13 + }, + { + "name": "refiner_prep_steps", + "type": "INT", + "link": 207, + "widget": { + "name": "refiner_prep_steps", + "config": [ + "INT", + { + "default": 0, + "min": 0, + "max": 1000 + } + ] + }, + "slot_index": 14 } ], "outputs": [ @@ -2415,14 +2281,15 @@ "Node name for S&R": "SeargeSDXLSampler" }, "widgets_values": [ - 419523514355652, + 934049116476393, "randomize", 30, 7, - "dpmpp_2m", - "karras", + "ddim", + "ddim_uniform", 0.8, - 1 + 1, + 0 ], "color": "#223", "bgcolor": "#335" @@ -2441,7 +2308,7 @@ "flags": { "pinned": true }, - "order": 51, + "order": 67, "mode": 0, "inputs": [ { @@ -2461,10 +2328,8 @@ "name": "IMAGE", "type": "IMAGE", "links": [ - 34, - 83, - 84, - 88 + 244, + 270 ], "shape": 3, "slot_index": 0 @@ -2490,13 +2355,13 @@ "flags": { "pinned": true }, - "order": 27, + "order": 48, "mode": 0, "inputs": [ { "name": "value", "type": "INT", - "link": 79, + "link": 287, "widget": { "name": "value", "config": [ @@ -2535,7 +2400,8 @@ 91 ], "shape": 3, - "slot_index": 0 + "slot_index": 0, + "label": "width" } ], "title": "Upscaled Image Width", @@ -2564,13 +2430,13 @@ "flags": { "pinned": true }, - "order": 26, + "order": 53, "mode": 0, "inputs": [ { "name": "value", "type": "INT", - "link": 80, + "link": 288, "widget": { "name": "value", "config": [ @@ -2608,7 +2474,8 @@ "links": [ 92 ], - "shape": 3 + "shape": 3, + "label": "height" } ], "title": "Upscaled Image Height", @@ -2637,7 +2504,7 @@ "flags": { "pinned": true }, - "order": 53, + "order": 73, "mode": 0, "inputs": [ { @@ -2649,7 +2516,7 @@ { "name": "image", "type": "IMAGE", - "link": 83, + "link": 245, "slot_index": 1 } ], @@ -2684,7 +2551,7 @@ "flags": { "pinned": true }, - "order": 54, + "order": 74, "mode": 0, "inputs": [ { @@ -2696,7 +2563,7 @@ { "name": "image", "type": "IMAGE", - "link": 84, + "link": 246, "slot_index": 1 } ], @@ -2718,213 +2585,22 @@ "bgcolor": "#335" }, { - "id": 69, - "type": "ImageScale", + "id": 36, + "type": "UpscaleModelLoader", "pos": [ - 2690, - 550 + 480, + 970 ], "size": { - "0": 320, - "1": 130 + "0": 327.6000061035156, + "1": 60 }, "flags": { "pinned": true }, - "order": 57, + "order": 19, "mode": 0, - "inputs": [ - { - "name": "image", - "type": "IMAGE", - "link": 89 - }, - { - "name": "width", - "type": "INT", - "link": 91, - "widget": { - "name": "width", - "config": [ - "INT", - { - "default": 512, - "min": 1, - "max": 8192, - "step": 1 - } - ] - } - }, - { - "name": "height", - "type": "INT", - "link": 92, - "widget": { - "name": "height", - "config": [ - "INT", - { - "default": 512, - "min": 1, - "max": 8192, - "step": 1 - } - ] - }, - "slot_index": 2 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 90 - ], - "shape": 3, - "slot_index": 0 - } - ], - "title": "Scale to Target Size", - "properties": { - "Node name for S&R": "ImageScale" - }, - "widgets_values": [ - "bicubic", - 512, - 512, - "center" - ], - "color": "#223", - "bgcolor": "#335" - }, - { - "id": 68, - "type": "ImageBlend", - "pos": [ - 2690, - 720 - ], - "size": { - "0": 320, - "1": 102 - }, - "flags": { - "pinned": true - }, - "order": 56, - "mode": 0, - "inputs": [ - { - "name": "image1", - "type": "IMAGE", - "link": 86, - "slot_index": 0 - }, - { - "name": "image2", - "type": "IMAGE", - "link": 87, - "slot_index": 1 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 89 - ], - "shape": 3, - "slot_index": 0 - } - ], - "title": "Mix Upscaled Images", - "properties": { - "Node name for S&R": "ImageBlend" - }, - "widgets_values": [ - 0.75, - "normal" - ], - "color": "#223", - "bgcolor": "#335" - }, - { - "id": 63, - "type": "SaveImage", - "pos": [ - 3100, - 330 - ], - "size": { - "0": 420, - "1": 470 - }, - "flags": { - "pinned": true - }, - "order": 58, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 90 - } - ], - "properties": {}, - "widgets_values": [ - "SeargeSDXL-t2i-%date:yyyy-MM-dd%/high_res" - ] - }, - { - "id": 59, - "type": "SaveImage", - "pos": [ - 3100, - 1240 - ], - "size": { - "0": 420, - "1": 470 - }, - "flags": { - "pinned": true - }, - "order": 55, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 88, - "slot_index": 0 - } - ], - "properties": {}, - "widgets_values": [ - "SeargeSDXL-t2i-%date:yyyy-MM-dd%/low_res" - ] - }, - { - "id": 36, - "type": "UpscaleModelLoader", - "pos": [ - 480, - 970 - ], - "size": { - "0": 320, - "1": 60 - }, - "flags": { - "pinned": true - }, - "order": 19, - "mode": 0, - "outputs": [ + "outputs": [ { "name": "UPSCALE_MODEL", "type": "UPSCALE_MODEL", @@ -2965,9 +2641,11 @@ "name": "UPSCALE_MODEL", "type": "UPSCALE_MODEL", "links": [ - 82 + 82, + 307 ], - "shape": 3 + "shape": 3, + "slot_index": 0 } ], "title": "Supporting Upscale Model", @@ -2980,46 +2658,6 @@ "color": "#2a363b", "bgcolor": "#3f5159" }, - { - "id": 74, - "type": "SeargeIntegerConstant", - "pos": [ - -500, - 1750 - ], - "size": { - "0": 250, - "1": 58 - }, - "flags": { - "pinned": true - }, - "order": 21, - "mode": 0, - "outputs": [ - { - "name": "value", - "type": "INT", - "links": [ - 125, - 126, - 127, - 128 - ], - "shape": 3, - "slot_index": 0 - } - ], - "title": "Conditioning Size Base", - "properties": { - "Node name for S&R": "SeargeIntegerConstant" - }, - "widgets_values": [ - 1024 - ], - "color": "#222", - "bgcolor": "#000" - }, { "id": 75, "type": "ConditioningAverage ", @@ -3034,18 +2672,19 @@ "flags": { "pinned": true }, - "order": 43, + "order": 59, "mode": 0, "inputs": [ { "name": "conditioning_to", "type": "CONDITIONING", - "link": 139 + "link": 331, + "slot_index": 0 }, { "name": "conditioning_from", "type": "CONDITIONING", - "link": 140 + "link": 324 }, { "name": "conditioning_to_strength", @@ -3071,7 +2710,8 @@ "name": "CONDITIONING", "type": "CONDITIONING", "links": [ - 137 + 202, + 283 ], "shape": 3, "label": "base +", @@ -3101,18 +2741,19 @@ "flags": { "pinned": true }, - "order": 45, + "order": 61, "mode": 0, "inputs": [ { "name": "conditioning_to", "type": "CONDITIONING", - "link": 141 + "link": 330, + "slot_index": 0 }, { "name": "conditioning_from", "type": "CONDITIONING", - "link": 142 + "link": 325 }, { "name": "conditioning_to_strength", @@ -3138,7 +2779,8 @@ "name": "CONDITIONING", "type": "CONDITIONING", "links": [ - 151 + 151, + 284 ], "shape": 3, "label": "base -", @@ -3168,18 +2810,19 @@ "flags": { "pinned": true }, - "order": 47, + "order": 63, "mode": 0, "inputs": [ { "name": "conditioning_to", "type": "CONDITIONING", - "link": 143 + "link": 329, + "slot_index": 0 }, { "name": "conditioning_from", "type": "CONDITIONING", - "link": 144 + "link": 326 }, { "name": "conditioning_to_strength", @@ -3205,7 +2848,8 @@ "name": "CONDITIONING", "type": "CONDITIONING", "links": [ - 138 + 205, + 285 ], "shape": 3, "label": "refiner +", @@ -3235,18 +2879,18 @@ "flags": { "pinned": true }, - "order": 49, + "order": 65, "mode": 0, "inputs": [ { "name": "conditioning_to", "type": "CONDITIONING", - "link": 145 + "link": 328 }, { "name": "conditioning_from", "type": "CONDITIONING", - "link": 146 + "link": 327 }, { "name": "conditioning_to_strength", @@ -3272,7 +2916,8 @@ "name": "CONDITIONING", "type": "CONDITIONING", "links": [ - 152 + 206, + 286 ], "shape": 3, "label": "refiner -", @@ -3302,14 +2947,15 @@ "flags": { "pinned": true }, - "order": 29, + "order": 39, "mode": 0, "inputs": [ { "name": "", "type": "*", "link": 131, - "slot_index": 0 + "slot_index": 0, + "label": "style +" } ], "outputs": [ @@ -3325,7 +2971,9 @@ "properties": { "showOutputText": false, "horizontal": false - } + }, + "color": "#232", + "bgcolor": "#353" }, { "id": 83, @@ -3341,7 +2989,7 @@ "flags": { "pinned": true }, - "order": 22, + "order": 21, "mode": 0, "outputs": [ { @@ -3351,7 +2999,7 @@ 153 ], "shape": 3, - "label": "base ratio", + "label": "denoise", "slot_index": 0 } ], @@ -3379,7 +3027,7 @@ "flags": { "pinned": true }, - "order": 23, + "order": 22, "mode": 0, "outputs": [ { @@ -3399,34 +3047,8 @@ "widgets_values": [ 0.667 ], - "color": "#332922", - "bgcolor": "#593930" - }, - { - "id": 45, - "type": "Note", - "pos": [ - 480, - 650 - ], - "size": { - "0": 630, - "1": 290 - }, - "flags": { - "pinned": true - }, - "order": 24, - "mode": 0, - "title": "Workflow Information", - "properties": { - "text": "" - }, - "widgets_values": [ - "\nImproved Searge SDXL workflow for SDXL 1.0 - TEXT to IMAGE (Reborn) - created on Jul 27, 2023\n\nTo use this workflow, set up ComfyUI like this:\n\n- Install the Searge SDXL custom node extension from https://github.com/SeargeDP/SeargeSDXL\n - open the command line in directory: ComfyUI/custom_nodes\n - run the command: git clone https://github.com/SeargeDP/SeargeSDXL.git\n - restart ComfyUI\n\nSDXL 1.0 base:\n https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors\nSDXL 1.0 refiner:\n https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0.safetensors\n\nSDXL 0.9 vae: https://huggingface.co/madebyollin/sdxl-vae-fp16-fix/resolve/main/sdxl_vae.safetensors\n4x-UltraSharp upscaler: https://huggingface.co/uwg/upscaler/resolve/main/ESRGAN/4x-UltraSharp.pth\n4x_NMKD-Siax_200k upscaler: https://huggingface.co/uwg/upscaler/resolve/main/ESRGAN/4x_NMKD-Siax_200k.pth\n\nImage sizes that are \"ideal\" for different aspect ratios:\n | 1024x1024 | 1152x896 | 896x1152 | 1216x832 | 832x1216 | 1344x768 | 768x1344 | 1536x640 | 640x1536 |" - ], - "color": "#323", - "bgcolor": "#535" + "color": "#322", + "bgcolor": "#533" }, { "id": 85, @@ -3442,14 +3064,15 @@ "flags": { "pinned": true }, - "order": 34, + "order": 40, "mode": 0, "inputs": [ { "name": "", "type": "*", "link": 148, - "slot_index": 0 + "slot_index": 0, + "label": "style -" } ], "outputs": [ @@ -3466,7 +3089,9 @@ "properties": { "showOutputText": false, "horizontal": false - } + }, + "color": "#322", + "bgcolor": "#533" }, { "id": 15, @@ -3482,7 +3107,7 @@ "flags": { "pinned": true }, - "order": 25, + "order": 34, "mode": 0, "inputs": [ { @@ -3509,10 +3134,11 @@ "name": "value", "type": "INT", "links": [ - 12 + 253 ], "shape": 3, - "label": "seed" + "label": "seed", + "slot_index": 0 } ], "title": "Seed pass-through", @@ -3520,727 +3146,2692 @@ "Node name for S&R": "SeargeIntegerConstant" }, "widgets_values": [ - 1468615445734 + 1468615445810 ], "color": "#222", "bgcolor": "#000" - } - ], - "links": [ - [ - 1, - 16, - 0, - 15, - 0, - "INT" - ], - [ - 6, - 29, - 0, - 28, - 10, - "euler,euler_ancestral,heun,dpm_2,dpm_2_ancestral,lms,dpm_fast,dpm_adaptive,dpmpp_2s_ancestral,dpmpp_sde,dpmpp_sde_gpu,dpmpp_2m,dpmpp_2m_sde,dpmpp_2m_sde_gpu,ddim,uni_pc,uni_pc_bh2" + }, + { + "id": 86, + "type": "PreviewImage", + "pos": [ + 50, + -900 + ], + "size": { + "0": 1550, + "1": 850 + }, + "flags": { + "pinned": true + }, + "order": 76, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 224, + "slot_index": 0 + } + ], + "title": "Horizontal Preview Image", + "properties": { + "Node name for S&R": "PreviewImage" + }, + "color": "#222", + "bgcolor": "#000" + }, + { + "id": 87, + "type": "PreviewImage", + "pos": [ + -900, + -900 + ], + "size": { + "0": 850, + "1": 1550 + }, + "flags": { + "pinned": true + }, + "order": 75, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 223, + "slot_index": 0 + } + ], + "title": "Vertical Preview Image", + "properties": { + "Node name for S&R": "PreviewImage" + }, + "color": "#222", + "bgcolor": "#000" + }, + { + "id": 90, + "type": "Reroute", + "pos": [ + -150, + 1450 + ], + "size": [ + 75, + 26 + ], + "flags": { + "pinned": true + }, + "order": 35, + "mode": 0, + "inputs": [ + { + "name": "", + "type": "*", + "link": 168, + "label": "width" + } + ], + "outputs": [ + { + "name": "", + "type": "INT", + "links": [ + 170, + 171, + 174, + 176, + 218 + ], + "slot_index": 0 + } + ], + "properties": { + "showOutputText": false, + "horizontal": false + } + }, + { + "id": 91, + "type": "Reroute", + "pos": [ + -150, + 1500 + ], + "size": [ + 75, + 26 + ], + "flags": { + "pinned": true + }, + "order": 37, + "mode": 0, + "inputs": [ + { + "name": "", + "type": "*", + "link": 169, + "label": "height" + } + ], + "outputs": [ + { + "name": "", + "type": "INT", + "links": [ + 172, + 173, + 175, + 177, + 219 + ], + "slot_index": 0 + } + ], + "properties": { + "showOutputText": false, + "horizontal": false + } + }, + { + "id": 92, + "type": "LoraLoader", + "pos": [ + 480, + 1160 + ], + "size": { + "0": 630, + "1": 120 + }, + "flags": { + "pinned": true + }, + "order": 41, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 184 + }, + { + "name": "clip", + "type": "CLIP", + "link": 182 + }, + { + "name": "strength_model", + "type": "FLOAT", + "link": 208, + "widget": { + "name": "strength_model", + "config": [ + "FLOAT", + { + "default": 1, + "min": -10, + "max": 10, + "step": 0.01 + } + ] + }, + "slot_index": 2 + }, + { + "name": "strength_clip", + "type": "FLOAT", + "link": 220, + "widget": { + "name": "strength_clip", + "config": [ + "FLOAT", + { + "default": 1, + "min": -10, + "max": 10, + "step": 0.01 + } + ] + } + }, + { + "name": "lora_name", + "type": "sd_xl_offset_example-lora_1.0.safetensors", + "link": 221, + "widget": { + "name": "lora_name", + "config": [ + [ + "sd_xl_offset_example-lora_1.0.safetensors" + ] + ] + }, + "slot_index": 4 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 183 + ], + "shape": 3, + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 180, + 181 + ], + "shape": 3, + "slot_index": 1 + } + ], + "properties": { + "Node name for S&R": "LoraLoader" + }, + "widgets_values": [ + "sd_xl_offset_example-lora_1.0.safetensors", + 0, + 0 + ], + "color": "#223", + "bgcolor": "#335" + }, + { + "id": 99, + "type": "PrimitiveNode", + "pos": [ + 900, + 650 + ], + "size": { + "0": 210, + "1": 82 + }, + "flags": { + "pinned": true + }, + "order": 23, + "mode": 0, + "outputs": [ + { + "name": "COMBO", + "type": "sd_xl_offset_example-lora_1.0.safetensors", + "links": [ + 221 + ], + "widget": { + "name": "lora_name", + "config": [ + [ + "sd_xl_offset_example-lora_1.0.safetensors" + ] + ] + }, + "label": "LORA_MODEL" + } + ], + "title": "LoRA Model", + "properties": {}, + "widgets_values": [ + "sd_xl_offset_example-lora_1.0.safetensors", + "fixed" + ], + "color": "#332922", + "bgcolor": "#593930" + }, + { + "id": 98, + "type": "SeargeFloatConstant", + "pos": [ + 690, + 650 + ], + "size": { + "0": 210, + "1": 80 + }, + "flags": { + "pinned": true + }, + "order": 24, + "mode": 0, + "outputs": [ + { + "name": "value", + "type": "FLOAT", + "links": [ + 208, + 220 + ], + "shape": 3, + "label": "weight", + "slot_index": 0 + } + ], + "title": "LoRA Weight", + "properties": { + "Node name for S&R": "SeargeFloatConstant" + }, + "widgets_values": [ + 0 + ], + "color": "#332922", + "bgcolor": "#593930" + }, + { + "id": 95, + "type": "SeargeIntegerConstant", + "pos": [ + 480, + 650 + ], + "size": { + "0": 210, + "1": 80 + }, + "flags": { + "pinned": true + }, + "order": 25, + "mode": 0, + "outputs": [ + { + "name": "value", + "type": "INT", + "links": [ + 207 + ], + "shape": 3, + "label": "steps" + } + ], + "title": "Preconditioning Steps", + "properties": { + "Node name for S&R": "SeargeIntegerConstant" + }, + "widgets_values": [ + 0 + ], + "color": "#223", + "bgcolor": "#335" + }, + { + "id": 101, + "type": "SeargeFloatConstant", + "pos": [ + 900, + 760 + ], + "size": { + "0": 210, + "1": 60 + }, + "flags": { + "pinned": true + }, + "order": 26, + "mode": 0, + "outputs": [ + { + "name": "value", + "type": "FLOAT", + "links": [ + 232, + 233 + ], + "shape": 3, + "label": "upscale by" + } + ], + "title": "Hires Fix Scale Factor", + "properties": { + "Node name for S&R": "SeargeFloatConstant" + }, + "widgets_values": [ + 1.5 + ], + "color": "#233", + "bgcolor": "#355" + }, + { + "id": 100, + "type": "SeargeFloatConstant", + "pos": [ + 690, + 760 + ], + "size": { + "0": 210, + "1": 60 + }, + "flags": { + "pinned": true + }, + "order": 27, + "mode": 0, + "outputs": [ + { + "name": "value", + "type": "FLOAT", + "links": [ + 282 + ], + "shape": 3, + "label": "hires fix denoise" + } + ], + "title": "HiRes Fix Denoise", + "properties": { + "Node name for S&R": "SeargeFloatConstant" + }, + "widgets_values": [ + 0.1 + ], + "color": "#233", + "bgcolor": "#355" + }, + { + "id": 102, + "type": "SeargeIntegerConstant", + "pos": [ + 480, + 760 + ], + "size": { + "0": 210, + "1": 60 + }, + "flags": { + "pinned": true + }, + "order": 28, + "mode": 0, + "outputs": [ + { + "name": "value", + "type": "INT", + "links": [ + 277 + ], + "shape": 3, + "label": "steps" + } + ], + "title": "HiRes Fix Steps | 0 = off", + "properties": { + "Node name for S&R": "SeargeIntegerConstant" + }, + "widgets_values": [ + 0 + ], + "color": "#233", + "bgcolor": "#355" + }, + { + "id": 104, + "type": "Reroute", + "pos": [ + -120, + -970 + ], + "size": [ + 75, + 26 + ], + "flags": { + "pinned": true + }, + "order": 72, + "mode": 0, + "inputs": [ + { + "name": "", + "type": "*", + "link": 226, + "label": "image" + } + ], + "outputs": [ + { + "name": "", + "type": "IMAGE", + "links": [ + 223, + 224, + 225 + ], + "slot_index": 0 + } + ], + "properties": { + "showOutputText": false, + "horizontal": false + }, + "color": "#223", + "bgcolor": "#335" + }, + { + "id": 59, + "type": "SaveImage", + "pos": [ + 2300, + -270 + ], + "size": { + "0": 420, + "1": 470 + }, + "flags": { + "pinned": true + }, + "order": 68, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 244, + "slot_index": 0 + } + ], + "title": "Save Generated Image", + "properties": {}, + "widgets_values": [ + "SeargeSDXL-t2i-%date:yyyy-MM-dd%/generated/gen" + ] + }, + { + "id": 63, + "type": "SaveImage", + "pos": [ + 2800, + -270 + ], + "size": { + "0": 420, + "1": 470 + }, + "flags": { + "pinned": true + }, + "order": 42, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 298 + } + ], + "title": "Save HiResFixed Image", + "properties": {}, + "widgets_values": [ + "SeargeSDXL-t2i-%date:yyyy-MM-dd%/hires/hrf" + ] + }, + { + "id": 106, + "type": "SeargeIntegerScaler", + "pos": [ + 2300, + 880 + ], + "size": { + "0": 230, + "1": 80 + }, + "flags": { + "pinned": true + }, + "order": 47, + "mode": 0, + "inputs": [ + { + "name": "value", + "type": "INT", + "link": 238, + "widget": { + "name": "value", + "config": [ + "INT", + { + "default": 0, + "min": 0, + "max": 18446744073709552000 + } + ] + }, + "slot_index": 0 + }, + { + "name": "factor", + "type": "FLOAT", + "link": 233, + "widget": { + "name": "factor", + "config": [ + "FLOAT", + { + "default": 1, + "step": 0.01 + } + ] + }, + "slot_index": 1 + } + ], + "outputs": [ + { + "name": "value", + "type": "INT", + "links": [ + 272 + ], + "shape": 3, + "slot_index": 0, + "label": "width" + } + ], + "title": "HRF Image Width", + "properties": { + "Node name for S&R": "SeargeIntegerScaler" + }, + "widgets_values": [ + 0, + 1, + 64 + ], + "color": "#233", + "bgcolor": "#355" + }, + { + "id": 107, + "type": "SeargeIntegerScaler", + "pos": [ + 2300, + 1000 + ], + "size": { + "0": 230, + "1": 80 + }, + "flags": { + "pinned": true + }, + "order": 52, + "mode": 0, + "inputs": [ + { + "name": "value", + "type": "INT", + "link": 239, + "widget": { + "name": "value", + "config": [ + "INT", + { + "default": 0, + "min": 0, + "max": 18446744073709552000 + } + ] + }, + "slot_index": 0 + }, + { + "name": "factor", + "type": "FLOAT", + "link": 232, + "widget": { + "name": "factor", + "config": [ + "FLOAT", + { + "default": 1, + "step": 0.01 + } + ] + }, + "slot_index": 1 + } + ], + "outputs": [ + { + "name": "value", + "type": "INT", + "links": [ + 273 + ], + "shape": 3, + "label": "height", + "slot_index": 0 + } + ], + "title": "HRF Image Height", + "properties": { + "Node name for S&R": "SeargeIntegerScaler" + }, + "widgets_values": [ + 0, + 1, + 64 + ], + "color": "#233", + "bgcolor": "#355" + }, + { + "id": 109, + "type": "Reroute", + "pos": [ + 2000, + 610 + ], + "size": [ + 75, + 26 + ], + "flags": { + "pinned": true + }, + "order": 38, + "mode": 0, + "inputs": [ + { + "name": "", + "type": "*", + "link": 234, + "label": "height" + } + ], + "outputs": [ + { + "name": "", + "type": "INT", + "links": [ + 239, + 288 + ], + "slot_index": 0 + } + ], + "properties": { + "showOutputText": false, + "horizontal": false + } + }, + { + "id": 110, + "type": "Reroute", + "pos": [ + 2000, + 580 + ], + "size": [ + 75, + 26 + ], + "flags": { + "pinned": true + }, + "order": 36, + "mode": 0, + "inputs": [ + { + "name": "", + "type": "*", + "link": 236, + "label": "width" + } + ], + "outputs": [ + { + "name": "", + "type": "INT", + "links": [ + 238, + 287 + ], + "slot_index": 0 + } + ], + "properties": { + "showOutputText": false, + "horizontal": false + } + }, + { + "id": 112, + "type": "Reroute", + "pos": [ + 1900, + 1700 + ], + "size": [ + 75, + 26 + ], + "flags": { + "pinned": true + }, + "order": 44, + "mode": 0, + "inputs": [ + { + "name": "", + "type": "*", + "link": 253, + "label": "seed" + } + ], + "outputs": [ + { + "name": "", + "type": "INT", + "links": [ + 252, + 289 + ], + "slot_index": 0 + } + ], + "properties": { + "showOutputText": false, + "horizontal": false + } + }, + { + "id": 69, + "type": "ImageScale", + "pos": [ + 2700, + 530 + ], + "size": { + "0": 320, + "1": 130 + }, + "flags": { + "pinned": true + }, + "order": 79, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 89 + }, + { + "name": "width", + "type": "INT", + "link": 91, + "widget": { + "name": "width", + "config": [ + "INT", + { + "default": 512, + "min": 1, + "max": 8192, + "step": 1 + } + ] + } + }, + { + "name": "height", + "type": "INT", + "link": 92, + "widget": { + "name": "height", + "config": [ + "INT", + { + "default": 512, + "min": 1, + "max": 8192, + "step": 1 + } + ] + }, + "slot_index": 2 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 291 + ], + "shape": 3, + "slot_index": 0 + } + ], + "title": "Scale to Target Size", + "properties": { + "Node name for S&R": "ImageScale" + }, + "widgets_values": [ + "bicubic", + 512, + 512, + "center" + ], + "color": "#223", + "bgcolor": "#335" + }, + { + "id": 68, + "type": "ImageBlend", + "pos": [ + 2700, + 730 + ], + "size": { + "0": 320, + "1": 102 + }, + "flags": { + "pinned": true + }, + "order": 78, + "mode": 0, + "inputs": [ + { + "name": "image1", + "type": "IMAGE", + "link": 86, + "slot_index": 0 + }, + { + "name": "image2", + "type": "IMAGE", + "link": 87, + "slot_index": 1 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 89 + ], + "shape": 3, + "slot_index": 0 + } + ], + "title": "Mix Upscaled Images", + "properties": { + "Node name for S&R": "ImageBlend" + }, + "widgets_values": [ + 0.5, + "normal" + ], + "color": "#223", + "bgcolor": "#335" + }, + { + "id": 115, + "type": "SaveImage", + "pos": [ + 3300, + -270 + ], + "size": { + "0": 420, + "1": 470 + }, + "flags": { + "pinned": true + }, + "order": 43, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 296, + "slot_index": 0 + } + ], + "title": "Save Upscaled Image", + "properties": {}, + "widgets_values": [ + "SeargeSDXL-t2i-%date:yyyy-MM-dd%/upscaled/up" + ] + }, + { + "id": 45, + "type": "Note", + "pos": [ + 480, + 850 + ], + "size": { + "0": 630, + "1": 90 + }, + "flags": { + "pinned": true + }, + "order": 29, + "mode": 0, + "title": "Workflow Information", + "properties": { + "text": "" + }, + "widgets_values": [ + "Improved Searge SDXL workflow for SDXL 1.0 - TEXT to IMAGE (Reborn) - v2.0 created on Jul 29, 2023\nVersion 2.1 updated on Jul 31, 2023 | requires custom node extension: https://github.com/SeargeDP/SeargeSDXL\n\n| 1024x1024 | 1152x896 | 896x1152 | 1216x832 | 832x1216 | 1344x768 | 768x1344 | 1536x640 | 640x1536 |" + ], + "color": "#323", + "bgcolor": "#535" + }, + { + "id": 117, + "type": "SeargeSDXLImage2ImageSampler", + "pos": [ + 2700, + 1130 + ], + "size": { + "0": 320, + "1": 374 + }, + "flags": { + "pinned": true + }, + "order": 69, + "mode": 0, + "inputs": [ + { + "name": "base_model", + "type": "MODEL", + "link": 274 + }, + { + "name": "base_positive", + "type": "CONDITIONING", + "link": 283 + }, + { + "name": "base_negative", + "type": "CONDITIONING", + "link": 284 + }, + { + "name": "refiner_model", + "type": "MODEL", + "link": 275 + }, + { + "name": "refiner_positive", + "type": "CONDITIONING", + "link": 285 + }, + { + "name": "refiner_negative", + "type": "CONDITIONING", + "link": 286 + }, + { + "name": "image", + "type": "IMAGE", + "link": 270 + }, + { + "name": "vae", + "type": "VAE", + "link": 269 + }, + { + "name": "upscale_model", + "type": "UPSCALE_MODEL", + "link": 307 + }, + { + "name": "noise_seed", + "type": "INT", + "link": 290, + "widget": { + "name": "noise_seed", + "config": [ + "INT", + { + "default": 0, + "min": 0, + "max": 18446744073709552000 + } + ] + }, + "slot_index": 9 + }, + { + "name": "steps", + "type": "INT", + "link": 277, + "widget": { + "name": "steps", + "config": [ + "INT", + { + "default": 20, + "min": 0, + "max": 1000 + } + ] + }, + "slot_index": 10 + }, + { + "name": "cfg", + "type": "FLOAT", + "link": 278, + "widget": { + "name": "cfg", + "config": [ + "FLOAT", + { + "default": 7, + "min": 0, + "max": 100, + "step": 0.5 + } + ] + }, + "slot_index": 11 + }, + { + "name": "sampler_name", + "type": "euler,euler_ancestral,heun,dpm_2,dpm_2_ancestral,lms,dpm_fast,dpm_adaptive,dpmpp_2s_ancestral,dpmpp_sde,dpmpp_sde_gpu,dpmpp_2m,dpmpp_2m_sde,dpmpp_2m_sde_gpu,ddim,uni_pc,uni_pc_bh2", + "link": 279, + "widget": { + "name": "sampler_name", + "config": [ + [ + "euler", + "euler_ancestral", + "heun", + "dpm_2", + "dpm_2_ancestral", + "lms", + "dpm_fast", + "dpm_adaptive", + "dpmpp_2s_ancestral", + "dpmpp_sde", + "dpmpp_sde_gpu", + "dpmpp_2m", + "dpmpp_2m_sde", + "dpmpp_2m_sde_gpu", + "ddim", + "uni_pc", + "uni_pc_bh2" + ], + { + "default": "ddim" + } + ] + }, + "slot_index": 12 + }, + { + "name": "scheduler", + "type": "normal,karras,exponential,simple,ddim_uniform", + "link": 280, + "widget": { + "name": "scheduler", + "config": [ + [ + "normal", + "karras", + "exponential", + "simple", + "ddim_uniform" + ], + { + "default": "ddim_uniform" + } + ] + }, + "slot_index": 13 + }, + { + "name": "base_ratio", + "type": "FLOAT", + "link": 281, + "widget": { + "name": "base_ratio", + "config": [ + "FLOAT", + { + "default": 0.8, + "min": 0, + "max": 1, + "step": 0.01 + } + ] + }, + "slot_index": 14 + }, + { + "name": "denoise", + "type": "FLOAT", + "link": 282, + "widget": { + "name": "denoise", + "config": [ + "FLOAT", + { + "default": 0.25, + "min": 0, + "max": 1, + "step": 0.01 + } + ] + }, + "slot_index": 15 + }, + { + "name": "scaled_width", + "type": "INT", + "link": 272, + "widget": { + "name": "scaled_width", + "config": [ + "INT", + { + "default": 1536, + "min": 0, + "max": 8192, + "step": 64 + } + ] + } + }, + { + "name": "scaled_height", + "type": "INT", + "link": 273, + "widget": { + "name": "scaled_height", + "config": [ + "INT", + { + "default": 1536, + "min": 0, + "max": 8192, + "step": 64 + } + ] + } + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 268, + 297 + ], + "shape": 3, + "slot_index": 0 + } + ], + "title": "HiRes Fix Sampler", + "properties": { + "Node name for S&R": "SeargeSDXLImage2ImageSampler" + }, + "widgets_values": [ + 446388413330336, + "randomize", + 20, + 7, + "ddim", + "ddim_uniform", + 0.8, + 0.25, + 1536, + 1536 + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 118, + "type": "SeargeIntegerMath", + "pos": [ + 2010, + 1840 + ], + "size": { + "0": 210, + "1": 106 + }, + "flags": {}, + "order": 54, + "mode": 0, + "inputs": [ + { + "name": "a", + "type": "INT", + "link": 289, + "widget": { + "name": "a", + "config": [ + "INT", + { + "default": 0, + "min": 0, + "max": 18446744073709552000 + } + ] + } + } + ], + "outputs": [ + { + "name": "result", + "type": "INT", + "links": [ + 290 + ], + "shape": 3, + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "SeargeIntegerMath" + }, + "widgets_values": [ + "a + c", + 0, + 1, + 3 + ] + }, + { + "id": 124, + "type": "Reroute", + "pos": [ + 1630, + 300 + ], + "size": [ + 75, + 26 + ], + "flags": { + "pinned": true + }, + "order": 30, + "mode": 0, + "inputs": [ + { + "name": "", + "type": "*", + "link": null, + "pos": [ + 37.5, + 0 + ], + "slot_index": 0 + } + ], + "outputs": [ + { + "name": "", + "type": "*", + "links": [ + 298 + ], + "label": "save hrf", + "slot_index": 0 + } + ], + "properties": { + "showOutputText": false, + "horizontal": true + }, + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 123, + "type": "Reroute", + "pos": [ + 1630, + 240 + ], + "size": [ + 75, + 26 + ], + "flags": { + "pinned": true + }, + "order": 71, + "mode": 0, + "inputs": [ + { + "name": "", + "type": "*", + "link": 297, + "pos": [ + 37.5, + 0 + ] + } + ], + "outputs": [ + { + "name": "", + "type": "IMAGE", + "links": [], + "label": "save hrf", + "slot_index": 0 + } + ], + "properties": { + "showOutputText": false, + "horizontal": true + }, + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 121, + "type": "Reroute", + "pos": [ + 1630, + 90 + ], + "size": [ + 75, + 26 + ], + "flags": { + "pinned": true + }, + "order": 31, + "mode": 0, + "inputs": [ + { + "name": "", + "type": "*", + "link": null, + "pos": [ + 37.5, + 0 + ], + "slot_index": 0 + } + ], + "outputs": [ + { + "name": "", + "type": "*", + "links": [ + 296 + ], + "label": "upscale" + } + ], + "properties": { + "showOutputText": false, + "horizontal": true + }, + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 119, + "type": "Reroute", + "pos": [ + 1630, + 30 + ], + "size": [ + 75, + 26 + ], + "flags": { + "pinned": true + }, + "order": 80, + "mode": 0, + "inputs": [ + { + "name": "", + "type": "*", + "link": 291, + "pos": [ + 37.5, + 0 + ] + } + ], + "outputs": [ + { + "name": "", + "type": "IMAGE", + "links": [], + "label": "upscale", + "slot_index": 0 + } + ], + "properties": { + "showOutputText": false, + "horizontal": true + }, + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 105, + "type": "Reroute", + "pos": [ + 1900, + 920 + ], + "size": [ + 75, + 26 + ], + "flags": { + "pinned": true + }, + "order": 70, + "mode": 0, + "inputs": [ + { + "name": "", + "type": "*", + "link": 268, + "label": "image" + } + ], + "outputs": [ + { + "name": "", + "type": "IMAGE", + "links": [ + 226, + 245, + 246 + ], + "slot_index": 0 + } + ], + "properties": { + "showOutputText": false, + "horizontal": false + }, + "color": "#223", + "bgcolor": "#335" + }, + { + "id": 126, + "type": "Note", + "pos": [ + 1630, + 360 + ], + "size": { + "0": 240, + "1": 590 + }, + "flags": { + "pinned": true + }, + "order": 32, + "mode": 0, + "title": "Workflow Information", + "properties": { + "text": "" + }, + "widgets_values": [ + "=== How to prompt this workflow ===\n\nMain Prompt\n-----------\nThe subject of the image in natural language\n\nExample: a cat with a hat in a grass field\n\n\nSecondary Prompt\n----------------\nA list of keywords derived from the main prompts, at the end references to artists\n\nExample: cat, hat, grass field, style of [artist name] and [artist name]\n\n\nStyle and References Prompt\n---------------------------\nA description of the style of the image, the main style should be the first word and can be emphasized by surrounding it with ~*~\n\nExample: ~*~painting~*~ oil painting, vibrant colors\n\n\nNegative Prompt\n---------------\nSubjects that should not appear in the image\n\nExample: jpeg artifacts, noise\n\n\nNegative Style Prompt\n---------------------\nStyles and concepts that should not be used to generate the image\n\nExample: photograph, anime" + ], + "color": "#222", + "bgcolor": "#000" + }, + { + "id": 125, + "type": "Note", + "pos": [ + 1630, + 150 + ], + "size": { + "0": 240, + "1": 80 + }, + "flags": { + "pinned": true + }, + "order": 33, + "mode": 0, + "title": "Workflow Information", + "properties": { + "text": "" + }, + "widgets_values": [ + "^ Connect to enable upscaling\n| ---------------------------------\n| Connect to enable saving of image \nv after hires fix is applied" + ], + "color": "#222", + "bgcolor": "#000" + } + ], + "links": [ + [ + 1, + 16, + 0, + 15, + 0, + "INT" + ], + [ + 6, + 29, + 0, + 28, + 10, + "euler,euler_ancestral,heun,dpm_2,dpm_2_ancestral,lms,dpm_fast,dpm_adaptive,dpmpp_2s_ancestral,dpmpp_sde,dpmpp_sde_gpu,dpmpp_2m,dpmpp_2m_sde,dpmpp_2m_sde_gpu,ddim,uni_pc,uni_pc_bh2" + ], + [ + 7, + 30, + 0, + 28, + 11, + "normal,karras,exponential,simple,ddim_uniform" + ], + [ + 9, + 35, + 0, + 28, + 12, + "FLOAT" + ], + [ + 10, + 34, + 0, + 28, + 9, + "FLOAT" + ], + [ + 11, + 31, + 0, + 28, + 8, + "INT" + ], + [ + 13, + 3, + 0, + 40, + 2, + "STRING" + ], + [ + 14, + 5, + 0, + 40, + 3, + "STRING" + ], + [ + 15, + 3, + 0, + 40, + 4, + "STRING" + ], + [ + 16, + 7, + 0, + 40, + 5, + "STRING" + ], + [ + 17, + 7, + 0, + 40, + 6, + "STRING" + ], + [ + 18, + 7, + 0, + 40, + 7, + "STRING" + ], + [ + 19, + 6, + 0, + 41, + 1, + "STRING" + ], + [ + 20, + 6, + 0, + 41, + 2, + "STRING" + ], + [ + 21, + 8, + 0, + 41, + 3, + "STRING" + ], + [ + 22, + 8, + 0, + 41, + 4, + "STRING" + ], + [ + 23, + 6, + 0, + 42, + 1, + "STRING" + ], + [ + 24, + 8, + 0, + 42, + 2, + "STRING" + ], + [ + 26, + 38, + 0, + 44, + 2, + "INT" + ], + [ + 31, + 27, + 1, + 40, + 1, + "CLIP" + ], + [ + 32, + 27, + 1, + 42, + 0, + "CLIP" + ], + [ + 33, + 12, + 0, + 46, + 1, + "VAE" + ], + [ + 49, + 26, + 0, + 51, + 1, + "FLOAT" + ], + [ + 51, + 26, + 1, + 52, + 1, + "FLOAT" + ], + [ + 53, + 26, + 1, + 54, + 1, + "FLOAT" + ], + [ + 55, + 26, + 1, + 53, + 1, + "FLOAT" + ], + [ + 60, + 40, + 0, + 55, + 0, + "CONDITIONING" ], [ - 7, - 30, + 61, + 40, + 1, + 56, 0, - 28, - 11, - "normal,karras,exponential,simple,ddim_uniform" + "CONDITIONING" ], [ - 9, - 35, + 62, + 40, + 2, + 57, 0, - 28, - 12, - "FLOAT" + "CONDITIONING" ], [ - 10, - 34, + 63, + 40, + 3, + 58, 0, - 28, - 9, - "FLOAT" + "CONDITIONING" ], [ - 11, - 31, + 64, + 41, 0, - 28, - 8, - "INT" + 55, + 1, + "CONDITIONING" ], [ - 12, - 15, - 0, - 28, - 7, - "INT" + 65, + 41, + 1, + 56, + 1, + "CONDITIONING" ], [ - 13, - 3, + 66, + 42, 0, - 40, - 2, - "STRING" + 57, + 1, + "CONDITIONING" ], [ - 14, - 5, - 0, - 40, - 3, - "STRING" + 67, + 42, + 1, + 58, + 1, + "CONDITIONING" ], [ - 15, - 3, + 69, + 27, 0, - 40, - 4, - "STRING" + 28, + 3, + "MODEL" ], [ - 16, - 7, + 70, + 44, 0, - 40, - 5, - "STRING" + 28, + 6, + "LATENT" ], [ - 17, - 7, + 75, + 28, 0, - 40, - 6, - "STRING" + 46, + 0, + "LATENT" ], [ - 18, - 7, + 77, + 33, 0, - 40, - 7, - "STRING" + 65, + 1, + "FLOAT" ], [ - 19, - 6, + 78, + 33, 0, - 41, + 64, 1, - "STRING" + "FLOAT" ], [ - 20, - 6, + 81, + 36, 0, - 41, - 2, - "STRING" + 66, + 0, + "UPSCALE_MODEL" ], [ - 21, - 8, + 82, + 37, 0, - 41, - 3, - "STRING" + 67, + 0, + "UPSCALE_MODEL" ], [ - 22, - 8, + 86, + 66, 0, - 41, - 4, - "STRING" + 68, + 0, + "IMAGE" ], [ - 23, - 6, + 87, + 67, 0, - 42, + 68, 1, - "STRING" + "IMAGE" ], [ - 24, - 8, + 89, + 68, 0, - 42, - 2, - "STRING" + 69, + 0, + "IMAGE" ], [ - 26, - 38, + 91, + 64, 0, - 44, - 2, + 69, + 1, "INT" ], [ - 27, - 20, - 0, - 44, + 92, + 65, 0, + 69, + 2, "INT" ], [ - 28, - 20, - 1, - 44, - 1, - "INT" + 131, + 43, + 0, + 82, + 0, + "*" ], [ - 29, - 10, - 1, - 40, + 132, + 82, 0, - "CLIP" + 75, + 2, + "FLOAT" ], [ - 30, - 10, - 1, - 41, + 134, + 82, 0, - "CLIP" + 77, + 2, + "FLOAT" ], [ - 31, - 27, - 1, - 40, - 1, - "CLIP" + 148, + 84, + 0, + 85, + 0, + "*" ], [ - 32, - 27, - 1, - 42, + 149, + 85, 0, - "CLIP" + 76, + 2, + "FLOAT" ], [ - 33, - 12, + 150, + 85, 0, - 46, - 1, - "VAE" + 78, + 2, + "FLOAT" ], [ - 34, - 46, - 0, - 19, + 151, + 76, 0, - "IMAGE" + 28, + 2, + "CONDITIONING" ], [ - 35, - 47, + 153, + 83, 0, - 42, - 3, - "INT" + 28, + 13, + "FLOAT" ], [ - 37, - 48, + 168, + 20, 0, - 42, - 4, - "INT" + 90, + 0, + "*" ], [ - 38, - 47, + 169, + 20, + 1, + 91, 0, - 40, - 12, - "INT" + "*" ], [ - 39, - 48, + 170, + 90, + 0, + 51, 0, - 40, - 13, "INT" ], [ - 40, - 49, + 171, + 90, + 0, + 54, 0, - 41, - 5, "INT" ], [ - 41, - 49, + 172, + 91, + 0, + 52, 0, - 41, - 7, "INT" ], [ - 42, - 49, + 173, + 91, + 0, + 53, 0, - 40, - 8, "INT" ], [ - 43, - 49, + 174, + 90, 0, 40, 10, "INT" ], [ - 44, - 50, + 175, + 91, 0, 40, - 9, + 11, "INT" ], [ - 45, - 50, + 176, + 90, 0, 41, - 6, + 7, "INT" ], [ - 46, - 50, + 177, + 91, 0, 41, 8, "INT" ], [ - 47, - 50, - 0, - 40, - 11, - "INT" - ], - [ - 49, - 26, - 0, - 51, + 180, + 92, 1, - "FLOAT" + 41, + 0, + "CLIP" ], [ - 51, - 26, - 1, - 52, + 181, + 92, 1, - "FLOAT" + 40, + 0, + "CLIP" ], [ - 53, - 26, + 182, + 10, 1, - 54, + 92, 1, - "FLOAT" + "CLIP" ], [ - 55, - 26, - 1, - 53, - 1, - "FLOAT" + 183, + 92, + 0, + 28, + 0, + "MODEL" ], [ - 56, - 51, + 184, + 10, 0, - 49, + 92, 0, - "*" + "MODEL" ], [ - 57, - 52, - 0, - 50, + 202, + 75, 0, - "*" + 28, + 1, + "CONDITIONING" ], [ - 58, - 54, + 205, + 77, 0, - 47, + 28, + 4, + "CONDITIONING" + ], + [ + 206, + 78, 0, - "*" + 28, + 5, + "CONDITIONING" ], [ - 59, - 53, + 207, + 95, 0, - 48, + 28, + 14, + "INT" + ], + [ + 208, + 98, 0, - "*" + 92, + 2, + "FLOAT" ], [ - 60, - 40, + 210, + 51, 0, - 55, + 40, + 8, + "INT" + ], + [ + 211, + 51, 0, - "CONDITIONING" + 41, + 5, + "INT" ], [ - 61, + 212, + 52, + 0, 40, - 1, - 56, + 9, + "INT" + ], + [ + 213, + 52, 0, - "CONDITIONING" + 41, + 6, + "INT" ], [ - 62, + 214, + 54, + 0, 40, - 2, - 57, + 12, + "INT" + ], + [ + 215, + 54, 0, - "CONDITIONING" + 42, + 3, + "INT" ], [ - 63, + 216, + 53, + 0, 40, - 3, - 58, + 13, + "INT" + ], + [ + 217, + 53, 0, - "CONDITIONING" + 42, + 4, + "INT" ], [ - 64, - 41, + 218, + 90, 0, - 55, - 1, - "CONDITIONING" + 44, + 0, + "INT" ], [ - 65, - 41, - 1, - 56, + 219, + 91, + 0, + 44, 1, - "CONDITIONING" + "INT" ], [ - 66, - 42, + 220, + 98, 0, - 57, - 1, - "CONDITIONING" + 92, + 3, + "FLOAT" ], [ - 67, - 42, - 1, - 58, - 1, - "CONDITIONING" + 221, + 99, + 0, + 92, + 4, + "sd_xl_offset_example-lora_1.0.safetensors" ], [ - 68, - 10, + 223, + 104, 0, - 28, + 87, 0, - "MODEL" + "IMAGE" ], [ - 69, - 27, + 224, + 104, 0, - 28, - 3, - "MODEL" + 86, + 0, + "IMAGE" ], - [ - 70, - 44, + [ + 225, + 104, 0, - 28, - 6, - "LATENT" + 19, + 0, + "IMAGE" ], [ - 75, - 28, + 226, + 105, 0, - 46, + 104, 0, - "LATENT" + "*" ], [ - 77, - 33, + 232, + 101, 0, - 65, + 107, 1, "FLOAT" ], [ - 78, - 33, + 233, + 101, 0, - 64, + 106, 1, "FLOAT" ], [ - 79, + 234, 20, + 1, + 109, 0, - 64, - 0, - "INT" + "*" ], [ - 80, + 236, 20, - 1, - 65, 0, - "INT" + 110, + 0, + "*" ], [ - 81, - 36, + 238, + 110, 0, - 66, + 106, 0, - "UPSCALE_MODEL" + "INT" ], [ - 82, - 37, + 239, + 109, 0, - 67, + 107, 0, - "UPSCALE_MODEL" + "INT" ], [ - 83, + 244, 46, 0, - 66, - 1, + 59, + 0, "IMAGE" ], [ - 84, - 46, + 245, + 105, 0, - 67, + 66, 1, "IMAGE" ], [ - 86, - 66, - 0, - 68, + 246, + 105, 0, + 67, + 1, "IMAGE" ], [ - 87, - 67, + 252, + 112, 0, - 68, - 1, - "IMAGE" + 28, + 7, + "INT" ], [ - 88, - 46, + 253, + 15, 0, - 59, + 112, 0, - "IMAGE" + "*" ], [ - 89, - 68, + 268, + 117, 0, - 69, + 105, 0, - "IMAGE" + "*" ], [ - 90, - 69, + 269, + 12, 0, - 63, + 117, + 7, + "VAE" + ], + [ + 270, + 46, 0, + 117, + 6, "IMAGE" ], [ - 91, - 64, + 272, + 106, 0, - 69, - 1, + 117, + 16, "INT" ], [ - 92, - 65, + 273, + 107, 0, - 69, - 2, + 117, + 17, "INT" ], [ - 125, - 74, + 274, + 10, 0, - 51, + 117, 0, - "INT" + "MODEL" ], [ - 126, - 74, - 0, - 52, + 275, + 27, 0, - "INT" + 117, + 3, + "MODEL" ], [ - 127, - 74, - 0, - 54, + 277, + 102, 0, + 117, + 10, "INT" ], [ - 128, - 74, - 0, - 53, + 278, + 34, 0, - "INT" + 117, + 11, + "FLOAT" ], [ - 131, - 43, + 279, + 29, 0, - 82, + 117, + 12, + "euler,euler_ancestral,heun,dpm_2,dpm_2_ancestral,lms,dpm_fast,dpm_adaptive,dpmpp_2s_ancestral,dpmpp_sde,dpmpp_sde_gpu,dpmpp_2m,dpmpp_2m_sde,dpmpp_2m_sde_gpu,ddim,uni_pc,uni_pc_bh2" + ], + [ + 280, + 30, 0, - "*" + 117, + 13, + "normal,karras,exponential,simple,ddim_uniform" ], [ - 132, - 82, + 281, + 35, 0, - 75, - 2, + 117, + 14, "FLOAT" ], [ - 134, - 82, + 282, + 100, 0, - 77, - 2, + 117, + 15, "FLOAT" ], [ - 137, + 283, 75, 0, - 28, + 117, 1, "CONDITIONING" ], [ - 138, + 284, + 76, + 0, + 117, + 2, + "CONDITIONING" + ], + [ + 285, 77, 0, - 28, + 117, 4, "CONDITIONING" ], [ - 139, - 41, - 0, - 75, + 286, + 78, 0, + 117, + 5, "CONDITIONING" ], [ - 140, - 40, + 287, + 110, 0, - 75, - 1, - "CONDITIONING" + 64, + 0, + "INT" + ], + [ + 288, + 109, + 0, + 65, + 0, + "INT" + ], + [ + 289, + 112, + 0, + 118, + 0, + "INT" + ], + [ + 290, + 118, + 0, + 117, + 9, + "INT" + ], + [ + 291, + 69, + 0, + 119, + 0, + "*" + ], + [ + 296, + 121, + 0, + 115, + 0, + "IMAGE" + ], + [ + 297, + 117, + 0, + 123, + 0, + "*" + ], + [ + 298, + 124, + 0, + 63, + 0, + "IMAGE" + ], + [ + 307, + 37, + 0, + 117, + 8, + "UPSCALE_MODEL" ], [ - 141, + 324, 40, - 1, - 76, 0, + 75, + 1, "CONDITIONING" ], [ - 142, - 41, + 325, + 40, 1, 76, 1, "CONDITIONING" ], [ - 143, - 42, - 0, - 77, - 0, - "CONDITIONING" - ], - [ - 144, + 326, 40, 2, 77, @@ -4248,68 +5839,44 @@ "CONDITIONING" ], [ - 145, + 327, 40, 3, 78, - 0, + 1, "CONDITIONING" ], [ - 146, + 328, 42, 1, 78, - 1, - "CONDITIONING" - ], - [ - 148, - 84, - 0, - 85, 0, - "*" + "CONDITIONING" ], [ - 149, - 85, + 329, + 42, 0, - 76, - 2, - "FLOAT" - ], - [ - 150, - 85, + 77, 0, - 78, - 2, - "FLOAT" + "CONDITIONING" ], [ - 151, + 330, + 41, + 1, 76, 0, - 28, - 2, "CONDITIONING" ], [ - 152, - 78, + 331, + 41, 0, - 28, - 5, - "CONDITIONING" - ], - [ - 153, - 83, + 75, 0, - 28, - 13, - "FLOAT" + "CONDITIONING" ] ], "groups": [], diff --git a/example/Searge-SDXL-reborn.png b/example/Searge-SDXL-reborn.png index a766c3a..2e53fd0 100644 Binary files a/example/Searge-SDXL-reborn.png and b/example/Searge-SDXL-reborn.png differ diff --git a/example/Searge-SDXL-simple.json b/example/Searge-SDXL-simple.json deleted file mode 100644 index b9f33ce..0000000 --- a/example/Searge-SDXL-simple.json +++ /dev/null @@ -1,4315 +0,0 @@ -{ - "last_node_id": 85, - "last_link_id": 157, - "nodes": [ - { - "id": 3, - "type": "SeargePromptText", - "pos": [ - 20, - 50 - ], - "size": { - "0": 460, - "1": 170 - }, - "flags": { - "pinned": true - }, - "order": 0, - "mode": 0, - "outputs": [ - { - "name": "prompt", - "type": "STRING", - "links": [ - 13, - 15 - ], - "shape": 3, - "slot_index": 0 - } - ], - "title": "Main Prompt & Refiner Prompt", - "properties": { - "Node name for S&R": "SeargePromptText" - }, - "widgets_values": [ - "~*~cinematic~*~ photo of abstraction, 35mm photograph, vibrant rusted dieselpunk, miniature figures as a realistic depictions of everyday life in a small mining town, the streets are bustling with people, style of Brooke Shaden" - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 5, - "type": "SeargePromptText", - "pos": [ - 20, - 250 - ], - "size": { - "0": 460, - "1": 170 - }, - "flags": { - "pinned": true - }, - "order": 1, - "mode": 0, - "outputs": [ - { - "name": "prompt", - "type": "STRING", - "links": [ - 14 - ], - "shape": 3, - "slot_index": 0 - } - ], - "title": "Secondary Prompt", - "properties": { - "Node name for S&R": "SeargePromptText" - }, - "widgets_values": [ - "miniature figures, realistic, everyday life, small mining town, bustling people, style of Brooke Shaden" - ], - "color": "#2a363b", - "bgcolor": "#3f5159" - }, - { - "id": 6, - "type": "SeargePromptText", - "pos": [ - 20, - 450 - ], - "size": { - "0": 460, - "1": 170 - }, - "flags": { - "pinned": true - }, - "order": 2, - "mode": 0, - "outputs": [ - { - "name": "prompt", - "type": "STRING", - "links": [ - 19, - 20, - 23 - ], - "shape": 3 - } - ], - "title": "Style and References - unused", - "properties": { - "Node name for S&R": "SeargePromptText" - }, - "widgets_values": [ - "" - ], - "color": "#222", - "bgcolor": "#000" - }, - { - "id": 7, - "type": "SeargePromptText", - "pos": [ - 20, - 660 - ], - "size": { - "0": 460, - "1": 170 - }, - "flags": { - "pinned": true - }, - "order": 3, - "mode": 0, - "outputs": [ - { - "name": "prompt", - "type": "STRING", - "links": [ - 16, - 17, - 18 - ], - "shape": 3, - "slot_index": 0 - } - ], - "title": "Negative Prompt", - "properties": { - "Node name for S&R": "SeargePromptText" - }, - "widgets_values": [ - "drawing, painting, crayon, sketch, noisy, blurry, soft, deformed" - ], - "color": "#322", - "bgcolor": "#533" - }, - { - "id": 8, - "type": "SeargePromptText", - "pos": [ - 20, - 860 - ], - "size": { - "0": 460, - "1": 170 - }, - "flags": { - "pinned": true - }, - "order": 4, - "mode": 0, - "outputs": [ - { - "name": "prompt", - "type": "STRING", - "links": [ - 21, - 22, - 24 - ], - "shape": 3 - } - ], - "title": "Negative Style - unused", - "properties": { - "Node name for S&R": "SeargePromptText" - }, - "widgets_values": [ - "" - ], - "color": "#222", - "bgcolor": "#000" - }, - { - "id": 16, - "type": "PrimitiveNode", - "pos": [ - 480, - 50 - ], - "size": { - "0": 210, - "1": 82 - }, - "flags": { - "pinned": true - }, - "order": 5, - "mode": 0, - "outputs": [ - { - "name": "INT", - "type": "INT", - "links": [ - 1 - ], - "widget": { - "name": "value", - "config": [ - "INT", - { - "default": 0, - "min": 0, - "max": 18446744073709552000 - } - ] - }, - "label": "seed" - } - ], - "title": "Seed", - "properties": {}, - "widgets_values": [ - 1468615445736, - "fixed" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 20, - "type": "SeargeIntegerPair", - "pos": [ - 480, - 160 - ], - "size": { - "0": 320, - "1": 102 - }, - "flags": { - "pinned": true - }, - "order": 6, - "mode": 0, - "outputs": [ - { - "name": "value 1", - "type": "INT", - "links": [ - 27, - 79 - ], - "shape": 3, - "label": "1 - width" - }, - { - "name": "value 2", - "type": "INT", - "links": [ - 28, - 80 - ], - "shape": 3, - "label": "2 - height" - } - ], - "title": "Image Resolution", - "properties": { - "Node name for S&R": "SeargeIntegerPair" - }, - "widgets_values": [ - 1024, - 1024 - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 29, - "type": "PrimitiveNode", - "pos": [ - 690, - 50 - ], - "size": { - "0": 210, - "1": 82 - }, - "flags": { - "pinned": true, - "collapsed": false - }, - "order": 7, - "mode": 0, - "outputs": [ - { - "name": "COMBO", - "type": "euler,euler_ancestral,heun,dpm_2,dpm_2_ancestral,lms,dpm_fast,dpm_adaptive,dpmpp_2s_ancestral,dpmpp_sde,dpmpp_sde_gpu,dpmpp_2m,dpmpp_2m_sde,dpmpp_2m_sde_gpu,ddim,uni_pc,uni_pc_bh2", - "links": [ - 6 - ], - "widget": { - "name": "sampler_name", - "config": [ - [ - "euler", - "euler_ancestral", - "heun", - "dpm_2", - "dpm_2_ancestral", - "lms", - "dpm_fast", - "dpm_adaptive", - "dpmpp_2s_ancestral", - "dpmpp_sde", - "dpmpp_sde_gpu", - "dpmpp_2m", - "dpmpp_2m_sde", - "dpmpp_2m_sde_gpu", - "ddim", - "uni_pc", - "uni_pc_bh2" - ], - { - "default": "dpmpp_2m" - } - ] - } - } - ], - "title": "Sampler", - "properties": {}, - "widgets_values": [ - "dpmpp_2m", - "fixed" - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 30, - "type": "PrimitiveNode", - "pos": [ - 900, - 50 - ], - "size": { - "0": 210, - "1": 82 - }, - "flags": { - "pinned": true - }, - "order": 8, - "mode": 0, - "outputs": [ - { - "name": "COMBO", - "type": "normal,karras,exponential,simple,ddim_uniform", - "links": [ - 7 - ], - "widget": { - "name": "scheduler", - "config": [ - [ - "normal", - "karras", - "exponential", - "simple", - "ddim_uniform" - ], - { - "default": "karras" - } - ] - } - } - ], - "title": "Scheduler", - "properties": {}, - "widgets_values": [ - "karras", - "fixed" - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 26, - "type": "SeargeFloatPair", - "pos": [ - 800, - 160 - ], - "size": { - "0": 310, - "1": 102 - }, - "flags": { - "pinned": true - }, - "order": 9, - "mode": 0, - "outputs": [ - { - "name": "value 1", - "type": "FLOAT", - "links": [ - 49 - ], - "shape": 3, - "label": "1 - base" - }, - { - "name": "value 2", - "type": "FLOAT", - "links": [ - 51, - 53, - 55 - ], - "shape": 3, - "label": "2 - refiner" - } - ], - "title": "Conditional Scale Factors", - "properties": { - "Node name for S&R": "SeargeFloatPair" - }, - "widgets_values": [ - 2, - 2 - ], - "color": "#2a363b", - "bgcolor": "#3f5159" - }, - { - "id": 31, - "type": "SeargeIntegerConstant", - "pos": [ - 480, - 290 - ], - "size": { - "0": 320, - "1": 60 - }, - "flags": { - "pinned": true - }, - "order": 10, - "mode": 0, - "outputs": [ - { - "name": "value", - "type": "INT", - "links": [ - 11 - ], - "shape": 3, - "label": "steps" - } - ], - "title": "Steps", - "properties": { - "Node name for S&R": "SeargeIntegerConstant" - }, - "widgets_values": [ - 30 - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 33, - "type": "SeargeFloatConstant", - "pos": [ - 800, - 290 - ], - "size": { - "0": 310, - "1": 60 - }, - "flags": { - "pinned": true - }, - "order": 11, - "mode": 0, - "outputs": [ - { - "name": "value", - "type": "FLOAT", - "links": [ - 77, - 78 - ], - "shape": 3, - "label": "upscale by" - } - ], - "title": "High Resolution Scale Factor", - "properties": { - "Node name for S&R": "SeargeFloatConstant" - }, - "widgets_values": [ - 2 - ], - "color": "#2a363b", - "bgcolor": "#3f5159" - }, - { - "id": 19, - "type": "PreviewImage", - "pos": [ - 1110, - 50 - ], - "size": { - "0": 520, - "1": 550 - }, - "flags": { - "pinned": true - }, - "order": 52, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 34, - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "PreviewImage" - }, - "color": "#222", - "bgcolor": "#000" - }, - { - "id": 10, - "type": "CheckpointLoaderSimple", - "pos": [ - 1110, - 630 - ], - "size": { - "0": 520, - "1": 100 - }, - "flags": { - "pinned": true - }, - "order": 12, - "mode": 0, - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 68 - ], - "shape": 3 - }, - { - "name": "CLIP", - "type": "CLIP", - "links": [ - 29, - 30 - ], - "shape": 3, - "slot_index": 1 - }, - { - "name": "VAE", - "type": "VAE", - "links": null, - "shape": 3 - } - ], - "title": "BASE Model", - "properties": { - "Node name for S&R": "CheckpointLoaderSimple" - }, - "widgets_values": [ - "sd_xl_base_1.0.safetensors" - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 27, - "type": "CheckpointLoaderSimple", - "pos": [ - 1110, - 760 - ], - "size": { - "0": 520, - "1": 100 - }, - "flags": { - "pinned": true - }, - "order": 13, - "mode": 0, - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 69 - ], - "shape": 3 - }, - { - "name": "CLIP", - "type": "CLIP", - "links": [ - 31, - 32 - ], - "shape": 3 - }, - { - "name": "VAE", - "type": "VAE", - "links": null, - "shape": 3 - } - ], - "title": "REFINER Model", - "properties": { - "Node name for S&R": "CheckpointLoaderSimple" - }, - "widgets_values": [ - "sd_xl_refiner_1.0.safetensors" - ], - "color": "#2a363b", - "bgcolor": "#3f5159" - }, - { - "id": 12, - "type": "VAELoader", - "pos": [ - 1110, - 890 - ], - "size": { - "0": 520, - "1": 60 - }, - "flags": { - "pinned": true - }, - "order": 14, - "mode": 0, - "outputs": [ - { - "name": "VAE", - "type": "VAE", - "links": [ - 33 - ], - "shape": 3, - "slot_index": 0 - } - ], - "title": "VAE Model", - "properties": { - "Node name for S&R": "VAELoader" - }, - "widgets_values": [ - "sdxl-vae.safetensors" - ], - "color": "#223", - "bgcolor": "#335" - }, - { - "id": 34, - "type": "SeargeFloatConstant", - "pos": [ - 480, - 380 - ], - "size": { - "0": 320, - "1": 60 - }, - "flags": { - "pinned": true - }, - "order": 15, - "mode": 0, - "outputs": [ - { - "name": "value", - "type": "FLOAT", - "links": [ - 10 - ], - "shape": 3, - "label": "cfg" - } - ], - "title": "CFG Scale", - "properties": { - "Node name for S&R": "SeargeFloatConstant" - }, - "widgets_values": [ - 7 - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 35, - "type": "SeargeFloatConstant", - "pos": [ - 480, - 470 - ], - "size": { - "0": 320, - "1": 60 - }, - "flags": { - "pinned": true - }, - "order": 16, - "mode": 0, - "outputs": [ - { - "name": "value", - "type": "FLOAT", - "links": [ - 9 - ], - "shape": 3, - "label": "base ratio", - "slot_index": 0 - } - ], - "title": "Base vs Refiner Ratio", - "properties": { - "Node name for S&R": "SeargeFloatConstant" - }, - "widgets_values": [ - 0.8 - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 38, - "type": "SeargeIntegerConstant", - "pos": [ - 800, - 380 - ], - "size": { - "0": 310, - "1": 60 - }, - "flags": { - "pinned": true - }, - "order": 17, - "mode": 0, - "outputs": [ - { - "name": "value", - "type": "INT", - "links": [ - 26 - ], - "shape": 3, - "label": "batch size" - } - ], - "title": "Batch Size", - "properties": { - "Node name for S&R": "SeargeIntegerConstant" - }, - "widgets_values": [ - 1 - ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 43, - "type": "SeargeFloatConstant", - "pos": [ - 800, - 470 - ], - "size": { - "0": 310, - "1": 60 - }, - "flags": { - "pinned": true - }, - "order": 18, - "mode": 0, - "outputs": [ - { - "name": "value", - "type": "FLOAT", - "links": [ - 131 - ], - "shape": 3, - "label": "style power" - } - ], - "title": "Style and Reference Power - unused", - "properties": { - "Node name for S&R": "SeargeFloatConstant" - }, - "widgets_values": [ - 0.333 - ], - "color": "#222", - "bgcolor": "#000" - }, - { - "id": 51, - "type": "SeargeIntegerScaler", - "pos": [ - 10, - 1540 - ], - "size": { - "0": 230, - "1": 80 - }, - "flags": { - "pinned": true - }, - "order": 30, - "mode": 0, - "inputs": [ - { - "name": "value", - "type": "INT", - "link": 125, - "widget": { - "name": "value", - "config": [ - "INT", - { - "default": 0, - "min": 0, - "max": 18446744073709552000 - } - ] - }, - "slot_index": 0 - }, - { - "name": "factor", - "type": "FLOAT", - "link": 49, - "widget": { - "name": "factor", - "config": [ - "FLOAT", - { - "default": 1, - "step": 0.01 - } - ] - }, - "slot_index": 1 - } - ], - "outputs": [ - { - "name": "value", - "type": "INT", - "links": [ - 56 - ], - "shape": 3 - } - ], - "title": "Base Width Scaler", - "properties": { - "Node name for S&R": "SeargeIntegerScaler" - }, - "widgets_values": [ - 0, - 1, - 64 - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 52, - "type": "SeargeIntegerScaler", - "pos": [ - 10, - 1660 - ], - "size": { - "0": 230, - "1": 80 - }, - "flags": { - "pinned": true - }, - "order": 31, - "mode": 0, - "inputs": [ - { - "name": "value", - "type": "INT", - "link": 126, - "widget": { - "name": "value", - "config": [ - "INT", - { - "default": 0, - "min": 0, - "max": 18446744073709552000 - } - ] - }, - "slot_index": 0 - }, - { - "name": "factor", - "type": "FLOAT", - "link": 51, - "widget": { - "name": "factor", - "config": [ - "FLOAT", - { - "default": 1, - "step": 0.01 - } - ] - }, - "slot_index": 1 - } - ], - "outputs": [ - { - "name": "value", - "type": "INT", - "links": [ - 57 - ], - "shape": 3 - } - ], - "title": "Base Height Scaler", - "properties": { - "Node name for S&R": "SeargeIntegerScaler" - }, - "widgets_values": [ - 0, - 1, - 64 - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 54, - "type": "SeargeIntegerScaler", - "pos": [ - 10, - 1790 - ], - "size": { - "0": 230, - "1": 80 - }, - "flags": { - "pinned": true - }, - "order": 32, - "mode": 0, - "inputs": [ - { - "name": "value", - "type": "INT", - "link": 127, - "widget": { - "name": "value", - "config": [ - "INT", - { - "default": 0, - "min": 0, - "max": 18446744073709552000 - } - ] - }, - "slot_index": 0 - }, - { - "name": "factor", - "type": "FLOAT", - "link": 53, - "widget": { - "name": "factor", - "config": [ - "FLOAT", - { - "default": 1, - "step": 0.01 - } - ] - }, - "slot_index": 1 - } - ], - "outputs": [ - { - "name": "value", - "type": "INT", - "links": [ - 58 - ], - "shape": 3 - } - ], - "title": "Refiner Width Scaler", - "properties": { - "Node name for S&R": "SeargeIntegerScaler" - }, - "widgets_values": [ - 0, - 1, - 64 - ], - "color": "#2a363b", - "bgcolor": "#3f5159" - }, - { - "id": 53, - "type": "SeargeIntegerScaler", - "pos": [ - 10, - 1910 - ], - "size": { - "0": 230, - "1": 80 - }, - "flags": { - "pinned": true - }, - "order": 33, - "mode": 0, - "inputs": [ - { - "name": "value", - "type": "INT", - "link": 128, - "widget": { - "name": "value", - "config": [ - "INT", - { - "default": 0, - "min": 0, - "max": 18446744073709552000 - } - ] - }, - "slot_index": 0 - }, - { - "name": "factor", - "type": "FLOAT", - "link": 55, - "widget": { - "name": "factor", - "config": [ - "FLOAT", - { - "default": 1, - "step": 0.01 - } - ] - }, - "slot_index": 1 - } - ], - "outputs": [ - { - "name": "value", - "type": "INT", - "links": [ - 59 - ], - "shape": 3 - } - ], - "title": "Refiner Height Scaler", - "properties": { - "Node name for S&R": "SeargeIntegerScaler" - }, - "widgets_values": [ - 0, - 1, - 64 - ], - "color": "#2a363b", - "bgcolor": "#3f5159" - }, - { - "id": 49, - "type": "Reroute", - "pos": [ - 320, - 1540 - ], - "size": [ - 75, - 26 - ], - "flags": { - "pinned": true - }, - "order": 35, - "mode": 0, - "inputs": [ - { - "name": "", - "type": "*", - "link": 56, - "slot_index": 0 - } - ], - "outputs": [ - { - "name": "", - "type": "INT", - "links": [ - 40, - 41, - 42, - 43 - ] - } - ], - "title": "Test", - "properties": { - "showOutputText": false, - "horizontal": false - }, - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 47, - "type": "Reroute", - "pos": [ - 320, - 1790 - ], - "size": [ - 75, - 26 - ], - "flags": { - "pinned": true - }, - "order": 37, - "mode": 0, - "inputs": [ - { - "name": "", - "type": "*", - "link": 58, - "slot_index": 0 - } - ], - "outputs": [ - { - "name": "", - "type": "INT", - "links": [ - 35, - 38 - ], - "slot_index": 0 - } - ], - "title": "Test", - "properties": { - "showOutputText": false, - "horizontal": false - }, - "color": "#2a363b", - "bgcolor": "#3f5159" - }, - { - "id": 50, - "type": "Reroute", - "pos": [ - 320, - 1660 - ], - "size": [ - 75, - 26 - ], - "flags": { - "pinned": true - }, - "order": 36, - "mode": 0, - "inputs": [ - { - "name": "", - "type": "*", - "link": 57, - "slot_index": 0 - } - ], - "outputs": [ - { - "name": "", - "type": "INT", - "links": [ - 44, - 45, - 46, - 47 - ], - "slot_index": 0 - } - ], - "title": "Test", - "properties": { - "showOutputText": false, - "horizontal": false - }, - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 48, - "type": "Reroute", - "pos": [ - 320, - 1910 - ], - "size": [ - 75, - 26 - ], - "flags": { - "pinned": true - }, - "order": 38, - "mode": 0, - "inputs": [ - { - "name": "", - "type": "*", - "link": 59, - "slot_index": 0 - } - ], - "outputs": [ - { - "name": "", - "type": "INT", - "links": [ - 37, - 39 - ], - "slot_index": 0 - } - ], - "title": "Test", - "properties": { - "showOutputText": false, - "horizontal": false - }, - "color": "#2a363b", - "bgcolor": "#3f5159" - }, - { - "id": 41, - "type": "SeargeSDXLBasePromptEncoder", - "pos": [ - 810, - 1770 - ], - "size": { - "0": 300, - "1": 242 - }, - "flags": { - "pinned": true - }, - "order": 39, - "mode": 0, - "inputs": [ - { - "name": "base_clip", - "type": "CLIP", - "link": 30, - "slot_index": 0 - }, - { - "name": "pos_g", - "type": "STRING", - "link": 19, - "widget": { - "name": "pos_g", - "config": [ - "STRING", - { - "multiline": true, - "default": "POS_G" - } - ] - }, - "slot_index": 1 - }, - { - "name": "pos_l", - "type": "STRING", - "link": 20, - "widget": { - "name": "pos_l", - "config": [ - "STRING", - { - "multiline": true, - "default": "POS_L" - } - ] - }, - "slot_index": 2 - }, - { - "name": "neg_g", - "type": "STRING", - "link": 21, - "widget": { - "name": "neg_g", - "config": [ - "STRING", - { - "multiline": true, - "default": "NEG_G" - } - ] - }, - "slot_index": 3 - }, - { - "name": "neg_l", - "type": "STRING", - "link": 22, - "widget": { - "name": "neg_l", - "config": [ - "STRING", - { - "multiline": true, - "default": "NEG_L" - } - ] - }, - "slot_index": 4 - }, - { - "name": "base_width", - "type": "INT", - "link": 40, - "widget": { - "name": "base_width", - "config": [ - "INT", - { - "default": 4096, - "min": 0, - "max": 8192, - "step": 64 - } - ] - }, - "slot_index": 5 - }, - { - "name": "base_height", - "type": "INT", - "link": 45, - "widget": { - "name": "base_height", - "config": [ - "INT", - { - "default": 4096, - "min": 0, - "max": 8192, - "step": 64 - } - ] - }, - "slot_index": 6 - }, - { - "name": "target_width", - "type": "INT", - "link": 41, - "widget": { - "name": "target_width", - "config": [ - "INT", - { - "default": 4096, - "min": 0, - "max": 8192, - "step": 64 - } - ] - }, - "slot_index": 7 - }, - { - "name": "target_height", - "type": "INT", - "link": 46, - "widget": { - "name": "target_height", - "config": [ - "INT", - { - "default": 4096, - "min": 0, - "max": 8192, - "step": 64 - } - ] - }, - "slot_index": 8 - } - ], - "outputs": [ - { - "name": "base_positive", - "type": "CONDITIONING", - "links": [ - 64, - 139 - ], - "shape": 3, - "slot_index": 0 - }, - { - "name": "base_negative", - "type": "CONDITIONING", - "links": [ - 65, - 142 - ], - "shape": 3, - "slot_index": 1 - } - ], - "title": "Base Style Encoder (SeargeSDXL)", - "properties": { - "Node name for S&R": "SeargeSDXLBasePromptEncoder" - }, - "widgets_values": [ - "POS_G", - "POS_L", - "NEG_G", - "NEG_L", - 4096, - 4096, - 0, - 0, - 4096, - 4096 - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 42, - "type": "SeargeSDXLRefinerPromptEncoder", - "pos": [ - 810, - 2050 - ], - "size": { - "0": 300, - "1": 162 - }, - "flags": { - "pinned": true - }, - "order": 40, - "mode": 0, - "inputs": [ - { - "name": "refiner_clip", - "type": "CLIP", - "link": 32, - "slot_index": 0 - }, - { - "name": "pos_r", - "type": "STRING", - "link": 23, - "widget": { - "name": "pos_r", - "config": [ - "STRING", - { - "multiline": true, - "default": "POS_R" - } - ] - }, - "slot_index": 1 - }, - { - "name": "neg_r", - "type": "STRING", - "link": 24, - "widget": { - "name": "neg_r", - "config": [ - "STRING", - { - "multiline": true, - "default": "NEG_R" - } - ] - }, - "slot_index": 2 - }, - { - "name": "refiner_width", - "type": "INT", - "link": 35, - "widget": { - "name": "refiner_width", - "config": [ - "INT", - { - "default": 2048, - "min": 0, - "max": 8192, - "step": 64 - } - ] - } - }, - { - "name": "refiner_height", - "type": "INT", - "link": 37, - "widget": { - "name": "refiner_height", - "config": [ - "INT", - { - "default": 2048, - "min": 0, - "max": 8192, - "step": 64 - } - ] - }, - "slot_index": 4 - } - ], - "outputs": [ - { - "name": "refiner_positive", - "type": "CONDITIONING", - "links": [ - 66, - 143 - ], - "shape": 3, - "slot_index": 0 - }, - { - "name": "refiner_negative", - "type": "CONDITIONING", - "links": [ - 67, - 146 - ], - "shape": 3, - "slot_index": 1 - } - ], - "title": "Refiner Style Encoder (SeargeSDXL)", - "properties": { - "Node name for S&R": "SeargeSDXLRefinerPromptEncoder" - }, - "widgets_values": [ - "POS_R", - "NEG_R", - 6, - 2.5, - 2048, - 2048 - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 40, - "type": "SeargeSDXLPromptEncoder", - "pos": [ - 810, - 1340 - ], - "size": { - "0": 300, - "1": 390 - }, - "flags": { - "pinned": true - }, - "order": 41, - "mode": 0, - "inputs": [ - { - "name": "base_clip", - "type": "CLIP", - "link": 29 - }, - { - "name": "refiner_clip", - "type": "CLIP", - "link": 31, - "slot_index": 1 - }, - { - "name": "pos_g", - "type": "STRING", - "link": 13, - "widget": { - "name": "pos_g", - "config": [ - "STRING", - { - "multiline": true, - "default": "POS_G" - } - ] - } - }, - { - "name": "pos_l", - "type": "STRING", - "link": 14, - "widget": { - "name": "pos_l", - "config": [ - "STRING", - { - "multiline": true, - "default": "POS_L" - } - ] - } - }, - { - "name": "pos_r", - "type": "STRING", - "link": 15, - "widget": { - "name": "pos_r", - "config": [ - "STRING", - { - "multiline": true, - "default": "POS_R" - } - ] - } - }, - { - "name": "neg_g", - "type": "STRING", - "link": 16, - "widget": { - "name": "neg_g", - "config": [ - "STRING", - { - "multiline": true, - "default": "NEG_G" - } - ] - } - }, - { - "name": "neg_l", - "type": "STRING", - "link": 17, - "widget": { - "name": "neg_l", - "config": [ - "STRING", - { - "multiline": true, - "default": "NEG_L" - } - ] - } - }, - { - "name": "neg_r", - "type": "STRING", - "link": 18, - "widget": { - "name": "neg_r", - "config": [ - "STRING", - { - "multiline": true, - "default": "NEG_R" - } - ] - } - }, - { - "name": "base_width", - "type": "INT", - "link": 42, - "widget": { - "name": "base_width", - "config": [ - "INT", - { - "default": 4096, - "min": 0, - "max": 8192, - "step": 64 - } - ] - }, - "slot_index": 8 - }, - { - "name": "base_height", - "type": "INT", - "link": 44, - "widget": { - "name": "base_height", - "config": [ - "INT", - { - "default": 4096, - "min": 0, - "max": 8192, - "step": 64 - } - ] - }, - "slot_index": 9 - }, - { - "name": "target_width", - "type": "INT", - "link": 43, - "widget": { - "name": "target_width", - "config": [ - "INT", - { - "default": 4096, - "min": 0, - "max": 8192, - "step": 64 - } - ] - }, - "slot_index": 10 - }, - { - "name": "target_height", - "type": "INT", - "link": 47, - "widget": { - "name": "target_height", - "config": [ - "INT", - { - "default": 4096, - "min": 0, - "max": 8192, - "step": 64 - } - ] - }, - "slot_index": 11 - }, - { - "name": "refiner_width", - "type": "INT", - "link": 38, - "widget": { - "name": "refiner_width", - "config": [ - "INT", - { - "default": 2048, - "min": 0, - "max": 8192, - "step": 64 - } - ] - } - }, - { - "name": "refiner_height", - "type": "INT", - "link": 39, - "widget": { - "name": "refiner_height", - "config": [ - "INT", - { - "default": 2048, - "min": 0, - "max": 8192, - "step": 64 - } - ] - }, - "slot_index": 13 - } - ], - "outputs": [ - { - "name": "base_positive", - "type": "CONDITIONING", - "links": [ - 60, - 140, - 154 - ], - "shape": 3, - "slot_index": 0 - }, - { - "name": "base_negative", - "type": "CONDITIONING", - "links": [ - 61, - 141, - 155 - ], - "shape": 3, - "slot_index": 1 - }, - { - "name": "refiner_positive", - "type": "CONDITIONING", - "links": [ - 62, - 144, - 156 - ], - "shape": 3, - "slot_index": 2 - }, - { - "name": "refiner_negative", - "type": "CONDITIONING", - "links": [ - 63, - 145, - 157 - ], - "shape": 3, - "slot_index": 3 - } - ], - "title": "Primary Prompt Encoder (SeargeSDXL)", - "properties": { - "Node name for S&R": "SeargeSDXLPromptEncoder" - }, - "widgets_values": [ - "POS_G", - "POS_L", - "POS_R", - "NEG_G", - "NEG_L", - "NEG_R", - 4096, - 4096, - 0, - 0, - 4096, - 4096, - 6, - 2.5, - 2048, - 2048 - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 44, - "type": "EmptyLatentImage", - "pos": [ - 1410, - 1340 - ], - "size": { - "0": 315, - "1": 106 - }, - "flags": { - "pinned": true - }, - "order": 28, - "mode": 0, - "inputs": [ - { - "name": "width", - "type": "INT", - "link": 27, - "widget": { - "name": "width", - "config": [ - "INT", - { - "default": 512, - "min": 64, - "max": 8192, - "step": 8 - } - ] - }, - "slot_index": 0 - }, - { - "name": "height", - "type": "INT", - "link": 28, - "widget": { - "name": "height", - "config": [ - "INT", - { - "default": 512, - "min": 64, - "max": 8192, - "step": 8 - } - ] - }, - "slot_index": 1 - }, - { - "name": "batch_size", - "type": "INT", - "link": 26, - "widget": { - "name": "batch_size", - "config": [ - "INT", - { - "default": 1, - "min": 1, - "max": 64 - } - ] - }, - "slot_index": 2 - } - ], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "links": [ - 70 - ], - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "EmptyLatentImage" - }, - "widgets_values": [ - 512, - 512, - 1 - ], - "color": "#323", - "bgcolor": "#535" - }, - { - "id": 55, - "type": "ConditioningCombine", - "pos": [ - 1410, - 1540 - ], - "size": { - "0": 290, - "1": 60 - }, - "flags": { - "pinned": true - }, - "order": 42, - "mode": 0, - "inputs": [ - { - "name": "conditioning_1", - "type": "CONDITIONING", - "link": 60 - }, - { - "name": "conditioning_2", - "type": "CONDITIONING", - "link": 64 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [], - "shape": 3, - "label": "base +", - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "ConditioningCombine" - }, - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 56, - "type": "ConditioningCombine", - "pos": [ - 1410, - 1640 - ], - "size": { - "0": 290, - "1": 60 - }, - "flags": { - "pinned": true - }, - "order": 44, - "mode": 0, - "inputs": [ - { - "name": "conditioning_1", - "type": "CONDITIONING", - "link": 61 - }, - { - "name": "conditioning_2", - "type": "CONDITIONING", - "link": 65 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [], - "shape": 3, - "label": "base -", - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "ConditioningCombine" - }, - "color": "#322", - "bgcolor": "#533" - }, - { - "id": 57, - "type": "ConditioningCombine", - "pos": [ - 1410, - 1750 - ], - "size": { - "0": 290, - "1": 60 - }, - "flags": { - "pinned": true - }, - "order": 46, - "mode": 0, - "inputs": [ - { - "name": "conditioning_1", - "type": "CONDITIONING", - "link": 62 - }, - { - "name": "conditioning_2", - "type": "CONDITIONING", - "link": 66 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [], - "shape": 3, - "label": "refiner +", - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "ConditioningCombine" - }, - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 58, - "type": "ConditioningCombine", - "pos": [ - 1410, - 1850 - ], - "size": { - "0": 290, - "1": 60 - }, - "flags": { - "pinned": true - }, - "order": 48, - "mode": 0, - "inputs": [ - { - "name": "conditioning_1", - "type": "CONDITIONING", - "link": 63 - }, - { - "name": "conditioning_2", - "type": "CONDITIONING", - "link": 67 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [], - "shape": 3, - "label": "refiner -", - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "ConditioningCombine" - }, - "color": "#332922", - "bgcolor": "#593930" - }, - { - "id": 28, - "type": "SeargeSDXLSampler", - "pos": [ - 2010, - 1340 - ], - "size": { - "0": 350, - "1": 300 - }, - "flags": { - "pinned": true - }, - "order": 50, - "mode": 0, - "inputs": [ - { - "name": "base_model", - "type": "MODEL", - "link": 68, - "slot_index": 0 - }, - { - "name": "base_positive", - "type": "CONDITIONING", - "link": 154, - "slot_index": 1 - }, - { - "name": "base_negative", - "type": "CONDITIONING", - "link": 155, - "slot_index": 2 - }, - { - "name": "refiner_model", - "type": "MODEL", - "link": 69, - "slot_index": 3 - }, - { - "name": "refiner_positive", - "type": "CONDITIONING", - "link": 156, - "slot_index": 4 - }, - { - "name": "refiner_negative", - "type": "CONDITIONING", - "link": 157, - "slot_index": 5 - }, - { - "name": "latent_image", - "type": "LATENT", - "link": 70, - "slot_index": 6 - }, - { - "name": "noise_seed", - "type": "INT", - "link": 12, - "widget": { - "name": "noise_seed", - "config": [ - "INT", - { - "default": 0, - "min": 0, - "max": 18446744073709552000 - } - ] - }, - "slot_index": 7 - }, - { - "name": "steps", - "type": "INT", - "link": 11, - "widget": { - "name": "steps", - "config": [ - "INT", - { - "default": 30, - "min": 1, - "max": 1000 - } - ] - }, - "slot_index": 8 - }, - { - "name": "cfg", - "type": "FLOAT", - "link": 10, - "widget": { - "name": "cfg", - "config": [ - "FLOAT", - { - "default": 7, - "min": 0, - "max": 100, - "step": 0.5 - } - ] - }, - "slot_index": 9 - }, - { - "name": "sampler_name", - "type": "euler,euler_ancestral,heun,dpm_2,dpm_2_ancestral,lms,dpm_fast,dpm_adaptive,dpmpp_2s_ancestral,dpmpp_sde,dpmpp_sde_gpu,dpmpp_2m,dpmpp_2m_sde,dpmpp_2m_sde_gpu,ddim,uni_pc,uni_pc_bh2", - "link": 6, - "widget": { - "name": "sampler_name", - "config": [ - [ - "euler", - "euler_ancestral", - "heun", - "dpm_2", - "dpm_2_ancestral", - "lms", - "dpm_fast", - "dpm_adaptive", - "dpmpp_2s_ancestral", - "dpmpp_sde", - "dpmpp_sde_gpu", - "dpmpp_2m", - "dpmpp_2m_sde", - "dpmpp_2m_sde_gpu", - "ddim", - "uni_pc", - "uni_pc_bh2" - ], - { - "default": "dpmpp_2m" - } - ] - }, - "slot_index": 10 - }, - { - "name": "scheduler", - "type": "normal,karras,exponential,simple,ddim_uniform", - "link": 7, - "widget": { - "name": "scheduler", - "config": [ - [ - "normal", - "karras", - "exponential", - "simple", - "ddim_uniform" - ], - { - "default": "karras" - } - ] - }, - "slot_index": 11 - }, - { - "name": "base_ratio", - "type": "FLOAT", - "link": 9, - "widget": { - "name": "base_ratio", - "config": [ - "FLOAT", - { - "default": 0.8, - "min": 0, - "max": 1, - "step": 0.01 - } - ] - }, - "slot_index": 12 - }, - { - "name": "denoise", - "type": "FLOAT", - "link": 153, - "widget": { - "name": "denoise", - "config": [ - "FLOAT", - { - "default": 1, - "min": 0, - "max": 1, - "step": 0.01 - } - ] - }, - "slot_index": 13 - } - ], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "links": [ - 75 - ], - "shape": 3, - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "SeargeSDXLSampler" - }, - "widgets_values": [ - 34380934691925, - "randomize", - 30, - 7, - "dpmpp_2m", - "karras", - 0.8, - 1 - ], - "color": "#223", - "bgcolor": "#335" - }, - { - "id": 46, - "type": "VAEDecode", - "pos": [ - 2010, - 1240 - ], - "size": { - "0": 350, - "1": 50 - }, - "flags": { - "pinned": true - }, - "order": 51, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 75 - }, - { - "name": "vae", - "type": "VAE", - "link": 33, - "slot_index": 1 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 34, - 83, - 84, - 88 - ], - "shape": 3, - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "VAEDecode" - }, - "color": "#2a363b", - "bgcolor": "#3f5159" - }, - { - "id": 64, - "type": "SeargeIntegerScaler", - "pos": [ - 2300, - 330 - ], - "size": { - "0": 230, - "1": 80 - }, - "flags": { - "pinned": true - }, - "order": 27, - "mode": 0, - "inputs": [ - { - "name": "value", - "type": "INT", - "link": 79, - "widget": { - "name": "value", - "config": [ - "INT", - { - "default": 0, - "min": 0, - "max": 18446744073709552000 - } - ] - }, - "slot_index": 0 - }, - { - "name": "factor", - "type": "FLOAT", - "link": 78, - "widget": { - "name": "factor", - "config": [ - "FLOAT", - { - "default": 1, - "step": 0.01 - } - ] - }, - "slot_index": 1 - } - ], - "outputs": [ - { - "name": "value", - "type": "INT", - "links": [ - 91 - ], - "shape": 3, - "slot_index": 0 - } - ], - "title": "Upscaled Image Width", - "properties": { - "Node name for S&R": "SeargeIntegerScaler" - }, - "widgets_values": [ - 0, - 1, - 64 - ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 65, - "type": "SeargeIntegerScaler", - "pos": [ - 2300, - 450 - ], - "size": { - "0": 230, - "1": 80 - }, - "flags": { - "pinned": true - }, - "order": 26, - "mode": 0, - "inputs": [ - { - "name": "value", - "type": "INT", - "link": 80, - "widget": { - "name": "value", - "config": [ - "INT", - { - "default": 0, - "min": 0, - "max": 18446744073709552000 - } - ] - }, - "slot_index": 0 - }, - { - "name": "factor", - "type": "FLOAT", - "link": 77, - "widget": { - "name": "factor", - "config": [ - "FLOAT", - { - "default": 1, - "step": 0.01 - } - ] - }, - "slot_index": 1 - } - ], - "outputs": [ - { - "name": "value", - "type": "INT", - "links": [ - 92 - ], - "shape": 3 - } - ], - "title": "Upscaled Image Height", - "properties": { - "Node name for S&R": "SeargeIntegerScaler" - }, - "widgets_values": [ - 0, - 1, - 64 - ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 66, - "type": "ImageUpscaleWithModel", - "pos": [ - 2300, - 630 - ], - "size": { - "0": 226.8000030517578, - "1": 46 - }, - "flags": { - "pinned": true - }, - "order": 53, - "mode": 0, - "inputs": [ - { - "name": "upscale_model", - "type": "UPSCALE_MODEL", - "link": 81, - "slot_index": 0 - }, - { - "name": "image", - "type": "IMAGE", - "link": 83, - "slot_index": 1 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 86 - ], - "shape": 3 - } - ], - "title": "Upscale with Model 1", - "properties": { - "Node name for S&R": "ImageUpscaleWithModel" - }, - "color": "#223", - "bgcolor": "#335" - }, - { - "id": 67, - "type": "ImageUpscaleWithModel", - "pos": [ - 2300, - 730 - ], - "size": { - "0": 226.8000030517578, - "1": 46 - }, - "flags": { - "pinned": true - }, - "order": 54, - "mode": 0, - "inputs": [ - { - "name": "upscale_model", - "type": "UPSCALE_MODEL", - "link": 82, - "slot_index": 0 - }, - { - "name": "image", - "type": "IMAGE", - "link": 84, - "slot_index": 1 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 87 - ], - "shape": 3 - } - ], - "title": "Upscale with Model 2", - "properties": { - "Node name for S&R": "ImageUpscaleWithModel" - }, - "color": "#223", - "bgcolor": "#335" - }, - { - "id": 69, - "type": "ImageScale", - "pos": [ - 2690, - 550 - ], - "size": { - "0": 320, - "1": 130 - }, - "flags": { - "pinned": true - }, - "order": 57, - "mode": 0, - "inputs": [ - { - "name": "image", - "type": "IMAGE", - "link": 89 - }, - { - "name": "width", - "type": "INT", - "link": 91, - "widget": { - "name": "width", - "config": [ - "INT", - { - "default": 512, - "min": 1, - "max": 8192, - "step": 1 - } - ] - } - }, - { - "name": "height", - "type": "INT", - "link": 92, - "widget": { - "name": "height", - "config": [ - "INT", - { - "default": 512, - "min": 1, - "max": 8192, - "step": 1 - } - ] - }, - "slot_index": 2 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 90 - ], - "shape": 3, - "slot_index": 0 - } - ], - "title": "Scale to Target Size", - "properties": { - "Node name for S&R": "ImageScale" - }, - "widgets_values": [ - "bicubic", - 512, - 512, - "center" - ], - "color": "#223", - "bgcolor": "#335" - }, - { - "id": 68, - "type": "ImageBlend", - "pos": [ - 2690, - 720 - ], - "size": { - "0": 320, - "1": 102 - }, - "flags": { - "pinned": true - }, - "order": 56, - "mode": 0, - "inputs": [ - { - "name": "image1", - "type": "IMAGE", - "link": 86, - "slot_index": 0 - }, - { - "name": "image2", - "type": "IMAGE", - "link": 87, - "slot_index": 1 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 89 - ], - "shape": 3, - "slot_index": 0 - } - ], - "title": "Mix Upscaled Images", - "properties": { - "Node name for S&R": "ImageBlend" - }, - "widgets_values": [ - 0.75, - "normal" - ], - "color": "#223", - "bgcolor": "#335" - }, - { - "id": 63, - "type": "SaveImage", - "pos": [ - 3100, - 330 - ], - "size": { - "0": 420, - "1": 470 - }, - "flags": { - "pinned": true - }, - "order": 58, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 90 - } - ], - "properties": {}, - "widgets_values": [ - "SeargeSDXL-t2i-%date:yyyy-MM-dd%/high_res" - ] - }, - { - "id": 59, - "type": "SaveImage", - "pos": [ - 3100, - 1240 - ], - "size": { - "0": 420, - "1": 470 - }, - "flags": { - "pinned": true - }, - "order": 55, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 88, - "slot_index": 0 - } - ], - "properties": {}, - "widgets_values": [ - "SeargeSDXL-t2i-%date:yyyy-MM-dd%/low_res" - ] - }, - { - "id": 36, - "type": "UpscaleModelLoader", - "pos": [ - 480, - 970 - ], - "size": { - "0": 320, - "1": 60 - }, - "flags": { - "pinned": true - }, - "order": 19, - "mode": 0, - "outputs": [ - { - "name": "UPSCALE_MODEL", - "type": "UPSCALE_MODEL", - "links": [ - 81 - ], - "shape": 3 - } - ], - "title": "Main Upscale Model", - "properties": { - "Node name for S&R": "UpscaleModelLoader" - }, - "widgets_values": [ - "4x_NMKD-Siax_200k.pth" - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 37, - "type": "UpscaleModelLoader", - "pos": [ - 800, - 970 - ], - "size": { - "0": 310, - "1": 60 - }, - "flags": { - "pinned": true - }, - "order": 20, - "mode": 0, - "outputs": [ - { - "name": "UPSCALE_MODEL", - "type": "UPSCALE_MODEL", - "links": [ - 82 - ], - "shape": 3 - } - ], - "title": "Supporting Upscale Model", - "properties": { - "Node name for S&R": "UpscaleModelLoader" - }, - "widgets_values": [ - "4x-UltraSharp.pth" - ], - "color": "#2a363b", - "bgcolor": "#3f5159" - }, - { - "id": 74, - "type": "SeargeIntegerConstant", - "pos": [ - -500, - 1750 - ], - "size": { - "0": 250, - "1": 58 - }, - "flags": { - "pinned": true - }, - "order": 21, - "mode": 0, - "outputs": [ - { - "name": "value", - "type": "INT", - "links": [ - 125, - 126, - 127, - 128 - ], - "shape": 3, - "slot_index": 0 - } - ], - "title": "Conditioning Size Base", - "properties": { - "Node name for S&R": "SeargeIntegerConstant" - }, - "widgets_values": [ - 1024 - ], - "color": "#222", - "bgcolor": "#000" - }, - { - "id": 75, - "type": "ConditioningAverage ", - "pos": [ - 1410, - 1990 - ], - "size": { - "0": 290, - "1": 74 - }, - "flags": { - "pinned": true - }, - "order": 43, - "mode": 0, - "inputs": [ - { - "name": "conditioning_to", - "type": "CONDITIONING", - "link": 139 - }, - { - "name": "conditioning_from", - "type": "CONDITIONING", - "link": 140 - }, - { - "name": "conditioning_to_strength", - "type": "FLOAT", - "link": 132, - "widget": { - "name": "conditioning_to_strength", - "config": [ - "FLOAT", - { - "default": 1, - "min": 0, - "max": 1, - "step": 0.01 - } - ] - }, - "slot_index": 2 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [], - "shape": 3, - "label": "base +", - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "ConditioningAverage " - }, - "widgets_values": [ - 1 - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 76, - "type": "ConditioningAverage ", - "pos": [ - 1410, - 2100 - ], - "size": { - "0": 290, - "1": 74 - }, - "flags": { - "pinned": true - }, - "order": 45, - "mode": 0, - "inputs": [ - { - "name": "conditioning_to", - "type": "CONDITIONING", - "link": 141 - }, - { - "name": "conditioning_from", - "type": "CONDITIONING", - "link": 142 - }, - { - "name": "conditioning_to_strength", - "type": "FLOAT", - "link": 149, - "widget": { - "name": "conditioning_to_strength", - "config": [ - "FLOAT", - { - "default": 1, - "min": 0, - "max": 1, - "step": 0.01 - } - ] - }, - "slot_index": 2 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [], - "shape": 3, - "label": "base -", - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "ConditioningAverage " - }, - "widgets_values": [ - 1 - ], - "color": "#322", - "bgcolor": "#533" - }, - { - "id": 77, - "type": "ConditioningAverage ", - "pos": [ - 1410, - 2220 - ], - "size": { - "0": 290, - "1": 74 - }, - "flags": { - "pinned": true - }, - "order": 47, - "mode": 0, - "inputs": [ - { - "name": "conditioning_to", - "type": "CONDITIONING", - "link": 143 - }, - { - "name": "conditioning_from", - "type": "CONDITIONING", - "link": 144 - }, - { - "name": "conditioning_to_strength", - "type": "FLOAT", - "link": 134, - "widget": { - "name": "conditioning_to_strength", - "config": [ - "FLOAT", - { - "default": 1, - "min": 0, - "max": 1, - "step": 0.01 - } - ] - }, - "slot_index": 2 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [], - "shape": 3, - "label": "refiner +", - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "ConditioningAverage " - }, - "widgets_values": [ - 1 - ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 78, - "type": "ConditioningAverage ", - "pos": [ - 1410, - 2330 - ], - "size": { - "0": 290, - "1": 74 - }, - "flags": { - "pinned": true - }, - "order": 49, - "mode": 0, - "inputs": [ - { - "name": "conditioning_to", - "type": "CONDITIONING", - "link": 145 - }, - { - "name": "conditioning_from", - "type": "CONDITIONING", - "link": 146 - }, - { - "name": "conditioning_to_strength", - "type": "FLOAT", - "link": 150, - "widget": { - "name": "conditioning_to_strength", - "config": [ - "FLOAT", - { - "default": 1, - "min": 0, - "max": 1, - "step": 0.01 - } - ] - }, - "slot_index": 2 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [], - "shape": 3, - "label": "refiner -", - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "ConditioningAverage " - }, - "widgets_values": [ - 1 - ], - "color": "#332922", - "bgcolor": "#593930" - }, - { - "id": 82, - "type": "Reroute", - "pos": [ - 1030, - 2280 - ], - "size": [ - 75, - 26 - ], - "flags": { - "pinned": true - }, - "order": 29, - "mode": 0, - "inputs": [ - { - "name": "", - "type": "*", - "link": 131, - "slot_index": 0 - } - ], - "outputs": [ - { - "name": "", - "type": "FLOAT", - "links": [ - 132, - 134 - ] - } - ], - "properties": { - "showOutputText": false, - "horizontal": false - } - }, - { - "id": 83, - "type": "SeargeFloatConstant", - "pos": [ - 480, - 560 - ], - "size": { - "0": 320, - "1": 60 - }, - "flags": { - "pinned": true - }, - "order": 22, - "mode": 0, - "outputs": [ - { - "name": "value", - "type": "FLOAT", - "links": [ - 153 - ], - "shape": 3, - "label": "base ratio", - "slot_index": 0 - } - ], - "title": "Denoise (keep at 1.0)", - "properties": { - "Node name for S&R": "SeargeFloatConstant" - }, - "widgets_values": [ - 1 - ], - "color": "#222", - "bgcolor": "#000" - }, - { - "id": 84, - "type": "SeargeFloatConstant", - "pos": [ - 800, - 560 - ], - "size": { - "0": 310, - "1": 60 - }, - "flags": { - "pinned": true - }, - "order": 23, - "mode": 0, - "outputs": [ - { - "name": "value", - "type": "FLOAT", - "links": [ - 148 - ], - "shape": 3, - "label": "style power" - } - ], - "title": "Negative Style Power - unused", - "properties": { - "Node name for S&R": "SeargeFloatConstant" - }, - "widgets_values": [ - 0.667 - ], - "color": "#222", - "bgcolor": "#000" - }, - { - "id": 45, - "type": "Note", - "pos": [ - 480, - 650 - ], - "size": { - "0": 630, - "1": 290 - }, - "flags": { - "pinned": true - }, - "order": 24, - "mode": 0, - "title": "Workflow Information", - "properties": { - "text": "" - }, - "widgets_values": [ - "\nImproved Searge SDXL workflow for SDXL 1.0 - TEXT to IMAGE (simple) - created on Jul 27, 2023\n\nTo use this workflow, set up ComfyUI like this:\n\n- Install the Searge SDXL custom node extension from https://github.com/SeargeDP/SeargeSDXL\n - open the command line in directory: ComfyUI/custom_nodes\n - run the command: git clone https://github.com/SeargeDP/SeargeSDXL.git\n - restart ComfyUI\n\nSDXL 1.0 base:\n https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors\nSDXL 1.0 refiner:\n https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0.safetensors\n\nSDXL 0.9 vae: https://huggingface.co/madebyollin/sdxl-vae-fp16-fix/resolve/main/sdxl_vae.safetensors\n4x-UltraSharp upscaler: https://huggingface.co/uwg/upscaler/resolve/main/ESRGAN/4x-UltraSharp.pth\n4x_NMKD-Siax_200k upscaler: https://huggingface.co/uwg/upscaler/resolve/main/ESRGAN/4x_NMKD-Siax_200k.pth\n\nImage sizes that are \"ideal\" for different aspect ratios:\n | 1024x1024 | 1152x896 | 896x1152 | 1216x832 | 832x1216 | 1344x768 | 768x1344 | 1536x640 | 640x1536 |" - ], - "color": "#323", - "bgcolor": "#535" - }, - { - "id": 85, - "type": "Reroute", - "pos": [ - 1030, - 2320 - ], - "size": [ - 75, - 26 - ], - "flags": { - "pinned": true - }, - "order": 34, - "mode": 0, - "inputs": [ - { - "name": "", - "type": "*", - "link": 148, - "slot_index": 0 - } - ], - "outputs": [ - { - "name": "", - "type": "FLOAT", - "links": [ - 149, - 150 - ], - "slot_index": 0 - } - ], - "properties": { - "showOutputText": false, - "horizontal": false - } - }, - { - "id": 15, - "type": "SeargeIntegerConstant", - "pos": [ - 10, - 1420 - ], - "size": { - "0": 230, - "1": 34 - }, - "flags": { - "pinned": true - }, - "order": 25, - "mode": 0, - "inputs": [ - { - "name": "value", - "type": "INT", - "link": 1, - "widget": { - "name": "value", - "config": [ - "INT", - { - "default": 0, - "min": 0, - "max": 18446744073709552000 - } - ] - }, - "slot_index": 0, - "label": "seed" - } - ], - "outputs": [ - { - "name": "value", - "type": "INT", - "links": [ - 12 - ], - "shape": 3, - "label": "seed" - } - ], - "title": "Seed pass-through", - "properties": { - "Node name for S&R": "SeargeIntegerConstant" - }, - "widgets_values": [ - 1468615445736 - ], - "color": "#222", - "bgcolor": "#000" - } - ], - "links": [ - [ - 1, - 16, - 0, - 15, - 0, - "INT" - ], - [ - 6, - 29, - 0, - 28, - 10, - "euler,euler_ancestral,heun,dpm_2,dpm_2_ancestral,lms,dpm_fast,dpm_adaptive,dpmpp_2s_ancestral,dpmpp_sde,dpmpp_sde_gpu,dpmpp_2m,dpmpp_2m_sde,dpmpp_2m_sde_gpu,ddim,uni_pc,uni_pc_bh2" - ], - [ - 7, - 30, - 0, - 28, - 11, - "normal,karras,exponential,simple,ddim_uniform" - ], - [ - 9, - 35, - 0, - 28, - 12, - "FLOAT" - ], - [ - 10, - 34, - 0, - 28, - 9, - "FLOAT" - ], - [ - 11, - 31, - 0, - 28, - 8, - "INT" - ], - [ - 12, - 15, - 0, - 28, - 7, - "INT" - ], - [ - 13, - 3, - 0, - 40, - 2, - "STRING" - ], - [ - 14, - 5, - 0, - 40, - 3, - "STRING" - ], - [ - 15, - 3, - 0, - 40, - 4, - "STRING" - ], - [ - 16, - 7, - 0, - 40, - 5, - "STRING" - ], - [ - 17, - 7, - 0, - 40, - 6, - "STRING" - ], - [ - 18, - 7, - 0, - 40, - 7, - "STRING" - ], - [ - 19, - 6, - 0, - 41, - 1, - "STRING" - ], - [ - 20, - 6, - 0, - 41, - 2, - "STRING" - ], - [ - 21, - 8, - 0, - 41, - 3, - "STRING" - ], - [ - 22, - 8, - 0, - 41, - 4, - "STRING" - ], - [ - 23, - 6, - 0, - 42, - 1, - "STRING" - ], - [ - 24, - 8, - 0, - 42, - 2, - "STRING" - ], - [ - 26, - 38, - 0, - 44, - 2, - "INT" - ], - [ - 27, - 20, - 0, - 44, - 0, - "INT" - ], - [ - 28, - 20, - 1, - 44, - 1, - "INT" - ], - [ - 29, - 10, - 1, - 40, - 0, - "CLIP" - ], - [ - 30, - 10, - 1, - 41, - 0, - "CLIP" - ], - [ - 31, - 27, - 1, - 40, - 1, - "CLIP" - ], - [ - 32, - 27, - 1, - 42, - 0, - "CLIP" - ], - [ - 33, - 12, - 0, - 46, - 1, - "VAE" - ], - [ - 34, - 46, - 0, - 19, - 0, - "IMAGE" - ], - [ - 35, - 47, - 0, - 42, - 3, - "INT" - ], - [ - 37, - 48, - 0, - 42, - 4, - "INT" - ], - [ - 38, - 47, - 0, - 40, - 12, - "INT" - ], - [ - 39, - 48, - 0, - 40, - 13, - "INT" - ], - [ - 40, - 49, - 0, - 41, - 5, - "INT" - ], - [ - 41, - 49, - 0, - 41, - 7, - "INT" - ], - [ - 42, - 49, - 0, - 40, - 8, - "INT" - ], - [ - 43, - 49, - 0, - 40, - 10, - "INT" - ], - [ - 44, - 50, - 0, - 40, - 9, - "INT" - ], - [ - 45, - 50, - 0, - 41, - 6, - "INT" - ], - [ - 46, - 50, - 0, - 41, - 8, - "INT" - ], - [ - 47, - 50, - 0, - 40, - 11, - "INT" - ], - [ - 49, - 26, - 0, - 51, - 1, - "FLOAT" - ], - [ - 51, - 26, - 1, - 52, - 1, - "FLOAT" - ], - [ - 53, - 26, - 1, - 54, - 1, - "FLOAT" - ], - [ - 55, - 26, - 1, - 53, - 1, - "FLOAT" - ], - [ - 56, - 51, - 0, - 49, - 0, - "*" - ], - [ - 57, - 52, - 0, - 50, - 0, - "*" - ], - [ - 58, - 54, - 0, - 47, - 0, - "*" - ], - [ - 59, - 53, - 0, - 48, - 0, - "*" - ], - [ - 60, - 40, - 0, - 55, - 0, - "CONDITIONING" - ], - [ - 61, - 40, - 1, - 56, - 0, - "CONDITIONING" - ], - [ - 62, - 40, - 2, - 57, - 0, - "CONDITIONING" - ], - [ - 63, - 40, - 3, - 58, - 0, - "CONDITIONING" - ], - [ - 64, - 41, - 0, - 55, - 1, - "CONDITIONING" - ], - [ - 65, - 41, - 1, - 56, - 1, - "CONDITIONING" - ], - [ - 66, - 42, - 0, - 57, - 1, - "CONDITIONING" - ], - [ - 67, - 42, - 1, - 58, - 1, - "CONDITIONING" - ], - [ - 68, - 10, - 0, - 28, - 0, - "MODEL" - ], - [ - 69, - 27, - 0, - 28, - 3, - "MODEL" - ], - [ - 70, - 44, - 0, - 28, - 6, - "LATENT" - ], - [ - 75, - 28, - 0, - 46, - 0, - "LATENT" - ], - [ - 77, - 33, - 0, - 65, - 1, - "FLOAT" - ], - [ - 78, - 33, - 0, - 64, - 1, - "FLOAT" - ], - [ - 79, - 20, - 0, - 64, - 0, - "INT" - ], - [ - 80, - 20, - 1, - 65, - 0, - "INT" - ], - [ - 81, - 36, - 0, - 66, - 0, - "UPSCALE_MODEL" - ], - [ - 82, - 37, - 0, - 67, - 0, - "UPSCALE_MODEL" - ], - [ - 83, - 46, - 0, - 66, - 1, - "IMAGE" - ], - [ - 84, - 46, - 0, - 67, - 1, - "IMAGE" - ], - [ - 86, - 66, - 0, - 68, - 0, - "IMAGE" - ], - [ - 87, - 67, - 0, - 68, - 1, - "IMAGE" - ], - [ - 88, - 46, - 0, - 59, - 0, - "IMAGE" - ], - [ - 89, - 68, - 0, - 69, - 0, - "IMAGE" - ], - [ - 90, - 69, - 0, - 63, - 0, - "IMAGE" - ], - [ - 91, - 64, - 0, - 69, - 1, - "INT" - ], - [ - 92, - 65, - 0, - 69, - 2, - "INT" - ], - [ - 125, - 74, - 0, - 51, - 0, - "INT" - ], - [ - 126, - 74, - 0, - 52, - 0, - "INT" - ], - [ - 127, - 74, - 0, - 54, - 0, - "INT" - ], - [ - 128, - 74, - 0, - 53, - 0, - "INT" - ], - [ - 131, - 43, - 0, - 82, - 0, - "*" - ], - [ - 132, - 82, - 0, - 75, - 2, - "FLOAT" - ], - [ - 134, - 82, - 0, - 77, - 2, - "FLOAT" - ], - [ - 139, - 41, - 0, - 75, - 0, - "CONDITIONING" - ], - [ - 140, - 40, - 0, - 75, - 1, - "CONDITIONING" - ], - [ - 141, - 40, - 1, - 76, - 0, - "CONDITIONING" - ], - [ - 142, - 41, - 1, - 76, - 1, - "CONDITIONING" - ], - [ - 143, - 42, - 0, - 77, - 0, - "CONDITIONING" - ], - [ - 144, - 40, - 2, - 77, - 1, - "CONDITIONING" - ], - [ - 145, - 40, - 3, - 78, - 0, - "CONDITIONING" - ], - [ - 146, - 42, - 1, - 78, - 1, - "CONDITIONING" - ], - [ - 148, - 84, - 0, - 85, - 0, - "*" - ], - [ - 149, - 85, - 0, - 76, - 2, - "FLOAT" - ], - [ - 150, - 85, - 0, - 78, - 2, - "FLOAT" - ], - [ - 153, - 83, - 0, - 28, - 13, - "FLOAT" - ], - [ - 154, - 40, - 0, - 28, - 1, - "CONDITIONING" - ], - [ - 155, - 40, - 1, - 28, - 2, - "CONDITIONING" - ], - [ - 156, - 40, - 2, - 28, - 4, - "CONDITIONING" - ], - [ - 157, - 40, - 3, - 28, - 5, - "CONDITIONING" - ] - ], - "groups": [], - "config": {}, - "extra": {}, - "version": 0.4 -} \ No newline at end of file diff --git a/example/Searge-SDXL-simple.png b/example/Searge-SDXL-simple.png deleted file mode 100644 index ae3bf1e..0000000 Binary files a/example/Searge-SDXL-simple.png and /dev/null differ diff --git a/example/Searge-SDXL-workflow-1.png b/example/Searge-SDXL-workflow-1.png index 29e3fd9..12faca7 100644 Binary files a/example/Searge-SDXL-workflow-1.png and b/example/Searge-SDXL-workflow-1.png differ diff --git a/example/Searge-SDXL-workflow-4.png b/example/Searge-SDXL-workflow-4.png deleted file mode 100644 index c431967..0000000 Binary files a/example/Searge-SDXL-workflow-4.png and /dev/null differ diff --git a/searge_sdxl_sampler_node.py b/searge_sdxl_sampler_node.py index ee1a917..6a62746 100644 --- a/searge_sdxl_sampler_node.py +++ b/searge_sdxl_sampler_node.py @@ -28,8 +28,7 @@ import comfy.samplers import nodes - -from nodes import MAX_RESOLUTION +import comfy_extras.nodes_upscale_model # SDXL Sampler with base and refiner support @@ -45,7 +44,7 @@ def INPUT_TYPES(s): "refiner_positive": ("CONDITIONING", ), "refiner_negative": ("CONDITIONING", ), "latent_image": ("LATENT", ), - "noise_seed": ("INT", {"default": 0, "min": 0, "max": 0xffffffffffffffff}), + "noise_seed": ("INT", {"default": 0, "min": 0, "max": 0xfffffffffffffff0}), "steps": ("INT", {"default": 30, "min": 1, "max": 1000}), "cfg": ("FLOAT", {"default": 7.0, "min": 0.0, "max": 100.0, "step": 0.5}), "sampler_name": (comfy.samplers.KSampler.SAMPLERS, {"default": "dpmpp_2m"}), @@ -53,26 +52,108 @@ def INPUT_TYPES(s): "base_ratio": ("FLOAT", {"default": 0.8, "min": 0.0, "max": 1.0, "step": 0.01}), "denoise": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 1.0, "step": 0.01}), }, + "optional": { + "refiner_prep_steps": ("INT", {"default": 0, "min": 0, "max": 1000}), + }, } RETURN_TYPES = ("LATENT", ) - RETURN_NAMES = ("", ) FUNCTION = "sample" - CATEGORY = "Searge/SDXL" + CATEGORY = "Searge/Sampling" - def sample(self, base_model, base_positive, base_negative, refiner_model, refiner_positive, refiner_negative, latent_image, noise_seed, steps, cfg, sampler_name, scheduler, base_ratio, denoise): + def sample(self, base_model, base_positive, base_negative, refiner_model, refiner_positive, refiner_negative, latent_image, noise_seed, steps, cfg, sampler_name, scheduler, base_ratio, denoise, refiner_prep_steps=None): base_steps = int(steps * base_ratio) if denoise < 0.01: return (latent_image, ) + start_at_step = 0 + input_latent = latent_image + + if refiner_prep_steps is not None: + if refiner_prep_steps >= base_steps: + refiner_prep_steps = base_steps - 1 + + if refiner_prep_steps > 0: + start_at_step = refiner_prep_steps + preinject_result = nodes.common_ksampler(refiner_model, noise_seed + 2, steps, cfg, sampler_name, scheduler, refiner_positive, refiner_negative, latent_image, denoise=denoise, disable_noise=False, start_step=steps - refiner_prep_steps, last_step=steps, force_full_denoise=False) + input_latent = preinject_result[0] + + if base_steps >= steps: + return nodes.common_ksampler(base_model, noise_seed, steps, cfg, sampler_name, scheduler, base_positive, base_negative, input_latent, denoise=denoise, disable_noise=False, start_step=start_at_step, last_step=steps, force_full_denoise=True) + + base_result = nodes.common_ksampler(base_model, noise_seed, steps, cfg, sampler_name, scheduler, base_positive, base_negative, input_latent, denoise=denoise, disable_noise=False, start_step=start_at_step, last_step=base_steps, force_full_denoise=True) + + return nodes.common_ksampler(refiner_model, noise_seed + 1, steps, cfg, sampler_name, scheduler, refiner_positive, refiner_negative, base_result[0], denoise=denoise, disable_noise=False, start_step=base_steps, last_step=steps, force_full_denoise=True) + + +# SDXL Image2Image Sampler (incl. HiRes Fix) + +class SeargeSDXLImage2ImageSampler: + @classmethod + def INPUT_TYPES(s): + return {"required": { + "base_model": ("MODEL",), + "base_positive": ("CONDITIONING", ), + "base_negative": ("CONDITIONING", ), + "refiner_model": ("MODEL",), + "refiner_positive": ("CONDITIONING",), + "refiner_negative": ("CONDITIONING",), + "image": ("IMAGE", ), + "vae": ("VAE",), + "noise_seed": ("INT", {"default": 0, "min": 0, "max": 0xfffffffffffffff0}), + "steps": ("INT", {"default": 20, "min": 0, "max": 1000}), + "cfg": ("FLOAT", {"default": 7.0, "min": 0.0, "max": 100.0, "step": 0.5}), + "sampler_name": (comfy.samplers.KSampler.SAMPLERS, {"default": "ddim"}), + "scheduler": (comfy.samplers.KSampler.SCHEDULERS, {"default": "ddim_uniform"}), + "base_ratio": ("FLOAT", {"default": 0.8, "min": 0.0, "max": 1.0, "step": 0.01}), + "denoise": ("FLOAT", {"default": 0.25, "min": 0.0, "max": 1.0, "step": 0.01}), + }, + "optional": { + "upscale_model": ("UPSCALE_MODEL",), + "scaled_width": ("INT", {"default": 1536.0, "min": 0, "max": nodes.MAX_RESOLUTION, "step": 64}), + "scaled_height": ("INT", {"default": 1536.0, "min": 0, "max": nodes.MAX_RESOLUTION, "step": 64}), + }, + } + + RETURN_TYPES = ("IMAGE", ) + FUNCTION = "sample" + + CATEGORY = "Searge/Sampling" + + def sample(self, base_model, base_positive, base_negative, refiner_model, refiner_positive, refiner_negative, image, vae, noise_seed, steps, cfg, sampler_name, scheduler, base_ratio, denoise, upscale_model=None, scaled_width=None, scaled_height=None): + base_steps = int(steps * base_ratio) + + if steps < 1: + return (image, ) + + scaled_image = image + + if upscale_model is not None: + upscale_result = comfy_extras.nodes_upscale_model.ImageUpscaleWithModel().upscale(upscale_model, image) + scaled_image = upscale_result[0] + + if scaled_width is not None and scaled_height is not None: + upscale_result = nodes.ImageScale().upscale(scaled_image, "bicubic", scaled_width, scaled_height, "center") + scaled_image = upscale_result[0] + + if denoise < 0.01: + return (scaled_image, ) + + vae_encode_result = nodes.VAEEncode().encode(vae, scaled_image) + input_latent = vae_encode_result[0] + if base_steps >= steps: - return nodes.common_ksampler(base_model, noise_seed, steps, cfg, sampler_name, scheduler, base_positive, base_negative, latent_image, denoise=denoise, disable_noise=False, start_step=0, last_step=steps, force_full_denoise=True) + result_latent = nodes.common_ksampler(base_model, noise_seed, steps, cfg, sampler_name, scheduler, base_positive, base_negative, input_latent, denoise=denoise, disable_noise=False, start_step=0, last_step=steps, force_full_denoise=True) + else: + base_result = nodes.common_ksampler(base_model, noise_seed, steps, cfg, sampler_name, scheduler, base_positive, base_negative, input_latent, denoise=denoise, disable_noise=False, start_step=0, last_step=base_steps, force_full_denoise=True) + result_latent = nodes.common_ksampler(refiner_model, noise_seed + 1, steps, cfg, sampler_name, scheduler, refiner_positive, refiner_negative, base_result[0], denoise=denoise, disable_noise=False, start_step=base_steps, last_step=steps, force_full_denoise=True) - base_result = nodes.common_ksampler(base_model, noise_seed, steps, cfg, sampler_name, scheduler, base_positive, base_negative, latent_image, denoise=denoise, disable_noise=False, start_step=0, last_step=base_steps, force_full_denoise=True) + vae_decode_result = nodes.VAEDecode().decode(vae, result_latent[0]) + output_image = vae_decode_result[0] - return nodes.common_ksampler(refiner_model, noise_seed, steps, cfg, sampler_name, scheduler, refiner_positive, refiner_negative, base_result[0], denoise=denoise, disable_noise=False, start_step=base_steps, last_step=steps, force_full_denoise=True) + return (output_image, ) # SDXL CLIP Text Encoder for prompts with base and refiner support @@ -89,16 +170,16 @@ def INPUT_TYPES(s): "neg_g": ("STRING", {"multiline": True, "default": "NEG_G"}), "neg_l": ("STRING", {"multiline": True, "default": "NEG_L"}), "neg_r": ("STRING", {"multiline": True, "default": "NEG_R"}), - "base_width": ("INT", {"default": 4096.0, "min": 0, "max": MAX_RESOLUTION, "step": 64}), - "base_height": ("INT", {"default": 4096.0, "min": 0, "max": MAX_RESOLUTION, "step": 64}), - "crop_w": ("INT", {"default": 0, "min": 0, "max": MAX_RESOLUTION, "step": 64}), - "crop_h": ("INT", {"default": 0, "min": 0, "max": MAX_RESOLUTION, "step": 64}), - "target_width": ("INT", {"default": 4096.0, "min": 0, "max": MAX_RESOLUTION, "step": 64}), - "target_height": ("INT", {"default": 4096.0, "min": 0, "max": MAX_RESOLUTION, "step": 64}), + "base_width": ("INT", {"default": 4096.0, "min": 0, "max": nodes.MAX_RESOLUTION, "step": 64}), + "base_height": ("INT", {"default": 4096.0, "min": 0, "max": nodes.MAX_RESOLUTION, "step": 64}), + "crop_w": ("INT", {"default": 0, "min": 0, "max": nodes.MAX_RESOLUTION, "step": 64}), + "crop_h": ("INT", {"default": 0, "min": 0, "max": nodes.MAX_RESOLUTION, "step": 64}), + "target_width": ("INT", {"default": 4096.0, "min": 0, "max": nodes.MAX_RESOLUTION, "step": 64}), + "target_height": ("INT", {"default": 4096.0, "min": 0, "max": nodes.MAX_RESOLUTION, "step": 64}), "pos_ascore": ("FLOAT", {"default": 6.0, "min": 0.0, "max": 1000.0, "step": 0.01}), "neg_ascore": ("FLOAT", {"default": 2.5, "min": 0.0, "max": 1000.0, "step": 0.01}), - "refiner_width": ("INT", {"default": 2048.0, "min": 0, "max": MAX_RESOLUTION, "step": 64}), - "refiner_height": ("INT", {"default": 2048.0, "min": 0, "max": MAX_RESOLUTION, "step": 64}), + "refiner_width": ("INT", {"default": 2048.0, "min": 0, "max": nodes.MAX_RESOLUTION, "step": 64}), + "refiner_height": ("INT", {"default": 2048.0, "min": 0, "max": nodes.MAX_RESOLUTION, "step": 64}), }, } @@ -106,7 +187,7 @@ def INPUT_TYPES(s): RETURN_NAMES = ("base_positive", "base_negative", "refiner_positive", "refiner_negative", ) FUNCTION = "encode" - CATEGORY = "Searge/SDXL" + CATEGORY = "Searge/ClipEncoding" def encode(self, base_clip, refiner_clip, pos_g, pos_l, pos_r, neg_g, neg_l, neg_r, base_width, base_height, crop_w, crop_h, target_width, target_height, pos_ascore, neg_ascore, refiner_width, refiner_height, ): empty = base_clip.tokenize("") @@ -162,12 +243,12 @@ def INPUT_TYPES(s): "pos_l": ("STRING", {"multiline": True, "default": "POS_L"}), "neg_g": ("STRING", {"multiline": True, "default": "NEG_G"}), "neg_l": ("STRING", {"multiline": True, "default": "NEG_L"}), - "base_width": ("INT", {"default": 4096.0, "min": 0, "max": MAX_RESOLUTION, "step": 64}), - "base_height": ("INT", {"default": 4096.0, "min": 0, "max": MAX_RESOLUTION, "step": 64}), - "crop_w": ("INT", {"default": 0, "min": 0, "max": MAX_RESOLUTION, "step": 64}), - "crop_h": ("INT", {"default": 0, "min": 0, "max": MAX_RESOLUTION, "step": 64}), - "target_width": ("INT", {"default": 4096.0, "min": 0, "max": MAX_RESOLUTION, "step": 64}), - "target_height": ("INT", {"default": 4096.0, "min": 0, "max": MAX_RESOLUTION, "step": 64}), + "base_width": ("INT", {"default": 4096.0, "min": 0, "max": nodes.MAX_RESOLUTION, "step": 64}), + "base_height": ("INT", {"default": 4096.0, "min": 0, "max": nodes.MAX_RESOLUTION, "step": 64}), + "crop_w": ("INT", {"default": 0, "min": 0, "max": nodes.MAX_RESOLUTION, "step": 64}), + "crop_h": ("INT", {"default": 0, "min": 0, "max": nodes.MAX_RESOLUTION, "step": 64}), + "target_width": ("INT", {"default": 4096.0, "min": 0, "max": nodes.MAX_RESOLUTION, "step": 64}), + "target_height": ("INT", {"default": 4096.0, "min": 0, "max": nodes.MAX_RESOLUTION, "step": 64}), }, } @@ -175,7 +256,7 @@ def INPUT_TYPES(s): RETURN_NAMES = ("base_positive", "base_negative", ) FUNCTION = "encode" - CATEGORY = "Searge/SDXL" + CATEGORY = "Searge/ClipEncoding" def encode(self, base_clip, pos_g, pos_l, neg_g, neg_l, base_width, base_height, crop_w, crop_h, target_width, target_height, ): empty = base_clip.tokenize("") @@ -220,8 +301,8 @@ def INPUT_TYPES(s): "neg_r": ("STRING", {"multiline": True, "default": "NEG_R"}), "pos_ascore": ("FLOAT", {"default": 6.0, "min": 0.0, "max": 1000.0, "step": 0.01}), "neg_ascore": ("FLOAT", {"default": 2.5, "min": 0.0, "max": 1000.0, "step": 0.01}), - "refiner_width": ("INT", {"default": 2048.0, "min": 0, "max": MAX_RESOLUTION, "step": 64}), - "refiner_height": ("INT", {"default": 2048.0, "min": 0, "max": MAX_RESOLUTION, "step": 64}), + "refiner_width": ("INT", {"default": 2048.0, "min": 0, "max": nodes.MAX_RESOLUTION, "step": 64}), + "refiner_height": ("INT", {"default": 2048.0, "min": 0, "max": nodes.MAX_RESOLUTION, "step": 64}), }, } @@ -229,7 +310,7 @@ def INPUT_TYPES(s): RETURN_NAMES = ("refiner_positive", "refiner_negative", ) FUNCTION = "encode" - CATEGORY = "Searge/SDXL" + CATEGORY = "Searge/ClipEncoding" def encode(self, refiner_clip, pos_r, neg_r, pos_ascore, neg_ascore, refiner_width, refiner_height, ): @@ -477,6 +558,8 @@ def get_value(self, op, a, b, c, ): NODE_CLASS_MAPPINGS = { "SeargeSDXLSampler": SeargeSDXLSampler, + "SeargeSDXLImage2ImageSampler": SeargeSDXLImage2ImageSampler, + "SeargeSDXLPromptEncoder": SeargeSDXLPromptEncoder, "SeargeSDXLBasePromptEncoder": SeargeSDXLBasePromptEncoder, "SeargeSDXLRefinerPromptEncoder": SeargeSDXLRefinerPromptEncoder, @@ -498,7 +581,9 @@ def get_value(self, op, a, b, c, ): # Human readable names for the nodes NODE_DISPLAY_NAME_MAPPINGS = { - "SeargeSDXLSampler": "Sampler for SDXL (SeargeSDXL)", + "SeargeSDXLSampler": "SDXL Sampler (SeargeSDXL)", + "SeargeSDXLImage2ImageSampler": "Image2Image Sampler (SeargeSDXL)", + "SeargeSDXLPromptEncoder": "SDXL Prompt Encoder (SeargeSDXL)", "SeargeSDXLBasePromptEncoder": "SDXL Base Prompt Encoder (SeargeSDXL)", "SeargeSDXLRefinerPromptEncoder": "SDXL Refiner Prompt Encoder (SeargeSDXL)",