- 将默认LLM模型从gemini-2.0-flash升级为gemini-3-flash-preview - 将博主人设从"性感福利主播"更改为"二次元coser" - 优化LLM生成SD提示词的指南,新增中国审美人物描述规则 - 为各SD模型添加颜值核心词、示范prompt和禁止使用的关键词 - 新增三维人物描述法(眼睛/肤色/气质)和专属光线词指导 📦 build(openspec): 归档旧规范并创建新规范 - 将improve-maintainability规范归档至2026-02-25目录 - 新增2026-02-26-improve-ui-layout规范,包含UI布局优化设计 - 新增2026-02-26-optimize-image-generation规范,包含图片生成优化设计 - 在根目录openspec/specs下新增图片质量、后处理、中国审美和LLM提示词规范 ♻️ refactor(sd_service): 优化SD模型配置和图片后处理 - 为各SD模型添加中国审美特征词和欧美面孔排除词 - 新增高画质预设档,SDXL模型启用Hires Fix参数 - 将后处理拆分为beauty_enhance和anti_detect_postprocess两个独立函数 - 新增美化增强功能,支持通过enhance_level参数控制强度 ♻️ refactor(services): 更新内容生成服务以支持美化增强 - 在generate_images函数中新增enhance_level参数 - 将美化强度参数传递至SDService.txt2img调用 ♻️ refactor(ui): 优化UI布局和添加美化强度控件 - 注入自定义CSS主题层,优化字体、按钮和卡片样式 - 将全局设置迁移至独立的"⚙️ 配置"Tab,优化Tab顺序 - 在内容创作Tab的高级设置中添加美化强度滑块控件 - 优化自动运营Tab布局,改为2列卡片网格展示
87 lines
5.6 KiB
Markdown
87 lines
5.6 KiB
Markdown
## Context
|
||
|
||
当前系统使用 Stable Diffusion WebUI API 生成图片,通过 `sd_service.py` 中的 `SD_MODEL_PROFILES` 静态配置各模型的参数预设(快速/标准/精细三档)和 prompt 增强词。图片生成后经 `anti_detect_postprocess()` 做反 AI 检测后处理。`llm_service.py` 的 `get_sd_prompt_guide()` 向 LLM 提供绘图 Prompt 写作指南。
|
||
|
||
**现状痛点:**
|
||
- 各模型的"精细"档步数(35-40步)和分辨率偏低,SDXL 模型未充分利用 Hires Fix 提升细节
|
||
- `prompt_prefix` 中的中国人面孔特征词偏弱或措辞泛化(如 `asian girl` 无权重),欧美面孔偏向风险未完全规避
|
||
- `anti_detect_postprocess` 将噪声扰动与美化处理混在一起,无法独立调节美化强度
|
||
- LLM Prompt 指南缺少针对人物真实感/中国审美的专项指导词模板
|
||
|
||
**约束:**
|
||
- 不引入新的外部 Python 依赖
|
||
- Hires Fix 仅对 SDXL 模型启用(SD 1.5 显存不足)
|
||
- 现有 `txt2img` API 接口签名不做 breaking change,新参数均使用默认值向后兼容
|
||
|
||
## Goals / Non-Goals
|
||
|
||
**Goals:**
|
||
- 为各模型新增"高画质"预设档,SDXL 启用 Hires Fix 参数
|
||
- 系统性强化各模型 `prompt_prefix` 中的中国人审美特征词(精致五官、白皙透亮、杏眼、减龄感、中式气质)
|
||
- 将 `anti_detect_postprocess` 拆分为独立的 `beauty_enhance()` + `anti_detect_postprocess()` 两段,支持通过 `enhance_level` 参数控制美化强度
|
||
- 扩充 LLM Prompt 指南中的人物真实感描述规则,加入中国审美专项指导词模板
|
||
- 在 UI 绘图参数面板新增"美化强度"控件,通过 `services/content.py` 传递至后处理管线
|
||
|
||
**Non-Goals:**
|
||
- 不新增 SD 模型支持(不修改模型识别逻辑)
|
||
- 不做图片超分(Real-ESRGAN 等外部工具)
|
||
- 不修改 ReActor 换脸逻辑
|
||
- 不改变发布流程或队列逻辑
|
||
|
||
## Decisions
|
||
|
||
### 决策 1:Hires Fix 仅对 SDXL 模型启用
|
||
|
||
**选择:** 在 `txt2img` payload 中,当模型 `arch == "sdxl"` 且 `quality_mode` 为高画质档时注入 Hires Fix 参数(`enable_hr: true`, `hr_scale: 1.5`, `hr_upscaler: "4x-UltraSharp"`, `denoising_strength: 0.4`)。
|
||
|
||
**理由:** SD 1.5 模型显存通常不足以做 Hires Fix,SDXL 的 832×1216 基础分辨率放大 1.5x 可达 1248×1824,大幅提升皮肤/五官细节,代价是生成时间增加约 50%。
|
||
|
||
**替代方案:** 后处理做 PIL 超分 → 效果差、无 AI 重绘细节;全模型启用 → 触发 SD 1.5 OOM 风险。
|
||
|
||
---
|
||
|
||
### 决策 2:beauty_enhance 作为独立函数,enhance_level 控制强度
|
||
|
||
**选择:** 将原 `anti_detect_postprocess` 中的美化逻辑(锐化、色彩增强)抽取为 `beauty_enhance(img, level: float = 1.0) -> Image`,`level=0` 跳过,`level=1` 为默认,`level=2` 为强化。`anti_detect_postprocess` 保持仅做扰动逻辑,调用顺序:`beauty_enhance → anti_detect_postprocess`。
|
||
|
||
**理由:** 当前两者混在同一函数中,美化参数硬编码无法从 UI 调节;分离后可独立测试,且 UI 控件可直接映射到 `enhance_level`。
|
||
|
||
**替代方案:** 在 `anti_detect_postprocess` 中增加 flag 参数 → 函数职责混乱,不符合单一职责原则。
|
||
|
||
---
|
||
|
||
### 决策 3:中国审美词以"权重词组"方式注入 prompt_prefix
|
||
|
||
**选择:** 在各模型 `prompt_prefix` 中为中国人面孔特征词加入权重括号,如 `(almond eyes:1.2)`, `(delicate nose:1.1)`, `(porcelain skin:1.2)`, `(youthful appearance:1.1)`, `(chinese beauty:1.2)`,同时在 `negative_prompt` 中补充 `deep-set eyes, strong jawline, prominent brow ridge` 等欧美特征排除词。
|
||
|
||
**理由:** SD 权重词是最直接有效的方式;不引入新依赖;各模型独立配置可针对其风格微调权重值。
|
||
|
||
---
|
||
|
||
### 决策 4:LLM Prompt 指南新增中国审美人物描述模板
|
||
|
||
**选择:** 在 `get_sd_prompt_guide()` 中新增"人物描述词库"段落,按五官/肤色/气质/发型四个维度分别给出推荐词,并加一条规则:描述人物时优先从该词库选词,禁用 `beautiful girl` 等无导向泛化词。
|
||
|
||
**理由:** LLM 倾向于使用泛化美感词,不加约束时易生成欧美审美偏向的描述,规则化词库可强制对齐目标审美。
|
||
|
||
## Risks / Trade-offs
|
||
|
||
- **[风险] Hires Fix 生成时间大幅增加** → 缓解:仅在新增"极致 (约5分钟)"档才默认开启,其他档保持原速;UI 标注预计用时
|
||
- **[风险] 中国审美词过强导致所有图片千人一面** → 缓解:权重控制在 1.1-1.2 之间,不超过 1.3;`PERSONA_SD_PROFILES` 各人设保留差异化风格词
|
||
- **[风险] beauty_enhance 引入 numpy 依赖(实际已存在)** → 无风险,现有代码已 `import numpy`
|
||
- **[Trade-off] enhance_level UI 控件增加 UI 复杂度** → 接受:放在"高级设置"面板折叠区,不影响主流程
|
||
|
||
## Migration Plan
|
||
|
||
1. 修改 `sd_service.py`:更新各模型 `prompt_prefix`/`negative_prompt`,新增高画质预设,拆分 `beauty_enhance`
|
||
2. 修改 `llm_service.py`:更新 `get_sd_prompt_guide()` 指南内容
|
||
3. 修改 `services/content.py`:`generate_images` 新增 `enhance_level` 参数(默认 `1.0`,向后兼容)
|
||
4. 修改 `ui/tab_create.py`:在"高级设置"中新增"美化强度"滑块,范围 0.0-2.0,默认 1.0
|
||
|
||
无数据库迁移,无配置文件格式变更。回滚:git revert 即可。
|
||
|
||
## Open Questions
|
||
|
||
- Hires Fix 的 `hr_upscaler` 在用户环境中是否普遍可用(需确认 "4x-UltraSharp" 模型是否已下载);若不存在应降级为 "Latent" 作为 fallback
|
||
- `beauty_enhance` 的最优参数值(锐化半径、色彩增益系数)需在实际出图中调试确认
|