通过小云雀的 AI 能力进行综合创作,支持生成和编辑图片/视频,并在用户明确要求图片或视频模型直出、指定图片或视频模型或直接调用 CLI 时使用 pippit-tool-cli generate-image / generate-video。覆盖文生图、文生视频、图生视频、首尾帧生视频、视频编辑、风格转换、视频续写、视频复刻、TVC、宣传片、音乐 MV、产品广告、分镜和教育短视频等场景。当用户提到小云雀、xyq、上传参考图/视频/mp3或wav音频、查看生成进度时也应触发。短剧生成、续写、改写、人物设定和
小云雀创作与图片/视频模型直出是一项面向实际任务的技能,主要用于通过 小云雀的API 创建会话、发送消息(生图、生视频、编辑视频等)、上传图片/视频/mp3或wav音频文件,并查询会话消息进展;小云雀是一个 AI 综合创作平台,同时为人类创作者和 Agent 设计;
编辑 :局部修改、元。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
通过 小云雀的API 创建会话、发送消息(生图、生视频、编辑视频等)、上传图片/视频/mp3或wav音频文件,并查询会话消息进展。
小云雀是一个 AI 综合创作平台,同时为人类创作者和 Agent 设计。Agent 通过 Skill 入口理解任务、调用模型并自动编排工作流。
平台核心能力:
除“图片/视频模型直出”外,创作和编辑需求通过发送自然语言消息来完成,后端 Agent 会自主编排工作流。复杂任务耗时较长,需耐心轮询。
满足任一条件时,必须直接使用 pippit-tool-cli generate-image,不要改走 submit_run.py:
seedream_5.0_pro),并希望单次直接生成图片。执行原则:
command -v pippit-tool-cli 确认 CLI 可用;不可用时报告阻塞,不要悄悄降级到会话 API。--model 必填;用户未提供图片模型时,先询问使用哪个模型。只添加用户已经给出的 --ratio、--resolution、--generate-image-count、--image 参数,不补默认值。--resolution 的使用说明是:仅 seedream_5.0_pro 支持 1K、2K、4K。不要在 skill 侧维护额外 allowlist 或自行改写用户值,实际合法性由服务端决定。generate-image 返回后,保存 thread_id、run_id,并立即向用户展示 web_thread_link。query-result,直到 completed=true。出现 error_message 时停止并报告;成功时展示并下载 images[].output_path。pippit-tool-cli generate-image --prompt "用户原始描述" --model IMAGE_MODEL --ratio RATIO --resolution RESOLUTION --generate-image-count COUNT --image 参考图路径 pippit-tool-cli query-result --thread-id THREAD_ID --run-id RUN_ID --download-dir OUTPUT_DIR
满足任一条件时,必须直接使用 pippit-tool-cli generate-video,不要改走 submit_run.py:
执行原则:
command -v pippit-tool-cli 确认 CLI 可用;不可用时报告阻塞,不要悄悄降级到会话 API。--model、--duration、--ratio、--resolution、--image、--video、--audio、--generate-type 参数;未给参数交给 CLI 默认值。--generate-type 1,并按首帧、尾帧顺序传入两次 --image,不得重排。用户未明确两张图片的角色或缺少任一张时,先询问用户;不要在 skill 侧维护额外的 generate_type 枚举 allowlist,其他值原样交给服务端处理。generate-video 返回后,保存 thread_id、run_id,并立即向用户展示 web_thread_link。query-result,直到 completed=true。出现 error_message 时停止并报告;成功时展示并下载 videos[].output_path。pippit-tool-cli generate-video --prompt "用户原始描述" pippit-tool-cli generate-video --prompt "用户原始描述" --image FIRST_FRAME_PATH --image LAST_FRAME_PATH --generate-type 1 pippit-tool-cli query-result --thread-id THREAD_ID --run-id RUN_ID --download-dir OUTPUT_DIR
--image 最多重复 9 次,--video 和 --audio 最多各重复 3 次。
需要意图确认、脚本/分镜拆解、MV、TVC、局部编辑、复杂参考素材编排,或者用户未明确要求模型直出时,继续使用本技能内置的 submit_run.py / get_thread.py 会话工作流;明确的首尾帧请求除外,必须走路由 B。
用户要求短剧生成、续写、改写、剧情扩展、人物设定、分集草稿或短剧会话文件处理时,停止本技能流程并转交 xyq-short-drama-skill,不要用 submit_run.py、generate-image 或 generate-video 假装执行完整短剧流程。
后端返回意图确认问题、真实提交前需要 credits 确认,或缺少无法安全推断的必需信息时,暂停执行并向用户提问。
request_user_input。仅在工具已暴露且当前模式允许时调用;不可用时退回普通聊天提问。不要在 Codex 中调用 ask_user_question。ask_user_question(Ask User Question)。需要用户补充、选择或确认时优先调用;工具未暴露时才退回普通聊天提问。thread_id,获取新的 run_id,再继续轮询;不要新开会话。thread_id 、 run_id、after_seq 增量拉取该会话的消息列表,用于轮询创作过程的消息和最终产物结果单张图片、单个视频文件或单个mp3/wav音频文件到小云雀资产库,得到文件对应的 asset_id(编辑或参考已有图片/视频/音频时需要先上传)pippit-tool-cli generate-image 直接调用图片模型,使用 query-result 查询并下载图片结果。pippit-tool-cli generate-video 直接调用视频模型,使用 query-result 查询并下载视频结果。export XYQ_ACCESS_KEY="your-access-key"
可选:XYQ_OPENAPI_BASE 或 XYQ_BASE_URL,默认 https://xyq.jianying.com。
会话 API 路由无需安装额外依赖,仅使用 Python 标准库。图片/视频模型直出路由额外要求 pippit-tool-cli 在 PATH 中可用。
# 创建新会话并发送「生一个动漫视频」
python3 {baseDir}/scripts/submit_run.py --message "生一个动漫视频"
# 向已有会话发送消息
python3 {baseDir}/scripts/submit_run.py --message "再生成一个故事视频" --thread-id THREAD_ID
# 查询会话消息列表
python3 {baseDir}/scripts/get_thread.py --thread-id THREAD_ID --run-id RUN_ID --after-seq SEQUENCE
run_id由submit_run返回,用于指定查询某次具体运行的结果。
.mp3/.wav 音频。# 上传图片
python3 {baseDir}/scripts/upload_file.py /path/to/image.png
# 上传视频
python3 {baseDir}/scripts/upload_file.py /path/to/video.mp4
# 上传音频
python3 {baseDir}/scripts/upload_file.py /path/to/audio.mp3
任务完成后,可以将会话中的所有产物批量下载到本地。
# 指定 URL 列表,指定输出目录,指定文件名前缀(如 artifact_01.png, artifact_02.png ...)进行下载
python3 {baseDir}/scripts/download_results.py --urls URL1 URL2 URL3 --output-dir ./xyq_output --prefix "artifact"
理解这些工作流,才能正确组合上面的脚本完成用户需求。
1. submit_run.py --message "用户的描述" → 拿到 thread_id、run_id 和 web_thread_link
2. **立即**将 `web_thread_link` 展示给用户(如"任务已提交,可在此查看:{web_thread_link}")
3. 每隔 `10` 秒钟调用 get_thread.py --thread-id THREAD_ID --run-id RUN_ID --after-seq SEQUENCE 进行轮询
4. 检查 messages:
- 当任务还在创作中:
- 将过程创作信息展示给用户,继续轮询
- 当任务完成(run 结束):
- 如果涉及意图确认/流程中断(如"请回答以下问题"):
→ 优先调用当前宿主的结构化用户提问工具展示问题,等待用户回复
→ 使用 `thread_id` 重新提交任务(保持同一会话,产生新的 run_id)
→ 回到步骤 2 继续轮询(可能多轮,直到不再意图确认)
- 如果 content 中包含产物 URL:
→ 信息展示 → 下载产物 → 结果展示
5. 自动下载:download_results.py --urls URL1 URL2 URL3 --output-dir 输出目录 --prefix 有意义的前缀
6. 向用户展示:过程中的创作信息,以及下载后的本地文件列表
1. command -v pippit-tool-cli → 确认 CLI 可用 2. 检查图片模型:用户未提供时先询问,不要自行选择 3. pippit-tool-cli generate-image --prompt "用户原始描述" --model IMAGE_MODEL [仅添加用户已给出的其他参数] 4. 拿到 thread_id、run_id 和 web_thread_link,立即展示 web_thread_link 5. 每隔 10 秒调用 query-result --thread-id THREAD_ID --run-id RUN_ID --download-dir OUTPUT_DIR 6. completed=true 后展示并下载 images[].output_path;出现 error_message 时停止并报告
1. command -v pippit-tool-cli → 确认 CLI 可用 2. 普通视频模型直出:pippit-tool-cli generate-video --prompt "用户原始描述" [仅添加用户已给出的其他参数] 3. 首尾帧直出:确认两张图片的首帧/尾帧角色,按顺序执行 generate-video --image FIRST_FRAME_PATH --image LAST_FRAME_PATH --generate-type 1 4. 拿到 thread_id、run_id 和 web_thread_link,立即展示 web_thread_link 5. 每隔 10 秒调用 query-result --thread-id THREAD_ID --run-id RUN_ID --download-dir OUTPUT_DIR 6. completed=true 后展示并下载 videos[].output_path;出现 error_message 时停止并报告
1. upload_file.py /path/to/video.mp4 → 拿到 asset_id1 2. upload_file.py /path/to/audio.mp3 → 拿到 asset_id2 3. submit_run.py --message "参考这个视频并用这首歌做一个新的" --asset-ids asset_id1 asset_id2 → 拿到 thread_id、run_id、web_thread_link 4. 后续同场景 1 的步骤 2-6
用户给了文件路径 + 编辑指令 = 先上传文件,再把编辑指令和 所有asset_id 一起发送。
1. upload_file.py /path/to/ref1.png → 拿到 asset_id1 2. upload_file.py /path/to/ref2.mp4 → 拿到 asset_id2 3. upload_file.py /path/to/ref3.mp3 → 拿到 asset_id3 4. 直到所有文件上传完成,拿到所有 asset_id 5. submit_run.py --message "根据参考图、视频、音频生成xxx" --asset-ids asset_id1 asset_id2 asset_id3, ... → 拿到 thread_id、run_id、web_thread_link 6. 后续同场景 1 的步骤 2-6
1. submit_run.py --message "新的描述" --thread-id THREAD_ID → 拿到 thread_id、run_id、web_thread_link 2. 后续同场景 1 的步骤 2-6
48 小时仍无结果,告知用户"生成时间较长,可稍后查看",不再继续轮询submit_run 返回:
{
"thread_id": "90f05e0c-...",
"run_id": "abc123-...",
"web_thread_link": "https://xyq.jianying.com/..."
}
get_thread 返回:
{
"messages": [
{"id": "1", "role": "user", "content": "生一个动漫视频"},
{"id": "2", "role": "assistant", "content": [
{
"type": "{type}",
"subtype": "{sub_type}",
"data": {...}
}
]},
{"id": "3", "role": "assistant", "content": [
{
"type": "{type}",
"subtype": "{sub_type}",
"data": {..., "url": "{url}"....}
}
]}
]
}
upload_file 返回:
{
"asset_id": "{asset_id}"
}
download_results 返回:
{
"output_dir": "./xyq_output",
"downloaded": ["./xyq_output/01.png", "..."],
"total": 10
}
web_thread_link 展示给用户,方便用户直接打开浏览器查看任务页面thread_id 重新提交任务 → 继续轮询(可能多轮)get_thread 返回的 messages 中,任务创作完成会包含产物 URL,将产物链接、下载的本地文件等信息告知用户。你(用户侧 Agent)的职责是搬运工,不是创作者。会话 API 路由由后端 Agent 负责理解需求、拆解分镜、编排工作流、选模型、写 prompt;图片/视频模型直出路由把用户原始参数传给 CLI。你要做的是:
upload_file.py 把本地文件转为 asset_id;图片/视频模型直出路由把本地路径直接交给 CLI 的 --image / --video / --audio 参数;首尾帧任务固定传 --generate-type 1 并保持首帧、尾帧顺序pippit-tool-cli generate-image,视频模型直出调用 pippit-tool-cli generate-video,其余任务把用户的原始描述 + asset_id 原封不动发给 submit_run.pyget_thread.py 返回的消息列表,展示过程中的意图询问、创作信息等get_thread.py 轮询,图片/视频模型直出路由用 query-result 轮询 → 检查结果 → 下载产物 → 结果展示给用户绝对不要做的事:
后端 Agent 对模型能力、参数配置、prompt 工程远比用户侧更专业。用户侧越俎代庖只会降低生成质量,换个弱模型更是灾难。
正确示例:
用户说:「根据多张参考图,做个科普故事视频」
用户给了参考图:/path/to/ref1.png, /path/to/ref2.png, /path/to/ref3.png
→ upload_file.py /path/to/ref1.png → 拿到 asset_id1
→ upload_file.py /path/to/ref2.png → 拿到 asset_id2
→ upload_file.py /path/to/ref3.png → 拿到 asset_id3
→ submit_run.py --message "根据参考图、视频生成xxx" --asset-ids asset_id1 asset_id2, asset_id3 → 拿到 web_thread_link,立即展示给用户
→ 轮询 ─┬─ 意图确认 → 用户确认 → 使用 thread_id 重新提交 → 继续轮询
└─ 无意图确认 → 信息展示 → 下载产物 → 结果展示
错误示例:
❌ 用户侧自己先写了个九宫格分镜表(对峙、交锋、危机...) ❌ 然后把自己编的描述发给后端 ❌ 或者拆成9次 submit_run 分别发送
Authorization: Bearer message 是用户的指令要求,不能为空.mp3/.wav 音频文件,其他类型会被拒绝,文件大小须在 200MB 以下generate-image / generate-video 返回的 thread_id / run_id,并用 query-result 取回最终图片或视频。相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习