xyq-nest-skill
pippit-dev/pippit-skills
AI-powered image and video generation, editing, and creative composition through XiaoYunQue platform.
What is xyq-nest-skill?
XiaoYunQue Nest Skill enables comprehensive creative content generation and editing for images and videos via natural language. It supports text-to-image, text-to-video, video editing, style transfer, short-form content creation, and complex workflows like one-prompt story generation. Use this when users request any form of AI-driven visual creation, editing, or modification.
- Generate images and videos from text descriptions, reference images, or existing videos
- Edit and modify existing videos: element replacement, local adjustments, shot changes, style transfer
- Create complex content: one-prompt short stories (script→storyboard→final video), TVC/promotional videos, music videos, product demos
- Upload and reference local image/video files as creative inputs or editing bases
- Poll task progress and download generated results in batch
How to install xyq-nest-skill
npx skills add https://github.com/pippit-dev/pippit-skills --skill xyq-nest-skill- Python 3 installed
- XYQ_ACCESS_KEY environment variable set (required for API authentication)
- Optional: XYQ_OPENAPI_BASE or XYQ_BASE_URL environment variables (defaults to https://xyq.jianying.com)
How to use xyq-nest-skill
- 1.If user provides local image/video files: run upload_file.py with file path to get asset_id(s)
- 2.Submit task with submit_run.py, passing user's original description and any asset_ids from uploads; capture returned thread_id, run_id, and web_thread_link
- 3.Immediately display web_thread_link to user so they can monitor progress in browser
- 4.Poll task progress every 10 seconds using get_thread.py with thread_id and run_id; use after-seq for incremental message retrieval
- 5.During polling: if assistant messages contain intent confirmation questions, display them to user and wait for response; resubmit using same thread_id with user's answer
- 6.When task completes and content includes product URLs: download results using download_results.py with URLs, output directory, and filename prefix
- 7.Display to user: process updates during creation, final product URLs, and list of downloaded local files
Use cases
- User requests: 'Generate an anime video' or 'Draw a cat'—submit task, poll progress, download result
- User provides reference video and says 'Make a similar promotional video'—upload video, submit with asset ID, poll and download
- User wants to edit: 'Change this element to that' or 'Remove this from the video'—upload original, submit edit request with asset ID, poll and download
- User requests complex creation: 'Generate a short story video about space exploration'—submit one-prompt request, handle intent confirmation if needed, poll until complete
- User provides multiple reference images and requests new content based on them—upload all files, submit with all asset IDs, poll and download
- Content creators and marketers producing promotional videos, product demos, or advertising content
- Educators and storytellers creating educational videos or short-form narrative content
- Designers and creative professionals needing rapid visual prototyping and style exploration
- Anyone requesting AI-assisted image or video generation, editing, or style transformation
xyq-nest-skill FAQ
Upload each file using upload_file.py to get its asset_id, then include all asset_ids in the submit_run.py message along with the user's original description. Do not modify or expand the user's description.
Poll every 10 seconds using get_thread.py. Use the after-seq parameter for incremental retrieval of new messages. Stop polling if no result after 48 hours of continuous polling.
Display the questions to the user, wait for their response, then resubmit using the same thread_id with their answer. The task may require multiple rounds of clarification before completion.
No. Send the user's original description exactly as stated. The backend Agent handles prompt engineering, workflow orchestration, and model selection. Your role is to pass messages through unchanged.
Only image (image/*) and video (video/*) files are supported. Each file must be under 200MB. Other file types will be rejected.
Full instructions (SKILL.md)
Source of truth, from pippit-dev/pippit-skills.
name: xyq-nest-skill description: 通过小云雀的 AI 能力进行综合创作,支持生成和编辑图片/视频。覆盖场景包括:生成(文生图、文生视频、图生视频、做动画、画一个xxx、来段xxx)、编辑修改(把xxx换成yyy、去掉xxx、加上xxx、改成xxx、调整xxx、局部修改、改镜头)、风格转换(风格迁移、转绘、换风格)、视频续写延长、复刻视频/TVC/宣传片、短剧/短漫剧生成、音乐MV生成、产品广告/展示片制作、分镜/故事板设计、教育视频/短视频制作。当用户提到小云雀、xyq、上传参考图/视频、查看生成进度时也应触发。关键判断:只要用户的请求涉及 AI 视频的创作、生成、编辑、修改,无论措辞如何(如"画只猫"、"做个海报"、"做个视频"、"这个视频帮我改一下"、"帮我复刻这段视频"、"用这首歌做个MV"、"一句话生成短剧"),都必须触发此技能。 user-invocable: true metadata: { "openclaw": { "emoji": "💬", "requires": { "bins": ["python3"], "env": ["XYQ_ACCESS_KEY"] }, "primaryEnv": "XYQ_ACCESS_KEY" } }
小云雀会话(生视频)
通过 小云雀的API 创建会话、发送消息(生图、生视频、编辑视频等)、上传图片/视频文件,并查询会话消息进展。
小云雀是一个 AI 综合创作平台,同时为人类创作者和 Agent 设计。Agent 通过 Skill 入口理解任务、调用模型并自动编排工作流。
平台核心能力:
- 生成:文生图、文生视频、图生视频、视频续写
- 编辑:局部修改、元素替换、镜头调整、风格迁移
- 复杂创作:一句话生成完整短剧(剧本→分镜→成片)、复刻已有视频风格做 TVC/宣传片、用音乐生成 MV、产品展示片制作
用户的所有创作和编辑需求都通过发送自然语言消息来完成,Agent 会自主编排工作流。复杂任务(短剧、MV)耗时较长,需耐心轮询。
功能
- 创建会话 / 发消息 - 创建新会话或向已有会话发送一条消息(如「创作一个视频」)
- 查询会话进展 - 根据
thread_id、run_id、after_seq增量拉取该会话的消息列表,用于轮询创作过程的消息和最终产物结果 - 上传文件 - 支持上传
单张图片或单个视频文件到小云雀资产库,得到文件对应的asset_id(编辑已有视频/图片时需要先上传) - 下载结果 - 将会话中生成的图片/视频批量下载到本地,支持指定输出目录和文件名前缀。
前置要求
export XYQ_ACCESS_KEY="your-access-key"
可选:XYQ_OPENAPI_BASE 或 XYQ_BASE_URL,默认 https://xyq.jianying.com。
无需安装额外依赖,仅使用 Python 标准库。
使用方法
1. 创建会话 / 发送消息
# 创建新会话并发送「生一个动漫视频」
python3 {baseDir}/scripts/submit_run.py --message "生一个动漫视频"
# 向已有会话发送消息
python3 {baseDir}/scripts/submit_run.py --message "再生成一个故事视频" --thread-id THREAD_ID
2. 查询会话进展
# 查询会话消息列表
python3 {baseDir}/scripts/get_thread.py --thread-id THREAD_ID --run-id RUN_ID --after-seq SEQUENCE
run_id由submit_run返回,用于指定查询某次具体运行的结果。
3. 上传文件
- 当用户提供了参考的文件地址时,先进行文件上传,仅支持图片、视频。
- 单次指令执行仅支持单个文件,多个文件可并行调用,单个文件大小必须在200MB以下。
# 上传图片
python3 {baseDir}/scripts/upload_file.py /path/to/image.png
# 上传视频
python3 {baseDir}/scripts/upload_file.py /path/to/video.mp4
4. 下载结果
任务完成后,可以将会话中的所有产物批量下载到本地。
# 指定 URL 列表,指定输出目录,指定文件名前缀(如 artifact_01.png, artifact_02.png ...)进行下载
python3 {baseDir}/scripts/download_results.py --urls URL1 URL2 URL3 --output-dir ./xyq_output --prefix "artifact"
典型工作流
理解这些工作流,才能正确组合上面的脚本完成用户需求。
场景 1:用户要求生成图片或视频(最常见)
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. 向用户展示:过程中的创作信息,以及下载后的本地文件列表
场景 2:用户提供图片/视频要求编辑修改(如"参考这个视频做一个新的")
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 一起发送。
场景 3:用户提供参考图/视频要求生成新内容
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
场景 4:在已有会话中追加新需求
1. submit_run.py --message "新的描述" --thread-id THREAD_ID → 拿到 thread_id、run_id、web_thread_link
2. 后续同场景 1 的步骤 2-6
轮询策略
- 间隔:每 10 秒查询一次
- 增量拉取:首次用 --after-seq 0,后续根据messages消息列表长度,计算新的 seq 值
- 完成判断:当创作任务完成且messages的content中包含产物结果 URL(图片/视频地址)
- 超时:连续轮询
48 小时仍无结果,告知用户"生成时间较长,可稍后查看",不再继续轮询 - 错误重试:单次查询失败可重试 1 次,连续 3 次失败则停止并告知用户
输出格式
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展示给用户,方便用户直接打开浏览器查看任务页面 - 任务在创作中:
- 展示过程中的创作信息等,继续轮询
- 任务完成(run 结束):
- 若涉及意图确认/流程中断(如"请回答以下问题")→ 展示问题 → 等待用户回复 → 使用同一
thread_id重新提交任务 → 继续轮询(可能多轮) - 若 content 中包含产物 URL:
- 结果地址:来自
get_thread返回的messages中,任务创作完成会包含产物 URL,将产物链接、下载的本地文件等信息告知用户。
- 若涉及意图确认/流程中断(如"请回答以下问题")→ 展示问题 → 等待用户回复 → 使用同一
核心原则:用户侧不做创作,只做传话
你(用户侧 Agent)的职责是搬运工,不是创作者。后端有专门的 Agent 负责理解需求、拆解分镜、编排工作流、选模型、写 prompt。你要做的只有三件事:
- 上传:如果用户给了本地文件 →
upload_file.py拿到 asset_id - 提交任务:把用户的原始描述 + asset_id 原封不动发给
submit_run.py - 传话:根据
get_thread.py返回的消息列表,展示过程中的意图询问、创作信息等 - 取件:
get_thread.py轮询结果 → 检查结果 → 下载产物 → 结果展示给用户
绝对不要做的事:
- 不要替用户扩写、润色、翻译 prompt(用户说"帮我推演分镜",就直接传"帮我推演分镜",不要自己先写个分镜表再逐条发)
- 不要自行编排镜头描述、剧情推演、风格分析
- 不要在消息中添加自己编的 prompt(如"超写实风格,电影级光影,8K分辨率"之类的描述词)
后端 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 <XYQ_ACCESS_KEY> - 创建会话时
message是用户的指令要求,不能为空 - 查询会话时可用 --after-seq 做增量拉取,便于轮询新消息(含 assistant 回复与生图/生视频结果)
- 上传文件仅支持图片(image/)和视频(video/)类型,其他类型会被拒绝,文件大小须在 200MB 以下
- 生成过程中将过程中的创作信息展示给用户;任务完成后给出产物结果(图片/视频)URL链接和下载的本地文件列表。
Related skills
More from pippit-dev/pippit-skills and the wider catalog.

xyq-skill
Agent skill from pippit-dev/pippit-skills.
animate-text
Curated text animation catalog with JSON specs for translating effects into WAAPI, Motion, GSAP, CSS, Lottie, and Rive.
ui-ux-pro-max
>

pixijs
Router skill for PixiJS v8—directs to specialized sub-skills for rendering, scene objects, assets, and advanced graphics.

pixijs-accessibility
Add screen reader and keyboard navigation to PixiJS v8 apps via AccessibilitySystem.

pixijs-application
Create and configure PixiJS v8 Applications with renderers, stage, and lifecycle management.