zopia-skill

Zopia AI 视频创作技能 - 通过 Zopia 平台的 AI Agent 进行视频/图片创作。覆盖场景包括:AI 视频生成(文生视频、图生视频)、AI 图片生成(角色设定图、分镜关键帧)、剧本创作(对话/旁白/场景描述)、角色设计、分镜设计、多集连续剧制作。当用户提到 zopia、视频创作、短剧制作、分镜、角色设计、AI 视频生成时应触发。关键判断:只要用户的请求涉及通过 AI 进行系统化的视频创作流程(剧本→角色→分镜→视频),都必须触发此技能。

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "zopia-skill" with this command: npx skills add lambdua/zopia-skill

Zopia AI 视频创作

Zopia 是一个项目制的 AI 视频创作平台。每个项目包含完整的创作流水线:剧本 → 角色 → 分镜 → 视频,由后端 AI Agent 自动驱动。你通过脚本管理项目、传达用户意图、追踪进度、获取成果。

环境配置

export ZOPIA_ACCESS_KEY="zopia-xxxxxxxxxxxx"   # 必需,30天有效
export ZOPIA_BASE_URL="https://zopia.ai"  # 可选

仅使用 Python 标准库,无需额外安装。

核心概念

概念说明
Project (Base)创作项目,包含设置、剧集、所有资产。创建时自动生成首集
Episode剧集,同一项目下可创建多集,每集有独立的剧本/角色/分镜
Session一次 Agent 对话。异步执行,通过轮询获取进展
Workspace项目的实时工作区快照,包含角色(entities)、分镜(storyboard)、各媒体的生成状态

脚本速查

脚本用途关键参数
create_project.py创建项目[名称]
save_settings.py项目设置--base-id --style --aspect-ratio --video-model --storyboard-image-model --entity-image-model ...
send_message.py发送创作指令(异步)--base-id --episode-id 消息
query_session.py查询进展SESSION_ID --poll --after-seq N
download_results.py下载媒体资源SESSION_ID --output-dir --type image|video
get_balance.py余额查询
list_projects.py列出项目--page --page-size
manage_episodes.py剧集管理list|create|delete
render_episode.py合成最终视频trigger|status --base-id --episode-id --poll

项目设置参考

创建项目后,必须配置基础设置(locale / aspect_ratio / style)才能开始创作。

python3 {baseDir}/scripts/save_settings.py --base-id BASE_ID \
  --locale zh-CN --aspect-ratio 16:9 --style realistic_3d_cg

风格

ID说明
anime_japanese_korean日韩动漫
realistic_3d_cg3D CG 写实 🔥
pixar_3d_cartoonPixar 3D 卡通
photorealistic_real_human真人写实
3D_CG_Animation3D CG 动画 🔥
anime_chibiQ版可爱
anime_shinkai新海诚
anime_ghibli吉卜力
stylized_pixel像素艺术

别名支持:realisticrealistic_3d_cgghiblianime_ghiblishinkaianime_shinkaipixelstylized_pixel

视频模型 × 生成方式

不同模型支持不同的生成方式(generation_method),不匹配会报错。

模型 ID名称支持的方式默认
generate_video_by_seedance_20Seedance 2.0 Pro ⭐n_grid, video_ref, multi_ref, multi_ref_v2video_ref
generate_video_by_seedance_20_fastSeedance 2.0 Fastn_grid, video_ref, multi_ref, multi_ref_v2video_ref
generate_video_by_kling_o3Kling O3start_frame, n_grid, multi_ref, multi_ref_v2n_grid
generate_video_by_kling_v3_0Kling V3.0start_frame, n_gridn_grid
generate_video_by_pixverse_c1PixVerse C1start_frame, multi_refstart_frame
generate_video_by_hailuo_02Hailuo 2.3start_framestart_frame
generate_video_by_wan26_i2vWan 2.6start_framestart_frame
generate_video_by_wan26_i2v_flashWan 2.6 Flashstart_framestart_frame
generate_video_by_viduq2_proVidu Q2 Prostart_framestart_frame
generate_video_by_viduq3_proVidu Q3 Prostart_framestart_frame
generate_video_by_viduq3Vidu Q3n_grid, multi_ref, multi_ref_v2n_grid
generate_video_by_seedance_15Seedance 1.5 Prostart_framestart_frame

图片模型

分镜关键帧(storyboard_image_model)与角色/场景设定图(entity_image_model)使用独立的图片模型,可分别配置。

模型 ID名称默认场景
generate_image_by_nano_banana_2Nano Banana 2storyboard 默认
generate_image_by_doubao_seedream_4Doubao Seedream 4entity 默认
generate_image_by_nano_bananaNano Banana
generate_image_by_gpt_image_2GPT Image 2

不传则后端使用默认值。传非法 ID 后端会返回 invalid_storyboard_image_model / invalid_entity_image_model 400 错误,并在响应的 allowed_values 字段给出当前可用列表。

其他设置

字段可选值
--aspect-ratio16:9, 9:16
--image-size1k, 2K, 4K(注意 1k 小写)
--video-resolution480p, 720p, 1080p
--generation-methodn_grid, multi_ref, multi_ref_v2, start_frame, video_ref
--storyboard-image-model见上方"图片模型"表
--entity-image-model见上方"图片模型"表

典型场景

理解这些场景,才能正确组合脚本完成用户需求。

场景 1:用户给出创作需求,从零开始(最常见)

1. get_balance.py                          → 确认余额 ≥ 10
2. create_project.py "赛博朋克短剧"        → 拿到 baseId, episodeId
3. save_settings.py --base-id B \
     --locale zh-CN --aspect-ratio 16:9 \
     --style anime_japanese_korean         → 配置项目
4. send_message.py --base-id B \
     --episode-id E "用户的原始描述"        → 拿到 session_id
5. query_session.py S --poll               → 自动轮询直到完成
6. download_results.py S \
     --output-dir ./赛博朋克短剧 \
     --prefix storyboard                   → 自动下载到本地

生成完成后自动执行下载,不需要用户额外请求。下载目录和前缀根据任务语义自动命名(如分镜用 storyboard,角色设定用 character,最终视频用 video 等)。

展示时机: 生成过程中只告知进度("角色图生成中..."、"分镜关键帧 5/8 完成"),不要提前给出项目链接。全部完成后,同时给出:本地文件列表 + 项目链接{ZOPIA_BASE_URL}/base/{baseId}?session_id={sessionId},用户可在浏览器中查看和编辑完整项目)。优先使用脚本输出中的 projectUrl 字段。

场景 2:在已有会话中追加新需求(如"再改一下角色造型")

1. send_message.py --base-id B --episode-id E \
     --session-id S "用户的新指令"          → 复用已有会话
2. 轮询 → 下载 → 展示

使用同一个 session_id 可保持上下文连续。

场景 3:在已有项目中继续创作

1. list_projects.py                         → 让用户选择项目
2. manage_episodes.py list --base-id B      → 查看剧集列表
3. send_message.py --base-id B \
     --episode-id E "新的创作指令"           → 新建会话
4. 轮询 → 下载 → 展示

场景 4:多集连续剧制作

一个项目(Project)可以包含多个剧集(Episode)。每集有独立的剧本、角色表、分镜表,但共享项目级设置(风格、画幅、模型)。

创作流程:

1. create_project.py "我的连续剧"              → 拿到 baseId, episodeId (自动创建第一集)
2. save_settings.py --base-id B ...            → 配置项目(所有剧集共享)

── 第一集 ──
3. send_message.py --base-id B \
     --episode-id EP1 "第一集:主角进入废墟..."  → 创作第一集
4. 轮询 → 下载

── 第二集 ──
5. manage_episodes.py create --base-id B       → 拿到新 episodeId (EP2)
6. send_message.py --base-id B \
     --episode-id EP2 "第二集:发现地下实验室..." → 创作第二集
7. 轮询 → 下载

── 更多剧集:重复步骤 5-7 ──

多集注意事项:

  • 每集有独立的角色和分镜,不会互相干扰
  • 如果后续剧集需要沿用前集角色形象,在消息中说明即可(如"延续第一集的角色设定"),后端 Agent 会处理
  • 创建新剧集前,建议先确认当前剧集已完成(status: "completed"
  • 可以随时用 manage_episodes.py list --base-id B 查看所有剧集状态
  • 删除剧集是不可逆操作,会清除该集所有内容

场景 5:将分镜视频合成为最终 MP4

所有分镜视频生成完毕后,可一键触发云端渲染,将所有片段按时间轴顺序合成为完整 MP4 文件。

1. render_episode.py trigger \
     --base-id B --episode-id E            → 拿到 render_id,渲染开始(异步)
2. render_episode.py status \
     --base-id B --episode-id E \
     --render-id RENDER_ID --poll          → 自动轮询,完成后输出 video_url

触发时机: 用户明确要求「导出视频」「合成 MP4」「生成完整视频」时才触发。分镜视频生成阶段不要触发。

渲染前提: storyboard 中至少有一个分镜有 video_urls(即已完成视频生成),否则渲染内容为空。

完成标志: status: "completed" 且返回 video_url(S3 直链,可直接下载或分享)。

轮询说明: 渲染由 Remotion Lambda 执行,通常需要 1–5 分钟,--poll 参数每 8 秒检查一次进度(progress 字段 0→1),超时上限 10 分钟。


读懂 workspace 进度

query_session.py 返回的 workspace 是项目的实时快照,用来判断创作走到哪一步了:

{
  "status": "running",
  "workspace": {
    "entities": [{"name": "角色A", "images_status": "done", "image_urls": [...]}],
    "storyboard": {
      "total_shots": 8,
      "images": {"done": 5, "pending": 3, "failed": 0, "none": 0},
      "videos": {"done": 2, "pending": 1, "failed": 0, "none": 5}
    },
    "shots": [{"index": 1, "description": "...", "image_urls": [...], "video_urls": [...]}]
  }
}

怎么读:

  • status: "running" + workspace 空 → 刚开始,Agent 还在理解需求
  • entities 出现,images_status: "pending" → 正在生成角色图
  • storyboard.images.pending > 0 → 正在生成分镜关键帧
  • storyboard.videos.pending > 0 → 正在生成视频片段
  • status: "completed" → 全部完成,检查有无 failed 项

轮询策略:

  • 间隔:每 8 秒查询一次
  • 增量拉取:首次 --after-seq 0,后续传上次拿到的最大 seq 值
  • 完成判断status 变为 completed(全部完成)或 idle
  • 超时:连续 3 分钟无新进展,告知用户「生成时间较长」并给出项目链接供自行查看,停止轮询
  • 错误重试:单次查询失败可重试 1 次;连续 3 次失败则停止并告知用户
  • 自动轮询:使用 --poll 参数可自动执行上述策略,无需手动循环

你的角色

Zopia 后端有完整的 AI 创作 Agent(对模型能力、prompt 工程、创作流程远比用户侧专业),你负责的是项目管理和需求传达

你要做的三件事:

  1. 配置 — 根据用户意图创建项目,选择合适的风格、模型、画幅
  2. 传话 — 把用户的原始需求原封不动发给后端 Agent
  3. 取件 — 追踪进度,在关键节点通知用户,完成后自动下载结果并展示

不要做的事:

  • 不替用户扩写、润色、翻译创作描述(用户说"帮我推演分镜",就直接传这句话,不要自己先写个分镜表再逐条发)
  • 不自行拆分任务(用户说"生成8个分镜图",发一条消息给后端,后端自己拆解)
  • 不在消息中添加自己编的描述词(如"超写实风格,电影级光影,8K分辨率")

正确:

用户说:「帮我做一个赛博朋克风格的短剧,讲一个机器人在废墟中寻找最后一朵花」

→ create_project.py "赛博朋克短剧"
→ save_settings.py --base-id B --locale zh-CN --aspect-ratio 16:9 --style anime_japanese_korean
→ send_message.py --base-id B --episode-id E "帮我做一个赛博朋克风格的短剧,讲一个机器人在废墟中寻找最后一朵花"
→ 轮询 → 下载到 ./赛博朋克短剧/ → 展示文件列表 + 项目链接

错误:

❌ 先自己写了个详细的 5 场剧本和分镜描述
❌ 把自己编的内容逐条发给后端
❌ 在用户描述后面追加 "cinematic lighting, 8K, ultra detailed"

错误码速查

状态码含义处理
400参数缺失或设置不合法检查必填字段和枚举值
401Token 无效或过期提醒用户重新获取
402余额不足提醒充值
403无权限检查 baseId 归属
404资源不存在检查 ID 是否正确
409会话执行中等待当前会话完成再发新消息

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

Influencer

Create, manage, and scale AI-generated virtual influencers with consistent characters, multi-platform content, and monetization workflows.

Registry SourceRecently Updated
Automation

Movie

Create films with AI video generation by managing scripts, prompts, consistency, and production workflows from concept to final cut.

Registry SourceRecently Updated
Automation

origram

Bot-friendly photo sharing webservice via HTTP 402 protocol. Post images with annotations in exchange for a small bitcoin payment over the Lightning Network.

Registry SourceRecently Updated
Automation

LocalUDPMessenger

Use when agents need to communicate over the local network — "send message to agent", "discover agents", "check for messages", "coordinate with other agents", "approve agent", "agent status", "add peer", "message log"

Registry SourceRecently Updated