diff --git a/README.md b/README.md index 0df35a0..81d250b 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,7 @@ Check our latest [Wan 2.2 Video Examples](#video-examples-beta), [Wan 2.2 Image - [Wan 2.2 Video Outpainting](#wan-22-video-outpainting) - [Resource Consumption](#resource-consumption) - [Image Examples](#image-examples) + - [Z-image Inpainting](#example-z-image-inpaintlanpaint-k-sampler-5-steps-of-thinking) - [Hunyuan T2I](#example-hunyuan-t2i-inpaintlanpaint-k-sampler-5-steps-of-thinking) - [Wan 2.2 T2I](#example-wan22-inpaintlanpaint-k-sampler-5-steps-of-thinking) - [Wan 2.2 T2I with reference](#example-wan22-partial-inpaintlanpaint-k-sampler-5-steps-of-thinking) @@ -218,6 +219,22 @@ We are excited to announce that LanPaint now supports Wan2.2 text to image gener You need to follow the ComfyUI version of [Wan2.2 T2V workflow](https://docs.comfy.org/tutorials/video/wan/wan2_2) to download and install the T2V model. +### Example Z-image: InPaint(LanPaint K Sampler, 5 steps of thinking) +LanPaint also supports inpainting with the Z-image text-to-image model. + +
+View Original / Masked / Inpainted Comparison + +| Original | Masked | Inpainted | +|:--------:|:------:|:---------:| +| ![Original Z-image](https://github.com/scraed/LanPaint/blob/master/examples/Example_21/Original_No_Mask.png) | ![Masked Z-image](https://github.com/scraed/LanPaint/blob/master/examples/Example_21/Masked_Load_Me_in_Loader.png) | ![Inpainted Z-image](https://github.com/scraed/LanPaint/blob/master/examples/Example_21/InPainted_Drag_Me_to_ComfyUI.png) | + +
+ +[View Workflow & Masks](https://github.com/scraed/LanPaint/tree/master/examples/Example_21) + +You can download the Z-image model for ComfyUI from [Z-image](https://docs.comfy.org/zh-CN/tutorials/image/z-image/z-image-turbo). + ### Example Wan2.2: Partial InPaint(LanPaint K Sampler, 5 steps of thinking) Sometimes we don't want to inpaint completely new content, but rather let the inpainted image reference the original image. One option to achieve this is to inpaint with an edit model like Qwen Image Edit. Another option is to perform a partial inpaint: allowing the diffusion process to start at some middle steps rather than from 0. @@ -227,6 +244,7 @@ Sometimes we don't want to inpaint completely new content, but rather let the in You need to follow the ComfyUI version of [Wan2.2 T2V workflow](https://docs.comfy.org/tutorials/video/wan/wan2_2) to download and install the T2V model. + ### Example Qwen Edit 2509: InPaint Check our latest updated [Mased Qwen Edit Workflow](https://github.com/scraed/LanPaint/tree/master/examples/Example_14) for Qwen Image Edit 2509. Download the model at [Qwen Image Edit 2509 Comfy](https://huggingface.co/Comfy-Org/Qwen-Image-Edit_ComfyUI/tree/main/split_files/diffusion_models). diff --git a/example_workflows/Z_image_Inpaint.jpg b/example_workflows/Z_image_Inpaint.jpg new file mode 100644 index 0000000..62cb46e Binary files /dev/null and b/example_workflows/Z_image_Inpaint.jpg differ diff --git a/example_workflows/Z_image_Inpaint.json b/example_workflows/Z_image_Inpaint.json new file mode 100644 index 0000000..2413e7d --- /dev/null +++ b/example_workflows/Z_image_Inpaint.json @@ -0,0 +1,1473 @@ +{ + "id": "9ae6082b-c7f4-433c-9971-7a8f65a3ea65", + "revision": 0, + "last_node_id": 73, + "last_link_id": 93, + "nodes": [ + { + "id": 39, + "type": "CLIPLoader", + "pos": [ + 158.31605577680375, + 488.30506119064967 + ], + "size": [ + 323.734375, + 179.390625 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 44 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.73", + "Node name for S&R": "CLIPLoader", + "models": [ + { + "name": "qwen_3_4b.safetensors", + "url": "https://huggingface.co/Comfy-Org/z_image_turbo/resolve/main/split_files/text_encoders/qwen_3_4b.safetensors", + "directory": "text_encoders" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65 + }, + "widgets_values": [ + "qwen_3_4b.safetensors", + "lumina2", + "default" + ] + }, + { + "id": 40, + "type": "VAELoader", + "pos": [ + 159.30157212272297, + 693.9279006020886 + ], + "size": [ + 323.734375, + 111.390625 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "links": [ + 39, + 70, + 86, + 87 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.73", + "Node name for S&R": "VAELoader", + "models": [ + { + "name": "ae.safetensors", + "url": "https://huggingface.co/Comfy-Org/z_image_turbo/resolve/main/split_files/vae/ae.safetensors", + "directory": "vae" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65 + }, + "widgets_values": [ + "ae.safetensors" + ] + }, + { + "id": 42, + "type": "ConditioningZeroOut", + "pos": [ + 794.3164307166835, + 836.3052371197768 + ], + "size": [ + 236.984375, + 77.421875 + ], + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [ + { + "name": "conditioning", + "type": "CONDITIONING", + "link": 36 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 64 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.73", + "Node name for S&R": "ConditioningZeroOut", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65 + }, + "widgets_values": [] + }, + { + "id": 46, + "type": "UNETLoader", + "pos": [ + 158.31605577680375, + 332.3053621604172 + ], + "size": [ + 323.734375, + 145.390625 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 54 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.73", + "Node name for S&R": "UNETLoader", + "models": [ + { + "name": "z_image_turbo_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/z_image_turbo/resolve/main/split_files/diffusion_models/z_image_turbo_bf16.safetensors", + "directory": "diffusion_models" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65 + }, + "widgets_values": [ + "z_image_turbo_bf16.safetensors", + "default" + ] + }, + { + "id": 41, + "type": "EmptySD3LatentImage", + "pos": [ + 158.31605577680375, + 848.3047505883683 + ], + "size": [ + 311.734375, + 179.390625 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "EmptySD3LatentImage", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65 + }, + "widgets_values": [ + 1024, + 1024, + 1 + ] + }, + { + "id": 47, + "type": "ModelSamplingAuraFlow", + "pos": [ + 1106.844558468847, + 300.1767719883135 + ], + "size": [ + 371.875, + 111.390625 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 60 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 62 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "ModelSamplingAuraFlow", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65 + }, + "widgets_values": [ + 3 + ] + }, + { + "id": 43, + "type": "VAEDecode", + "pos": [ + 1490.0007839701339, + 169.99989031781615 + ], + "size": [ + 251.734375, + 101.421875 + ], + "flags": {}, + "order": 21, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 66 + }, + { + "name": "vae", + "type": "VAE", + "link": 39 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 73, + 93 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "VAEDecode", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65 + }, + "widgets_values": [] + }, + { + "id": 45, + "type": "CLIPTextEncode", + "pos": [ + 542.3159768994137, + 332.3053621604172 + ], + "size": [ + 491.734375, + 479.734375 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 44 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 36, + 63 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.73", + "Node name for S&R": "CLIPTextEncode", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65 + }, + "widgets_values": [ + "Latina female with thick wavy hair, white shirt, harbor boats and pastel houses behind. Breezy seaside light, warm tones, cinematic close-up." + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 48, + "type": "LoraLoaderModelOnly", + "pos": [ + 553.9994917632011, + 133.99988695553816 + ], + "size": [ + 443.75, + 145.390625 + ], + "flags": {}, + "order": 8, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 54 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 60 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.75", + "Node name for S&R": "LoraLoaderModelOnly", + "models": [ + { + "name": "pixel_art_style_z_image_turbo.safetensors", + "url": "https://huggingface.co/tarn59/pixel_art_style_lora_z_image_turbo/resolve/main/pixel_art_style_z_image_turbo.safetensors", + "directory": "loras" + } + ], + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65 + }, + "widgets_values": [ + "pixel_art_style_z_image_turbo.safetensors", + 1 + ] + }, + { + "id": 35, + "type": "MarkdownNote", + "pos": [ + -466.00011584916956, + 289.9999302108306 + ], + "size": [ + 587.734375, + 770.859375 + ], + "flags": { + "collapsed": false + }, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Model link", + "properties": {}, + "widgets_values": [ + "## Report workflow issue\n\nIf you found any issues when running this workflow, [report template issue here](https://github.com/Comfy-Org/workflow_templates/issues)\n\n\n## Model links\n\n**text_encoders**\n\n- [qwen_3_4b.safetensors](https://huggingface.co/Comfy-Org/z_image_turbo/resolve/main/split_files/text_encoders/qwen_3_4b.safetensors)\n\n**loras**\n\n- [pixel_art_style_z_image_turbo.safetensors](https://huggingface.co/tarn59/pixel_art_style_lora_z_image_turbo/resolve/main/pixel_art_style_z_image_turbo.safetensors)\n\n**diffusion_models**\n\n- [z_image_turbo_bf16.safetensors](https://huggingface.co/Comfy-Org/z_image_turbo/resolve/main/split_files/diffusion_models/z_image_turbo_bf16.safetensors)\n\n**vae**\n\n- [ae.safetensors](https://huggingface.co/Comfy-Org/z_image_turbo/resolve/main/split_files/vae/ae.safetensors)\n\n\nModel Storage Location\n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ models/\n│ ā”œā”€ā”€ šŸ“‚ text_encoders/\n│ │ └── qwen_3_4b.safetensors\n│ ā”œā”€ā”€ šŸ“‚ loras/\n│ │ └── pixel_art_style_z_image_turbo.safetensors\n│ ā”œā”€ā”€ šŸ“‚ diffusion_models/\n│ │ └── z_image_turbo_bf16.safetensors\n│ └── šŸ“‚ vae/\n│ └── ae.safetensors\n```\n" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 56, + "type": "LanPaint_KSampler", + "pos": [ + 1280.6434468860161, + 480.42471689895115 + ], + "size": [ + 479.765625, + 887.59375 + ], + "flags": {}, + "order": 20, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 62 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 63 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 64 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 71 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 66 + ] + } + ], + "properties": { + "cnr_id": "LanPaint", + "ver": "6109df6591a4cf2bc9d3b113d03f7297fa9248e9", + "Node name for S&R": "LanPaint_KSampler" + }, + "widgets_values": [ + 454543748915702, + "randomize", + 9, + 1, + "euler", + "simple", + 1, + 5, + "Image First", + "LanPaint KSampler. For more info, visit https://github.com/scraed/LanPaint. If you find it useful, please give a star ā­ļø!", + "šŸ–¼ļø Image Inpainting" + ] + }, + { + "id": 57, + "type": "LoadImage", + "pos": [ + 9.292593918969033, + 1110.6054508670231 + ], + "size": [ + 328.65625, + 686.171875 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 74, + 85, + 88 + ] + }, + { + "name": "MASK", + "type": "MASK", + "links": [ + 75, + 89 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.59", + "Node name for S&R": "LoadImage", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + }, + "image": "clipspace/clipspace-painted-masked-1764827669471.png [input]" + }, + "widgets_values": [ + "clipspace/clipspace-painted-masked-1764827669471.png [input]", + "image" + ] + }, + { + "id": 58, + "type": "VAEEncode", + "pos": [ + 1701.3714934284335, + 1667.0261553802961 + ], + "size": [ + 225, + 101.421875 + ], + "flags": {}, + "order": 17, + "mode": 0, + "inputs": [ + { + "name": "pixels", + "type": "IMAGE", + "link": 90 + }, + { + "name": "vae", + "type": "VAE", + "link": 70 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 67 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.59", + "Node name for S&R": "VAEEncode", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 59, + "type": "SetLatentNoiseMask", + "pos": [ + 2169.0494285384316, + 1637.2004308575815 + ], + "size": [ + 225, + 101.421875 + ], + "flags": {}, + "order": 19, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 67 + }, + { + "name": "mask", + "type": "MASK", + "link": 91 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 71 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.59", + "Node name for S&R": "SetLatentNoiseMask", + "ue_properties": { + "widget_ue_connectable": {}, + "version": "7.1", + "input_ue_unconnectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 60, + "type": "LanPaint_MaskBlend", + "pos": [ + 2744.756891034133, + 1245.7532005683747 + ], + "size": [ + 251.84375, + 159.40625 + ], + "flags": {}, + "order": 22, + "mode": 0, + "inputs": [ + { + "name": "image1", + "type": "IMAGE", + "link": 74 + }, + { + "name": "image2", + "type": "IMAGE", + "link": 73 + }, + { + "name": "mask", + "type": "MASK", + "link": 75 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 72 + ] + } + ], + "properties": { + "cnr_id": "LanPaint", + "ver": "4d3d5d17f0105b673df92da5b084cce567c9c712", + "Node name for S&R": "LanPaint_MaskBlend" + }, + "widgets_values": [ + 9 + ] + }, + { + "id": 61, + "type": "SaveImage", + "pos": [ + 3313.9622863771715, + 1191.2159032348995 + ], + "size": [ + 1304.078125, + 1434.015625 + ], + "flags": {}, + "order": 24, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 72 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.23" + }, + "widgets_values": [ + "ComfyUI" + ] + }, + { + "id": 62, + "type": "VAEDecode", + "pos": [ + 909.4390596825519, + 2032.1553145051257 + ], + "size": [ + 251.90625, + 101.421875 + ], + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 76 + }, + { + "name": "vae", + "type": "VAE", + "link": 87 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 84 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.23", + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [] + }, + { + "id": 63, + "type": "ImageScale", + "pos": [ + 1283.837511214967, + 1657.4367336671903 + ], + "size": [ + 323.90625, + 213.375 + ], + "flags": {}, + "order": 15, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 88 + }, + { + "name": "width", + "type": "INT", + "widget": { + "name": "width" + }, + "link": 77 + }, + { + "name": "height", + "type": "INT", + "widget": { + "name": "height" + }, + "link": 78 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 90 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.52", + "Node name for S&R": "ImageScale" + }, + "widgets_values": [ + "area", + 512, + 512, + "center" + ] + }, + { + "id": 64, + "type": "MaskToImage", + "pos": [ + 1280.1054231177059, + 1881.6714778315163 + ], + "size": [ + 225, + 77.421875 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [ + { + "name": "mask", + "type": "MASK", + "link": 89 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 81 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.51", + "Node name for S&R": "MaskToImage" + }, + "widgets_values": [] + }, + { + "id": 65, + "type": "ImageToMask", + "pos": [ + 1274.556170930292, + 2196.94755423526 + ], + "size": [ + 323.90625, + 111.390625 + ], + "flags": {}, + "order": 18, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 79 + } + ], + "outputs": [ + { + "name": "MASK", + "type": "MASK", + "links": [ + 91 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.51", + "Node name for S&R": "ImageToMask" + }, + "widgets_values": [ + "red" + ] + }, + { + "id": 67, + "type": "VAEEncode", + "pos": [ + 927.11123002246, + 1921.0804280162624 + ], + "size": [ + 225, + 101.421875 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [ + { + "name": "pixels", + "type": "IMAGE", + "link": 85 + }, + { + "name": "vae", + "type": "VAE", + "link": 86 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 76 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.50", + "Node name for S&R": "VAEEncode", + "enableTabs": false, + "tabWidth": 65, + "tabXOffset": 10, + "hasSecondTab": false, + "secondTabText": "Send Back", + "secondTabOffset": 80, + "secondTabWidth": 65, + "ue_properties": { + "widget_ue_connectable": {} + } + }, + "widgets_values": [] + }, + { + "id": 68, + "type": "ImageScale", + "pos": [ + 1272.9968314098537, + 1988.7684995304935 + ], + "size": [ + 323.90625, + 213.375 + ], + "flags": {}, + "order": 16, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 81 + }, + { + "name": "width", + "type": "INT", + "widget": { + "name": "width" + }, + "link": 82 + }, + { + "name": "height", + "type": "INT", + "widget": { + "name": "height" + }, + "link": 83 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 79 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.52", + "Node name for S&R": "ImageScale" + }, + "widgets_values": [ + "nearest-exact", + 512, + 512, + "center" + ] + }, + { + "id": 69, + "type": "GetImageSize", + "pos": [ + 924.0300715130902, + 2151.376631256835 + ], + "size": [ + 225, + 190.171875 + ], + "flags": {}, + "order": 14, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 84 + } + ], + "outputs": [ + { + "name": "width", + "type": "INT", + "links": [ + 77, + 82 + ] + }, + { + "name": "height", + "type": "INT", + "links": [ + 78, + 83 + ] + }, + { + "name": "batch_size", + "type": "INT", + "links": null + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.52", + "Node name for S&R": "GetImageSize" + }, + "widgets_values": [] + }, + { + "id": 72, + "type": "Note", + "pos": [ + 1266.1247223180148, + 1534.1298096819087 + ], + "size": [ + 225, + 109.765625 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [], + "outputs": [], + "properties": {}, + "widgets_values": [ + "Reshape image to suit VAE " + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 73, + "type": "PreviewImage", + "pos": [ + 2226.506787053337, + 107.57278250350078 + ], + "size": [ + 225, + 77.421875 + ], + "flags": {}, + "order": 23, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 93 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.76", + "Node name for S&R": "PreviewImage" + }, + "widgets_values": [] + } + ], + "links": [ + [ + 36, + 45, + 0, + 42, + 0, + "CONDITIONING" + ], + [ + 39, + 40, + 0, + 43, + 1, + "VAE" + ], + [ + 44, + 39, + 0, + 45, + 0, + "CLIP" + ], + [ + 54, + 46, + 0, + 48, + 0, + "MODEL" + ], + [ + 60, + 48, + 0, + 47, + 0, + "MODEL" + ], + [ + 62, + 47, + 0, + 56, + 0, + "MODEL" + ], + [ + 63, + 45, + 0, + 56, + 1, + "CONDITIONING" + ], + [ + 64, + 42, + 0, + 56, + 2, + "CONDITIONING" + ], + [ + 66, + 56, + 0, + 43, + 0, + "LATENT" + ], + [ + 67, + 58, + 0, + 59, + 0, + "LATENT" + ], + [ + 70, + 40, + 0, + 58, + 1, + "VAE" + ], + [ + 71, + 59, + 0, + 56, + 3, + "LATENT" + ], + [ + 72, + 60, + 0, + 61, + 0, + "IMAGE" + ], + [ + 73, + 43, + 0, + 60, + 1, + "IMAGE" + ], + [ + 74, + 57, + 0, + 60, + 0, + "IMAGE" + ], + [ + 75, + 57, + 1, + 60, + 2, + "MASK" + ], + [ + 76, + 67, + 0, + 62, + 0, + "LATENT" + ], + [ + 77, + 69, + 0, + 63, + 1, + "INT" + ], + [ + 78, + 69, + 1, + 63, + 2, + "INT" + ], + [ + 79, + 68, + 0, + 65, + 0, + "IMAGE" + ], + [ + 81, + 64, + 0, + 68, + 0, + "IMAGE" + ], + [ + 82, + 69, + 0, + 68, + 1, + "INT" + ], + [ + 83, + 69, + 1, + 68, + 2, + "INT" + ], + [ + 84, + 62, + 0, + 69, + 0, + "IMAGE" + ], + [ + 85, + 57, + 0, + 67, + 0, + "IMAGE" + ], + [ + 86, + 40, + 0, + 67, + 1, + "VAE" + ], + [ + 87, + 40, + 0, + 62, + 1, + "VAE" + ], + [ + 88, + 57, + 0, + 63, + 0, + "IMAGE" + ], + [ + 89, + 57, + 1, + 64, + 0, + "MASK" + ], + [ + 90, + 63, + 0, + 58, + 0, + "IMAGE" + ], + [ + 91, + 65, + 0, + 59, + 1, + "MASK" + ], + [ + 93, + 43, + 0, + 73, + 0, + "IMAGE" + ] + ], + "groups": [ + { + "id": 2, + "title": "Step2 - Image size", + "bounding": [ + 146, + 770, + 348, + 240 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 3, + "title": "Step3 - Prompt", + "bounding": [ + 518, + 254, + 540, + 648 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 4, + "title": "Step1 - Load models", + "bounding": [ + 146, + 254, + 348, + 496.32 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 5, + "title": "Ctrl-B to enable LoRA input", + "bounding": [ + 518, + 50, + 528, + 192 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + } + ], + "config": {}, + "extra": { + "ds": { + "scale": 0.17731177475370102, + "offset": [ + 2305.975484371013, + 1284.903135448736 + ] + }, + "frontendVersion": "1.32.10", + "VHS_latentpreview": false, + "VHS_latentpreviewrate": 0, + "VHS_MetadataImage": true, + "VHS_KeepIntermediate": true, + "workflowRendererVersion": "Vue" + }, + "version": 0.4 +} \ No newline at end of file diff --git a/examples/Example_21/InPainted_Drag_Me_to_ComfyUI.png b/examples/Example_21/InPainted_Drag_Me_to_ComfyUI.png new file mode 100644 index 0000000..a302253 Binary files /dev/null and b/examples/Example_21/InPainted_Drag_Me_to_ComfyUI.png differ diff --git a/examples/Example_21/Masked_Load_Me_in_Loader.png b/examples/Example_21/Masked_Load_Me_in_Loader.png new file mode 100644 index 0000000..a2a82bb Binary files /dev/null and b/examples/Example_21/Masked_Load_Me_in_Loader.png differ diff --git a/examples/Example_21/Original_No_Mask.png b/examples/Example_21/Original_No_Mask.png new file mode 100644 index 0000000..0f4d283 Binary files /dev/null and b/examples/Example_21/Original_No_Mask.png differ