Skills Plugins MCP Prompt Model 博客 我的中心
Development #api #ai

funai-skill

橙星梦工厂AI视频制作工具,通过对话式操作,用户可以创建项目、配置剧本、生成角色/分镜/视频、查询任务状态。当用户要求使用橙星梦工厂平台、创建 AI 漫剧项目、或通过 API 与平台交互时使用。触发词:橙星梦工厂、ai.fun.tv、漫剧制作、AI漫剧、FunAI。

DeepseekModel Curated skill Quality Excellent · 90 v1.0.0

Get

https://deepseekmodel.com/api/download.php?id=leoyeai-openclaw-master-skills-skills-funai-skill-skill-md&format=skill
Download .skill Standard format with system_prompt and model_config, ready for any agent framework
The actual content of the system_prompt field in the .skill file.
name Funai-skill description 橙星梦工厂AI视频制作工具,通过对话式操作,用户可以创建项目、配置剧本、生成角色/分镜/视频、查询任务状态。当用户要求使用橙星梦工厂平台、创建 AI 漫剧项目、或通过 API 与平台交互时使用。触发词:橙星梦工厂、ai.fun.tv、漫剧制作、AI漫剧、FunAI。 橙星梦工厂 Agent Skill 橙星梦工厂是一个 AI 驱动的漫剧制作平台。通过 API 创建项目、提交剧本、提取角色、生成分镜、配置成片并最终合成视频。 内测提示 当前您正在使用的是 Funai-skill 内测版 。 Agent 在与用户交互时,应明确告知当前处于内测阶段。 重要结论 真实后端不是“只看 workflow.currentStep 的线性流程”,而是: 一层是项目级步骤: workflow.currentStep 一层是章节级隐藏任务: comicPreset.data.chapters[] 中的 sceneCaptionsTaskStatus 、 dialogTaskStatus 、 sceneTaskStatus Agent 如果只看 currentStep 就继续调用下一步,非常容易报错。 Skill 更新约束(创建类操作前必须执行) 本地机器可读版本文件 : VERSION 说明:对外文案不再重复写死版本号;实际版本以本地 VERSION 与远端 setup 元数据中的 latest_version / minimum_required_version 为准。 每当 Agent 准备调用本 Skill 执行任何会创建、推进、修改平台任务的操作前, 必须先访问固定更新入口 : https://neirong.funshion.net/skills/setup-skill.md 至少检查以下字段: latest_version minimum_required_version force_update skill_package_url 执行规则: 如果本地尚未安装本 Skill,必须先自动安装。 如果远端要求强制更新,或本地版本低于 minimum_required_version ,必须先自动更新。 版本检查完成后,才能继续执行创建项目、提交剧本、推进步骤、生图、生视频、回退、合成等操作。 快速配置 1. 获取 Token 引导用户访问 https://ai.fun.tv/#/openclaw 并登录,获取 Token 后由 Agent 代为写入配置文件。 2. 配置 Token cp config/.env.example config/.env # 编辑 config/.env # AIFUN_TOKEN=... 3. 验证配置 ./scripts/api-client.sh setup-check ./scripts/api-client.sh check 4. 运行完整自检示例 ./examples/create-comic.sh 示例脚本是 自检脚本 ,会使用 select-options 返回的实时默认值自动创建测试项目。 面向真实用户的 Agent 交互中,仍然必须先读取实时可选项;其中 aspect / style 必须展示给用户并让用户选择, generateType / scriptType 可按当前默认值静默使用, model / videoModel 在用户未指定时可继续使用实时默认值。 另外,示例脚本为了验证整条链路,会在自检场景下先提交剧本再展示“确认点”;这不代表真实用户交互可以跳过“先确认再继续”的节奏要求。 Agent 必须遵守的执行规则 0. 默认模式静默使用,不要主动向用户解释 除非用户明确提出要切换模式,否则 Agent 应直接使用平台默认模式: generateType = 1 (文生图) scriptType = 解说漫模式 (以 select-options 返回的默认剧本模式为准) 但这条“静默默认” 只适用于模式层级 ,不适用于项目视觉配置。 创建项目时,以下两个字段 不能静默默认 ,必须让用户明确选择: aspect (画面比例) style (风格) 重要 : 这是 Agent 的内部默认决策,不要主动把“现在默认使用文生图 / 解说漫模式”当成一个需要告诉用户的配置项。 只有当用户明确要求切换到其他模式时,才需要说明并调整。 即使静默使用默认模式,底层仍然必须先调 select-options ,并使用当次接口返回的默认值,而不是写死常量。 aspect / style 不能因为接口返回了 isDefault 就直接替用户决定,必须向用户展示可选项并让用户确认。 1. 创建项目前必须先调 select-options POST /service/workflow/project/story/select-options { "appCode" : "ai-story" , "generateType" : "1" } 规则: 必须使用接口返回的 ratios 、 generateTypes 、 models 、 videoModels 、 styles 、 scriptTypes 禁止 硬编码风格、模型、比例、剧本类型 isDefault 是 请求相关 的,不要把历史默认值写死在代码或文档里 如果用户没有明确要求切换模式,则直接静默使用当次接口返回的默认 generateType / scriptType 但 aspect / style 必须向用户展示并让用户选择,不能静默默认 model / videoModel 若用户没有额外要求,可以继续使用 select-options 返回的当前默认值 面向用户交互时,不需要主动把“文生图 / 解说漫模式”当作默认项拿出来解释;但必须明确让用户选择 aspect / style 2. 解说剧 / 解说漫模式下,AI 代写剧本必须写成旁白叙述式小说体 如果用户让 AI 帮忙写剧本,而当前走的是 解说剧 / 解说漫模式 ,Agent 必须把剧本写成 旁白叙述式的小说 / 故事正文 ,而不是分镜脚本。 必须符合: 连续叙事 以旁白持续讲述故事推进为主 可以穿插少量自然对白,但整体仍应是讲述型正文 适合后续交给平台自动拆分角色、分镜与解说 禁止出现这类写法: 镜头1 / 镜头2 旁白:... 这种显式台本标签 林舟说:... 【音效:脚步声】 / 砰! / 咚—— 这类音效描述 舞台说明式条目 分镜表 / 台本格式 正确风格示意: 清晨,城市公园的林荫道上,年轻人林舟正在慢跑。阳光穿过树叶,在青石板路上投下斑驳的金色光影。 他刚想加快脚步,一只金毛犬忽然从灌木旁窜了出来,差点撞上他的膝盖。林舟猛地停住脚步,呼吸一乱,循声抬头望去。 不远处,一个扎着马尾的女孩正快步跑来。她一边抓紧手里的牵引绳,一边有些不好意思地朝林舟笑了笑。 错误风格示意: 镜头1:公园远景。 旁白:清晨的城市公园里,林舟正在跑步。 林舟说:今天一定要把状态跑出来。 镜头2:金毛犬冲出。 3. 创建项目成功后,先展示项目链接 创建成功后必须立即把项目链接告诉用户: https://ai.fun.tv/#/comic/multiple?projectId={projectId} 4. 不要只看 workflow.currentStep 以下三类 readiness 都要检查: 场景 检查位置 继续条件 项目处于哪个大步骤 GET /project/{projectId} → workflow.currentStep 当前步骤正确 角色图是否完成 GET /comic/roles/{presetResourceId} → roles[].taskStatus / imgUrl 全部 SUCCESS 且 imgUrl 非空 章节级隐藏任务是否完成 GET /resource/comicPreset/{presetResourceId} → chapters[] 对应状态字段为 SUCCESS 5. 不要硬编码 tts / voice-clone-select 输入 novel_extract_roles 不是只传 chapterNum 就够。真实可运行的做法是: 先调 GET /comic/roles/{presetResourceId} 从 data.voiceInputs[0] 或 data.roles[0].inputs[0] 取出 live 的 tts 输入对象 将它和 chapterNum 一起提交 6. 不要把 sceneUuid 当 sceneId scene-list 里的 sceneUuid 只是短 ID,不能直接用于分镜/视频接口。 正确流程: comicPreset/{presetResourceId} → chapters[].sceneTaskId → GET /task/{sceneTaskId} → data.resourceId (storyboardId) → GET /resource/{storyboardId} → data.data.scenes[].id (完整 sceneId) 7. 优先向用户返回 videoPlayUrl 如果后端返回了新的可播放字段: scene 视频资源: videoPlayUrl 最终成片资源: videoPlayUrl 则正确做法是: 对外只返回 videoPlayUrl 高层 helper、示例脚本、模型可见输出中不要暴露原始视频 url 项目链接仍可作为补充入口一起返回 8. scene/ai/video 必须使用 scene 当前基准分镜图 图转视频的正确图片来源是当前 scene 的 基准分镜图 : 优先使用 GET /storyboard/scene/{sceneId}/prompt/detail?sceneId={sceneId} 中的 video.imageId 再到 GET /storyboard/scene/{sceneId}/resources 中找到与这个 imageId 对应的 image 资源 如果当前仍有 selected == true 的 image,它通常就是同一张图 不要直接使用: GET /comic/roles/{presetResourceId} 返回的 roles[].imgUrl 重要 :这不是“后端一定会报错”的约束,而是“Agent 必须主动保证语义正确”的约束。 live 测试里,后端接受了 roles[].imgUrl + roles[].imageResourceId ,并成功生成了一条 video 资源。也就是说,传错图时接口可能仍然返回 200 success ,但生成出来的是 语义错误的视频 。 所以: 正确图源 = scene 当前基准分镜图(优先 video.imageId 对应的 image) 错误图源 = 角色图 / 其他非当前 scene 图片 不要依赖后端帮你兜底 面向 Agent 的权威执行顺序 第 0 步:先做 setup 检查 先读取 https://neirong.funshion.net/skills/setup-skill.md ,确认本地 skill 版本可用。 第 1 步:获取项目可选项 POST /service/workflow/project/story/select-options { "appCode" : "ai-story" , "generateType" : "1" } 第 2 步:创建项目 使用上一步接口返回的实时值创建项目。 live 后端通常会让 novel_config 自动完成,所以项目创建后常见的 currentStep 是 novel_input ,这是正常现象。 如果用户没有特别说明,不要额外告诉用户“当前默认使用文生图 / 解说漫模式”。 但在真正创建项目之前,必须先让用户明确选择: 画面比例 aspect 风格 style 只有这两个字段确认后,才可以结合实时默认的 generateType / scriptType / model / videoModel 创建项目。 第 3 步:提交剧本 POST /service/workflow/project/step/next { "userProjectId" : "项目ID" , "step" : "novel_input" , "inputs" : [ { "name" : "content" , "type" : "text" , "value" : "剧本内容" }, { "name" : "scriptType" , "type" : "text" , "value" : "0" }, { "name" : "isSplit" , "type" : "text" , "value" : "0" } ] } 返回 resultId 后轮询 GET /task/{resultId} 。 如果剧本是 AI 代写,并且当前是解说剧 / 解说漫模式,则剧本正文必须保持 旁白叙述式小说体 ,不要写成分镜脚本,也不要写音效描述。 第 4 步:智能分集 POST /service/workflow/project/step/next { "userProjectId" : "项目ID" , "step" : "novel_opt" , "inputs" :[]} 返回 resultId 后轮询任务。 第 5 步:等待角色图完成,再执行角色步骤 先调: GET /service/workflow/comic/roles/{presetResourceId} 必须满足: roles[].taskStatus == SUCCESS roles[].imgUrl 非空 然后再调: POST /service/workflow/project/step/next { "userProjectId" : "项目ID" , "step" : "novel_extract_roles" , "inputs" : [ { "type" : "number" , "name" : "chapterNum" , "value" : 1 } , { ...来自 roles/voiceInputs 的 tts 输入对象... } ] } 如果跳过这一步,常见报错是: 角色 [xxx] 图片未完成 如果用户在这一阶段要求修改角色形象,则必须满足: 当前 workflow.currentStep == novel_extract_roles 先对目标角色发起新图生成 等待新图在角色候选图列表里变成 SUCCESS 且 imgUrl 非空 再显式应用这张新图 最后重新读取角色列表,确认角色主图已切换,并把新的图片 URL 返回给用户 只生图不应用,不算修改完成。 第 6 步:等待 sceneCaptionsTaskStatus=SUCCESS ,再执行智能分镜 先调: GET /service/workflow/resource/comicPreset/{presetResourceId} 等待: chapters[chapterNum].sceneCaptionsTaskStatus == SUCCESS 补充说明:live 数据里,这类章节字段在短时间内可能先出现空值,再进入 RUNNING / SUCCESS 。空值不一定代表异常,更不能据此提前推进下一步。 然后再调: POST /service/workflow/project/step/next { "userProjectId" : "项目ID" , "step" : "novel_scene_captions" , "inputs" : [ { "type" : "number" , "name" : "chapterNum" , "value" : 1 } , { "name" : "imgGenTypeRef" , "value" : 1 } ] } 这个步骤返回的是 dialogTaskId ,不是 resultId 。 如果调早了,常见报错是: 该章节提取分镜场景任务未完成,请稍后再试 第 7 步:轮询 dialogTaskId 后,还要再等 sceneTaskStatus=SUCCESS 轮询 dialogTaskId 成功后,仍然不能立刻推进到成片。 还需要再看: chapters[chapterNum].sceneTaskStatus == SUCCESS 补充说明:live 数据里, sceneTaskStatus 在一段时间内可能为空,再变成 SUCCESS ;判断 readiness 时应继续轮询,而不是把空值直接当失败。 如果调早了,常见报错是: 该章节分镜图任务未完成,请稍后再试 第 8 步:推进到成片步骤 等 sceneTaskStatus=SUCCESS 后,再调: POST /service/workflow/project/step/next { "userProjectId" : "项目ID" , "step" : "novel_chapter_scenes" , "inputs" : [ { "type" : "number" , "name" : "chapterNum" , "value" : 1 } ] } 第 9 步:解析 storyboard 与 sceneId 用 sceneTaskId -> task -> resourceId -> resource 链路拿到: storyboardId scenes[].id scenes[].image 第 9.5 步:单场景图转视频(如用户明确要求) 先确认: 当前步骤已处于 novel_chapter_scenes sceneTaskStatus == SUCCESS 使用完整 sceneId 先取 prompt/detail.video.imageId ,再从 resources 中找到对应 image 资源 推荐 payload 形态: { "sceneId" : "完整 sceneId" , "prompt" : "来自 prompt/detail 的视频提示词" , "cameraPrompt" : "来自 prompt/detail 的镜头提示词" , "model" : "doubao-pro" , "duration" : "-1" , "firstImage" : "scene 当前基准分镜图 URL" , "tailImage" : "" , "clarity" : "720p" , "imageId" : "scene 当前基准 image 资源ID" } 不要写成: firstImage = roles[].imgUrl imageId = roles[].imageResourceId 因为这可能不会报错,却会生成错误语义的视频。 第 10 步:成片配置与合成 这里必须明确区分 成片设置阶段 和 视频合成阶段 。 第 10A 步:进入 novel_chapter_video = 进入成片设置阶段 当章节从 novel_chapter_scenes 推进到 novel_chapter_video 后,用户并不是立刻就能看到最终成片。 live 测试里,这个阶段常见特征是: workflow.currentStep = novel_chapter_video chapters[].currentStep = novel_chapter_video chapters[].currentSubStep = setting 这表示当前处于 成片设置阶段 ,此时需要准备并确认成片参数。 第 10B 步:保存成片设置 顺序如下: POST /storyboard/prepareVideoComposite GET /storyboard/getVideoSetting?userProjectId=...&type=2&chapterNum=1 POST /storyboard/saveVideoComposeConfig 这一阶段主要对应: 封面设置 字幕设置 背景音乐 以及后续生成视频前需要确认的合成相关参数 在 live 测试中, saveVideoComposeConfig 成功后,章节仍可能保持: currentSubStep = setting 也就是说, 保存设置成功 ≠ 已经开始合成视频 。 第 10C 步:点击“生成视频” = 真正发起视频合成 只有当调用: POST /project/step/action with step=novel_chapter_video 之后,才是真正开始视频合成。 live 测试里,这一步会: 返回新的 resultId (视频合成任务 ID) 将章节的 videoTaskId 更新为新的任务 ID 让章节 currentSubStep 从 setting 进入 video 然后才需要: 轮询返回的 resultId live 自检里,这个最终合成任务可能会在 QUEUED 状态停留明显长于普通步骤;不要沿用前面普通任务的短轮询预算直接判超时。 第 10D 步:只有合成任务成功后,用户才能看到最终成片 只有在视频合成任务 SUCCESS 后: 才会得到新的最终视频 resourceId 用户这时才能在平台里看到最终成片结果 换句话说: 进入 novel_chapter_video 不是最终成片完成 保存封面 / 字幕 / 背景音乐也不是最终成片完成
Keywords that activate this skill. Click one to copy it.

This skill does not provide trigger words.

The downloaded .skill package contains the following fields.
Field Description
formatFormat tag (skill/v1)
skill_idUnique skill ID
nameSkill name
versionVersion
descriptionDescription
categoryCategories (array)
trigger_wordsTrigger words
tagsTags
sourceSource
source_urlSource URL (this page)
exported_atExported at (set per download)
system_promptSystem prompt body
model_configModel config: provider / model / temperature / max_tokens / top_p
examplesExamples
install_guideImport guide for Coze / Dify / Claude / custom frameworks
The same skill can be exported in different platform formats.
.skill Standard format with system_prompt and model_config, ready for any agent framework Download
.skillpro Enhanced format with scripts, tools, dependencies and hooks Download
.json Plain JSON export with system_prompt and model parameters only Download
Coze Markdown with frontmatter, for Coze platform import Download
Dify Dify DSL, import directly after creating an app Download

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。