zhoujie b5deafa2cc feat(config): 更新模型配置与LLM提示词指南
- 将默认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列卡片网格展示
2026-02-26 22:58:05 +08:00

87 lines
5.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 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
### 决策 1Hires 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 FixSDXL 的 832×1216 基础分辨率放大 1.5x 可达 1248×1824大幅提升皮肤/五官细节,代价是生成时间增加约 50%。
**替代方案:** 后处理做 PIL 超分 → 效果差、无 AI 重绘细节;全模型启用 → 触发 SD 1.5 OOM 风险。
---
### 决策 2beauty_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 权重词是最直接有效的方式;不引入新依赖;各模型独立配置可针对其风格微调权重值。
---
### 决策 4LLM 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` 的最优参数值(锐化半径、色彩增益系数)需在实际出图中调试确认