## ADDED Requirements ### Requirement: beauty_enhance 作为独立美化增强函数 系统 SHALL 在 `sd_service.py` 中提供 `beauty_enhance(img: Image.Image, level: float = 1.0) -> Image.Image` 函数,支持以下增强操作(所有操作的强度随 `level` 线性缩放): - 智能锐化(基于 `ImageFilter.UnsharpMask`,强调五官轮廓与发丝细节) - 亮度与对比度微增(`level=1.0` 时各 +2-3%,`level=2.0` 时各 +4-6%) - 饱和度提升(`level=1.0` 时 +5%,`level=2.0` 时 +10%,令肤色更均匀饱满) - `level=0` 时 SHALL 直接返回原图,跳过所有处理 #### Scenario: 正常调用增强管线 - **WHEN** 调用 `beauty_enhance(img, level=1.0)` - **THEN** 返回经过锐化、亮度微调、饱和度提升处理的 PIL Image,图片尺寸不变 #### Scenario: level=0 时跳过处理 - **WHEN** 调用 `beauty_enhance(img, level=0)` - **THEN** 直接返回原始 img 对象,不执行任何增强操作 #### Scenario: level=2 时增强效果加倍 - **WHEN** 调用 `beauty_enhance(img, level=2.0)` - **THEN** 锐化、亮度、饱和度的调整幅度均为 level=1.0 时的 2 倍 ### Requirement: 后处理管线顺序为美化先于反 AI 扰动 系统 SHALL 在 `txt2img` 和 `img2img` 生成流程中,对每张输出图片依次执行:`beauty_enhance(img, level) → anti_detect_postprocess(img)`,确保美化增强在扰动引入之前完成。 #### Scenario: 生成图片经过完整两阶段后处理 - **WHEN** `txt2img` 成功生成图片 - **THEN** 每张图片先经过 `beauty_enhance`,再经过 `anti_detect_postprocess`,最终返回给调用方 ### Requirement: enhance_level 参数从 UI 传递至后处理管线 系统 SHALL 支持 `enhance_level: float` 参数从 Gradio UI 经 `services/content.py` 的 `generate_images()` 函数传递至 `SDService.txt2img()`,最终传入 `beauty_enhance()`。新参数默认值为 `1.0`,向后兼容。 #### Scenario: UI 美化强度滑块值传递到生成结果 - **WHEN** 用户在"高级设置"中将美化强度滑块调整为 2.0 并点击生成 - **THEN** 生成图片经过 `beauty_enhance(img, level=2.0)` 处理 #### Scenario: 旧调用方不传 enhance_level 时行为不变 - **WHEN** `generate_images()` 未传入 `enhance_level` 参数 - **THEN** 默认使用 `level=1.0`,行为与优化前相同