{"id":"0af0d56d-572e-4d79-951e-1be2c0c374c4","entityType":"agent","slug":"clawhub-lambdua-zopia-skill","name":"Zopia Skills","canonicalUrl":"https://www.xpersona.co/agent/clawhub-lambdua-zopia-skill","canonicalPath":"/agent/clawhub-lambdua-zopia-skill","generatedAt":"2026-10-09T17:49:41.407Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T06:57:42.724Z","emptyReason":null},"description":"Zopia AI 视频创作技能 - 通过 Zopia 平台的 AI Agent 进行视频/图片创作。覆盖场景包括：AI 视频生成（文生视频、图生视频）、AI 图片生成（角色设定图、分镜关键帧）、剧本创作（对话/旁白/场景描述）、角色设计、分镜设计、多集连续剧制作。当用户提到 zopia、视频创作、短剧制作、分镜、... Skill: Zopia Skills Owner: lambdua Summary: Zopia AI 视频创作技能 - 通过 Zopia 平台的 AI Agent 进行视频/图片创作。覆盖场景包括：AI 视频生成（文生视频、图生视频）、AI 图片生成（角色设定图、分镜关键帧）、剧本创作（对话/旁白/场景描述）、角色设计、分镜设计、多集连续剧制作。当用户提到 zopia、视频创作、短剧制作、分镜、... Tags: latest:1.1.0 Version history: v1.1.0 | 2026-04-25T06:10:40.625Z | user 新增分镜/角色场景图模型配置，支持 GPT Image 2 v1.0.2 | 2026-04-08T08:59:21.688Z | user 新增 Seedance 2.0 Fast 和 PixVerse C1 模型，更新 Seedance 2.0 名称 v1.0.1 | 2","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 3.8K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s178f21p50r99865h2g2798kzh83md9g:zopia-skill","sourceUrl":"https://clawhub.ai/lambdua/zopia-skill","homepage":"https://clawhub.ai/lambdua/skills/zopia-skill","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/lambdua/zopia-skill","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/lambdua/skills/zopia-skill","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":54,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Zopia AI 视频创作技能 - 通过 Zopia 平台的 AI Agent 进行视频/图片创作。覆盖场景包括：AI 视频生成（文生视频、图生视频）、AI 图片生成（角色设定图、分镜关键帧）、剧本创作（对话/旁白/场景描述）、角色设计、分镜设计、多集连续剧制作。当用户提到 zopia、视频创作、短剧制作、分镜、..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T06:57:42.724Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T06:57:42.724Z","emptyReason":null},"stars":null,"forks":null,"downloads":3753,"packageName":null,"latestVersion":"1.1.0","tractionLabel":"3.8K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T06:57:42.724Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T06:57:42.724Z","lastCrawledAt":"2026-10-09T06:57:42.724Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T06:57:42.724Z","lastVerifiedAt":null,"highlights":[{"version":"1.1.0","createdAt":"2026-04-25T06:10:40.625Z","changelog":"新增分镜/角色场景图模型配置，支持 GPT Image 2","fileCount":16,"zipByteSize":24712},{"version":"1.0.2","createdAt":"2026-04-08T08:59:21.688Z","changelog":"新增 Seedance 2.0 Fast 和 PixVerse C1 模型，更新 Seedance 2.0 名称","fileCount":13,"zipByteSize":19574},{"version":"1.0.1","createdAt":"2026-04-02T08:03:18.442Z","changelog":"修正注释中的旧域名为 zopia.ai","fileCount":13,"zipByteSize":18373},{"version":"1.0.0","createdAt":"2026-04-01T15:48:53.778Z","changelog":"初始版本","fileCount":12,"zipByteSize":17310}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s178f21p50r99865h2g2798kzh83md9g:zopia-skill","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-lambdua-zopia-skill/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-lambdua-zopia-skill/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-lambdua-zopia-skill/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-lambdua-zopia-skill/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-lambdua-zopia-skill/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-lambdua-zopia-skill/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T17:49:41.406Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-lambdua-zopia-skill/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-lambdua-zopia-skill/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-lambdua-zopia-skill/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-lambdua-zopia-skill/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-09T06:57:42.724Z","emptyReason":null},"readme":"Skill: Zopia Skills\n\nOwner: lambdua\n\nSummary: Zopia AI 视频创作技能 - 通过 Zopia 平台的 AI Agent 进行视频/图片创作。覆盖场景包括：AI 视频生成（文生视频、图生视频）、AI 图片生成（角色设定图、分镜关键帧）、剧本创作（对话/旁白/场景描述）、角色设计、分镜设计、多集连续剧制作。当用户提到 zopia、视频创作、短剧制作、分镜、...\n\nTags: latest:1.1.0\n\nVersion history:\n\nv1.1.0 | 2026-04-25T06:10:40.625Z | user\n\n新增分镜/角色场景图模型配置，支持 GPT Image 2\n\nv1.0.2 | 2026-04-08T08:59:21.688Z | user\n\n新增 Seedance 2.0 Fast 和 PixVerse C1 模型，更新 Seedance 2.0 名称\n\nv1.0.1 | 2026-04-02T08:03:18.442Z | user\n\n修正注释中的旧域名为 zopia.ai\n\nv1.0.0 | 2026-04-01T15:48:53.778Z | user\n\n初始版本\n\nArchive index:\n\nArchive v1.1.0: 16 files, 24712 bytes\n\nFiles: CLAUDE.md (3662b), docs/publish-to-clawhub.md (1443b), README.md (3520b), scripts/_common.py (6673b), scripts/create_project.py (759b), scripts/download_results.py (5709b), scripts/get_balance.py (438b), scripts/list_projects.py (923b), scripts/manage_episodes.py (1555b), scripts/query_session.py (2579b), scripts/render_episode.py (3440b), scripts/save_settings.py (2708b), scripts/send_message.py (1422b), skill-card.md (2543b), SKILL.md (13692b), _meta.json (130b)\n\nFile v1.1.0:SKILL.md\n\n---\nname: zopia-skill\ndescription: Zopia AI 视频创作技能 - 通过 Zopia 平台的 AI Agent 进行视频/图片创作。覆盖场景包括：AI 视频生成（文生视频、图生视频）、AI 图片生成（角色设定图、分镜关键帧）、剧本创作（对话/旁白/场景描述）、角色设计、分镜设计、多集连续剧制作。当用户提到 zopia、视频创作、短剧制作、分镜、角色设计、AI 视频生成时应触发。关键判断：只要用户的请求涉及通过 AI 进行系统化的视频创作流程（剧本→角色→分镜→视频），都必须触发此技能。\nuser-invocable: true\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🎬\",\n        \"requires\":\n          {\n            \"bins\": [\"python3\"],\n            \"env\": [\"ZOPIA_ACCESS_KEY\"]\n          },\n        \"primaryEnv\": \"ZOPIA_ACCESS_KEY\"\n      }\n  }\n---\n\n# Zopia AI 视频创作\n\nZopia 是一个项目制的 AI 视频创作平台。每个项目包含完整的创作流水线：**剧本 → 角色 → 分镜 → 视频**，由后端 AI Agent 自动驱动。你通过脚本管理项目、传达用户意图、追踪进度、获取成果。\n\n## 环境配置\n\n```bash\nexport ZOPIA_ACCESS_KEY=\"zopia-xxxxxxxxxxxx\"   # 必需，30天有效\nexport ZOPIA_BASE_URL=\"https://zopia.ai\"  # 可选\n```\n\n仅使用 Python 标准库，无需额外安装。\n\n## 核心概念\n\n| 概念 | 说明 |\n|------|------|\n| **Project (Base)** | 创作项目，包含设置、剧集、所有资产。创建时自动生成首集 |\n| **Episode** | 剧集，同一项目下可创建多集，每集有独立的剧本/角色/分镜 |\n| **Session** | 一次 Agent 对话。异步执行，通过轮询获取进展 |\n| **Workspace** | 项目的实时工作区快照，包含角色(entities)、分镜(storyboard)、各媒体的生成状态 |\n\n## 脚本速查\n\n| 脚本 | 用途 | 关键参数 |\n|------|------|---------|\n| `create_project.py` | 创建项目 | `[名称]` |\n| `save_settings.py` | 项目设置 | `--base-id` `--style` `--aspect-ratio` `--video-model` `--storyboard-image-model` `--entity-image-model` ... |\n| `send_message.py` | 发送创作指令（异步） | `--base-id` `--episode-id` `消息` |\n| `query_session.py` | 查询进展 | `SESSION_ID` `--poll` `--after-seq N` |\n| `download_results.py` | 下载媒体资源 | `SESSION_ID` `--output-dir` `--type image\\|video` |\n| `get_balance.py` | 余额查询 | — |\n| `list_projects.py` | 列出项目 | `--page` `--page-size` |\n| `manage_episodes.py` | 剧集管理 | `list\\|create\\|delete` |\n| `render_episode.py` | 合成最终视频 | `trigger\\|status` `--base-id` `--episode-id` `--poll` |\n\n## 项目设置参考\n\n创建项目后，必须配置基础设置（locale / aspect_ratio / style）才能开始创作。\n\n```bash\npython3 {baseDir}/scripts/save_settings.py --base-id BASE_ID \\\n  --locale zh-CN --aspect-ratio 16:9 --style realistic_3d_cg\n```\n\n### 风格\n\n| ID | 说明 |\n|----|------|\n| `anime_japanese_korean` | 日韩动漫 |\n| `realistic_3d_cg` | 3D CG 写实 🔥 |\n| `pixar_3d_cartoon` | Pixar 3D 卡通 |\n| `photorealistic_real_human` | 真人写实 |\n| `3D_CG_Animation` | 3D CG 动画 🔥 |\n| `anime_chibi` | Q版可爱 |\n| `anime_shinkai` | 新海诚 |\n| `anime_ghibli` | 吉卜力 |\n| `stylized_pixel` | 像素艺术 |\n\n别名支持：`realistic` → `realistic_3d_cg`，`ghibli` → `anime_ghibli`，`shinkai` → `anime_shinkai`，`pixel` → `stylized_pixel`\n\n### 视频模型 × 生成方式\n\n不同模型支持不同的生成方式（generation_method），不匹配会报错。\n\n| 模型 ID | 名称 | 支持的方式 | 默认 |\n|---------|------|-----------|------|\n| `generate_video_by_seedance_20` | Seedance 2.0 Pro ⭐ | n_grid, video_ref, multi_ref, multi_ref_v2 | video_ref |\n| `generate_video_by_seedance_20_fast` | Seedance 2.0 Fast | n_grid, video_ref, multi_ref, multi_ref_v2 | video_ref |\n| `generate_video_by_kling_o3` | Kling O3 | start_frame, n_grid, multi_ref, multi_ref_v2 | n_grid |\n| `generate_video_by_kling_v3_0` | Kling V3.0 | start_frame, n_grid | n_grid |\n| `generate_video_by_pixverse_c1` | PixVerse C1 | start_frame, multi_ref | start_frame |\n| `generate_video_by_hailuo_02` | Hailuo 2.3 | start_frame | start_frame |\n| `generate_video_by_wan26_i2v` | Wan 2.6 | start_frame | start_frame |\n| `generate_video_by_wan26_i2v_flash` | Wan 2.6 Flash | start_frame | start_frame |\n| `generate_video_by_viduq2_pro` | Vidu Q2 Pro | start_frame | start_frame |\n| `generate_video_by_viduq3_pro` | Vidu Q3 Pro | start_frame | start_frame |\n| `generate_video_by_viduq3` | Vidu Q3 | n_grid, multi_ref, multi_ref_v2 | n_grid |\n| `generate_video_by_seedance_15` | Seedance 1.5 Pro | start_frame | start_frame |\n\n### 图片模型\n\n分镜关键帧（`storyboard_image_model`）与角色/场景设定图（`entity_image_model`）使用独立的图片模型，可分别配置。\n\n| 模型 ID | 名称 | 默认场景 |\n|---------|------|---------|\n| `generate_image_by_nano_banana_2` | Nano Banana 2 | storyboard 默认 |\n| `generate_image_by_doubao_seedream_4` | Doubao Seedream 4 | entity 默认 |\n| `generate_image_by_nano_banana` | Nano Banana | — |\n| `generate_image_by_gpt_image_2` ⭐ | GPT Image 2 | — |\n\n不传则后端使用默认值。传非法 ID 后端会返回 `invalid_storyboard_image_model` / `invalid_entity_image_model` 400 错误，并在响应的 `allowed_values` 字段给出当前可用列表。\n\n### 其他设置\n\n| 字段 | 可选值 |\n|------|--------|\n| `--aspect-ratio` | `16:9`, `9:16` |\n| `--image-size` | `1k`, `2K`, `4K`（注意 1k 小写）|\n| `--video-resolution` | `480p`, `720p`, `1080p` |\n| `--generation-method` | `n_grid`, `multi_ref`, `multi_ref_v2`, `start_frame`, `video_ref` |\n| `--storyboard-image-model` | 见上方\"图片模型\"表 |\n| `--entity-image-model` | 见上方\"图片模型\"表 |\n\n---\n\n## 典型场景\n\n理解这些场景，才能正确组合脚本完成用户需求。\n\n### 场景 1：用户给出创作需求，从零开始（最常见）\n\n```\n1. get_balance.py                          → 确认余额 ≥ 10\n2. create_project.py \"赛博朋克短剧\"        → 拿到 baseId, episodeId\n3. save_settings.py --base-id B \\\n     --locale zh-CN --aspect-ratio 16:9 \\\n     --style anime_japanese_korean         → 配置项目\n4. send_message.py --base-id B \\\n     --episode-id E \"用户的原始描述\"        → 拿到 session_id\n5. query_session.py S --poll               → 自动轮询直到完成\n6. download_results.py S \\\n     --output-dir ./赛博朋克短剧 \\\n     --prefix storyboard                   → 自动下载到本地\n```\n\n生成完成后**自动执行下载**，不需要用户额外请求。下载目录和前缀根据任务语义自动命名（如分镜用 `storyboard`，角色设定用 `character`，最终视频用 `video` 等）。\n\n**展示时机：** 生成过程中只告知进度（\"角色图生成中...\"、\"分镜关键帧 5/8 完成\"），**不要提前给出项目链接**。全部完成后，同时给出：**本地文件列表** + **项目链接**（`{ZOPIA_BASE_URL}/base/{baseId}?session_id={sessionId}`，用户可在浏览器中查看和编辑完整项目）。优先使用脚本输出中的 `projectUrl` 字段。\n\n### 场景 2：在已有会话中追加新需求（如\"再改一下角色造型\"）\n\n```\n1. send_message.py --base-id B --episode-id E \\\n     --session-id S \"用户的新指令\"          → 复用已有会话\n2. 轮询 → 下载 → 展示\n```\n\n使用同一个 `session_id` 可保持上下文连续。\n\n### 场景 3：在已有项目中继续创作\n\n```\n1. list_projects.py                         → 让用户选择项目\n2. manage_episodes.py list --base-id B      → 查看剧集列表\n3. send_message.py --base-id B \\\n     --episode-id E \"新的创作指令\"           → 新建会话\n4. 轮询 → 下载 → 展示\n```\n\n### 场景 4：多集连续剧制作\n\n一个项目(Project)可以包含多个剧集(Episode)。每集有独立的剧本、角色表、分镜表，但共享项目级设置（风格、画幅、模型）。\n\n**创作流程：**\n\n```\n1. create_project.py \"我的连续剧\"              → 拿到 baseId, episodeId (自动创建第一集)\n2. save_settings.py --base-id B ...            → 配置项目（所有剧集共享）\n\n── 第一集 ──\n3. send_message.py --base-id B \\\n     --episode-id EP1 \"第一集：主角进入废墟...\"  → 创作第一集\n4. 轮询 → 下载\n\n── 第二集 ──\n5. manage_episodes.py create --base-id B       → 拿到新 episodeId (EP2)\n6. send_message.py --base-id B \\\n     --episode-id EP2 \"第二集：发现地下实验室...\" → 创作第二集\n7. 轮询 → 下载\n\n── 更多剧集：重复步骤 5-7 ──\n```\n\n**多集注意事项：**\n- 每集有独立的角色和分镜，不会互相干扰\n- 如果后续剧集需要沿用前集角色形象，在消息中说明即可（如\"延续第一集的角色设定\"），后端 Agent 会处理\n- 创建新剧集前，建议先确认当前剧集已完成（`status: \"completed\"`）\n- 可以随时用 `manage_episodes.py list --base-id B` 查看所有剧集状态\n- 删除剧集是不可逆操作，会清除该集所有内容\n\n### 场景 5：将分镜视频合成为最终 MP4\n\n所有分镜视频生成完毕后，可一键触发云端渲染，将所有片段按时间轴顺序合成为完整 MP4 文件。\n\n```\n1. render_episode.py trigger \\\n     --base-id B --episode-id E            → 拿到 render_id，渲染开始（异步）\n2. render_episode.py status \\\n     --base-id B --episode-id E \\\n     --render-id RENDER_ID --poll          → 自动轮询，完成后输出 video_url\n```\n\n**触发时机：** 用户明确要求「导出视频」「合成 MP4」「生成完整视频」时才触发。分镜视频生成阶段不要触发。\n\n**渲染前提：** storyboard 中至少有一个分镜有 video_urls（即已完成视频生成），否则渲染内容为空。\n\n**完成标志：** `status: \"completed\"` 且返回 `video_url`（S3 直链，可直接下载或分享）。\n\n**轮询说明：** 渲染由 Remotion Lambda 执行，通常需要 1–5 分钟，`--poll` 参数每 8 秒检查一次进度（`progress` 字段 0→1），超时上限 10 分钟。\n\n---\n\n## 读懂 workspace 进度\n\n`query_session.py` 返回的 `workspace` 是项目的实时快照，用来判断创作走到哪一步了：\n\n```json\n{\n  \"status\": \"running\",\n  \"workspace\": {\n    \"entities\": [{\"name\": \"角色A\", \"images_status\": \"done\", \"image_urls\": [...]}],\n    \"storyboard\": {\n      \"total_shots\": 8,\n      \"images\": {\"done\": 5, \"pending\": 3, \"failed\": 0, \"none\": 0},\n      \"videos\": {\"done\": 2, \"pending\": 1, \"failed\": 0, \"none\": 5}\n    },\n    \"shots\": [{\"index\": 1, \"description\": \"...\", \"image_urls\": [...], \"video_urls\": [...]}]\n  }\n}\n```\n\n**怎么读：**\n\n- `status: \"running\"` + workspace 空 → 刚开始，Agent 还在理解需求\n- `entities` 出现，`images_status: \"pending\"` → 正在生成角色图\n- `storyboard.images.pending > 0` → 正在生成分镜关键帧\n- `storyboard.videos.pending > 0` → 正在生成视频片段\n- `status: \"completed\"` → 全部完成，检查有无 failed 项\n\n**轮询策略：**\n- **间隔**：每 8 秒查询一次\n- **增量拉取**：首次 `--after-seq 0`，后续传上次拿到的最大 seq 值\n- **完成判断**：`status` 变为 `completed`（全部完成）或 `idle`\n- **超时**：连续 3 分钟无新进展，告知用户「生成时间较长」并给出项目链接供自行查看，停止轮询\n- **错误重试**：单次查询失败可重试 1 次；连续 3 次失败则停止并告知用户\n- **自动轮询**：使用 `--poll` 参数可自动执行上述策略，无需手动循环\n\n---\n\n## 你的角色\n\nZopia 后端有完整的 AI 创作 Agent（对模型能力、prompt 工程、创作流程远比用户侧专业），你负责的是**项目管理和需求传达**。\n\n**你要做的三件事：**\n1. **配置** — 根据用户意图创建项目，选择合适的风格、模型、画幅\n2. **传话** — 把用户的原始需求原封不动发给后端 Agent\n3. **取件** — 追踪进度，在关键节点通知用户，完成后自动下载结果并展示\n\n**不要做的事：**\n- 不替用户扩写、润色、翻译创作描述（用户说\"帮我推演分镜\"，就直接传这句话，不要自己先写个分镜表再逐条发）\n- 不自行拆分任务（用户说\"生成8个分镜图\"，发一条消息给后端，后端自己拆解）\n- 不在消息中添加自己编的描述词（如\"超写实风格，电影级光影，8K分辨率\"）\n\n**正确：**\n```\n用户说：「帮我做一个赛博朋克风格的短剧，讲一个机器人在废墟中寻找最后一朵花」\n\n→ create_project.py \"赛博朋克短剧\"\n→ save_settings.py --base-id B --locale zh-CN --aspect-ratio 16:9 --style anime_japanese_korean\n→ send_message.py --base-id B --episode-id E \"帮我做一个赛博朋克风格的短剧，讲一个机器人在废墟中寻找最后一朵花\"\n→ 轮询 → 下载到 ./赛博朋克短剧/ → 展示文件列表 + 项目链接\n```\n\n**错误：**\n```\n❌ 先自己写了个详细的 5 场剧本和分镜描述\n❌ 把自己编的内容逐条发给后端\n❌ 在用户描述后面追加 \"cinematic lighting, 8K, ultra detailed\"\n```\n\n---\n\n## 错误码速查\n\n| 状态码 | 含义 | 处理 |\n|--------|------|------|\n| 400 | 参数缺失或设置不合法 | 检查必填字段和枚举值 |\n| 401 | Token 无效或过期 | 提醒用户重新获取 |\n| 402 | 余额不足 | 提醒充值 |\n| 403 | 无权限 | 检查 baseId 归属 |\n| 404 | 资源不存在 | 检查 ID 是否正确 |\n| 409 | 会话执行中 | 等待当前会话完成再发新消息 |\n\nFile v1.1.0:README.md\n\n# Zopia Skills\n\nZopia AI 视频创作技能 — 通过 [Zopia](https://zopia.ai) 平台的 AI Agent 进行视频/图片创作。\n\n覆盖场景：AI 视频生成（文生视频、图生视频）、AI 图片生成（角色设定图、分镜关键帧）、剧本创作、角色设计、分镜设计、多集连续剧制作。\n\n## 安装\n\n### 通过 npx 安装（推荐）\n\n```bash\nnpx skills add 11cafe/zopia-skills\n```\n\n> [`skills`](https://github.com/vercel-labs/skills) 是 Vercel Labs 开发的跨平台技能安装 CLI，支持 Claude Code、Gemini CLI、Codex、Cursor 等 40+ 个 Agent。\n\n安装到指定 Agent：\n\n```bash\nnpx skills add 11cafe/zopia-skills -a claude-code\n```\n\n### 通过 OpenClaw 安装\n\n在 [OpenClaw](https://openclaw.ai) 技能市场搜索 `zopia-skill`，或使用命令行：\n\n```bash\nnpx clawhub install zopia-skill\n```\n\n### 手动安装\n\n```bash\ngit clone https://github.com/11cafe/zopia-skills.git\n```\n\n将 `SKILL.md` 和 `scripts/` 目录复制到对应的技能目录：\n\n| 范围 | 路径 |\n|------|------|\n| 个人全局 | `~/.claude/skills/zopia-skill/` |\n| 项目级别 | `.claude/skills/zopia-skill/` |\n\n## 配置\n\n使用前需设置环境变量：\n\n```bash\nexport ZOPIA_ACCESS_KEY=\"zopia-xxxxxxxxxxxx\"   # 必需，30天有效\nexport ZOPIA_BASE_URL=\"https://zopia.ai\"  # 可选，默认值即可\n```\n\n仅依赖 Python 标准库，无需安装第三方包。需要 `python3` 可用。\n\n## 使用\n\n安装技能后，在 Claude Code 中直接描述你的创作需求即可：\n\n```\n帮我做一个赛博朋克风格的短剧，讲一个机器人在废墟中寻找最后一朵花\n```\n\n技能会自动完成：创建项目 → 配置设置 → 发送创作指令 → 轮询进度 → 下载结果。\n\n### 支持的风格\n\n| ID | 说明 |\n|----|------|\n| `anime_japanese_korean` | 日韩动漫 |\n| `realistic_3d_cg` | 3D CG 写实 |\n| `pixar_3d_cartoon` | Pixar 3D 卡通 |\n| `photorealistic_real_human` | 真人写实 |\n| `3D_CG_Animation` | 3D CG 动画 |\n| `anime_chibi` | Q版可爱 |\n| `anime_shinkai` | 新海诚 |\n| `anime_ghibli` | 吉卜力 |\n| `stylized_pixel` | 像素艺术 |\n\n### 支持的图片模型\n\n分镜图（storyboard）与角色/场景图（entity）可分别配置，两者共享同一组可选值：\n\n| 模型 | 名称 |\n|------|------|\n| `generate_image_by_nano_banana_2` | Nano Banana 2（storyboard 默认）|\n| `generate_image_by_doubao_seedream_4` | Doubao Seedream 4（entity 默认）|\n| `generate_image_by_nano_banana` | Nano Banana |\n| `generate_image_by_gpt_image_2` | GPT Image 2 |\n\n### 支持的视频模型\n\n| 模型 | 名称 |\n|------|------|\n| `generate_video_by_kling_o3` | Kling O3 |\n| `generate_video_by_kling_v3_0` | Kling V3.0 |\n| `generate_video_by_hailuo_02` | Hailuo 2.3 |\n| `generate_video_by_wan26_i2v` | Wan 2.6 |\n| `generate_video_by_wan26_i2v_flash` | Wan 2.6 Flash |\n| `generate_video_by_viduq2_pro` | Vidu Q2 Pro |\n| `generate_video_by_viduq3_pro` | Vidu Q3 Pro |\n| `generate_video_by_viduq3` | Vidu Q3 |\n| `generate_video_by_seedance_15` | Seedance 1.5 Pro |\n\n### 脚本列表\n\n| 脚本 | 用途 |\n|------|------|\n| `create_project.py` | 创建项目 |\n| `save_settings.py` | 配置项目设置 |\n| `send_message.py` | 发送创作指令 |\n| `query_session.py` | 查询创作进度 |\n| `download_results.py` | 下载媒体资源 |\n| `get_balance.py` | 查询余额 |\n| `list_projects.py` | 列出所有项目 |\n| `manage_episodes.py` | 管理剧集 |\n| `render_episode.py` | 合成最终视频（MP4） |\n\n## License\n\n[MIT](LICENSE)\n\nFile v1.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn7d76nd4k7hjp2tdaybzem70x83mynm\",\n  \"slug\": \"zopia-skill\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1777097440625\n}\n\nFile v1.1.0:CLAUDE.md\n\n# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## 项目定位\n\n本仓库是 **Zopia AI 视频创作 Skill 包**，被 Claude Code / Gemini CLI / Codex / Cursor 等 Agent 通过 `npx skills add` 或 `npx clawhub install` 安装后调用。它本身不是后端服务，而是一组 Python 脚本 + 一份 `SKILL.md` 行为指引，封装对 Zopia 平台 HTTP API 的调用。\n\n后端实现在姐妹仓库 `C:\\code\\jobCode\\zipia\\jaaz-cloud`（同 host 下的 `https://zopia.ai`），本仓库的脚本通过 HTTP 调用其接口。修改本项目时，若涉及接口字段、新模型 ID、新风格枚举等，对应能力须在 `jaaz-cloud` 已上线，否则脚本调用会报 400/404。\n\n## 核心架构\n\n```\nSKILL.md            ← 行为契约：Agent 什么时候触发、如何组合脚本、典型场景、错误处理\nREADME.md           ← 用户向：安装/配置/枚举值速查\nscripts/_common.py  ← 唯一的共享层：urllib HTTP + Bearer 鉴权 + 业务级封装函数\nscripts/*.py        ← 一脚本一动作，全是 argparse + _common 函数 + print_json 的薄壳\ndocs/               ← 维护者文档（如 publish-to-clawhub.md）\n```\n\n**只允许 Python 标准库**。`_common.py` 用 `urllib.request` 实现 HTTP，是有意为之——Skill 安装到用户机器后不能要求 `pip install`。新增脚本必须沿用这个约定，**不要引入 requests / httpx / pydantic 等第三方包**。\n\n每个脚本的写法是固定的薄壳模式：\n\n1. `sys.path.insert(0, os.path.dirname(__file__))` 后从 `_common` 导入\n2. `argparse` 解析参数\n3. 调用 `_common` 里的业务函数\n4. `print_json(result)` 输出，由调用方（Agent）解析\n\n新增 API 调用时，**先在 `_common.py` 加业务级封装函数**（参考 `create_project` / `send_message`），再写脚本壳。不要让脚本自己拼 URL 和 header。\n\n## SKILL.md 是行为源\n\n`SKILL.md` 是 Agent 的运行手册——它规定了 Agent 应该如何串联这些脚本（场景 1–5）、如何读 workspace 进度、什么时候该展示项目链接、不要替用户扩写需求等。**修改脚本参数或新增脚本时，必须同步更新 `SKILL.md` 的脚本速查表与场景示例**，否则 Agent 行为会与实际能力脱节。`README.md` 的枚举值表（风格、模型）也要同步。\n\n## 常用命令\n\n仓库无 lint、无测试、无构建。日常只有这些：\n\n```bash\n# 配置环境变量（脚本运行前提）\nexport ZOPIA_ACCESS_KEY=\"zopia-xxxxxxxxxxxx\"\nexport ZOPIA_BASE_URL=\"https://zopia.ai\"   # 可选，默认即此\n\n# 直接跑脚本调试\npython3 scripts/get_balance.py\npython3 scripts/create_project.py \"测试项目\"\npython3 scripts/query_session.py SESSION_ID --poll\n```\n\n调试本地 `jaaz-cloud` 时，把 `ZOPIA_BASE_URL` 改到本地端口（如 `http://localhost:3000`）即可。\n\n## 发布流程\n\n发布到 ClawHub 技能市场，详细步骤见 `docs/publish-to-clawhub.md`：\n\n```bash\ngit push                              # 先推 GitHub\nnpx clawhub publish . --slug zopia-skill --version x.y.z --changelog \"...\"\nnpx clawhub inspect zopia-skill       # 验证 Latest 字段\n```\n\n版本号 semver：新增模型/功能 → minor +1；修 bug / 文档更新 → patch +1。\n\n## 项目约定\n\n- **Git commit message 用中文**，控制在 20 字以内（参考最近提交：`feat: 新增 Seedance 2.0 Fast 和 PixVerse C1 模型`）\n- **不要 `git commit`**，除非用户明确要求\n- 重构时不考虑兼容性，直接删除旧逻辑（除非用户明确要求保留）\n- npm/npx 命令在 Windows 下用 cmd 执行\n\nFile v1.1.0:docs/publish-to-clawhub.md\n\n# 发布 zopia-skill 到 ClawHub\n\n## 前提条件\n\n- Node.js 已安装（`npx` 可用）\n- 已登录 ClawHub（见下文）\n\n## 1. 登录\n\n首次使用需登录：\n\n```bash\nnpx clawhub login\n```\n\n验证登录状态：\n\n```bash\nnpx clawhub whoami\n# ✔ Lambdua\n```\n\n登录态会持久化，后续无需重复登录。\n\n## 2. 修改内容并推送 GitHub\n\n修改 `SKILL.md`、脚本等文件后，先 commit & push 到 GitHub：\n\n```bash\ngit add .\ngit commit -m \"描述本次变更\"\ngit push\n```\n\n## 3. 发布新版本到 ClawHub\n\n```bash\nnpx clawhub publish /path/to/zopia-skills \\\n  --slug zopia-skill \\\n  --version <新版本号> \\\n  --changelog \"本次变更说明\"\n```\n\n**示例：**\n\n```bash\nnpx clawhub publish /c/code/jobCode/zipia/zopia-skills \\\n  --slug zopia-skill \\\n  --version 1.0.3 \\\n  --changelog \"新增 xxx 模型\"\n```\n\n版本号遵循 semver：\n- 新增模型 / 功能 → 次版本号 +1（如 1.0.1 → 1.1.0）\n- Bug 修复 / 文档更新 → 补丁号 +1（如 1.0.1 → 1.0.2）\n\n## 4. 验证发布结果\n\n```bash\nnpx clawhub inspect zopia-skill\n```\n\n确认 `Latest` 字段已更新为新版本号。\n\n## 常用命令速查\n\n| 命令 | 说明 |\n|------|------|\n| `npx clawhub whoami` | 查看当前登录用户 |\n| `npx clawhub inspect zopia-skill` | 查看已发布版本信息 |\n| `npx clawhub publish <path> --slug zopia-skill --version x.y.z` | 发布新版本 |\n| `npx clawhub skill --help` | 管理已发布技能 |\n\nFile v1.1.0:skill-card.md\n\n## Description:\n\nZopia Skills helps agents manage Zopia projects for AI video and image creation, including project setup, script, character, storyboard, progress polling, media download, and final episode rendering workflows.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[lambdua](https://clawhub.ai/user/lambdua)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal creators and developers use this skill to operate Zopia's project-based AI video creation flow from an agent, including configuring projects, sending creative requests, tracking generation status, downloading generated media, and rendering completed episodes.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill uses a Zopia account token and can submit prompts, project data, and credit-consuming generation requests to Zopia.\n\nMitigation: Use a dedicated ZOPIA_ACCESS_KEY with limited balance where possible, and review requests before spending credits.\n\nRisk: Changing ZOPIA_BASE_URL can redirect authenticated requests away from the official service.\n\nMitigation: Leave ZOPIA_BASE_URL at the default official HTTPS endpoint unless intentionally testing a trusted environment.\n\nRisk: The skill downloads remote generated media to local paths.\n\nMitigation: Review the output directory, media type, and downloaded file list; rely on the script's file-size cap for large media.\n\nRisk: Episode deletion is irreversible according to the artifact behavior.\n\nMitigation: Confirm the target episode ID and project context before running delete operations.\n\n## Reference(s):\n\n- [Zopia platform](https://zopia.ai)\n- [Zopia Skills on ClawHub](https://clawhub.ai/lambdua/skills/zopia-skill)\n- [lambdua publisher profile](https://clawhub.ai/user/lambdua)\n\n## Skill Output:\n\n**Output Type(s):** [text, shell commands, configuration, guidance, files]\n\n**Output Format:** [Markdown guidance with shell commands, JSON command results, project links, and downloaded image or video files]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires python3 and ZOPIA_ACCESS_KEY; generated media downloads are capped by the skill's download script at 200 MB per file.]\n\n## Skill Version(s):\n\n1.1.0 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.2: 13 files, 19574 bytes\n\nFiles: README.md (3091b), scripts/_common.py (6673b), scripts/create_project.py (759b), scripts/download_results.py (5709b), scripts/get_balance.py (438b), scripts/list_projects.py (923b), scripts/manage_episodes.py (1555b), scripts/query_session.py (2579b), scripts/render_episode.py (3440b), scripts/save_settings.py (2290b), scripts/send_message.py (1422b), SKILL.md (12819b), _meta.json (130b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: zopia-skill\ndescription: Zopia AI 视频创作技能 - 通过 Zopia 平台的 AI Agent 进行视频/图片创作。覆盖场景包括：AI 视频生成（文生视频、图生视频）、AI 图片生成（角色设定图、分镜关键帧）、剧本创作（对话/旁白/场景描述）、角色设计、分镜设计、多集连续剧制作。当用户提到 zopia、视频创作、短剧制作、分镜、角色设计、AI 视频生成时应触发。关键判断：只要用户的请求涉及通过 AI 进行系统化的视频创作流程（剧本→角色→分镜→视频），都必须触发此技能。\nuser-invocable: true\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🎬\",\n        \"requires\":\n          {\n            \"bins\": [\"python3\"],\n            \"env\": [\"ZOPIA_ACCESS_KEY\"]\n          },\n        \"primaryEnv\": \"ZOPIA_ACCESS_KEY\"\n      }\n  }\n---\n\n# Zopia AI 视频创作\n\nZopia 是一个项目制的 AI 视频创作平台。每个项目包含完整的创作流水线：**剧本 → 角色 → 分镜 → 视频**，由后端 AI Agent 自动驱动。你通过脚本管理项目、传达用户意图、追踪进度、获取成果。\n\n## 环境配置\n\n```bash\nexport ZOPIA_ACCESS_KEY=\"zopia-xxxxxxxxxxxx\"   # 必需，30天有效\nexport ZOPIA_BASE_URL=\"https://zopia.ai\"  # 可选\n```\n\n仅使用 Python 标准库，无需额外安装。\n\n## 核心概念\n\n| 概念 | 说明 |\n|------|------|\n| **Project (Base)** | 创作项目，包含设置、剧集、所有资产。创建时自动生成首集 |\n| **Episode** | 剧集，同一项目下可创建多集，每集有独立的剧本/角色/分镜 |\n| **Session** | 一次 Agent 对话。异步执行，通过轮询获取进展 |\n| **Workspace** | 项目的实时工作区快照，包含角色(entities)、分镜(storyboard)、各媒体的生成状态 |\n\n## 脚本速查\n\n| 脚本 | 用途 | 关键参数 |\n|------|------|---------|\n| `create_project.py` | 创建项目 | `[名称]` |\n| `save_settings.py` | 项目设置 | `--base-id` `--style` `--aspect-ratio` `--video-model` ... |\n| `send_message.py` | 发送创作指令（异步） | `--base-id` `--episode-id` `消息` |\n| `query_session.py` | 查询进展 | `SESSION_ID` `--poll` `--after-seq N` |\n| `download_results.py` | 下载媒体资源 | `SESSION_ID` `--output-dir` `--type image\\|video` |\n| `get_balance.py` | 余额查询 | — |\n| `list_projects.py` | 列出项目 | `--page` `--page-size` |\n| `manage_episodes.py` | 剧集管理 | `list\\|create\\|delete` |\n| `render_episode.py` | 合成最终视频 | `trigger\\|status` `--base-id` `--episode-id` `--poll` |\n\n## 项目设置参考\n\n创建项目后，必须配置基础设置（locale / aspect_ratio / style）才能开始创作。\n\n```bash\npython3 {baseDir}/scripts/save_settings.py --base-id BASE_ID \\\n  --locale zh-CN --aspect-ratio 16:9 --style realistic_3d_cg\n```\n\n### 风格\n\n| ID | 说明 |\n|----|------|\n| `anime_japanese_korean` | 日韩动漫 |\n| `realistic_3d_cg` | 3D CG 写实 🔥 |\n| `pixar_3d_cartoon` | Pixar 3D 卡通 |\n| `photorealistic_real_human` | 真人写实 |\n| `3D_CG_Animation` | 3D CG 动画 🔥 |\n| `anime_chibi` | Q版可爱 |\n| `anime_shinkai` | 新海诚 |\n| `anime_ghibli` | 吉卜力 |\n| `stylized_pixel` | 像素艺术 |\n\n别名支持：`realistic` → `realistic_3d_cg`，`ghibli` → `anime_ghibli`，`shinkai` → `anime_shinkai`，`pixel` → `stylized_pixel`\n\n### 视频模型 × 生成方式\n\n不同模型支持不同的生成方式（generation_method），不匹配会报错。\n\n| 模型 ID | 名称 | 支持的方式 | 默认 |\n|---------|------|-----------|------|\n| `generate_video_by_seedance_20` | Seedance 2.0 Pro ⭐ | n_grid, video_ref, multi_ref, multi_ref_v2 | video_ref |\n| `generate_video_by_seedance_20_fast` | Seedance 2.0 Fast | n_grid, video_ref, multi_ref, multi_ref_v2 | video_ref |\n| `generate_video_by_kling_o3` | Kling O3 | start_frame, n_grid, multi_ref, multi_ref_v2 | n_grid |\n| `generate_video_by_kling_v3_0` | Kling V3.0 | start_frame, n_grid | n_grid |\n| `generate_video_by_pixverse_c1` | PixVerse C1 | start_frame, multi_ref | start_frame |\n| `generate_video_by_hailuo_02` | Hailuo 2.3 | start_frame | start_frame |\n| `generate_video_by_wan26_i2v` | Wan 2.6 | start_frame | start_frame |\n| `generate_video_by_wan26_i2v_flash` | Wan 2.6 Flash | start_frame | start_frame |\n| `generate_video_by_viduq2_pro` | Vidu Q2 Pro | start_frame | start_frame |\n| `generate_video_by_viduq3_pro` | Vidu Q3 Pro | start_frame | start_frame |\n| `generate_video_by_viduq3` | Vidu Q3 | n_grid, multi_ref, multi_ref_v2 | n_grid |\n| `generate_video_by_seedance_15` | Seedance 1.5 Pro | start_frame | start_frame |\n\n### 其他设置\n\n| 字段 | 可选值 |\n|------|--------|\n| `--aspect-ratio` | `16:9`, `9:16` |\n| `--image-size` | `1k`, `2K`, `4K`（注意 1k 小写）|\n| `--video-resolution` | `480p`, `720p`, `1080p` |\n| `--generation-method` | `n_grid`, `multi_ref`, `multi_ref_v2`, `start_frame`, `video_ref` |\n\n---\n\n## 典型场景\n\n理解这些场景，才能正确组合脚本完成用户需求。\n\n### 场景 1：用户给出创作需求，从零开始（最常见）\n\n```\n1. get_balance.py                          → 确认余额 ≥ 10\n2. create_project.py \"赛博朋克短剧\"        → 拿到 baseId, episodeId\n3. save_settings.py --base-id B \\\n     --locale zh-CN --aspect-ratio 16:9 \\\n     --style anime_japanese_korean         → 配置项目\n4. send_message.py --base-id B \\\n     --episode-id E \"用户的原始描述\"        → 拿到 session_id\n5. query_session.py S --poll               → 自动轮询直到完成\n6. download_results.py S \\\n     --output-dir ./赛博朋克短剧 \\\n     --prefix storyboard                   → 自动下载到本地\n```\n\n生成完成后**自动执行下载**，不需要用户额外请求。下载目录和前缀根据任务语义自动命名（如分镜用 `storyboard`，角色设定用 `character`，最终视频用 `video` 等）。\n\n**展示时机：** 生成过程中只告知进度（\"角色图生成中...\"、\"分镜关键帧 5/8 完成\"），**不要提前给出项目链接**。全部完成后，同时给出：**本地文件列表** + **项目链接**（`{ZOPIA_BASE_URL}/base/{baseId}?session_id={sessionId}`，用户可在浏览器中查看和编辑完整项目）。优先使用脚本输出中的 `projectUrl` 字段。\n\n### 场景 2：在已有会话中追加新需求（如\"再改一下角色造型\"）\n\n```\n1. send_message.py --base-id B --episode-id E \\\n     --session-id S \"用户的新指令\"          → 复用已有会话\n2. 轮询 → 下载 → 展示\n```\n\n使用同一个 `session_id` 可保持上下文连续。\n\n### 场景 3：在已有项目中继续创作\n\n```\n1. list_projects.py                         → 让用户选择项目\n2. manage_episodes.py list --base-id B      → 查看剧集列表\n3. send_message.py --base-id B \\\n     --episode-id E \"新的创作指令\"           → 新建会话\n4. 轮询 → 下载 → 展示\n```\n\n### 场景 4：多集连续剧制作\n\n一个项目(Project)可以包含多个剧集(Episode)。每集有独立的剧本、角色表、分镜表，但共享项目级设置（风格、画幅、模型）。\n\n**创作流程：**\n\n```\n1. create_project.py \"我的连续剧\"              → 拿到 baseId, episodeId (自动创建第一集)\n2. save_settings.py --base-id B ...            → 配置项目（所有剧集共享）\n\n── 第一集 ──\n3. send_message.py --base-id B \\\n     --episode-id EP1 \"第一集：主角进入废墟...\"  → 创作第一集\n4. 轮询 → 下载\n\n── 第二集 ──\n5. manage_episodes.py create --base-id B       → 拿到新 episodeId (EP2)\n6. send_message.py --base-id B \\\n     --episode-id EP2 \"第二集：发现地下实验室...\" → 创作第二集\n7. 轮询 → 下载\n\n── 更多剧集：重复步骤 5-7 ──\n```\n\n**多集注意事项：**\n- 每集有独立的角色和分镜，不会互相干扰\n- 如果后续剧集需要沿用前集角色形象，在消息中说明即可（如\"延续第一集的角色设定\"），后端 Agent 会处理\n- 创建新剧集前，建议先确认当前剧集已完成（`status: \"completed\"`）\n- 可以随时用 `manage_episodes.py list --base-id B` 查看所有剧集状态\n- 删除剧集是不可逆操作，会清除该集所有内容\n\n### 场景 5：将分镜视频合成为最终 MP4\n\n所有分镜视频生成完毕后，可一键触发云端渲染，将所有片段按时间轴顺序合成为完整 MP4 文件。\n\n```\n1. render_episode.py trigger \\\n     --base-id B --episode-id E            → 拿到 render_id，渲染开始（异步）\n2. render_episode.py status \\\n     --base-id B --episode-id E \\\n     --render-id RENDER_ID --poll          → 自动轮询，完成后输出 video_url\n```\n\n**触发时机：** 用户明确要求「导出视频」「合成 MP4」「生成完整视频」时才触发。分镜视频生成阶段不要触发。\n\n**渲染前提：** storyboard 中至少有一个分镜有 video_urls（即已完成视频生成），否则渲染内容为空。\n\n**完成标志：** `status: \"completed\"` 且返回 `video_url`（S3 直链，可直接下载或分享）。\n\n**轮询说明：** 渲染由 Remotion Lambda 执行，通常需要 1–5 分钟，`--poll` 参数每 8 秒检查一次进度（`progress` 字段 0→1），超时上限 10 分钟。\n\n---\n\n## 读懂 workspace 进度\n\n`query_session.py` 返回的 `workspace` 是项目的实时快照，用来判断创作走到哪一步了：\n\n```json\n{\n  \"status\": \"running\",\n  \"workspace\": {\n    \"entities\": [{\"name\": \"角色A\", \"images_status\": \"done\", \"image_urls\": [...]}],\n    \"storyboard\": {\n      \"total_shots\": 8,\n      \"images\": {\"done\": 5, \"pending\": 3, \"failed\": 0, \"none\": 0},\n      \"videos\": {\"done\": 2, \"pending\": 1, \"failed\": 0, \"none\": 5}\n    },\n    \"shots\": [{\"index\": 1, \"description\": \"...\", \"image_urls\": [...], \"video_urls\": [...]}]\n  }\n}\n```\n\n**怎么读：**\n\n- `status: \"running\"` + workspace 空 → 刚开始，Agent 还在理解需求\n- `entities` 出现，`images_status: \"pending\"` → 正在生成角色图\n- `storyboard.images.pending > 0` → 正在生成分镜关键帧\n- `storyboard.videos.pending > 0` → 正在生成视频片段\n- `status: \"completed\"` → 全部完成，检查有无 failed 项\n\n**轮询策略：**\n- **间隔**：每 8 秒查询一次\n- **增量拉取**：首次 `--after-seq 0`，后续传上次拿到的最大 seq 值\n- **完成判断**：`status` 变为 `completed`（全部完成）或 `idle`\n- **超时**：连续 3 分钟无新进展，告知用户「生成时间较长」并给出项目链接供自行查看，停止轮询\n- **错误重试**：单次查询失败可重试 1 次；连续 3 次失败则停止并告知用户\n- **自动轮询**：使用 `--poll` 参数可自动执行上述策略，无需手动循环\n\n---\n\n## 你的角色\n\nZopia 后端有完整的 AI 创作 Agent（对模型能力、prompt 工程、创作流程远比用户侧专业），你负责的是**项目管理和需求传达**。\n\n**你要做的三件事：**\n1. **配置** — 根据用户意图创建项目，选择合适的风格、模型、画幅\n2. **传话** — 把用户的原始需求原封不动发给后端 Agent\n3. **取件** — 追踪进度，在关键节点通知用户，完成后自动下载结果并展示\n\n**不要做的事：**\n- 不替用户扩写、润色、翻译创作描述（用户说\"帮我推演分镜\"，就直接传这句话，不要自己先写个分镜表再逐条发）\n- 不自行拆分任务（用户说\"生成8个分镜图\"，发一条消息给后端，后端自己拆解）\n- 不在消息中添加自己编的描述词（如\"超写实风格，电影级光影，8K分辨率\"）\n\n**正确：**\n```\n用户说：「帮我做一个赛博朋克风格的短剧，讲一个机器人在废墟中寻找最后一朵花」\n\n→ create_project.py \"赛博朋克短剧\"\n→ save_settings.py --base-id B --locale zh-CN --aspect-ratio 16:9 --style anime_japanese_korean\n→ send_message.py --base-id B --episode-id E \"帮我做一个赛博朋克风格的短剧，讲一个机器人在废墟中寻找最后一朵花\"\n→ 轮询 → 下载到 ./赛博朋克短剧/ → 展示文件列表 + 项目链接\n```\n\n**错误：**\n```\n❌ 先自己写了个详细的 5 场剧本和分镜描述\n❌ 把自己编的内容逐条发给后端\n❌ 在用户描述后面追加 \"cinematic lighting, 8K, ultra detailed\"\n```\n\n---\n\n## 错误码速查\n\n| 状态码 | 含义 | 处理 |\n|--------|------|------|\n| 400 | 参数缺失或设置不合法 | 检查必填字段和枚举值 |\n| 401 | Token 无效或过期 | 提醒用户重新获取 |\n| 402 | 余额不足 | 提醒充值 |\n| 403 | 无权限 | 检查 baseId 归属 |\n| 404 | 资源不存在 | 检查 ID 是否正确 |\n| 409 | 会话执行中 | 等待当前会话完成再发新消息 |\n\nFile v1.0.2:README.md\n\n# Zopia Skills\n\nZopia AI 视频创作技能 — 通过 [Zopia](https://zopia.ai) 平台的 AI Agent 进行视频/图片创作。\n\n覆盖场景：AI 视频生成（文生视频、图生视频）、AI 图片生成（角色设定图、分镜关键帧）、剧本创作、角色设计、分镜设计、多集连续剧制作。\n\n## 安装\n\n### 通过 npx 安装（推荐）\n\n```bash\nnpx skills add 11cafe/zopia-skills\n```\n\n> [`skills`](https://github.com/vercel-labs/skills) 是 Vercel Labs 开发的跨平台技能安装 CLI，支持 Claude Code、Gemini CLI、Codex、Cursor 等 40+ 个 Agent。\n\n安装到指定 Agent：\n\n```bash\nnpx skills add 11cafe/zopia-skills -a claude-code\n```\n\n### 通过 OpenClaw 安装\n\n在 [OpenClaw](https://openclaw.ai) 技能市场搜索 `zopia-skill`，或使用命令行：\n\n```bash\nnpx clawhub install zopia-skill\n```\n\n### 手动安装\n\n```bash\ngit clone https://github.com/11cafe/zopia-skills.git\n```\n\n将 `SKILL.md` 和 `scripts/` 目录复制到对应的技能目录：\n\n| 范围 | 路径 |\n|------|------|\n| 个人全局 | `~/.claude/skills/zopia-skill/` |\n| 项目级别 | `.claude/skills/zopia-skill/` |\n\n## 配置\n\n使用前需设置环境变量：\n\n```bash\nexport ZOPIA_ACCESS_KEY=\"zopia-xxxxxxxxxxxx\"   # 必需，30天有效\nexport ZOPIA_BASE_URL=\"https://zopia.ai\"  # 可选，默认值即可\n```\n\n仅依赖 Python 标准库，无需安装第三方包。需要 `python3` 可用。\n\n## 使用\n\n安装技能后，在 Claude Code 中直接描述你的创作需求即可：\n\n```\n帮我做一个赛博朋克风格的短剧，讲一个机器人在废墟中寻找最后一朵花\n```\n\n技能会自动完成：创建项目 → 配置设置 → 发送创作指令 → 轮询进度 → 下载结果。\n\n### 支持的风格\n\n| ID | 说明 |\n|----|------|\n| `anime_japanese_korean` | 日韩动漫 |\n| `realistic_3d_cg` | 3D CG 写实 |\n| `pixar_3d_cartoon` | Pixar 3D 卡通 |\n| `photorealistic_real_human` | 真人写实 |\n| `3D_CG_Animation` | 3D CG 动画 |\n| `anime_chibi` | Q版可爱 |\n| `anime_shinkai` | 新海诚 |\n| `anime_ghibli` | 吉卜力 |\n| `stylized_pixel` | 像素艺术 |\n\n### 支持的视频模型\n\n| 模型 | 名称 |\n|------|------|\n| `generate_video_by_kling_o3` | Kling O3 |\n| `generate_video_by_kling_v3_0` | Kling V3.0 |\n| `generate_video_by_hailuo_02` | Hailuo 2.3 |\n| `generate_video_by_wan26_i2v` | Wan 2.6 |\n| `generate_video_by_wan26_i2v_flash` | Wan 2.6 Flash |\n| `generate_video_by_viduq2_pro` | Vidu Q2 Pro |\n| `generate_video_by_viduq3_pro` | Vidu Q3 Pro |\n| `generate_video_by_viduq3` | Vidu Q3 |\n| `generate_video_by_seedance_15` | Seedance 1.5 Pro |\n\n### 脚本列表\n\n| 脚本 | 用途 |\n|------|------|\n| `create_project.py` | 创建项目 |\n| `save_settings.py` | 配置项目设置 |\n| `send_message.py` | 发送创作指令 |\n| `query_session.py` | 查询创作进度 |\n| `download_results.py` | 下载媒体资源 |\n| `get_balance.py` | 查询余额 |\n| `list_projects.py` | 列出所有项目 |\n| `manage_episodes.py` | 管理剧集 |\n| `render_episode.py` | 合成最终视频（MP4） |\n\n## License\n\n[MIT](LICENSE)\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn7d76nd4k7hjp2tdaybzem70x83mynm\",\n  \"slug\": \"zopia-skill\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1775638761688\n}\n\nArchive v1.0.1: 13 files, 18373 bytes\n\nFiles: README.md (3037b), scripts/_common.py (5862b), scripts/create_project.py (759b), scripts/download_results.py (5709b), scripts/get_balance.py (438b), scripts/list_projects.py (797b), scripts/manage_episodes.py (1555b), scripts/query_session.py (2579b), scripts/save_settings.py (2290b), scripts/send_message.py (1300b), SKILL.md (11390b), zopia-skill.csv (1590b), _meta.json (130b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: zopia-skill\ndescription: Zopia AI 视频创作技能 - 通过 Zopia 平台的 AI Agent 进行视频/图片创作。覆盖场景包括：AI 视频生成（文生视频、图生视频）、AI 图片生成（角色设定图、分镜关键帧）、剧本创作（对话/旁白/场景描述）、角色设计、分镜设计、多集连续剧制作。当用户提到 zopia、视频创作、短剧制作、分镜、角色设计、AI 视频生成时应触发。关键判断：只要用户的请求涉及通过 AI 进行系统化的视频创作流程（剧本→角色→分镜→视频），都必须触发此技能。\nuser-invocable: true\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🎬\",\n        \"requires\":\n          {\n            \"bins\": [\"python3\"],\n            \"env\": [\"ZOPIA_ACCESS_KEY\"]\n          },\n        \"primaryEnv\": \"ZOPIA_ACCESS_KEY\"\n      }\n  }\n---\n\n# Zopia AI 视频创作\n\nZopia 是一个项目制的 AI 视频创作平台。每个项目包含完整的创作流水线：**剧本 → 角色 → 分镜 → 视频**，由后端 AI Agent 自动驱动。你通过脚本管理项目、传达用户意图、追踪进度、获取成果。\n\n## 环境配置\n\n```bash\nexport ZOPIA_ACCESS_KEY=\"zopia-xxxxxxxxxxxx\"   # 必需，30天有效\nexport ZOPIA_BASE_URL=\"https://zopia.ai\"  # 可选\n```\n\n仅使用 Python 标准库，无需额外安装。\n\n## 核心概念\n\n| 概念 | 说明 |\n|------|------|\n| **Project (Base)** | 创作项目，包含设置、剧集、所有资产。创建时自动生成首集 |\n| **Episode** | 剧集，同一项目下可创建多集，每集有独立的剧本/角色/分镜 |\n| **Session** | 一次 Agent 对话。异步执行，通过轮询获取进展 |\n| **Workspace** | 项目的实时工作区快照，包含角色(entities)、分镜(storyboard)、各媒体的生成状态 |\n\n## 脚本速查\n\n| 脚本 | 用途 | 关键参数 |\n|------|------|---------|\n| `create_project.py` | 创建项目 | `[名称]` |\n| `save_settings.py` | 项目设置 | `--base-id` `--style` `--aspect-ratio` `--video-model` ... |\n| `send_message.py` | 发送创作指令（异步） | `--base-id` `--episode-id` `消息` |\n| `query_session.py` | 查询进展 | `SESSION_ID` `--poll` `--after-seq N` |\n| `download_results.py` | 下载媒体资源 | `SESSION_ID` `--output-dir` `--type image\\|video` |\n| `get_balance.py` | 余额查询 | — |\n| `list_projects.py` | 列出项目 | `--page` `--page-size` |\n| `manage_episodes.py` | 剧集管理 | `list\\|create\\|delete` |\n\n## 项目设置参考\n\n创建项目后，必须配置基础设置（locale / aspect_ratio / style）才能开始创作。\n\n```bash\npython3 {baseDir}/scripts/save_settings.py --base-id BASE_ID \\\n  --locale zh-CN --aspect-ratio 16:9 --style realistic_3d_cg\n```\n\n### 风格\n\n| ID | 说明 |\n|----|------|\n| `anime_japanese_korean` | 日韩动漫 |\n| `realistic_3d_cg` | 3D CG 写实 🔥 |\n| `pixar_3d_cartoon` | Pixar 3D 卡通 |\n| `photorealistic_real_human` | 真人写实 |\n| `3D_CG_Animation` | 3D CG 动画 🔥 |\n| `anime_chibi` | Q版可爱 |\n| `anime_shinkai` | 新海诚 |\n| `anime_ghibli` | 吉卜力 |\n| `stylized_pixel` | 像素艺术 |\n\n别名支持：`realistic` → `realistic_3d_cg`，`ghibli` → `anime_ghibli`，`shinkai` → `anime_shinkai`，`pixel` → `stylized_pixel`\n\n### 视频模型 × 生成方式\n\n不同模型支持不同的生成方式（generation_method），不匹配会报错。\n\n| 模型 ID | 名称 | 支持的方式 | 默认 |\n|---------|------|-----------|------|\n| `generate_video_by_seedance_20` | Stardust 2.0 ⭐ | n_grid, video_ref, multi_ref, multi_ref_v2 | video_ref |\n| `generate_video_by_kling_o3` | Kling O3 | start_frame, n_grid, multi_ref, multi_ref_v2 | n_grid |\n| `generate_video_by_kling_v3_0` | Kling V3.0 | start_frame, n_grid | n_grid |\n| `generate_video_by_hailuo_02` | Hailuo 2.3 | start_frame | start_frame |\n| `generate_video_by_wan26_i2v` | Wan 2.6 | start_frame | start_frame |\n| `generate_video_by_wan26_i2v_flash` | Wan 2.6 Flash | start_frame | start_frame |\n| `generate_video_by_viduq2_pro` | Vidu Q2 Pro | start_frame | start_frame |\n| `generate_video_by_viduq3_pro` | Vidu Q3 Pro | start_frame | start_frame |\n| `generate_video_by_viduq3` | Vidu Q3 | n_grid, multi_ref, multi_ref_v2 | n_grid |\n| `generate_video_by_seedance_15` | Seedance 1.5 Pro | start_frame | start_frame |\n\n### 其他设置\n\n| 字段 | 可选值 |\n|------|--------|\n| `--aspect-ratio` | `16:9`, `9:16` |\n| `--image-size` | `1k`, `2K`, `4K`（注意 1k 小写）|\n| `--video-resolution` | `480p`, `720p`, `1080p` |\n| `--generation-method` | `n_grid`, `multi_ref`, `multi_ref_v2`, `start_frame`, `video_ref` |\n\n---\n\n## 典型场景\n\n理解这些场景，才能正确组合脚本完成用户需求。\n\n### 场景 1：用户给出创作需求，从零开始（最常见）\n\n```\n1. get_balance.py                          → 确认余额 ≥ 10\n2. create_project.py \"赛博朋克短剧\"        → 拿到 baseId, episodeId\n3. save_settings.py --base-id B \\\n     --locale zh-CN --aspect-ratio 16:9 \\\n     --style anime_japanese_korean         → 配置项目\n4. send_message.py --base-id B \\\n     --episode-id E \"用户的原始描述\"        → 拿到 session_id\n5. query_session.py S --poll               → 自动轮询直到完成\n6. download_results.py S \\\n     --output-dir ./赛博朋克短剧 \\\n     --prefix storyboard                   → 自动下载到本地\n```\n\n生成完成后**自动执行下载**，不需要用户额外请求。下载目录和前缀根据任务语义自动命名（如分镜用 `storyboard`，角色设定用 `character`，最终视频用 `video` 等）。\n\n**展示时机：** 生成过程中只告知进度（\"角色图生成中...\"、\"分镜关键帧 5/8 完成\"），**不要提前给出项目链接**。全部完成后，同时给出：**本地文件列表** + **项目链接**（`{ZOPIA_BASE_URL}/base/{baseId}`，用户可在浏览器中查看和编辑完整项目）。\n\n### 场景 2：在已有会话中追加新需求（如\"再改一下角色造型\"）\n\n```\n1. send_message.py --base-id B --episode-id E \\\n     --session-id S \"用户的新指令\"          → 复用已有会话\n2. 轮询 → 下载 → 展示\n```\n\n使用同一个 `session_id` 可保持上下文连续。\n\n### 场景 3：在已有项目中继续创作\n\n```\n1. list_projects.py                         → 让用户选择项目\n2. manage_episodes.py list --base-id B      → 查看剧集列表\n3. send_message.py --base-id B \\\n     --episode-id E \"新的创作指令\"           → 新建会话\n4. 轮询 → 下载 → 展示\n```\n\n### 场景 4：多集连续剧制作\n\n一个项目(Project)可以包含多个剧集(Episode)。每集有独立的剧本、角色表、分镜表，但共享项目级设置（风格、画幅、模型）。\n\n**创作流程：**\n\n```\n1. create_project.py \"我的连续剧\"              → 拿到 baseId, episodeId (自动创建第一集)\n2. save_settings.py --base-id B ...            → 配置项目（所有剧集共享）\n\n── 第一集 ──\n3. send_message.py --base-id B \\\n     --episode-id EP1 \"第一集：主角进入废墟...\"  → 创作第一集\n4. 轮询 → 下载\n\n── 第二集 ──\n5. manage_episodes.py create --base-id B       → 拿到新 episodeId (EP2)\n6. send_message.py --base-id B \\\n     --episode-id EP2 \"第二集：发现地下实验室...\" → 创作第二集\n7. 轮询 → 下载\n\n── 更多剧集：重复步骤 5-7 ──\n```\n\n**多集注意事项：**\n- 每集有独立的角色和分镜，不会互相干扰\n- 如果后续剧集需要沿用前集角色形象，在消息中说明即可（如\"延续第一集的角色设定\"），后端 Agent 会处理\n- 创建新剧集前，建议先确认当前剧集已完成（`status: \"completed\"`）\n- 可以随时用 `manage_episodes.py list --base-id B` 查看所有剧集状态\n- 删除剧集是不可逆操作，会清除该集所有内容\n\n---\n\n## 读懂 workspace 进度\n\n`query_session.py` 返回的 `workspace` 是项目的实时快照，用来判断创作走到哪一步了：\n\n```json\n{\n  \"status\": \"running\",\n  \"workspace\": {\n    \"entities\": [{\"name\": \"角色A\", \"images_status\": \"done\", \"image_urls\": [...]}],\n    \"storyboard\": {\n      \"total_shots\": 8,\n      \"images\": {\"done\": 5, \"pending\": 3, \"failed\": 0, \"none\": 0},\n      \"videos\": {\"done\": 2, \"pending\": 1, \"failed\": 0, \"none\": 5}\n    },\n    \"shots\": [{\"index\": 1, \"description\": \"...\", \"image_urls\": [...], \"video_urls\": [...]}]\n  }\n}\n```\n\n**怎么读：**\n\n- `status: \"running\"` + workspace 空 → 刚开始，Agent 还在理解需求\n- `entities` 出现，`images_status: \"pending\"` → 正在生成角色图\n- `storyboard.images.pending > 0` → 正在生成分镜关键帧\n- `storyboard.videos.pending > 0` → 正在生成视频片段\n- `status: \"completed\"` → 全部完成，检查有无 failed 项\n\n**轮询策略：**\n- **间隔**：每 8 秒查询一次\n- **增量拉取**：首次 `--after-seq 0`，后续传上次拿到的最大 seq 值\n- **完成判断**：`status` 变为 `completed`（全部完成）或 `idle`\n- **超时**：连续 3 分钟无新进展，告知用户「生成时间较长」并给出项目链接供自行查看，停止轮询\n- **错误重试**：单次查询失败可重试 1 次；连续 3 次失败则停止并告知用户\n- **自动轮询**：使用 `--poll` 参数可自动执行上述策略，无需手动循环\n\n---\n\n## 你的角色\n\nZopia 后端有完整的 AI 创作 Agent（对模型能力、prompt 工程、创作流程远比用户侧专业），你负责的是**项目管理和需求传达**。\n\n**你要做的三件事：**\n1. **配置** — 根据用户意图创建项目，选择合适的风格、模型、画幅\n2. **传话** — 把用户的原始需求原封不动发给后端 Agent\n3. **取件** — 追踪进度，在关键节点通知用户，完成后自动下载结果并展示\n\n**不要做的事：**\n- 不替用户扩写、润色、翻译创作描述（用户说\"帮我推演分镜\"，就直接传这句话，不要自己先写个分镜表再逐条发）\n- 不自行拆分任务（用户说\"生成8个分镜图\"，发一条消息给后端，后端自己拆解）\n- 不在消息中添加自己编的描述词（如\"超写实风格，电影级光影，8K分辨率\"）\n\n**正确：**\n```\n用户说：「帮我做一个赛博朋克风格的短剧，讲一个机器人在废墟中寻找最后一朵花」\n\n→ create_project.py \"赛博朋克短剧\"\n→ save_settings.py --base-id B --locale zh-CN --aspect-ratio 16:9 --style anime_japanese_korean\n→ send_message.py --base-id B --episode-id E \"帮我做一个赛博朋克风格的短剧，讲一个机器人在废墟中寻找最后一朵花\"\n→ 轮询 → 下载到 ./赛博朋克短剧/ → 展示文件列表 + 项目链接\n```\n\n**错误：**\n```\n❌ 先自己写了个详细的 5 场剧本和分镜描述\n❌ 把自己编的内容逐条发给后端\n❌ 在用户描述后面追加 \"cinematic lighting, 8K, ultra detailed\"\n```\n\n---\n\n## 错误码速查\n\n| 状态码 | 含义 | 处理 |\n|--------|------|------|\n| 400 | 参数缺失或设置不合法 | 检查必填字段和枚举值 |\n| 401 | Token 无效或过期 | 提醒用户重新获取 |\n| 402 | 余额不足 | 提醒充值 |\n| 403 | 无权限 | 检查 baseId 归属 |\n| 404 | 资源不存在 | 检查 ID 是否正确 |\n| 409 | 会话执行中 | 等待当前会话完成再发新消息 |\n\nFile v1.0.1:README.md\n\n# Zopia Skills\n\nZopia AI 视频创作技能 — 通过 [Zopia](https://zopia.ai) 平台的 AI Agent 进行视频/图片创作。\n\n覆盖场景：AI 视频生成（文生视频、图生视频）、AI 图片生成（角色设定图、分镜关键帧）、剧本创作、角色设计、分镜设计、多集连续剧制作。\n\n## 安装\n\n### 通过 npx 安装（推荐）\n\n```bash\nnpx skills add 11cafe/zopia-skills\n```\n\n> [`skills`](https://github.com/vercel-labs/skills) 是 Vercel Labs 开发的跨平台技能安装 CLI，支持 Claude Code、Gemini CLI、Codex、Cursor 等 40+ 个 Agent。\n\n安装到指定 Agent：\n\n```bash\nnpx skills add 11cafe/zopia-skills -a claude-code\n```\n\n### 通过 OpenClaw 安装\n\n在 [OpenClaw](https://openclaw.ai) 技能市场搜索 `zopia-skill`，或使用命令行：\n\n```bash\nnpx clawhub install zopia-skill\n```\n\n### 手动安装\n\n```bash\ngit clone https://github.com/11cafe/zopia-skills.git\n```\n\n将 `SKILL.md` 和 `scripts/` 目录复制到对应的技能目录：\n\n| 范围 | 路径 |\n|------|------|\n| 个人全局 | `~/.claude/skills/zopia-skill/` |\n| 项目级别 | `.claude/skills/zopia-skill/` |\n\n## 配置\n\n使用前需设置环境变量：\n\n```bash\nexport ZOPIA_ACCESS_KEY=\"zopia-xxxxxxxxxxxx\"   # 必需，30天有效\nexport ZOPIA_BASE_URL=\"https://zopia.ai\"  # 可选，默认值即可\n```\n\n仅依赖 Python 标准库，无需安装第三方包。需要 `python3` 可用。\n\n## 使用\n\n安装技能后，在 Claude Code 中直接描述你的创作需求即可：\n\n```\n帮我做一个赛博朋克风格的短剧，讲一个机器人在废墟中寻找最后一朵花\n```\n\n技能会自动完成：创建项目 → 配置设置 → 发送创作指令 → 轮询进度 → 下载结果。\n\n### 支持的风格\n\n| ID | 说明 |\n|----|------|\n| `anime_japanese_korean` | 日韩动漫 |\n| `realistic_3d_cg` | 3D CG 写实 |\n| `pixar_3d_cartoon` | Pixar 3D 卡通 |\n| `photorealistic_real_human` | 真人写实 |\n| `3D_CG_Animation` | 3D CG 动画 |\n| `anime_chibi` | Q版可爱 |\n| `anime_shinkai` | 新海诚 |\n| `anime_ghibli` | 吉卜力 |\n| `stylized_pixel` | 像素艺术 |\n\n### 支持的视频模型\n\n| 模型 | 名称 |\n|------|------|\n| `generate_video_by_kling_o3` | Kling O3 |\n| `generate_video_by_kling_v3_0` | Kling V3.0 |\n| `generate_video_by_hailuo_02` | Hailuo 2.3 |\n| `generate_video_by_wan26_i2v` | Wan 2.6 |\n| `generate_video_by_wan26_i2v_flash` | Wan 2.6 Flash |\n| `generate_video_by_viduq2_pro` | Vidu Q2 Pro |\n| `generate_video_by_viduq3_pro` | Vidu Q3 Pro |\n| `generate_video_by_viduq3` | Vidu Q3 |\n| `generate_video_by_seedance_15` | Seedance 1.5 Pro |\n\n### 脚本列表\n\n| 脚本 | 用途 |\n|------|------|\n| `create_project.py` | 创建项目 |\n| `save_settings.py` | 配置项目设置 |\n| `send_message.py` | 发送创作指令 |\n| `query_session.py` | 查询创作进度 |\n| `download_results.py` | 下载媒体资源 |\n| `get_balance.py` | 查询余额 |\n| `list_projects.py` | 列出所有项目 |\n| `manage_episodes.py` | 管理剧集 |\n\n## License\n\n[MIT](LICENSE)\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn7d76nd4k7hjp2tdaybzem70x83mynm\",\n  \"slug\": \"zopia-skill\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1775116998442\n}\n\nArchive v1.0.0: 12 files, 17310 bytes\n\nFiles: README.md (3042b), scripts/_common.py (5872b), scripts/create_project.py (759b), scripts/download_results.py (5709b), scripts/get_balance.py (438b), scripts/list_projects.py (797b), scripts/manage_episodes.py (1555b), scripts/query_session.py (2579b), scripts/save_settings.py (2290b), scripts/send_message.py (1300b), SKILL.md (11395b), _meta.json (130b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: zopia-skill\ndescription: Zopia AI 视频创作技能 - 通过 Zopia 平台的 AI Agent 进行视频/图片创作。覆盖场景包括：AI 视频生成（文生视频、图生视频）、AI 图片生成（角色设定图、分镜关键帧）、剧本创作（对话/旁白/场景描述）、角色设计、分镜设计、多集连续剧制作。当用户提到 zopia、视频创作、短剧制作、分镜、角色设计、AI 视频生成时应触发。关键判断：只要用户的请求涉及通过 AI 进行系统化的视频创作流程（剧本→角色→分镜→视频），都必须触发此技能。\nuser-invocable: true\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🎬\",\n        \"requires\":\n          {\n            \"bins\": [\"python3\"],\n            \"env\": [\"ZOPIA_ACCESS_KEY\"]\n          },\n        \"primaryEnv\": \"ZOPIA_ACCESS_KEY\"\n      }\n  }\n---\n\n# Zopia AI 视频创作\n\nZopia 是一个项目制的 AI 视频创作平台。每个项目包含完整的创作流水线：**剧本 → 角色 → 分镜 → 视频**，由后端 AI Agent 自动驱动。你通过脚本管理项目、传达用户意图、追踪进度、获取成果。\n\n## 环境配置\n\n```bash\nexport ZOPIA_ACCESS_KEY=\"zopia-xxxxxxxxxxxx\"   # 必需，30天有效\nexport ZOPIA_BASE_URL=\"https://jaaz.zopia.ai\"  # 可选\n```\n\n仅使用 Python 标准库，无需额外安装。\n\n## 核心概念\n\n| 概念 | 说明 |\n|------|------|\n| **Project (Base)** | 创作项目，包含设置、剧集、所有资产。创建时自动生成首集 |\n| **Episode** | 剧集，同一项目下可创建多集，每集有独立的剧本/角色/分镜 |\n| **Session** | 一次 Agent 对话。异步执行，通过轮询获取进展 |\n| **Workspace** | 项目的实时工作区快照，包含角色(entities)、分镜(storyboard)、各媒体的生成状态 |\n\n## 脚本速查\n\n| 脚本 | 用途 | 关键参数 |\n|------|------|---------|\n| `create_project.py` | 创建项目 | `[名称]` |\n| `save_settings.py` | 项目设置 | `--base-id` `--style` `--aspect-ratio` `--video-model` ... |\n| `send_message.py` | 发送创作指令（异步） | `--base-id` `--episode-id` `消息` |\n| `query_session.py` | 查询进展 | `SESSION_ID` `--poll` `--after-seq N` |\n| `download_results.py` | 下载媒体资源 | `SESSION_ID` `--output-dir` `--type image\\|video` |\n| `get_balance.py` | 余额查询 | — |\n| `list_projects.py` | 列出项目 | `--page` `--page-size` |\n| `manage_episodes.py` | 剧集管理 | `list\\|create\\|delete` |\n\n## 项目设置参考\n\n创建项目后，必须配置基础设置（locale / aspect_ratio / style）才能开始创作。\n\n```bash\npython3 {baseDir}/scripts/save_settings.py --base-id BASE_ID \\\n  --locale zh-CN --aspect-ratio 16:9 --style realistic_3d_cg\n```\n\n### 风格\n\n| ID | 说明 |\n|----|------|\n| `anime_japanese_korean` | 日韩动漫 |\n| `realistic_3d_cg` | 3D CG 写实 🔥 |\n| `pixar_3d_cartoon` | Pixar 3D 卡通 |\n| `photorealistic_real_human` | 真人写实 |\n| `3D_CG_Animation` | 3D CG 动画 🔥 |\n| `anime_chibi` | Q版可爱 |\n| `anime_shinkai` | 新海诚 |\n| `anime_ghibli` | 吉卜力 |\n| `stylized_pixel` | 像素艺术 |\n\n别名支持：`realistic` → `realistic_3d_cg`，`ghibli` → `anime_ghibli`，`shinkai` → `anime_shinkai`，`pixel` → `stylized_pixel`\n\n### 视频模型 × 生成方式\n\n不同模型支持不同的生成方式（generation_method），不匹配会报错。\n\n| 模型 ID | 名称 | 支持的方式 | 默认 |\n|---------|------|-----------|------|\n| `generate_video_by_seedance_20` | Stardust 2.0 ⭐ | n_grid, video_ref, multi_ref, multi_ref_v2 | video_ref |\n| `generate_video_by_kling_o3` | Kling O3 | start_frame, n_grid, multi_ref, multi_ref_v2 | n_grid |\n| `generate_video_by_kling_v3_0` | Kling V3.0 | start_frame, n_grid | n_grid |\n| `generate_video_by_hailuo_02` | Hailuo 2.3 | start_frame | start_frame |\n| `generate_video_by_wan26_i2v` | Wan 2.6 | start_frame | start_frame |\n| `generate_video_by_wan26_i2v_flash` | Wan 2.6 Flash | start_frame | start_frame |\n| `generate_video_by_viduq2_pro` | Vidu Q2 Pro | start_frame | start_frame |\n| `generate_video_by_viduq3_pro` | Vidu Q3 Pro | start_frame | start_frame |\n| `generate_video_by_viduq3` | Vidu Q3 | n_grid, multi_ref, multi_ref_v2 | n_grid |\n| `generate_video_by_seedance_15` | Seedance 1.5 Pro | start_frame | start_frame |\n\n### 其他设置\n\n| 字段 | 可选值 |\n|------|--------|\n| `--aspect-ratio` | `16:9`, `9:16` |\n| `--image-size` | `1k`, `2K`, `4K`（注意 1k 小写）|\n| `--video-resolution` | `480p`, `720p`, `1080p` |\n| `--generation-method` | `n_grid`, `multi_ref`, `multi_ref_v2`, `start_frame`, `video_ref` |\n\n---\n\n## 典型场景\n\n理解这些场景，才能正确组合脚本完成用户需求。\n\n### 场景 1：用户给出创作需求，从零开始（最常见）\n\n```\n1. get_balance.py                          → 确认余额 ≥ 10\n2. create_project.py \"赛博朋克短剧\"        → 拿到 baseId, episodeId\n3. save_settings.py --base-id B \\\n     --locale zh-CN --aspect-ratio 16:9 \\\n     --style anime_japanese_korean         → 配置项目\n4. send_message.py --base-id B \\\n     --episode-id E \"用户的原始描述\"        → 拿到 session_id\n5. query_session.py S --poll               → 自动轮询直到完成\n6. download_results.py S \\\n     --output-dir ./赛博朋克短剧 \\\n     --prefix storyboard                   → 自动下载到本地\n```\n\n生成完成后**自动执行下载**，不需要用户额外请求。下载目录和前缀根据任务语义自动命名（如分镜用 `storyboard`，角色设定用 `character`，最终视频用 `video` 等）。\n\n**展示时机：** 生成过程中只告知进度（\"角色图生成中...\"、\"分镜关键帧 5/8 完成\"），**不要提前给出项目链接**。全部完成后，同时给出：**本地文件列表** + **项目链接**（`{ZOPIA_BASE_URL}/base/{baseId}`，用户可在浏览器中查看和编辑完整项目）。\n\n### 场景 2：在已有会话中追加新需求（如\"再改一下角色造型\"）\n\n```\n1. send_message.py --base-id B --episode-id E \\\n     --session-id S \"用户的新指令\"          → 复用已有会话\n2. 轮询 → 下载 → 展示\n```\n\n使用同一个 `session_id` 可保持上下文连续。\n\n### 场景 3：在已有项目中继续创作\n\n```\n1. list_projects.py                         → 让用户选择项目\n2. manage_episodes.py list --base-id B      → 查看剧集列表\n3. send_message.py --base-id B \\\n     --episode-id E \"新的创作指令\"           → 新建会话\n4. 轮询 → 下载 → 展示\n```\n\n### 场景 4：多集连续剧制作\n\n一个项目(Project)可以包含多个剧集(Episode)。每集有独立的剧本、角色表、分镜表，但共享项目级设置（风格、画幅、模型）。\n\n**创作流程：**\n\n```\n1. create_project.py \"我的连续剧\"              → 拿到 baseId, episodeId (自动创建第一集)\n2. save_settings.py --base-id B ...            → 配置项目（所有剧集共享）\n\n── 第一集 ──\n3. send_message.py --base-id B \\\n     --episode-id EP1 \"第一集：主角进入废墟...\"  → 创作第一集\n4. 轮询 → 下载\n\n── 第二集 ──\n5. manage_episodes.py create --base-id B       → 拿到新 episodeId (EP2)\n6. send_message.py --base-id B \\\n     --episode-id EP2 \"第二集：发现地下实验室...\" → 创作第二集\n7. 轮询 → 下载\n\n── 更多剧集：重复步骤 5-7 ──\n```\n\n**多集注意事项：**\n- 每集有独立的角色和分镜，不会互相干扰\n- 如果后续剧集需要沿用前集角色形象，在消息中说明即可（如\"延续第一集的角色设定\"），后端 Agent 会处理\n- 创建新剧集前，建议先确认当前剧集已完成（`status: \"completed\"`）\n- 可以随时用 `manage_episodes.py list --base-id B` 查看所有剧集状态\n- 删除剧集是不可逆操作，会清除该集所有内容\n\n---\n\n## 读懂 workspace 进度\n\n`query_session.py` 返回的 `workspace` 是项目的实时快照，用来判断创作走到哪一步了：\n\n```json\n{\n  \"status\": \"running\",\n  \"workspace\": {\n    \"entities\": [{\"name\": \"角色A\", \"images_status\": \"done\", \"image_urls\": [...]}],\n    \"storyboard\": {\n      \"total_shots\": 8,\n      \"images\": {\"done\": 5, \"pending\": 3, \"failed\": 0, \"none\": 0},\n      \"videos\": {\"done\": 2, \"pending\": 1, \"failed\": 0, \"none\": 5}\n    },\n    \"shots\": [{\"index\": 1, \"description\": \"...\", \"image_urls\": [...], \"video_urls\": [...]}]\n  }\n}\n```\n\n**怎么读：**\n\n- `status: \"running\"` + workspace 空 → 刚开始，Agent 还在理解需求\n- `entities` 出现，`images_status: \"pending\"` → 正在生成角色图\n- `storyboard.images.pending > 0` → 正在生成分镜关键帧\n- `storyboard.videos.pending > 0` → 正在生成视频片段\n- `status: \"completed\"` → 全部完成，检查有无 failed 项\n\n**轮询策略：**\n- **间隔**：每 8 秒查询一次\n- **增量拉取**：首次 `--after-seq 0`，后续传上次拿到的最大 seq 值\n- **完成判断**：`status` 变为 `completed`（全部完成）或 `idle`\n- **超时**：连续 3 分钟无新进展，告知用户「生成时间较长」并给出项目链接供自行查看，停止轮询\n- **错误重试**：单次查询失败可重试 1 次；连续 3 次失败则停止并告知用户\n- **自动轮询**：使用 `--poll` 参数可自动执行上述策略，无需手动循环\n\n---\n\n## 你的角色\n\nZopia 后端有完整的 AI 创作 Agent（对模型能力、prompt 工程、创作流程远比用户侧专业），你负责的是**项目管理和需求传达**。\n\n**你要做的三件事：**\n1. **配置** — 根据用户意图创建项目，选择合适的风格、模型、画幅\n2. **传话** — 把用户的原始需求原封不动发给后端 Agent\n3. **取件** — 追踪进度，在关键节点通知用户，完成后自动下载结果并展示\n\n**不要做的事：**\n- 不替用户扩写、润色、翻译创作描述（用户说\"帮我推演分镜\"，就直接传这句话，不要自己先写个分镜表再逐条发）\n- 不自行拆分任务（用户说\"生成8个分镜图\"，发一条消息给后端，后端自己拆解）\n- 不在消息中添加自己编的描述词（如\"超写实风格，电影级光影，8K分辨率\"）\n\n**正确：**\n```\n用户说：「帮我做一个赛博朋克风格的短剧，讲一个机器人在废墟中寻找最后一朵花」\n\n→ create_project.py \"赛博朋克短剧\"\n→ save_settings.py --base-id B --locale zh-CN --aspect-ratio 16:9 --style anime_japanese_korean\n→ send_message.py --base-id B --episode-id E \"帮我做一个赛博朋克风格的短剧，讲一个机器人在废墟中寻找最后一朵花\"\n→ 轮询 → 下载到 ./赛博朋克短剧/ → 展示文件列表 + 项目链接\n```\n\n**错误：**\n```\n❌ 先自己写了个详细的 5 场剧本和分镜描述\n❌ 把自己编的内容逐条发给后端\n❌ 在用户描述后面追加 \"cinematic lighting, 8K, ultra detailed\"\n```\n\n---\n\n## 错误码速查\n\n| 状态码 | 含义 | 处理 |\n|--------|------|------|\n| 400 | 参数缺失或设置不合法 | 检查必填字段和枚举值 |\n| 401 | Token 无效或过期 | 提醒用户重新获取 |\n| 402 | 余额不足 | 提醒充值 |\n| 403 | 无权限 | 检查 baseId 归属 |\n| 404 | 资源不存在 | 检查 ID 是否正确 |\n| 409 | 会话执行中 | 等待当前会话完成再发新消息 |\n\nFile v1.0.0:README.md\n\n# Zopia Skills\n\nZopia AI 视频创作技能 — 通过 [Zopia](https://zopia.ai) 平台的 AI Agent 进行视频/图片创作。\n\n覆盖场景：AI 视频生成（文生视频、图生视频）、AI 图片生成（角色设定图、分镜关键帧）、剧本创作、角色设计、分镜设计、多集连续剧制作。\n\n## 安装\n\n### 通过 npx 安装（推荐）\n\n```bash\nnpx skills add 11cafe/zopia-skills\n```\n\n> [`skills`](https://github.com/vercel-labs/skills) 是 Vercel Labs 开发的跨平台技能安装 CLI，支持 Claude Code、Gemini CLI、Codex、Cursor 等 40+ 个 Agent。\n\n安装到指定 Agent：\n\n```bash\nnpx skills add 11cafe/zopia-skills -a claude-code\n```\n\n### 通过 OpenClaw 安装\n\n在 [OpenClaw](https://openclaw.ai) 技能市场搜索 `zopia-skill`，或使用命令行：\n\n```bash\nnpx clawhub install zopia-skill\n```\n\n### 手动安装\n\n```bash\ngit clone https://github.com/11cafe/zopia-skills.git\n```\n\n将 `SKILL.md` 和 `scripts/` 目录复制到对应的技能目录：\n\n| 范围 | 路径 |\n|------|------|\n| 个人全局 | `~/.claude/skills/zopia-skill/` |\n| 项目级别 | `.claude/skills/zopia-skill/` |\n\n## 配置\n\n使用前需设置环境变量：\n\n```bash\nexport ZOPIA_ACCESS_KEY=\"zopia-xxxxxxxxxxxx\"   # 必需，30天有效\nexport ZOPIA_BASE_URL=\"https://jaaz.zopia.ai\"  # 可选，默认值即可\n```\n\n仅依赖 Python 标准库，无需安装第三方包。需要 `python3` 可用。\n\n## 使用\n\n安装技能后，在 Claude Code 中直接描述你的创作需求即可：\n\n```\n帮我做一个赛博朋克风格的短剧，讲一个机器人在废墟中寻找最后一朵花\n```\n\n技能会自动完成：创建项目 → 配置设置 → 发送创作指令 → 轮询进度 → 下载结果。\n\n### 支持的风格\n\n| ID | 说明 |\n|----|------|\n| `anime_japanese_korean` | 日韩动漫 |\n| `realistic_3d_cg` | 3D CG 写实 |\n| `pixar_3d_cartoon` | Pixar 3D 卡通 |\n| `photorealistic_real_human` | 真人写实 |\n| `3D_CG_Animation` | 3D CG 动画 |\n| `anime_chibi` | Q版可爱 |\n| `anime_shinkai` | 新海诚 |\n| `anime_ghibli` | 吉卜力 |\n| `stylized_pixel` | 像素艺术 |\n\n### 支持的视频模型\n\n| 模型 | 名称 |\n|------|------|\n| `generate_video_by_kling_o3` | Kling O3 |\n| `generate_video_by_kling_v3_0` | Kling V3.0 |\n| `generate_video_by_hailuo_02` | Hailuo 2.3 |\n| `generate_video_by_wan26_i2v` | Wan 2.6 |\n| `generate_video_by_wan26_i2v_flash` | Wan 2.6 Flash |\n| `generate_video_by_viduq2_pro` | Vidu Q2 Pro |\n| `generate_video_by_viduq3_pro` | Vidu Q3 Pro |\n| `generate_video_by_viduq3` | Vidu Q3 |\n| `generate_video_by_seedance_15` | Seedance 1.5 Pro |\n\n### 脚本列表\n\n| 脚本 | 用途 |\n|------|------|\n| `create_project.py` | 创建项目 |\n| `save_settings.py` | 配置项目设置 |\n| `send_message.py` | 发送创作指令 |\n| `query_session.py` | 查询创作进度 |\n| `download_results.py` | 下载媒体资源 |\n| `get_balance.py` | 查询余额 |\n| `list_projects.py` | 列出所有项目 |\n| `manage_episodes.py` | 管理剧集 |\n\n## License\n\n[MIT](LICENSE)\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7d76nd4k7hjp2tdaybzem70x83mynm\",\n  \"slug\": \"zopia-skill\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1775058533778\n}","readmeExcerpt":"Skill: Zopia Skills Owner: lambdua Summary: Zopia AI 视频创作技能 - 通过 Zopia 平台的 AI Agent 进行视频/图片创作。覆盖场景包括：AI 视频生成（文生视频、图生视频）、AI 图片生成（角色设定图、分镜关键帧）、剧本创作（对话/旁白/场景描述）、角色设计、分镜设计、多集连续剧制作。当用户提到 zopia、视频创作、短剧制作、分镜、... Tags: latest:1.1.0 Version history: v1.1.0 | 2026-04-25T06:10:40.625Z | user 新增分镜/角色场景图模型配置，支持 GPT Image 2 v1.0.2 | 2026-04-08T08:59:21.688Z | user 新增 Seedance 2.0 Fast 和 PixVerse C1 模型，更新 Seedance 2.0 名称 v1.0.1 | 2","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"export ZOPIA_ACCESS_KEY=\"zopia-xxxxxxxxxxxx\"   # 必需，30天有效\nexport ZOPIA_BASE_URL=\"https://zopia.ai\"  # 可选"},{"language":"bash","snippet":"python3 {baseDir}/scripts/save_settings.py --base-id BASE_ID \\\n  --locale zh-CN --aspect-ratio 16:9 --style realistic_3d_cg"},{"language":"text","snippet":"1. get_balance.py                          → 确认余额 ≥ 10\n2. create_project.py \"赛博朋克短剧\"        → 拿到 baseId, episodeId\n3. save_settings.py --base-id B \\\n     --locale zh-CN --aspect-ratio 16:9 \\\n     --style anime_japanese_korean         → 配置项目\n4. send_message.py --base-id B \\\n     --episode-id E \"用户的原始描述\"        → 拿到 session_id\n5. query_session.py S --poll               → 自动轮询直到完成\n6. download_results.py S \\\n     --output-dir ./赛博朋克短剧 \\\n     --prefix storyboard                   → 自动下载到本地"},{"language":"text","snippet":"1. send_message.py --base-id B --episode-id E \\\n     --session-id S \"用户的新指令\"          → 复用已有会话\n2. 轮询 → 下载 → 展示"},{"language":"text","snippet":"1. list_projects.py                         → 让用户选择项目\n2. manage_episodes.py list --base-id B      → 查看剧集列表\n3. send_message.py --base-id B \\\n     --episode-id E \"新的创作指令\"           → 新建会话\n4. 轮询 → 下载 → 展示"},{"language":"text","snippet":"1. create_project.py \"我的连续剧\"              → 拿到 baseId, episodeId (自动创建第一集)\n2. save_settings.py --base-id B ...            → 配置项目（所有剧集共享）\n\n── 第一集 ──\n3. send_message.py --base-id B \\\n     --episode-id EP1 \"第一集：主角进入废墟...\"  → 创作第一集\n4. 轮询 → 下载\n\n── 第二集 ──\n5. manage_episodes.py create --base-id B       → 拿到新 episodeId (EP2)\n6. send_message.py --base-id B \\\n     --episode-id EP2 \"第二集：发现地下实验室...\" → 创作第二集\n7. 轮询 → 下载\n\n── 更多剧集：重复步骤 5-7 ──"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: zopia-skill\ndescription: Zopia AI 视频创作技能 - 通过 Zopia 平台的 AI Agent 进行视频/图片创作。覆盖场景包括：AI 视频生成（文生视频、图生视频）、AI 图片生成（角色设定图、分镜关键帧）、剧本创作（对话/旁白/场景描述）、角色设计、分镜设计、多集连续剧制作。当用户提到 zopia、视频创作、短剧制作、分镜、角色设计、AI 视频生成时应触发。关键判断：只要用户的请求涉及通过 AI 进行系统化的视频创作流程（剧本→角色→分镜→视频），都必须触发此技能。\nuser-invocable: true\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🎬\",\n        \"requires\":\n          {\n            \"bins\": [\"python3\"],\n            \"env\": [\"ZOPIA_ACCESS_KEY\"]\n          },\n        \"primaryEnv\": \"ZOPIA_ACCESS_KEY\"\n      }\n  }\n---\n\n# Zopia AI 视频创作\n\nZopia 是一个项目制的 AI 视频创作平台。每个项目包含完整的创作流水线：**剧本 → 角色 → 分镜 → 视频**，由后端 AI Agent 自动驱动。你通过脚本管理项目、传达用户意图、追踪进度、获取成果。\n\n## 环境配置\n\n```bash\nexport ZOPIA_ACCESS_KEY=\"zopia-xxxxxxxxxxxx\"   # 必需，30天有效\nexport ZOPIA_BASE_URL=\"https://zopia.ai\"  # 可选\n```\n\n仅使用 Python 标准库，无需额外安装。\n\n## 核心概念\n\n| 概念 | 说明 |\n|------|------|\n| **Project (Base)** | 创作项目，包含设置、剧集、所有资产。创建时自动生成首集 |\n| **Episode** | 剧集，同一项目下可创建多集，每集有独立的剧本/角色/分镜 |\n| **Session** | 一次 Agent 对话。异步执行，通过轮询获取进展 |\n| **Workspace** | 项目的实时工作区快照，包含角色(entities)、分镜(storyboard)、各媒体的生成状态 |\n\n## 脚本速查\n\n| 脚本 | 用途 | 关键参数 |\n|------|------|---------|\n| `create_project.py` | 创建项目 | `[名称]` |\n| `save_settings.py` | 项目设置 | `--base-id` `--style` `--aspect-ratio` `--video-model` `--storyboard-image-model` `--entity-image-model` ... |\n| `send_message.py` | 发送创作指令（异步） | `--base-id` `--episode-id` `消息` |\n| `query_session.py` | 查询进展 | `SESSION_ID` `--poll` `--after-seq N` |\n| `download_results.py` | 下载媒体资源 | `SESSION_ID` `--output-dir` `--type image\\|video` |\n| `get_balance.py` | 余额查询 | — |\n| `list_projects.py` | 列出项目 | `--page` `--page-size` |\n| `manage_episodes.py` | 剧集管理 | `list\\|create\\|delete` |\n| `render_episode.py` | 合成最终视频 | `trigger\\|status` `--base-id` `--episode-id` `--poll` |\n\n## 项目设置参考\n\n创建项目后，必须配置基础设置（locale / aspect_ratio / style）才能开始创作。\n\n```bash\npython3 {baseDir}/scripts/save_settings.py --base-id BASE_ID \\\n  --locale zh-CN --aspect-ratio 16:9 --style realistic_3d_cg\n```\n\n### 风格\n\n| ID | 说明 |\n|----|------|\n| `anime_japanese_korean` | 日韩动漫 |\n| `realistic_3d_cg` | 3D CG 写实 🔥 |\n| `pixar_3d_cartoon` | Pixar 3D 卡通 |\n| `photorealistic_real_human` | 真人写实 |\n| `3D_CG_Animation` | 3D CG 动画 🔥 |\n| `anime_chibi` | Q版可爱 |\n| `anime_shinkai` | 新海诚 |\n| `anime_ghibli` | 吉卜力 |\n| `stylized_pixel` | 像素艺术 |\n\n别名支持：`realistic` → `realistic_3d_cg`，`ghibli` → `anime_ghibli`，`shinkai` → `anime_shinkai`，`pixel` → `stylized_pixel`\n\n### 视频模型 × 生成方式\n\n不同模型支持不同的生成方式（generation_method），不匹配会报错。\n\n| 模型 ID | 名称 | 支持的方式 | 默认 |\n|---------|------|-----------|------|\n| `generate_video_by_seedance_20` | Seedance 2.0 Pro ⭐ | n_grid, video_ref, multi_ref, multi_ref_v2 | video_ref |\n| `generate_video_by_seedance_20_fast` | Seedance 2.0 Fast | n_grid, video_ref, multi_ref, multi_ref_v2 | video_ref |\n| `generate_video_by_kling_o3` | Kling O3 | start_frame, n_grid, multi_ref, multi_ref_v2 | n_grid |\n| `generate_video_by_kling_v3_0` | Kling V3.0 | start_frame, n_grid | n_grid |\n| `generate_video_by_pixverse_c1` | PixVerse C1 | start_frame, multi_ref | "},{"path":"README.md","content":"# Zopia Skills\n\nZopia AI 视频创作技能 — 通过 [Zopia](https://zopia.ai) 平台的 AI Agent 进行视频/图片创作。\n\n覆盖场景：AI 视频生成（文生视频、图生视频）、AI 图片生成（角色设定图、分镜关键帧）、剧本创作、角色设计、分镜设计、多集连续剧制作。\n\n## 安装\n\n### 通过 npx 安装（推荐）\n\n```bash\nnpx skills add 11cafe/zopia-skills\n```\n\n> [`skills`](https://github.com/vercel-labs/skills) 是 Vercel Labs 开发的跨平台技能安装 CLI，支持 Claude Code、Gemini CLI、Codex、Cursor 等 40+ 个 Agent。\n\n安装到指定 Agent：\n\n```bash\nnpx skills add 11cafe/zopia-skills -a claude-code\n```\n\n### 通过 OpenClaw 安装\n\n在 [OpenClaw](https://openclaw.ai) 技能市场搜索 `zopia-skill`，或使用命令行：\n\n```bash\nnpx clawhub install zopia-skill\n```\n\n### 手动安装\n\n```bash\ngit clone https://github.com/11cafe/zopia-skills.git\n```\n\n将 `SKILL.md` 和 `scripts/` 目录复制到对应的技能目录：\n\n| 范围 | 路径 |\n|------|------|\n| 个人全局 | `~/.claude/skills/zopia-skill/` |\n| 项目级别 | `.claude/skills/zopia-skill/` |\n\n## 配置\n\n使用前需设置环境变量：\n\n```bash\nexport ZOPIA_ACCESS_KEY=\"zopia-xxxxxxxxxxxx\"   # 必需，30天有效\nexport ZOPIA_BASE_URL=\"https://zopia.ai\"  # 可选，默认值即可\n```\n\n仅依赖 Python 标准库，无需安装第三方包。需要 `python3` 可用。\n\n## 使用\n\n安装技能后，在 Claude Code 中直接描述你的创作需求即可：\n\n```\n帮我做一个赛博朋克风格的短剧，讲一个机器人在废墟中寻找最后一朵花\n```\n\n技能会自动完成：创建项目 → 配置设置 → 发送创作指令 → 轮询进度 → 下载结果。\n\n### 支持的风格\n\n| ID | 说明 |\n|----|------|\n| `anime_japanese_korean` | 日韩动漫 |\n| `realistic_3d_cg` | 3D CG 写实 |\n| `pixar_3d_cartoon` | Pixar 3D 卡通 |\n| `photorealistic_real_human` | 真人写实 |\n| `3D_CG_Animation` | 3D CG 动画 |\n| `anime_chibi` | Q版可爱 |\n| `anime_shinkai` | 新海诚 |\n| `anime_ghibli` | 吉卜力 |\n| `stylized_pixel` | 像素艺术 |\n\n### 支持的图片模型\n\n分镜图（storyboard）与角色/场景图（entity）可分别配置，两者共享同一组可选值：\n\n| 模型 | 名称 |\n|------|------|\n| `generate_image_by_nano_banana_2` | Nano Banana 2（storyboard 默认）|\n| `generate_image_by_doubao_seedream_4` | Doubao Seedream 4（entity 默认）|\n| `generate_image_by_nano_banana` | Nano Banana |\n| `generate_image_by_gpt_image_2` | GPT Image 2 |\n\n### 支持的视频模型\n\n| 模型 | 名称 |\n|------|------|\n| `generate_video_by_kling_o3` | Kling O3 |\n| `generate_video_by_kling_v3_0` | Kling V3.0 |\n| `generate_video_by_hailuo_02` | Hailuo 2.3 |\n| `generate_video_by_wan26_i2v` | Wan 2.6 |\n| `generate_video_by_wan26_i2v_flash` | Wan 2.6 Flash |\n| `generate_video_by_viduq2_pro` | Vidu Q2 Pro |\n| `generate_video_by_viduq3_pro` | Vidu Q3 Pro |\n| `generate_video_by_viduq3` | Vidu Q3 |\n| `generate_video_by_seedance_15` | Seedance 1.5 Pro |\n\n### 脚本列表\n\n| 脚本 | 用途 |\n|------|------|\n| `create_project.py` | 创建项目 |\n| `save_settings.py` | 配置项目设置 |\n| `send_message.py` | 发送创作指令 |\n| `query_session.py` | 查询创作进度 |\n| `download_results.py` | 下载媒体资源 |\n| `get_balance.py` | 查询余额 |\n| `list_projects.py` | 列出所有项目 |\n| `manage_episodes.py` | 管理剧集 |\n| `render_episode.py` | 合成最终视频（MP4） |\n\n## License\n\n[MIT](LICENSE)"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7d76nd4k7hjp2tdaybzem70x83mynm\",\n  \"slug\": \"zopia-skill\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1777097440625\n}"},{"path":"CLAUDE.md","content":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## 项目定位\n\n本仓库是 **Zopia AI 视频创作 Skill 包**，被 Claude Code / Gemini CLI / Codex / Cursor 等 Agent 通过 `npx skills add` 或 `npx clawhub install` 安装后调用。它本身不是后端服务，而是一组 Python 脚本 + 一份 `SKILL.md` 行为指引，封装对 Zopia 平台 HTTP API 的调用。\n\n后端实现在姐妹仓库 `C:\\code\\jobCode\\zipia\\jaaz-cloud`（同 host 下的 `https://zopia.ai`），本仓库的脚本通过 HTTP 调用其接口。修改本项目时，若涉及接口字段、新模型 ID、新风格枚举等，对应能力须在 `jaaz-cloud` 已上线，否则脚本调用会报 400/404。\n\n## 核心架构\n\n```\nSKILL.md            ← 行为契约：Agent 什么时候触发、如何组合脚本、典型场景、错误处理\nREADME.md           ← 用户向：安装/配置/枚举值速查\nscripts/_common.py  ← 唯一的共享层：urllib HTTP + Bearer 鉴权 + 业务级封装函数\nscripts/*.py        ← 一脚本一动作，全是 argparse + _common 函数 + print_json 的薄壳\ndocs/               ← 维护者文档（如 publish-to-clawhub.md）\n```\n\n**只允许 Python 标准库**。`_common.py` 用 `urllib.request` 实现 HTTP，是有意为之——Skill 安装到用户机器后不能要求 `pip install`。新增脚本必须沿用这个约定，**不要引入 requests / httpx / pydantic 等第三方包**。\n\n每个脚本的写法是固定的薄壳模式：\n\n1. `sys.path.insert(0, os.path.dirname(__file__))` 后从 `_common` 导入\n2. `argparse` 解析参数\n3. 调用 `_common` 里的业务函数\n4. `print_json(result)` 输出，由调用方（Agent）解析\n\n新增 API 调用时，**先在 `_common.py` 加业务级封装函数**（参考 `create_project` / `send_message`），再写脚本壳。不要让脚本自己拼 URL 和 header。\n\n## SKILL.md 是行为源\n\n`SKILL.md` 是 Agent 的运行手册——它规定了 Agent 应该如何串联这些脚本（场景 1–5）、如何读 workspace 进度、什么时候该展示项目链接、不要替用户扩写需求等。**修改脚本参数或新增脚本时，必须同步更新 `SKILL.md` 的脚本速查表与场景示例**，否则 Agent 行为会与实际能力脱节。`README.md` 的枚举值表（风格、模型）也要同步。\n\n## 常用命令\n\n仓库无 lint、无测试、无构建。日常只有这些：\n\n```bash\n# 配置环境变量（脚本运行前提）\nexport ZOPIA_ACCESS_KEY=\"zopia-xxxxxxxxxxxx\"\nexport ZOPIA_BASE_URL=\"https://zopia.ai\"   # 可选，默认即此\n\n# 直接跑脚本调试\npython3 scripts/get_balance.py\npython3 scripts/create_project.py \"测试项目\"\npython3 scripts/query_session.py SESSION_ID --poll\n```\n\n调试本地 `jaaz-cloud` 时，把 `ZOPIA_BASE_URL` 改到本地端口（如 `http://localhost:3000`）即可。\n\n## 发布流程\n\n发布到 ClawHub 技能市场，详细步骤见 `docs/publish-to-clawhub.md`：\n\n```bash\ngit push                              # 先推 GitHub\nnpx clawhub publish . --slug zopia-skill --version x.y.z --changelog \"...\"\nnpx clawhub inspect zopia-skill       # 验证 Latest 字段\n```\n\n版本号 semver：新增模型/功能 → minor +1；修 bug / 文档更新 → patch +1。\n\n## 项目约定\n\n- **Git commit message 用中文**，控制在 20 字以内（参考最近提交：`feat: 新增 Seedance 2.0 Fast 和 PixVerse C1 模型`）\n- **不要 `git commit`**，除非用户明确要求\n- 重构时不考虑兼容性，直接删除旧逻辑（除非用户明确要求保留）\n- npm/npx 命令在 Windows 下用 cmd 执行"},{"path":"docs/publish-to-clawhub.md","content":"# 发布 zopia-skill 到 ClawHub\n\n## 前提条件\n\n- Node.js 已安装（`npx` 可用）\n- 已登录 ClawHub（见下文）\n\n## 1. 登录\n\n首次使用需登录：\n\n```bash\nnpx clawhub login\n```\n\n验证登录状态：\n\n```bash\nnpx clawhub whoami\n# ✔ Lambdua\n```\n\n登录态会持久化，后续无需重复登录。\n\n## 2. 修改内容并推送 GitHub\n\n修改 `SKILL.md`、脚本等文件后，先 commit & push 到 GitHub：\n\n```bash\ngit add .\ngit commit -m \"描述本次变更\"\ngit push\n```\n\n## 3. 发布新版本到 ClawHub\n\n```bash\nnpx clawhub publish /path/to/zopia-skills \\\n  --slug zopia-skill \\\n  --version <新版本号> \\\n  --changelog \"本次变更说明\"\n```\n\n**示例：**\n\n```bash\nnpx clawhub publish /c/code/jobCode/zipia/zopia-skills \\\n  --slug zopia-skill \\\n  --version 1.0.3 \\\n  --changelog \"新增 xxx 模型\"\n```\n\n版本号遵循 semver：\n- 新增模型 / 功能 → 次版本号 +1（如 1.0.1 → 1.1.0）\n- Bug 修复 / 文档更新 → 补丁号 +1（如 1.0.1 → 1.0.2）\n\n## 4. 验证发布结果\n\n```bash\nnpx clawhub inspect zopia-skill\n```\n\n确认 `Latest` 字段已更新为新版本号。\n\n## 常用命令速查\n\n| 命令 | 说明 |\n|------|------|\n| `npx clawhub whoami` | 查看当前登录用户 |\n| `npx clawhub inspect zopia-skill` | 查看已发布版本信息 |\n| `npx clawhub publish <path> --slug zopia-skill --version x.y.z` | 发布新版本 |\n| `npx clawhub skill --help` | 管理已发布技能 |"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Zopia AI 视频创作技能 - 通过 Zopia 平台的 AI Agent 进行视频/图片创作。覆盖场景包括：AI 视频生成（文生视频、图生视频）、AI 图片生成（角色设定图、分镜关键帧）、剧本创作（对话/旁白/场景描述）、角色设计、分镜设计、多集连续剧制作。当用户提到 zopia、视频创作、短剧制作、分镜、... Skill: Zopia Skills Owner: lambdua Summary: Zopia AI 视频创作技能 - 通过 Zopia 平台的 AI Agent 进行视频/图片创作。覆盖场景包括：AI 视频生成（文生视频、图生视频）、AI 图片生成（角色设定图、分镜关键帧）、剧本创作（对话/旁白/场景描述）、角色设计、分镜设计、多集连续剧制作。当用户提到 zopia、视频创作、短剧制作、分镜、... Tags: latest:1.1.0 Version history: v1.1.0 | 2026-04-25T06:10:40.625Z | user 新增分镜/角色场景图模型配置，支持 GPT Image 2 v1.0.2 | 2026-04-08T08:59:21.688Z | user 新增 Seedance 2.0 Fast 和 PixVerse C1 模型，更新 Seedance 2.0 名称 v1.0.1 | 2","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":980,"uniquenessScore":46,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T06:57:42.724Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T06:57:42.724Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T17:49:41.407Z","emptyReason":null},"items":[{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-10T18:48:31.762Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}