代码改动: - comfyui.py: run() 新增 unet_name 参数,提交前自动改写模型节点 (.gguf→UnetLoaderGGUF, .safetensors→UNETLoader),并按模型自动同步 文本编码器(4b→qwen_3_4b, 9b→qwen_3_8b),避免切换时维度不匹配 - redraw.py: run_redraw() 透传 unet_name - service.py: generate_grow_results_swap/generate_grow_results 支持 redraw_max_side(分辨率参数化) 和 unet_name 透传 - app.py: 接口2 新增 flux_model/redraw_max_side 两个 Form 参数(男女路径都加) - test_interface2.html: 新增 Flux模型/压图长边 下拉选择器 - add_hair.json/0716add-hair-api.json: 工作流默认模型改为 9b 测试脚本: - benchmark_matrix.py: 4模型×3分辨率×3图×3次 矩阵测试 - benchmark_hairstyle.py: 3图×5发型×10组合 发型对比测试 - benchmark_report.py/benchmark_hairstyle_report.py: HTML报告生成 清理: - .gitignore: 排除 benchmark_out/、报告HTML、gateway.log、*.bak.* - 移除 gateway.log 的 git 跟踪
450 lines
7.3 KiB
JSON
450 lines
7.3 KiB
JSON
{
|
||
"1": {
|
||
"inputs": {
|
||
"scheduler": "simple",
|
||
"steps": 4,
|
||
"denoise": 1,
|
||
"model": [
|
||
"2",
|
||
0
|
||
]
|
||
},
|
||
"class_type": "BasicScheduler",
|
||
"_meta": {
|
||
"title": "基本调度器"
|
||
}
|
||
},
|
||
"2": {
|
||
"inputs": {
|
||
"max_shift": 1.15,
|
||
"base_shift": 0.5,
|
||
"width": [
|
||
"14",
|
||
0
|
||
],
|
||
"height": [
|
||
"14",
|
||
1
|
||
],
|
||
"model": [
|
||
"16",
|
||
0
|
||
]
|
||
},
|
||
"class_type": "ModelSamplingFlux",
|
||
"_meta": {
|
||
"title": "采样算法(Flux)"
|
||
}
|
||
},
|
||
"3": {
|
||
"inputs": {
|
||
"vae_name": "flux2-vae.safetensors"
|
||
},
|
||
"class_type": "VAELoader",
|
||
"_meta": {
|
||
"title": "加载VAE"
|
||
}
|
||
},
|
||
"5": {
|
||
"inputs": {
|
||
"conditioning": [
|
||
"19",
|
||
0
|
||
],
|
||
"latent": [
|
||
"13",
|
||
0
|
||
]
|
||
},
|
||
"class_type": "ReferenceLatent",
|
||
"_meta": {
|
||
"title": "参考Latent"
|
||
}
|
||
},
|
||
"6": {
|
||
"inputs": {
|
||
"noise_seed": 217742615722421
|
||
},
|
||
"class_type": "RandomNoise",
|
||
"_meta": {
|
||
"title": "随机噪波"
|
||
}
|
||
},
|
||
"7": {
|
||
"inputs": {
|
||
"width": [
|
||
"14",
|
||
0
|
||
],
|
||
"height": [
|
||
"14",
|
||
1
|
||
],
|
||
"batch_size": 1
|
||
},
|
||
"class_type": "EmptySD3LatentImage",
|
||
"_meta": {
|
||
"title": "空Latent图像(SD3)"
|
||
}
|
||
},
|
||
"8": {
|
||
"inputs": {
|
||
"sampler_name": "euler"
|
||
},
|
||
"class_type": "KSamplerSelect",
|
||
"_meta": {
|
||
"title": "K采样器选择"
|
||
}
|
||
},
|
||
"9": {
|
||
"inputs": {
|
||
"noise": [
|
||
"6",
|
||
0
|
||
],
|
||
"guider": [
|
||
"20",
|
||
0
|
||
],
|
||
"sampler": [
|
||
"8",
|
||
0
|
||
],
|
||
"sigmas": [
|
||
"1",
|
||
0
|
||
],
|
||
"latent_image": [
|
||
"7",
|
||
0
|
||
]
|
||
},
|
||
"class_type": "SamplerCustomAdvanced",
|
||
"_meta": {
|
||
"title": "自定义采样器(高级)"
|
||
}
|
||
},
|
||
"10": {
|
||
"inputs": {
|
||
"samples": [
|
||
"9",
|
||
0
|
||
],
|
||
"vae": [
|
||
"3",
|
||
0
|
||
]
|
||
},
|
||
"class_type": "VAEDecode",
|
||
"_meta": {
|
||
"title": "VAE解码"
|
||
}
|
||
},
|
||
"13": {
|
||
"inputs": {
|
||
"pixels": [
|
||
"44",
|
||
0
|
||
],
|
||
"vae": [
|
||
"3",
|
||
0
|
||
]
|
||
},
|
||
"class_type": "VAEEncode",
|
||
"_meta": {
|
||
"title": "VAE编码"
|
||
}
|
||
},
|
||
"14": {
|
||
"inputs": {
|
||
"image": [
|
||
"44",
|
||
0
|
||
]
|
||
},
|
||
"class_type": "GetImageSize+",
|
||
"_meta": {
|
||
"title": "🔧 Get Image Size"
|
||
}
|
||
},
|
||
"16": {
|
||
"inputs": {
|
||
"unet_name": "flux2.0/flux-2-klein-9b-fp8.safetensors",
|
||
"weight_dtype": "fp8_e4m3fn_fast"
|
||
},
|
||
"class_type": "UNETLoader",
|
||
"_meta": {
|
||
"title": "UNet加载器"
|
||
}
|
||
},
|
||
"17": {
|
||
"inputs": {
|
||
"filename_prefix": "ComfyUI",
|
||
"images": [
|
||
"62",
|
||
0
|
||
]
|
||
},
|
||
"class_type": "SaveImage",
|
||
"_meta": {
|
||
"title": "保存图像"
|
||
}
|
||
},
|
||
"19": {
|
||
"inputs": {
|
||
"guidance": 1,
|
||
"conditioning": [
|
||
"22",
|
||
0
|
||
]
|
||
},
|
||
"class_type": "FluxGuidance",
|
||
"_meta": {
|
||
"title": "Flux引导"
|
||
}
|
||
},
|
||
"20": {
|
||
"inputs": {
|
||
"model": [
|
||
"2",
|
||
0
|
||
],
|
||
"conditioning": [
|
||
"5",
|
||
0
|
||
]
|
||
},
|
||
"class_type": "BasicGuider",
|
||
"_meta": {
|
||
"title": "基本引导器"
|
||
}
|
||
},
|
||
"22": {
|
||
"inputs": {
|
||
"text": [
|
||
"60",
|
||
0
|
||
],
|
||
"clip": [
|
||
"61",
|
||
0
|
||
]
|
||
},
|
||
"class_type": "CLIPTextEncode",
|
||
"_meta": {
|
||
"title": "CLIP文本编码"
|
||
}
|
||
},
|
||
"26": {
|
||
"inputs": {
|
||
"image": "clipspace/clipspace-painted-masked-1781655058499.png [input]"
|
||
},
|
||
"class_type": "LoadImage",
|
||
"_meta": {
|
||
"title": "加载图像"
|
||
}
|
||
},
|
||
"31": {
|
||
"inputs": {
|
||
"image": [
|
||
"26",
|
||
0
|
||
]
|
||
},
|
||
"class_type": "easy imageSize",
|
||
"_meta": {
|
||
"title": "图像尺寸"
|
||
}
|
||
},
|
||
"32": {
|
||
"inputs": {
|
||
"aspect_ratio": "custom",
|
||
"proportional_width": [
|
||
"31",
|
||
0
|
||
],
|
||
"proportional_height": [
|
||
"31",
|
||
1
|
||
],
|
||
"fit": "letterbox",
|
||
"method": "lanczos",
|
||
"round_to_multiple": "8",
|
||
"scale_to_side": "None",
|
||
"scale_to_length": 1024,
|
||
"background_color": "#000000",
|
||
"image": [
|
||
"26",
|
||
0
|
||
],
|
||
"mask": [
|
||
"37",
|
||
0
|
||
]
|
||
},
|
||
"class_type": "LayerUtility: ImageScaleByAspectRatio V2",
|
||
"_meta": {
|
||
"title": "LayerUtility: ImageScaleByAspectRatio V2"
|
||
}
|
||
},
|
||
"33": {
|
||
"inputs": {
|
||
"masks": [
|
||
"26",
|
||
1
|
||
]
|
||
},
|
||
"class_type": "Mask Fill Holes",
|
||
"_meta": {
|
||
"title": "Mask Fill Holes"
|
||
}
|
||
},
|
||
"36": {
|
||
"inputs": {
|
||
"masks": [
|
||
"33",
|
||
0
|
||
]
|
||
},
|
||
"class_type": "Convert Masks to Images",
|
||
"_meta": {
|
||
"title": "Convert Masks to Images"
|
||
}
|
||
},
|
||
"37": {
|
||
"inputs": {
|
||
"method": "intensity",
|
||
"image": [
|
||
"39",
|
||
0
|
||
]
|
||
},
|
||
"class_type": "Image To Mask",
|
||
"_meta": {
|
||
"title": "Image To Mask"
|
||
}
|
||
},
|
||
"39": {
|
||
"inputs": {
|
||
"upscale_method": "nearest-exact",
|
||
"width": [
|
||
"31",
|
||
0
|
||
],
|
||
"height": [
|
||
"31",
|
||
1
|
||
],
|
||
"crop": "disabled",
|
||
"image": [
|
||
"36",
|
||
0
|
||
]
|
||
},
|
||
"class_type": "ImageScale",
|
||
"_meta": {
|
||
"title": "缩放图像"
|
||
}
|
||
},
|
||
"44": {
|
||
"inputs": {
|
||
"mask_opacity": 1,
|
||
"mask_color": "FFFF00",
|
||
"pass_through": true,
|
||
"image": [
|
||
"32",
|
||
0
|
||
],
|
||
"mask": [
|
||
"32",
|
||
1
|
||
]
|
||
},
|
||
"class_type": "ImageAndMaskPreview",
|
||
"_meta": {
|
||
"title": "ImageAndMaskPreview"
|
||
}
|
||
},
|
||
"45": {
|
||
"inputs": {
|
||
"images": [
|
||
"44",
|
||
0
|
||
]
|
||
},
|
||
"class_type": "PreviewImage",
|
||
"_meta": {
|
||
"title": "预览图像"
|
||
}
|
||
},
|
||
"53": {
|
||
"inputs": {
|
||
"rgthree_comparer": {
|
||
"images": [
|
||
{
|
||
"name": "A",
|
||
"selected": true,
|
||
"url": "/api/view?filename=rgthree.compare._temp_zuixa_00119_.png&type=temp&subfolder=&rand=0.7926013627811991"
|
||
},
|
||
{
|
||
"name": "B",
|
||
"selected": true,
|
||
"url": "/api/view?filename=rgthree.compare._temp_zuixa_00120_.png&type=temp&subfolder=&rand=0.43692946883795813"
|
||
}
|
||
]
|
||
},
|
||
"image_a": [
|
||
"62",
|
||
0
|
||
],
|
||
"image_b": [
|
||
"26",
|
||
0
|
||
]
|
||
},
|
||
"class_type": "Image Comparer (rgthree)",
|
||
"_meta": {
|
||
"title": "Image Comparer (rgthree)"
|
||
}
|
||
},
|
||
"60": {
|
||
"inputs": {
|
||
"text": "填充遮罩区域的头发,皮肤加一点磨皮,再加一点美颜"
|
||
},
|
||
"class_type": "JjkText",
|
||
"_meta": {
|
||
"title": "Text"
|
||
}
|
||
},
|
||
"61": {
|
||
"inputs": {
|
||
"clip_name": "qwen_3_8b_fp8mixed.safetensors",
|
||
"type": "flux2",
|
||
"device": "cpu"
|
||
},
|
||
"class_type": "CLIPLoader",
|
||
"_meta": {
|
||
"title": "加载CLIP"
|
||
}
|
||
},
|
||
"62": {
|
||
"inputs": {
|
||
"method": "mkl",
|
||
"strength": 1,
|
||
"multithread": true,
|
||
"image_ref": [
|
||
"26",
|
||
0
|
||
],
|
||
"image_target": [
|
||
"10",
|
||
0
|
||
]
|
||
},
|
||
"class_type": "ColorMatch",
|
||
"_meta": {
|
||
"title": "Color Match"
|
||
}
|
||
}
|
||
} |