# 美术风格 ## 目标 在人设图和分镜图生成之前,确定 MV 的整体美术风格,为后续视觉生成提供统一的风格基准。 ## 内置风格预设 内置风格的预览图首次预览时由 `scripts/download_style_presets.py` 自动下载到 `.mv/{song_name}/{theme}/style_cache/{style}/` 本地目录,后续直接复用本地缓存。下游 `art_style.md` 的 `参考图:` 字段统一记录本地路径,确保生图工具的 `image_paths` 可直接读取。 | 目录 | 风格 | 说明 | |------|------|------| | `cinematic/` | 电影质感写实 | 35mm胶片颗粒、暖琥珀色调、自然光、宽银幕 | | `oil-painting/` | 油画风格 | 厚重笔触、印象派色彩、painterly 质感 | | `noir-illustration/` | 黑色插画 | 高对比剪影、图像小说风、琥珀色点缀 | ## 流程 调用 MCP 工具 `preview_and_collect_feedback` 启动美术风格选择页面: - **script**: `.opencode/skills/mv-creator/scripts/render_preview.py` - **args**: `[".mv/{song_name}/{theme}", "--type", "art_style", "--lang", "{lang}"]` - **feedback_path**: `.mv/{song_name}/{theme}/feedback.md` 页面是一个交互式选择界面,包含: - **内置风格展示区**:脚本首次启动时通过 `download_style_presets.py` 把内置风格预设图缓存到 `.mv/{song_name}/{theme}/style_cache/{style}/`,按分类展示,附风格关键词标签 - **自定义风格区**:允许输入 **风格描述文字**、上传 **1 张** 自定义参考图,或两者兼用(上传后保存到项目 `style_references/` 目录) - **选择提交区**:用户选定风格方向后提交 工具返回反馈内容后: - **选择内置预设** → 直接结合预设信息生成 `art_style.md` - **选择自定义风格** → 根据用户提供的内容生成 `art_style.md`: - 仅文字描述 → 基于描述提取风格关键词,生成 `art_style.md` - 仅参考图 → 用 `read_media` MCP 工具分析参考图的美术风格特征(线条、色彩、构图、质感等),再基于分析结果生成 - 文字 + 参考图 → 结合文字描述和参考图分析结果,综合生成 **确保参考图可用**:`art_style.md` 的 `参考图:` 列表必须包含至少一张图片。 如果用户选择的是纯文本自定义风格(无内置预设图、无上传参考图),则在生成 `art_style.md` 之前,先用 Midjourney 根据风格关键词生成一张风格参考图,保存到 `style_references/` 目录,并写入 `参考图:` 列表。这确保后续人设图和分镜图生成阶段始终有可用的风格参考图。**此处 MJ 生成的四宫格不需要裁切**,仅需一张完整图作为风格参考即可。 生成的 `art_style.md` 记录: - 风格名称和描述 - 选定的参考图路径(**至少一张**) - 色调、光影、质感等关键词 - 适用的生图模型推荐 **风格 JSON 提取**:`art_style.md` 生成后,**必须**从参考图中提取结构化的风格 JSON。调用 `read_media` MCP 工具,传入参考图路径和以下提示词: ``` 请以专业的艺术品鉴观角,深度分析这张图片的视觉风格。请忽略画面具体内容(比如人物、剧情),色彩风格、色彩调色板(hex代码)、构图风格、纹理质感、材质效果、线条风格、艺术风格关键词。请将分析结果输出为一段精简的 JSON 格式或描述,不要任何解读,就只要 JSON 结构。 ``` 将返回的 JSON 结果写入 `art_style.md` 的 `风格JSON:` 字段中。此 JSON 将在后续人设图、背景图和关键物件图生成时作为风格描述注入提示词,替代直接传入参考图。 ## 输出格式 完整格式示例见 `references/art-style-example.md`(非中文用户参考 `references/art-style-example-en.md`)。关键要点: - 首行 `美术风格:` + 风格名称 - 包含字段:`风格描述:`、`关键词:`、`色调:`、`光影:`、`推荐生图模型:`、`参考图:`、`风格JSON:` - 关键词使用英文,用于后续生图 prompt - 参考图路径相对项目目录,每行一个 - 风格JSON 为 `read_media` 分析参考图返回的结构化风格数据 ## 文件存储 ``` ./.mv/{song_name}/{theme}/art_style.md # 美术风格说明 ./.mv/{song_name}/{theme}/style_cache/ # 内置风格预设 CDN 缓存(首次预览自动下载) ./.mv/{song_name}/{theme}/style_references/ # 用户上传的参考图(如有) ``` ## 风格路由 美术风格确定后,判断风格是否属于**写实类**,决定后续工作流: **写实类判定**:以下情况视为写实风格: - 用户选择了内置预设「电影质感写实(cinematic)」 - 用户自定义风格的描述或关键词偏向写实(如包含 photorealistic / realistic / cinematic / 写实 / 真人 / 实拍 等特征) **路由规则**: - **写实风格** → 停止 mv-creator 主流程,告知用户写实风格将使用写实分支流程(支持口型同步等写实 MV 能力)。读取 `phases/realistic-pipeline.md`,从 STEP 0 开始执行,将已有的音频文件路径和歌词数据(`.mv/{song_name}/lyric.md`)传递过去,跳过已完成的音频获取和歌词提取步骤 - **非写实风格(油画、插画、动画、自定义非写实等)** → 继续 mv-creator 的下一阶段(脚本生成)