Summary
通过小云雀的 AI 能力进行综合创作,支持生成和编辑图片/视频。覆盖场景包括:生成(文生图、文生视频、图生视频、做动画、画一个xxx、来段xxx)、编辑修改(把xxx换成yyy、去掉xxx、加上xxx、改成xxx、调整xxx、局部修改、改镜头)、风格转换(风格迁移、转绘、换风格)、视频续写延长、复刻视频/TVC/宣传片…
full-aigc-skills/pippit-skills · Archived
通过小云雀的 AI 能力进行综合创作,支持生成和编辑图片/视频。覆盖场景?
npx skills add full-aigc-skills/pippit-skills --skill xyq-nest-skill
通过小云雀的 AI 能力进行综合创作,支持生成和编辑图片/视频。覆盖场景包括:生成(文生图、文生视频、图生视频、做动画、画一个xxx、来段xxx)、编辑修改(把xxx换成yyy、去掉xxx、加上xxx、改成xxx、调整xxx、局部修改、改镜头)、风格转换(风格迁移、转绘、换风格)、视频续写延长、复刻视频/TVC/宣传片…
This repository is archived — consider an actively maintained alternative.
xyq-skill — an installable skill for AI agents.
813 installsInstall the xyq-nest-skill skill for your AI agent. Published on skills.volces.com.
15 installsUse when an agent needs Dreamina(即梦) login, sessions, task history, or image/video generati…
1 installsDeclared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
Alternate registries and mirrors of this skill.
npx skills add https://github.com/pippit-dev/pippit-skills
main
Parsed from SKILL.md frontmatter.
Files included with this skill beyond the listing page.
SKILL.md
11,277 B
SUMMARY.md
965 B
通过 小云雀的API 创建会话、发送消息(生图、生视频、编辑视频等)、上传图片/视频文件,并查询会话消息进展。
小云雀是一个 AI 综合创作平台,同时为人类创作者和 Agent 设计。Agent 通过 Skill 入口理解任务、调用模型并自动编排工作流。
平台核心能力:
用户的所有创作和编辑需求都通过发送自然语言消息来完成,Agent 会自主编排工作流。复杂任务(短剧、MV)耗时较长,需耐心轮询。
threadid 、 runid、after_seq 增量拉取该会话的消息列表,用于轮询创作过程的消息和最终产物结果单张图片或单个视频文件到小云雀资产库,得到文件对应的 asset_id(编辑已有视频/图片时需要先上传)export XYQ_ACCESS_KEY="your-access-key"
可选:XYQOPENAPIBASE 或 XYQBASEURL,默认 https://xyq.jianying.com。
无需安装额外依赖,仅使用 Python 标准库。
# 创建新会话并发送「生一个动漫视频」
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
runid由submitrun返回,用于指定查询某次具体运行的结果。
# 上传图片
python3 {baseDir}/scripts/upload_file.py /path/to/image.png
# 上传视频
python3 {baseDir}/scripts/upload_file.py /path/to/video.mp4
任务完成后,可以将会话中的所有产物批量下载到本地。
# 指定 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. upload_file.py /path/to/video.mp4 → 拿到 asset_id
2. submit_run.py --message "参考这个视频做一个新的" --asset-ids asset_id → 拿到 thread_id、run_id、web_thread_link
3. 后续同场景 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. 直到所有文件上传完成,拿到所有 asset_id
4. submit_run.py --message "根据参考图、视频生成xxx" --asset-ids asset_id1 asset_id2, ... → 拿到 thread_id、run_id、web_thread_link
5. 后续同场景 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
}
webthreadlink 展示给用户,方便用户直接打开浏览器查看任务页面- 展示过程中的创作信息等,继续轮询
- 若涉及意图确认/流程中断(如"请回答以下问题")→ 展示问题 → 等待用户回复 → 使用同一 threadid 重新提交任务 → 继续轮询(可能多轮) - 若 content 中包含产物 URL: - 结果地址:来自 getthread 返回的 messages 中,任务创作完成会包含产物 URL,将产物链接、下载的本地文件等信息告知用户。
你(用户侧 Agent)的职责是搬运工,不是创作者。后端有专门的 Agent 负责理解需求、拆解分镜、编排工作流、选模型、写 prompt。你要做的只有三件事:
uploadfile.py 拿到 assetidsubmitrun.pyget_thread.py 返回的消息列表,展示过程中的意图询问、创作信息等get_thread.py 轮询结果 → 检查结果 → 下载产物 → 结果展示给用户绝对不要做的事:
后端 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 <XYQACCESSKEY>message 是用户的指令要求,不能为空