- 将默认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列卡片网格展示
5.6 KiB
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 显存不足)
- 现有
txt2imgAPI 接口签名不做 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
- 修改
sd_service.py:更新各模型prompt_prefix/negative_prompt,新增高画质预设,拆分beauty_enhance - 修改
llm_service.py:更新get_sd_prompt_guide()指南内容 - 修改
services/content.py:generate_images新增enhance_level参数(默认1.0,向后兼容) - 修改
ui/tab_create.py:在"高级设置"中新增"美化强度"滑块,范围 0.0-2.0,默认 1.0
无数据库迁移,无配置文件格式变更。回滚:git revert 即可。
Open Questions
- Hires Fix 的
hr_upscaler在用户环境中是否普遍可用(需确认 "4x-UltraSharp" 模型是否已下载);若不存在应降级为 "Latent" 作为 fallback beauty_enhance的最优参数值(锐化半径、色彩增益系数)需在实际出图中调试确认