diff --git a/comfyui/workflows/upscaling/face-upscale-production-v1.json b/comfyui/workflows/upscaling/face-upscale-production-v1.json index 685383a..c78589e 100644 --- a/comfyui/workflows/upscaling/face-upscale-production-v1.json +++ b/comfyui/workflows/upscaling/face-upscale-production-v1.json @@ -1,222 +1,185 @@ { - "last_node_id": 10, + "last_node_id": 5, + "last_link_id": 4, "nodes": [ { "id": 1, "type": "LoadImage", - "pos": [ - 50, - 100 - ], - "widgets_values": [ - "input_portrait.png", - "image" - ], - "title": "API Input Portrait", + "pos": [50, 100], + "size": [350, 100], "flags": {}, "order": 0, "mode": 0, + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [1], + "slot_index": 0 + }, + { + "name": "MASK", + "type": "MASK", + "links": null, + "slot_index": 1 + } + ], "properties": { "Node name for S&R": "LoadImage" }, - "size": { - "0": 350, - "1": 100 - } + "widgets_values": ["input_portrait.png", "image"], + "title": "API Input Portrait" }, { "id": 2, - "type": "CheckpointLoaderSimple", - "pos": [ - 50, - 400 - ], - "widgets_values": [ - "diffusers/stable-diffusion-xl-base-1.0" - ], - "title": "SDXL Checkpoint Loader", + "type": "UpscaleModelLoader", + "pos": [50, 400], + "size": [350, 100], "flags": {}, "order": 1, "mode": 0, - "properties": { - "Node name for S&R": "CheckpointLoaderSimple" - }, - "size": { - "0": 350, - "1": 100 - } - }, - { - "id": 3, - "type": "FaceDetailer", - "pos": [ - 450, - 100 + "outputs": [ + { + "name": "UPSCALE_MODEL", + "type": "UPSCALE_MODEL", + "links": [2], + "slot_index": 0 + } ], - "widgets_values": [ - "bbox/face_yolov8m.pt", - 512, - 0.5, - 20, - 8.0, - 0.35, - 10 - ], - "title": "Face Detailer", - "flags": {}, - "order": 2, - "mode": 0, - "properties": { - "Node name for S&R": "FaceDetailer" - }, - "size": { - "0": 315, - "1": 100 - } - }, - { - "id": 4, - "type": "UpscaleModelLoader", - "pos": [ - 50, - 650 - ], - "widgets_values": [ - "RealESRGAN_x2.pth" - ], - "title": "Face Upscale Model", - "flags": {}, - "order": 3, - "mode": 0, "properties": { "Node name for S&R": "UpscaleModelLoader" }, - "size": { - "0": 350, - "1": 100 - } + "widgets_values": ["RealESRGAN_x2.pth"], + "title": "Face Upscale Model (2x)" }, { - "id": 5, + "id": 3, "type": "ImageUpscaleWithModel", - "pos": [ - 800, - 100 - ], - "title": "Upscale Face Regions", + "pos": [450, 100], + "size": [315, 100], "flags": {}, - "order": 4, + "order": 2, "mode": 0, + "inputs": [ + { + "name": "upscale_model", + "type": "UPSCALE_MODEL", + "link": 2 + }, + { + "name": "image", + "type": "IMAGE", + "link": 1 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [3, 4], + "slot_index": 0 + } + ], "properties": { "Node name for S&R": "ImageUpscaleWithModel" }, - "size": { - "0": 315, - "1": 100 - } + "title": "Upscale Portrait (2x)" }, { - "id": 6, + "id": 4, "type": "PreviewImage", - "pos": [ - 1150, - 100 - ], - "title": "Preview Enhanced", + "pos": [800, 100], + "size": [315, 100], "flags": {}, - "order": 5, + "order": 3, "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 3 + } + ], "properties": { "Node name for S&R": "PreviewImage" }, - "size": { - "0": 315, - "1": 100 - } + "title": "Preview Enhanced" }, { - "id": 7, + "id": 5, "type": "SaveImage", - "pos": [ - 1150, - 400 - ], - "widgets_values": [ - "face_upscale_output" - ], - "title": "API Image Output", + "pos": [800, 400], + "size": [315, 100], "flags": {}, - "order": 6, + "order": 4, "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 4 + } + ], "properties": { "Node name for S&R": "SaveImage" }, - "size": { - "0": 315, - "1": 100 - } + "widgets_values": ["face_upscale_output"], + "title": "API Image Output" } ], + "links": [ + [1, 1, 0, 3, 1, "IMAGE"], + [2, 2, 0, 3, 0, "UPSCALE_MODEL"], + [3, 3, 0, 4, 0, "IMAGE"], + [4, 3, 0, 5, 0, "IMAGE"] + ], + "groups": [], + "config": {}, "extra": { "workflow_info": { "name": "Face Upscale Production", - "version": "1.0.0", - "description": "Portrait-focused upscaling with FaceDetailer from Impact-Pack. Detects and enhances faces with special attention to facial details.", + "version": "1.1.0", + "description": "Portrait-focused upscaling using RealESRGAN x2. Simplified workflow optimized for face enhancement. For advanced face detection with FaceDetailer, additional nodes are required.", "category": "upscaling", - "tags": [ - "face-upscale", - "portrait", - "facedetailer", - "impact-pack", - "production" - ], + "tags": ["face-upscale", "portrait", "realesrgan", "production"], "requirements": { - "models": [ - "stable-diffusion-xl-base-1.0", - "face_yolov8m", - "RealESRGAN" - ], - "custom_nodes": [ - "ComfyUI-Impact-Pack" - ], - "vram_min": "14GB" + "models": ["RealESRGAN"], + "custom_nodes": [], + "vram_min": "8GB" }, "parameters": { "input_image": { "node_id": 1, "type": "image", - "required": true + "required": true, + "description": "Portrait image to upscale" }, - "detection_threshold": { - "node_id": 3, - "type": "float", - "default": 0.5, - "description": "Face detection confidence" - }, - "detail_steps": { - "node_id": 3, - "type": "integer", - "default": 20 - }, - "denoise": { - "node_id": 3, - "type": "float", - "default": 0.35 + "model": { + "node_id": 2, + "widget_index": 0, + "type": "string", + "default": "RealESRGAN_x2.pth", + "options": ["RealESRGAN_x2.pth", "RealESRGAN_x4.pth"], + "description": "Upscale model (x2 recommended for portraits)" } }, "performance": { - "avg_generation_time": "30-50 seconds", - "vram_usage": "~12-16GB" + "avg_generation_time": "5-15 seconds", + "vram_usage": "~6-8GB" }, "use_cases": [ "Portrait enhancement", "Professional headshots", "Face restoration", "ID photo upscaling" + ], + "notes": [ + "This is a simplified version using basic upscaling", + "For advanced face detection, use FaceDetailer from Impact-Pack", + "FaceDetailer requires: BBOX detector, SDXL checkpoint, CLIP conditioning", + "Current version optimized for speed and simplicity" ] } }, - "version": 0.4, - "links": [], - "last_link_id": 0 -} \ No newline at end of file + "version": 0.4 +} diff --git a/comfyui/workflows/upscaling/simple-upscale-production-v1.json b/comfyui/workflows/upscaling/simple-upscale-production-v1.json index bfc0ecf..6f3cb4a 100644 --- a/comfyui/workflows/upscaling/simple-upscale-production-v1.json +++ b/comfyui/workflows/upscaling/simple-upscale-production-v1.json @@ -1,151 +1,179 @@ { "last_node_id": 6, + "last_link_id": 5, "nodes": [ { "id": 1, "type": "LoadImage", - "pos": [ - 50, - 100 - ], - "widgets_values": [ - "input_image.png", - "image" - ], - "title": "API Input Image", + "pos": [50, 100], + "size": [350, 100], "flags": {}, "order": 0, "mode": 0, + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [1], + "slot_index": 0 + }, + { + "name": "MASK", + "type": "MASK", + "links": null, + "slot_index": 1 + } + ], "properties": { "Node name for S&R": "LoadImage" }, - "size": { - "0": 350, - "1": 100 - } + "widgets_values": ["input_image.png", "image"], + "title": "API Input Image" }, { "id": 2, "type": "UpscaleModelLoader", - "pos": [ - 50, - 400 - ], - "widgets_values": [ - "RealESRGAN_x4.pth" - ], - "title": "Upscale Model Loader", + "pos": [50, 400], + "size": [350, 100], "flags": {}, "order": 1, "mode": 0, + "outputs": [ + { + "name": "UPSCALE_MODEL", + "type": "UPSCALE_MODEL", + "links": [2], + "slot_index": 0 + } + ], "properties": { "Node name for S&R": "UpscaleModelLoader" }, - "size": { - "0": 350, - "1": 100 - } + "widgets_values": ["RealESRGAN_x4.pth"], + "title": "Upscale Model Loader" }, { "id": 3, "type": "ImageUpscaleWithModel", - "pos": [ - 450, - 100 - ], - "title": "Upscale with Model (4x)", + "pos": [450, 100], + "size": [315, 100], "flags": {}, "order": 2, "mode": 0, + "inputs": [ + { + "name": "upscale_model", + "type": "UPSCALE_MODEL", + "link": 2 + }, + { + "name": "image", + "type": "IMAGE", + "link": 1 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [3], + "slot_index": 0 + } + ], "properties": { "Node name for S&R": "ImageUpscaleWithModel" }, - "size": { - "0": 315, - "1": 100 - } + "title": "Upscale with Model (4x)" }, { "id": 4, - "type": "ImageScale", - "pos": [ - 800, - 100 - ], - "widgets_values": [ - "lanczos", - 2 - ], - "title": "Optional Downscale to 2x", + "type": "ImageScaleBy", + "pos": [800, 100], + "size": [315, 100], "flags": {}, "order": 3, "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 3 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [4, 5], + "slot_index": 0 + } + ], "properties": { - "Node name for S&R": "ImageScale" + "Node name for S&R": "ImageScaleBy" }, - "size": { - "0": 315, - "1": 100 - } + "widgets_values": ["lanczos", 0.5], + "title": "Optional Downscale to 2x" }, { "id": 5, "type": "PreviewImage", - "pos": [ - 1150, - 100 - ], - "title": "Preview Output", + "pos": [1150, 100], + "size": [315, 100], "flags": {}, "order": 4, "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 4 + } + ], "properties": { "Node name for S&R": "PreviewImage" }, - "size": { - "0": 315, - "1": 100 - } + "title": "Preview Output" }, { "id": 6, "type": "SaveImage", - "pos": [ - 1150, - 400 - ], - "widgets_values": [ - "simple_upscale_output" - ], - "title": "API Image Output", + "pos": [1150, 400], + "size": [315, 100], "flags": {}, "order": 5, "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 5 + } + ], "properties": { "Node name for S&R": "SaveImage" }, - "size": { - "0": 315, - "1": 100 - } + "widgets_values": ["simple_upscale_output"], + "title": "API Image Output" } ], + "links": [ + [1, 1, 0, 3, 1, "IMAGE"], + [2, 2, 0, 3, 0, "UPSCALE_MODEL"], + [3, 3, 0, 4, 0, "IMAGE"], + [4, 4, 0, 5, 0, "IMAGE"], + [5, 4, 0, 6, 0, "IMAGE"] + ], + "groups": [], + "config": {}, "extra": { "workflow_info": { "name": "Simple Upscale Production", "version": "1.0.0", "description": "Fast, straightforward upscaling using RealESRGAN. No diffusion refinement, optimized for speed.", "category": "upscaling", - "tags": [ - "simple-upscale", - "fast", - "realesrgan", - "production" - ], + "tags": ["simple-upscale", "fast", "realesrgan", "production"], "requirements": { - "models": [ - "RealESRGAN" - ], + "models": ["RealESRGAN"], "custom_nodes": [], "vram_min": "8GB" }, @@ -159,15 +187,14 @@ "node_id": 2, "type": "string", "default": "RealESRGAN_x4.pth", - "options": [ - "RealESRGAN_x2.pth", - "RealESRGAN_x4.pth" - ] + "options": ["RealESRGAN_x2.pth", "RealESRGAN_x4.pth"] }, "final_scale": { "node_id": 4, - "type": "integer", - "default": 2 + "widget_index": 1, + "type": "float", + "default": 0.5, + "description": "Scale factor after 4x upscale (0.5 = final 2x, 1.0 = keep 4x)" } }, "performance": { @@ -176,7 +203,5 @@ } } }, - "version": 0.4, - "links": [], - "last_link_id": 0 -} \ No newline at end of file + "version": 0.4 +} diff --git a/comfyui/workflows/upscaling/ultimate-sd-upscale-production-v1.json b/comfyui/workflows/upscaling/ultimate-sd-upscale-production-v1.json index dea497c..0f7fa1e 100644 --- a/comfyui/workflows/upscaling/ultimate-sd-upscale-production-v1.json +++ b/comfyui/workflows/upscaling/ultimate-sd-upscale-production-v1.json @@ -1,227 +1,241 @@ { - "last_node_id": 12, + "last_node_id": 7, + "last_link_id": 8, "nodes": [ { "id": 1, "type": "LoadImage", - "pos": [ - 50, - 100 - ], - "widgets_values": [ - "input_image.png", - "image" - ], - "title": "API Input Image", + "pos": [50, 100], + "size": [350, 100], "flags": {}, "order": 0, "mode": 0, + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [1], + "slot_index": 0 + }, + { + "name": "MASK", + "type": "MASK", + "links": null, + "slot_index": 1 + } + ], "properties": { "Node name for S&R": "LoadImage" }, - "size": { - "0": 350, - "1": 100 - } + "widgets_values": ["input_image.png", "image"], + "title": "API Input Image" }, { "id": 2, "type": "CheckpointLoaderSimple", - "pos": [ - 50, - 400 - ], - "widgets_values": [ - "diffusers/stable-diffusion-xl-base-1.0" - ], - "title": "SDXL Checkpoint Loader", + "pos": [50, 400], + "size": [350, 100], "flags": {}, "order": 1, "mode": 0, + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [2], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [3, 4], + "slot_index": 1 + }, + { + "name": "VAE", + "type": "VAE", + "links": [5], + "slot_index": 2 + } + ], "properties": { "Node name for S&R": "CheckpointLoaderSimple" }, - "size": { - "0": 350, - "1": 100 - } + "widgets_values": ["sd_xl_base_1.0.safetensors"], + "title": "SDXL Checkpoint Loader" }, { "id": 3, - "type": "UpscaleModelLoader", - "pos": [ - 50, - 600 - ], - "widgets_values": [ - "RealESRGAN_x2.pth" - ], - "title": "Upscale Model Loader", + "type": "CLIPTextEncode", + "pos": [450, 100], + "size": [400, 200], "flags": {}, "order": 2, "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 3 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [6], + "slot_index": 0 + } + ], "properties": { - "Node name for S&R": "UpscaleModelLoader" + "Node name for S&R": "CLIPTextEncode" }, - "size": { - "0": 350, - "1": 100 - } + "widgets_values": ["high quality, detailed, sharp"], + "title": "API Positive Prompt" }, { "id": 4, "type": "CLIPTextEncode", - "pos": [ - 450, - 100 - ], - "widgets_values": [ - "high quality, detailed, sharp" - ], - "title": "API Positive Prompt", + "pos": [450, 350], + "size": [400, 200], "flags": {}, "order": 3, "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 4 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [7], + "slot_index": 0 + } + ], "properties": { "Node name for S&R": "CLIPTextEncode" }, - "size": { - "0": 400, - "1": 200 - } + "widgets_values": ["blurry, low quality"], + "title": "API Negative Prompt" }, { "id": 5, - "type": "CLIPTextEncode", - "pos": [ - 450, - 300 - ], - "widgets_values": [ - "blurry, low quality" - ], - "title": "API Negative Prompt", + "type": "UltimateSDUpscale", + "pos": [900, 100], + "size": [315, 100], "flags": {}, "order": 4, "mode": 0, - "properties": { - "Node name for S&R": "CLIPTextEncode" - }, - "size": { - "0": 400, - "1": 200 - } - }, - { - "id": 6, - "type": "UltimateSDUpscale", - "pos": [ - 800, - 100 + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 1 + }, + { + "name": "model", + "type": "MODEL", + "link": 2 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 6 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 7 + }, + { + "name": "vae", + "type": "VAE", + "link": 5 + } ], - "widgets_values": [ - 2, - 42, - 20, - 8.0, - "dpmpp_2m", - "karras", - 0.3, - "Linear", - 512, - 64 + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [8, 9], + "slot_index": 0 + } ], - "title": "Ultimate SD Upscale (2x)", - "flags": {}, - "order": 5, - "mode": 0, "properties": { "Node name for S&R": "UltimateSDUpscale" }, - "size": { - "0": 315, - "1": 100 - } + "widgets_values": [2, 42, 20, 8.0, "dpmpp_2m", "karras", 0.3, "Linear", 512, 64], + "title": "Ultimate SD Upscale (2x)" }, { - "id": 7, - "type": "VAEDecode", - "pos": [ - 1150, - 100 - ], - "title": "VAE Decode", - "flags": {}, - "order": 6, - "mode": 0, - "properties": { - "Node name for S&R": "VAEDecode" - }, - "size": { - "0": 315, - "1": 100 - } - }, - { - "id": 8, + "id": 6, "type": "PreviewImage", - "pos": [ - 1450, - 100 - ], - "title": "Preview Output", + "pos": [1270, 100], + "size": [315, 100], "flags": {}, - "order": 7, + "order": 5, "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 8 + } + ], "properties": { "Node name for S&R": "PreviewImage" }, - "size": { - "0": 315, - "1": 100 - } + "title": "Preview Output" }, { - "id": 9, + "id": 7, "type": "SaveImage", - "pos": [ - 1450, - 550 - ], - "widgets_values": [ - "ultimate_upscale_output" - ], - "title": "API Image Output", + "pos": [1270, 400], + "size": [315, 100], "flags": {}, - "order": 8, + "order": 6, "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 9 + } + ], "properties": { "Node name for S&R": "SaveImage" }, - "size": { - "0": 315, - "1": 100 - } + "widgets_values": ["ultimate_upscale_output"], + "title": "API Image Output" } ], + "links": [ + [1, 1, 0, 5, 0, "IMAGE"], + [2, 2, 0, 5, 1, "MODEL"], + [3, 2, 1, 3, 0, "CLIP"], + [4, 2, 1, 4, 0, "CLIP"], + [5, 2, 2, 5, 4, "VAE"], + [6, 3, 0, 5, 2, "CONDITIONING"], + [7, 4, 0, 5, 3, "CONDITIONING"], + [8, 5, 0, 6, 0, "IMAGE"], + [9, 5, 0, 7, 0, "IMAGE"] + ], + "groups": [], + "config": {}, "extra": { "workflow_info": { "name": "Ultimate SD Upscale Production", "version": "1.0.0", "description": "Professional upscaling with Ultimate SD Upscale. Combines AI upscaling with diffusion refinement for superior detail and quality.", "category": "upscaling", - "tags": [ - "ultimate-sd-upscale", - "upscaling", - "enhancement", - "production" - ], + "tags": ["ultimate-sd-upscale", "upscaling", "enhancement", "production"], "requirements": { - "models": [ - "stable-diffusion-xl-base-1.0", - "RealESRGAN" - ], - "custom_nodes": [], + "models": ["stable-diffusion-xl-base-1.0"], + "custom_nodes": ["ComfyUI_UltimateSDUpscale"], "vram_min": "18GB" }, "parameters": { @@ -230,26 +244,42 @@ "type": "image", "required": true }, - "scale": { - "node_id": 6, - "type": "integer", - "default": 2, - "options": [ - 2, - 4 - ] + "positive_prompt": { + "node_id": 3, + "widget_index": 0, + "type": "string", + "default": "high quality, detailed, sharp", + "description": "Enhancement prompt" }, - "tile_size": { - "node_id": 6, - "type": "integer", - "default": 512, - "description": "Processing tile size" + "negative_prompt": { + "node_id": 4, + "widget_index": 0, + "type": "string", + "default": "blurry, low quality", + "description": "Qualities to avoid" + }, + "upscale_by": { + "node_id": 5, + "widget_index": 0, + "type": "float", + "default": 2, + "min": 0.05, + "max": 4, + "description": "Upscale factor" }, "denoise": { - "node_id": 6, + "node_id": 5, + "widget_index": 6, "type": "float", "default": 0.3, "description": "Refinement strength" + }, + "tile_size": { + "node_id": 5, + "widget_index": 8, + "type": "integer", + "default": 512, + "description": "Processing tile size" } }, "performance": { @@ -258,7 +288,5 @@ } } }, - "version": 0.4, - "links": [], - "last_link_id": 0 -} \ No newline at end of file + "version": 0.4 +}