{ "38": { "inputs": { "clip_name": "qwen_2.5_vl_7b_fp8_scaled.safetensors", "type": "qwen_image", "device": "default" }, "class_type": "CLIPLoader", "_meta": { "title": "CLIP 로드" } }, "39": { "inputs": { "vae_name": "qwen_image_vae.safetensors" }, "class_type": "VAELoader", "_meta": { "title": "VAE 로드" } }, "66": { "inputs": { "shift": 3, "sampling": "flow", "model": [ "218", 0 ] }, "class_type": "ModelSamplingAuraFlow", "_meta": { "title": "모델 샘플링 (AuraFlow)" } }, "75": { "inputs": { "strength": 1, "pre_cfg": false, "model": [ "66", 0 ] }, "class_type": "CFGNorm", "_meta": { "title": "CFGNorm" } }, "88": { "inputs": { "pixels": [ "340", 1 ], "vae": [ "39", 0 ] }, "class_type": "VAEEncode", "_meta": { "title": "VAE 인코드" } }, "110": { "inputs": { "prompt": "(side-view:1.5), (looking away:1.5), (head turned:1.2)", "clip": [ "38", 0 ], "vae": [ "39", 0 ], "image1": [ "277", 0 ], "image2": [ "340", 1 ], "image3": [ "129", 0 ] }, "class_type": "TextEncodeQwenImageEditPlus", "_meta": { "title": "TextEncodeQwenImageEditPlus(negative)" } }, "111": { "inputs": { "prompt": "Replace the head of the man in the first image with the head of the man in the second image: the same face and the same hairstyle as the second image, black hair with a center part and long wispy curtain bangs falling over the forehead and framing both sides of the face, straight slightly tousled strands. Keep the body, clothes, pose, head direction, lighting and background of the first image. Seamless blend, natural lighting, consistent skin tone.", "clip": [ "38", 0 ], "vae": [ "39", 0 ], "image1": [ "277", 0 ], "image2": [ "340", 1 ], "image3": [ "129", 0 ] }, "class_type": "TextEncodeQwenImageEditPlus", "_meta": { "title": "텍스트 인코드 Qwen Image Edit Plus" } }, "129": { "inputs": { "detect_hand": "enable", "detect_body": "enable", "detect_face": "enable", "resolution": 1024, "bbox_detector": "yolox_l.onnx", "pose_estimator": "dw-ll_ucoco_384_bs5.torchscript.pt", "scale_stick_for_xinsr_cn": "disable", "image": [ "183", 0 ] }, "class_type": "DWPreprocessor", "_meta": { "title": "DWPose Estimator" } }, "172": { "inputs": { "width": [ "183", 1 ], "height": [ "183", 2 ], "keep_proportions": true, "upscale_method": "nearest-exact", "crop": "disabled", "mask": [ "177", 2 ] }, "class_type": "ResizeMask", "_meta": { "title": "Resize Mask" } }, "177": { "inputs": { "downscale_algorithm": "lanczos", "upscale_algorithm": "lanczos", "preresize": false, "preresize_mode": "ensure minimum resolution", "preresize_min_width": 1024, "preresize_min_height": 1024, "preresize_max_width": 16384, "preresize_max_height": 16384, "mask_fill_holes": true, "mask_expand_pixels": 20, "mask_invert": false, "mask_blend_pixels": 5, "mask_hipass_filter": 0.1, "extend_for_outpainting": true, "extend_up_factor": 1, "extend_down_factor": 1, "extend_left_factor": 1, "extend_right_factor": 1, "context_from_mask_extend_factor": 2.5, "output_resize_to_target_size": true, "output_target_width": 1024, "output_target_height": 1024, "output_padding": "128", "image": [ "786", 0 ], "mask": [ "809", 0 ] }, "class_type": "InpaintCropImproved", "_meta": { "title": "✂️ Inpaint Crop (Improved)" } }, "183": { "inputs": { "width": 1024, "height": 1024, "interpolation": "lanczos", "method": "keep proportion", "condition": "downscale if bigger", "multiple_of": 0, "image": [ "177", 1 ] }, "class_type": "ImageResize+", "_meta": { "title": "🔧 Image Resize" } }, "218": { "inputs": { "lora_name": "Qwen-Image-Edit-2509-Lightning-8steps-V1.0-bf16.safetensors", "strength_model": 1, "model": [ "652", 0 ] }, "class_type": "LoraLoaderModelOnly", "_meta": { "title": "LoRA 로드 (모델 전용)" } }, "247": { "inputs": { "fill": "telea", "falloff": 0, "image": [ "183", 0 ], "mask": [ "172", 0 ] }, "class_type": "INPAINT_MaskedFill", "_meta": { "title": "Fill Masked Area" } }, "277": { "inputs": { "blur": 200, "falloff": 0, "image": [ "247", 0 ], "mask": [ "172", 0 ] }, "class_type": "INPAINT_MaskedBlur", "_meta": { "title": "Blur Masked Area" } }, "316": { "inputs": { "amount": 10, "device": "auto", "mask": [ "909", 0 ] }, "class_type": "MaskBlur+", "_meta": { "title": "🔧 Mask Blur" } }, "329": { "inputs": { "prompt": "place this character into the image", "clip": [ "38", 0 ], "vae": [ "39", 0 ], "image1": [ "183", 0 ], "image2": [ "340", 1 ], "image3": [ "129", 0 ] }, "class_type": "TextEncodeQwenImageEditPlus", "_meta": { "title": "텍스트 인코드 Qwen Image Edit Plus" } }, "340": { "inputs": { "downscale_algorithm": "lanczos", "upscale_algorithm": "lanczos", "preresize": false, "preresize_mode": "ensure minimum resolution", "preresize_min_width": 1024, "preresize_min_height": 1024, "preresize_max_width": 16384, "preresize_max_height": 16384, "mask_fill_holes": true, "mask_expand_pixels": 0, "mask_invert": false, "mask_blend_pixels": 0, "mask_hipass_filter": 0.1, "extend_for_outpainting": false, "extend_up_factor": 1, "extend_down_factor": 1, "extend_left_factor": 1, "extend_right_factor": 1, "context_from_mask_extend_factor": 1, "output_resize_to_target_size": true, "output_target_width": 1024, "output_target_height": 1024, "output_padding": "32", "image": [ "787", 0 ], "mask": [ "812", 0 ] }, "class_type": "InpaintCropImproved", "_meta": { "title": "✂️ Inpaint Crop (Improved)" } }, "385": { "inputs": { "noise_mask": true, "positive": [ "111", 0 ], "negative": [ "110", 0 ], "vae": [ "39", 0 ], "pixels": [ "183", 0 ], "mask": [ "316", 0 ] }, "class_type": "InpaintModelConditioning", "_meta": { "title": "인페인팅 모델 조건 설정" } }, "387": { "inputs": { "strength": 1, "model": [ "75", 0 ] }, "class_type": "DifferentialDiffusion", "_meta": { "title": "차등 확산" } }, "396": { "inputs": { "conditioning": [ "329", 0 ], "latent": [ "88", 0 ] }, "class_type": "ReferenceLatent", "_meta": { "title": "참조 잠재" } }, "494": { "inputs": { "samples": [ "781", 0 ], "vae": [ "39", 0 ] }, "class_type": "VAEDecode", "_meta": { "title": "VAE 디코드" } }, "518": { "inputs": { "stitcher": [ "177", 0 ], "inpainted_image": [ "494", 0 ] }, "class_type": "InpaintStitchImproved", "_meta": { "title": "✂️ Inpaint Stitch (Improved)" } }, "645": { "inputs": { "image": "3377158fc21b2b671e8917420d5dfe0245074b3a35bac6d197a30414b6b40ddf.jpeg" }, "class_type": "LoadImage", "_meta": { "title": "Main Image" } }, "646": { "inputs": { "image": "2b9078b596527954e2b9713c8eff69cb1fc41cf9a36791f7fbe154b128660157.png" }, "class_type": "LoadImage", "_meta": { "title": "Reference Face Image" } }, "652": { "inputs": { "unet_name": "qwen_image_edit_2509_fp8_e4m3fn.safetensors", "weight_dtype": "fp8_e4m3fn" }, "class_type": "UNETLoader", "_meta": { "title": "확산 모델 로드" } }, "716": { "inputs": { "width": [ "772", 0 ], "height": [ "772", 1 ], "interpolation": "lanczos", "method": "keep proportion", "condition": "always", "multiple_of": 0, "image": [ "518", 0 ] }, "class_type": "ImageResize+", "_meta": { "title": "🔧 Image Resize" } }, "760": { "inputs": { "filename_prefix": "ComfyUI", "images": [ "716", 0 ] }, "class_type": "SaveImage", "_meta": { "title": "Image Save(Output)" } }, "772": { "inputs": { "image": [ "645", 0 ] }, "class_type": "Get Image Size", "_meta": { "title": "Get Image Size" } }, "781": { "inputs": { "seed": 235289200744936, "steps": 8, "cfg": 1, "sampler_name": "euler", "scheduler": "simple", "denoise": 1, "model": [ "387", 0 ], "positive": [ "385", 0 ], "negative": [ "385", 1 ], "latent_image": [ "385", 2 ] }, "class_type": "KSampler", "_meta": { "title": "KSampler (denoise=1: 픽셀별 강도는 Strength map 이 정함)" } }, "786": { "inputs": { "upscale_method": "lanczos", "largest_size": 2000, "image": [ "645", 0 ] }, "class_type": "ImageScaleToMaxDimension", "_meta": { "title": "Scale Image to Max Dimension (2000px)" } }, "787": { "inputs": { "upscale_method": "lanczos", "largest_size": 1000, "image": [ "646", 0 ] }, "class_type": "ImageScaleToMaxDimension", "_meta": { "title": "Scale Image to Max Dimension (1000px)" } }, "800": { "inputs": { "ckpt_name": "sam3.1_multiplex_fp16.safetensors" }, "class_type": "CheckpointLoaderSimple", "_meta": { "title": "Load SAM3 Model" } }, "801": { "inputs": { "text": "face:1, head:1, hair:1", "clip": [ "800", 1 ] }, "class_type": "CLIPTextEncode", "_meta": { "title": "SAM3 Prompt (Main Image)" } }, "802": { "inputs": { "text": "face:1, head:1, hair:1", "clip": [ "800", 1 ] }, "class_type": "CLIPTextEncode", "_meta": { "title": "SAM3 Prompt (Reference Face)" } }, "803": { "inputs": { "threshold": 0.3, "refine_iterations": 2, "individual_masks": false, "model": [ "800", 0 ], "image": [ "786", 0 ], "conditioning": [ "801", 0 ] }, "class_type": "SAM3_Detect", "_meta": { "title": "Auto Mask - Main Image (head+hair)" } }, "804": { "inputs": { "threshold": 0.3, "refine_iterations": 2, "individual_masks": false, "model": [ "800", 0 ], "image": [ "787", 0 ], "conditioning": [ "802", 0 ] }, "class_type": "SAM3_Detect", "_meta": { "title": "Auto Mask - Reference Face (head+hair)" } }, "805": { "inputs": { "mask": [ "809", 0 ] }, "class_type": "MaskPreview", "_meta": { "title": "Mask Preview (Main)" } }, "806": { "inputs": { "mask": [ "812", 0 ] }, "class_type": "MaskPreview", "_meta": { "title": "Mask Preview (Reference)" } }, "807": { "inputs": { "expand": 50, "tapered_corners": true, "mask": [ "803", 0 ] }, "class_type": "GrowMask", "_meta": { "title": "Main: close gaps (+50)" } }, "808": { "inputs": { "masks": [ "807", 0 ] }, "class_type": "Mask Fill Holes", "_meta": { "title": "Main: fill holes" } }, "809": { "inputs": { "expand": -50, "tapered_corners": true, "mask": [ "808", 0 ] }, "class_type": "GrowMask", "_meta": { "title": "Main: restore edge (-50)" } }, "810": { "inputs": { "expand": 30, "tapered_corners": true, "mask": [ "804", 0 ] }, "class_type": "GrowMask", "_meta": { "title": "Ref: close gaps (+30)" } }, "811": { "inputs": { "masks": [ "810", 0 ] }, "class_type": "Mask Fill Holes", "_meta": { "title": "Ref: fill holes" } }, "812": { "inputs": { "expand": -30, "tapered_corners": true, "mask": [ "811", 0 ] }, "class_type": "GrowMask", "_meta": { "title": "Ref: restore edge (-30)" } }, "901": { "inputs": { "text": "hairstyle:1, black hair:1, hair:1", "clip": [ "800", 1 ] }, "class_type": "CLIPTextEncode", "_meta": { "title": "SAM3 Prompt (Hair region)" } }, "902": { "inputs": { "threshold": 0.1, "refine_iterations": 2, "individual_masks": false, "model": [ "800", 0 ], "image": [ "183", 0 ], "conditioning": [ "901", 0 ] }, "class_type": "SAM3_Detect", "_meta": { "title": "Auto Mask - Hair (crop)" } }, "936": { "inputs": { "text": "face:1, neck:1", "clip": [ "800", 1 ] }, "class_type": "CLIPTextEncode", "_meta": { "title": "SAM3 Prompt (Face + Neck)" } }, "937": { "inputs": { "threshold": 0.3, "refine_iterations": 2, "individual_masks": false, "model": [ "800", 0 ], "image": [ "183", 0 ], "conditioning": [ "936", 0 ] }, "class_type": "SAM3_Detect", "_meta": { "title": "Auto Mask - Face+Neck (crop)" } }, "938": { "inputs": { "expand": 12, "tapered_corners": true, "mask": [ "937", 0 ] }, "class_type": "GrowMask", "_meta": { "title": "Face+Neck: margin (+12)" } }, "905": { "inputs": { "x": 0, "y": 0, "operation": "multiply", "destination": [ "902", 0 ], "source": [ "172", 0 ] }, "class_type": "MaskComposite", "_meta": { "title": "Hair ∩ Head" } }, "939": { "inputs": { "x": 0, "y": 0, "operation": "subtract", "destination": [ "905", 0 ], "source": [ "938", 0 ] }, "class_type": "MaskComposite", "_meta": { "title": "Hair only (Hair − Face/Neck)" } }, "903": { "inputs": { "value": 0.4, "width": 1024, "height": 1024 }, "class_type": "SolidMask", "_meta": { "title": "얼굴 강도 (Face strength)" } }, "906": { "inputs": { "value": 0.4, "width": 1024, "height": 1024 }, "class_type": "SolidMask", "_meta": { "title": "머리 강도 (Hair strength)" } }, "904": { "inputs": { "x": 0, "y": 0, "operation": "multiply", "destination": [ "903", 0 ], "source": [ "172", 0 ] }, "class_type": "MaskComposite", "_meta": { "title": "Face strength × Head" } }, "907": { "inputs": { "x": 0, "y": 0, "operation": "multiply", "destination": [ "906", 0 ], "source": [ "939", 0 ] }, "class_type": "MaskComposite", "_meta": { "title": "Hair strength × Hair" } }, "908": { "inputs": { "x": 0, "y": 0, "operation": "subtract", "destination": [ "904", 0 ], "source": [ "939", 0 ] }, "class_type": "MaskComposite", "_meta": { "title": "Face part (Head − Hair)" } }, "909": { "inputs": { "x": 0, "y": 0, "operation": "add", "destination": [ "908", 0 ], "source": [ "907", 0 ] }, "class_type": "MaskComposite", "_meta": { "title": "Strength map (face + hair)" } } }