mcpField
S
sora

sora

github.com/davila7创意与媒体33.0k63 次安装1 天前更新
代码仓库

关于 sora

Sora Video Generation Skill 面向项目团队,可使用 Sora 创建和管理短视频。它通过随附的 CLI 支持生成、改编、批量任务、状态查询和资源下载。

主要功能

  1. 01生成和改编视频片段
  2. 02根据多个提示词运行批量任务
  3. 03轮询任务状态并下载资源
  4. 04以结构化细节增强提示词
  5. 05使用随附 CLI 执行 API 操作

适用场景

  1. 01制作产品演示或营销短片
  2. 02为现有视频制作变体
  3. 03批量生成多个提示词版本
  4. 04下载视频、缩略图或精灵图

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/davila7/claude-code-templates --skill sora

安装后在 Claude Code 中输入/sora确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE.txt
agents/
openai.yaml
assets/
sora-small.svg
references/
cinematic-shots.md
cli.md
codex-network.md
prompting.md
sample-prompts.md
social-ads.md
troubleshooting.md
video-api.md
scripts/
sora.py

详细介绍

Sora 视频生成技能

为当前项目创建或管理短视频片段(产品演示、营销短片、电影感镜头、UI 模拟)。默认使用 sora-2 和结构化提示词增强工作流,并优先使用捆绑的 CLI 执行确定性运行。注意:$sora 是提示词中的技能标签,不是 shell 命令。

适用场景

  • 根据提示词生成新的视频片段
  • 按 ID 混剪现有视频
  • 轮询状态、列出任务或下载资源(视频/缩略图/精灵图)
  • 批量运行(多个提示词或变体)

决策树(创建与混剪、状态/下载或批量处理)

  • 如果用户有视频 ID,并希望进行更改 → 混剪
  • 如果用户有视频 ID,并希望查看状态或获取资源 → 状态/轮询/下载
  • 如果用户需要多个提示词/资源 → 批量创建
  • 如果用户要求两个只有细微差异的版本(镜头相同,主体/细节不同)→ 先创建基础版本,再混剪生成变体
  • 否则 → 创建(如果用户希望一步获得可用资源,则使用创建并轮询)

工作流

  1. 确定意图:创建、混剪、状态/下载或批量处理。
  2. 收集输入:提示词、模型、尺寸、时长,以及任何输入参考图像。
  3. 如果是批量处理:在 tmp/ 下写入临时 JSONL(每行一个任务),运行一次,然后删除 JSONL。
  4. 优先使用 CLI 增强标志(--use-case、--scene、--camera 等),而不是预先编写结构化提示词。如果已生成结构化提示词文件,则传入 --no-augment,避免重复包装。
  5. 使用合理的默认值运行捆绑的 CLI(scripts/sora.py;参见 references/cli.md)。对于较长的提示词,优先使用 --prompt-file,避免 shell 转义问题;如果提示词已经结构化,则同时使用 --no-augment。
  6. 对于异步任务,轮询直到完成(或使用创建并轮询)。
  7. 下载资源(视频/缩略图/精灵图)并保存到本地。
  8. 删除本次调用期间创建的中间文件(例如 prompt.txt、remix_job.json、临时 JSONL)。如果沙盒阻止执行 rm,则跳过清理或清空文件,不要暴露错误。
  9. 每个提示词只进行一项有针对性的更改,然后迭代。

身份验证

  • 进行实时 API 调用时,必须设置 OPENAI_API_KEY。

如果缺少密钥,请向用户提供以下步骤:

  1. 在 OpenAI 平台 UI 中创建 API 密钥:https://platform.openai.com/api-keys
  2. 在其系统中将 OPENAI_API_KEY 设置为环境变量。
  3. 如果需要,提出为其操作系统/shell 指导设置环境变量。
  • 切勿要求用户在聊天中粘贴完整密钥。请用户在本地设置,并在准备就绪后确认。

默认值和规则

  • 默认模型:sora-2(如需更高保真度,使用 sora-2-pro)。
  • 默认尺寸:1280x720。
  • 默认时长:4(允许的字符串值:"4"、"8"、"12")。
  • 始终通过 API 参数设置尺寸和时长;描述性文字不会改变它们。
  • 使用 OpenAI Python SDK(openai 包);不要使用原始 HTTP。
  • 进行任何实时 API 调用前,必须先设置 OPENAI_API_KEY。
  • 如果 uv 缓存权限失败,请设置 UV_CACHE_DIR=/tmp/uv-cache。
  • 输入参考图像必须为 jpg/png/webp 格式,且尺寸应与目标尺寸一致。
  • 下载 URL 约 1 小时后过期;请将资源复制到自己的存储中。
  • 优先使用捆绑的 CLI,除非用户要求,否则绝不要修改 scripts/sora.py。
  • Sora 可以生成音频;如果用户要求配音/音频,请在 Audio: 和 Dialogue: 行中明确说明,并保持简短。

API 限制

  • 模型仅限 sora-2 和 sora-2-pro。
  • 访问 Sora 模型 API 需要经过组织验证的账户。
  • 时长仅限 4/8/12 秒,必须通过 seconds 参数设置。
  • API 要求 seconds 使用字符串枚举值("4"、"8"、"12")。
  • 输出尺寸受模型限制(支持的尺寸请参阅 references/video-api.md)。
  • 视频创建为异步操作;必须轮询直至完成后才能下载。
  • 速率限制因使用层级而异(请勿列出具体限制)。
  • API 会执行内容限制(见下文的 Guardrails)。

Guardrails(必须遵守)

  • 内容仅限适合 18 岁以下受众观看的内容。
  • 不得使用受版权保护的角色或音乐。
  • 不得出现真实人物(包括公众人物)。
  • 含有人脸的输入图像会被拒绝。

提示词增强

将提示词重新整理为结构化、面向制作的规格。只明确隐含细节;不要编造新的创意要求。

模板(仅包含相关行):

Use case: <where the clip will be used>
Primary request: <user's main prompt>
Scene/background: <location, time of day, atmosphere>
Subject: <main subject>
Action: <single clear action>
Camera: <shot type, angle, motion>
Lighting/mood: <lighting + mood>
Color palette: <3-5 color anchors>
Style/format: <film/animation/format cues>
Timing/beats: <counts or beats>
Audio: <ambient cue / music / voiceover if requested>
Text (verbatim): "<exact text>"
Dialogue:
<dialogue>
- Speaker: "Short line."
</dialogue>
Constraints: <must keep/must avoid>
Avoid: <negative constraints>

增强规则:

  • 保持简短;仅补充用户已暗示或在其他地方提供的细节。
  • 对于重混,明确列出不变量(“镜头不变,仅更改 X”)。
  • 如果缺少会妨碍成功的关键细节,请提问;否则继续。
  • 如果通过 CLI 将结构化提示词文件传入工具,请添加 --no-augment,避免工具再次改写。

示例

生成示例(单镜头)
Use case: product teaser
Primary request: a close-up of a matte black camera on a pedestal
Action: slow 30-degree orbit over 4 seconds
Camera: 85mm, shallow depth of field, gentle handheld drift
Lighting/mood: soft key light, subtle rim, premium studio feel
Constraints: no logos, no text
重混示例(不变量)
Primary request: same shot and framing, switch palette to teal/sand/rust with warmer backlight
Constraints: keep the subject and camera move unchanged

提示词最佳实践(简要列表)

  • 每个镜头包含一个主要动作和一个镜头运动。
  • 使用次数或节拍来安排时长(“走两步,停顿,转身”)。
  • UI 或屏幕文字应保持文案简短,并锁定摄像机。
  • 出现伪影时,添加简短的规避说明(闪烁、抖动、快速运动)。
  • 较短的提示词更具创意;较长的提示词控制性更强。
  • 将对白放在专门的区块中;4-8 秒片段的台词应简短。
  • 重混时明确说明不变量(镜头不变、镜头运动不变)。
  • 每次只通过一项更改来迭代,以保持连贯性。

按素材类型提供的指导

如果请求针对特定素材,请使用这些模块。它们提供了针对性的模板和默认设置。

  • 电影镜头:references/cinematic-shots.md
  • 社交广告:references/social-ads.md

CLI 和环境说明

  • CLI 命令和示例:references/cli.md
  • API 参数速查:references/video-api.md
  • 提示词指导:references/prompting.md
  • 提示词示例:references/sample-prompts.md
  • 故障排除:references/troubleshooting.md
  • 网络/沙盒技巧:references/codex-network.md

参考索引

  • references/cli.md:如何通过 scripts/sora.py 执行创建、轮询、重混、下载和批处理。
  • references/video-api.md:API 级参数(模型、尺寸、时长、变体、状态)。
  • references/prompting.md:提示词结构和迭代指导。
  • references/sample-prompts.md:可复制粘贴的提示词范例(仅示例,不含额外理论)。
  • references/cinematic-shots.md:电影感镜头模板。
  • references/social-ads.md:短篇社交广告节拍模板。
  • references/troubleshooting.md:常见错误及修复方法。
  • references/codex-network.md:网络/审批故障排除。

评论

支持 Markdown