05. 素材与媒体子 SOP
适用步骤:
- Step 6 文案定稿后的素材生成
- Step 7 页面装配前的最终媒体准备
1. 模块素材生成顺序(适用于 klingIntroSectionProps 和 promptExamplesSectionProps)
- 先完成模块文案和
imageBrief - 再写批量 prompt 文件
- 再调用
scripts/generate-model-materials.ts或本地 skill 生成素材 - 先在
data/model-page-assets/[model-slug]/挑选候选图 - 最终选中的图先转换为
webp,质量固定70 - 再发布到
public/images/model-pages/[model-slug]/ - 回填到页面
imageSrc
2. 图片素材硬规则
klingIntroSectionProps的 4 张卡默认都应该有各自独立的图,不允许长期共用同一张占位图promptExamplesSectionProps的每张卡都应该尽量对应真实生成结果- 不要先生成一堆图再倒推文案
- AI 生成原图不能直接上页面,必须先转换为
webp webp质量固定使用70(即 0.7)- 正确顺序必须是:研究 -> 写内容 -> 写图像 brief -> 生图 -> 选图 -> 转 webp -> 发布到 public -> 回填页面
3. 生成素材的标准调用方式
- 使用仓库脚本(默认方式)
powershell
pnpm generate:model-materials --model z-image --prompt "Studio skincare bottle on a reflective surface, soft daylight, premium commercial photo" --size 1:1- 使用批量 prompt 文件
powershell
pnpm generate:model-materials --model z-image --prompts-file data/z-image-prompts.json- 将选中的图片发布为网页素材(固定转为 webp 质量 70)
powershell
pnpm publish:model-page-assets --input public/images/model-pages/z-image/foundation-open-model.png --quality 70 --delete-original- 直接调用本地 skill wrapper
powershell
C:\Users\Administrator\.codex\skills\generate-model-images\scripts\run-model-image.ps1 --model z-image --prompt "Minimal coffee ad concept, warm table light, premium packaging shot"4. 视频素材生成的标准调用方式
- 使用仓库脚本(默认方式)
powershell
pnpm generate:video-model-materials --model doubao-seedance-1-5-pro-251215 --prompt "A woman turns toward the camera in a neon-lit subway carriage, cinematic handheld motion, synced ambient train audio" --duration 4 --aspect-ratio 16:9 --resolution 720p- 使用批量 prompt 文件
powershell
pnpm generate:video-model-materials --model doubao-seedance-1-5-pro-251215 --prompts-file data/model-page-video-prompts/seedance-1-5-pro.json- 直接调用本地 skill wrapper
powershell
C:\Users\Administrator\.codex\skills\generate-model-videos\scripts\run-model-video.ps1 --model doubao-seedance-1-5-pro-251215 --prompt "A woman turns toward the camera in a neon-lit subway carriage, cinematic handheld motion, synced ambient train audio" --duration 4 --aspect-ratio 16:9 --resolution 720p- 将页面演示视频压缩到网页展示规格(默认方式)
powershell
pnpm compress:model-page-videos按需 dry-run:
powershell
pnpm compress:model-page-videos --dry-run5. 视频素材生成硬规则
- 先看
src/config/video-models.ts,确认模型支持的时长、比例、分辨率、输入模式、音频能力 - 视频素材脚本只走 provider manager,不走前端 UI 和积分冻结流程
- 默认优先做:
text-to-videoimage-to-videoreferencefirst-last-frame
- 只有模型配置明确支持时,才允许使用
video-to-video - 每次生成后必须检查
manifest.json - 成功后必须同时保存:
- 原始视频文件
- poster
.webp - 生成元数据
- poster 质量固定
70 - 默认轮询最长等待
24小时,再判定超时 - 页面里的视频素材默认视为“网页演示素材”,不是商用母版
- 最终发布到
public/videos/model-pages/的视频,默认必须先做一次压缩,再接回页面 - 默认压缩目标:
- 横版最长边不超过
1280 - 竖版最长边不超过
1280 - 编码使用
H.264 + yuv420p + faststart - 质量默认按
CRF=31 - 音频默认保留为
AAC 48k
- 横版最长边不超过
- 默认只对大于
2.5MB的页面视频执行压缩,小于该阈值可以直接保留 - 压缩完成后,必须抽查至少 1 个页面,确认:
- 画面没有明显肉眼可见劣化
- 首屏或区块内播放没有异常
- 文件体积确实下降
6. Seedance 2.0 特殊规则
seedance-2-0的页面示例素材默认不由代理自动生成- 执行人只负责:
- 写好
data/model-page-video-prompts/seedance-2.json - 写清楚原始素材目录和最终公开目录
- 准备页面所需的文件命名规范
- 写好
- 实际视频生成由用户手动完成
- 用户生成完成后,再把最终成品发布到:
public/videos/model-pages/seedance-2/public/images/model-pages/seedance-2/
7. 素材生成硬规则
- 先看
src/config/image-models.ts,确认模型支持的尺寸、分辨率、参考图数量、prompt 长度 - 生成页内素材时,优先用脚本,不走前端 UI 生成流程
- 每次生成后必须检查
manifest.json - 只保留真正代表模型优势的图片,不因为“已经生成了”就强行上页
- 发布到页面前,必须把最终选中的图转换为
webp - 页面引用图默认使用
webp,质量固定70 - 一旦某张被采纳的
png已经成功转换并发布为最终webp,对应的原始png必须删除,不能继续留在public/images/model-pages/[model-slug]/ - 页面最终引用只能指向
.webp,不能同时保留同名.png作为公开素材 - 默认每个模型页保留 4 到 8 张高质量候选图,而不是大批量无筛选输出
- 最终图片入选后,未采用的候选图默认清理,避免素材目录长期膨胀
- 清理时不要删除:
- 已复制到
public/images/model-pages/[model-slug]/的最终素材 - 仍在页面中被引用的图片
- 对当前页面仍有复用价值的保留批次
- 已复制到
8. 产物路径规则
- 默认输出:
data/model-page-assets/[model-slug]/[timestamp]/ - 每次生成都要有
manifest.json - 最终公开素材发布到:
public/images/model-pages/[model-slug]/ - 最终公开素材格式固定为
.webp - 如果一个批次只剩
manifest.json且没有任何保留图片,默认删除该空批次目录