{ "last_node_id": 5, "last_link_id": 4, "nodes": [ { "id": 1, "type": "LoadImage", "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" }, "widgets_values": ["input_portrait.png", "image"], "title": "API Input Portrait" }, { "id": 2, "type": "UpscaleModelLoader", "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" }, "widgets_values": ["RealESRGAN_x2.pth"], "title": "Face Upscale Model (2x)" }, { "id": 3, "type": "ImageUpscaleWithModel", "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, 4], "slot_index": 0 } ], "properties": { "Node name for S&R": "ImageUpscaleWithModel" }, "title": "Upscale Portrait (2x)" }, { "id": 4, "type": "PreviewImage", "pos": [800, 100], "size": [315, 100], "flags": {}, "order": 3, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 3 } ], "properties": { "Node name for S&R": "PreviewImage" }, "title": "Preview Enhanced" }, { "id": 5, "type": "SaveImage", "pos": [800, 400], "size": [315, 100], "flags": {}, "order": 4, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 4 } ], "properties": { "Node name for S&R": "SaveImage" }, "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.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", "realesrgan", "production"], "requirements": { "models": ["RealESRGAN"], "custom_nodes": [], "vram_min": "8GB" }, "parameters": { "input_image": { "node_id": 1, "type": "image", "required": true, "description": "Portrait image to upscale" }, "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": "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 }