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

50 lines
3.2 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.

## ADDED Requirements
### Requirement: 内容创作 Tab 的 UI 代码迁移至独立模块
`ui/tab_create.py` SHALL 包含「内容创作 Tab」的全部 Gradio 组件定义和事件绑定,并导出 `build_tab(...) -> dict` 函数,返回跨 Tab 共享组件的字典key 集合不得变更)。
内容创作 Tab 内部 SHALL 采用**三栏布局**
- **左栏scale=3**:人设选择、话题/风格、文案生成参数(高级设置 Accordion
- **中栏scale=4**:文案输出区(标题、正文、标签、提示词)+ 文案操作按钮组
- **右栏scale=3**:图片预览 Gallery + 图片操作按钮组(含美化强度滑块)
三栏通过 `gr.Row()` 包裹三个 `gr.Column(scale=...)` 实现,所有高频操作 SHALL 在无需垂直滚动的情况下可见≥1280px 宽度分辨率)。
#### Scenario: main.py/app.py 正常启动并显示内容创作 Tab
- **WHEN** 运行应用启动 Gradio
- **THEN** 内容创作 Tab 正常显示三栏布局,所有组件与迁移前功能一致
#### Scenario: tab_create 模块可独立导入
- **WHEN** 在 Python 中执行 `from ui.tab_create import build_tab`
- **THEN** 不抛出任何导入错误,`build_tab` 为可调用对象
#### Scenario: 三栏布局在宽屏下无需滚动
- **WHEN** 用户在 ≥1280px 宽度的浏览器中打开内容创作 Tab
- **THEN** 左栏参数、中栏文案输出、右栏图片预览 SHALL 同时可见,无需垂直滚动
#### Scenario: build_tab 返回字典 key 保持不变
- **WHEN** `build_tab(...)` 被调用并返回字典
- **THEN** 返回字典 SHALL 至少包含 `res_title``res_content``res_prompt``res_tags``quality_mode``steps``cfg_scale``neg_prompt` 等原有 key
### Requirement: ui/ 目录结构规范
`ui/` 目录 SHALL 包含 `__init__.py`,每个 Tab 模块文件命名约定为 `tab_<name>.py`,不在 Tab 模块中直接调用全局服务初始化代码。
#### Scenario: 新增 Tab 模块的标准结构
- **WHEN** 开发者创建新的 `ui/tab_*.py` 文件
- **THEN** 该文件导出 `build_tab(...)` 函数,且顶层不包含副作用代码
### Requirement: 自动运营 Tab 采用卡片式两列网格布局
「🤖 自动运营」Tab 内的各自动化任务 SHALL 以 **2 列 × N 行** 的卡片网格展示,每个任务使用 `gr.Group()` 包裹,卡片内 SHALL 包含:任务名称标题、启用开关(`gr.Checkbox`)、执行间隔(`gr.Number``gr.Slider`)、上次执行时间(`gr.Markdown`)。
#### Scenario: 自动运营任务以两列网格显示
- **WHEN** 用户切换到「🤖 自动运营」Tab
- **THEN** 各自动化任务自动评论、自动点赞、自动收藏、自动发布、自动回复等SHALL 以两列卡片网格排列,每列宽度相等
#### Scenario: 每张卡片包含完整任务控制
- **WHEN** 用户查看某个任务卡片
- **THEN** 卡片内 SHALL 显示任务开关、执行间隔设置项,功能与原单列布局完全一致
#### Scenario: 自定义 CSS 增强视觉效果
- **WHEN** 应用加载完成
- **THEN** `gr.Blocks(css=...)` SHALL 注入自定义样式包含字体层级优化、按钮圆角≥6px`gr.Group` 卡片轻微阴影(`box-shadow`),不破坏 Gradio 内部组件样式