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

5.6 KiB
Raw Permalink Blame History

Context

当前系统使用 Stable Diffusion WebUI API 生成图片,通过 sd_service.py 中的 SD_MODEL_PROFILES 静态配置各模型的参数预设(快速/标准/精细三档)和 prompt 增强词。图片生成后经 anti_detect_postprocess() 做反 AI 检测后处理。llm_service.pyget_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) -> Imagelevel=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.3PERSONA_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.pygenerate_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 的最优参数值(锐化半径、色彩增益系数)需在实际出图中调试确认