mcpField
G
giggle-generation-video

giggle-generation-video

github.com/giggle-official创意与媒体062 次安装今天更新
代码仓库

关于 giggle-generation-video

通过 giggle.pro Generation API 生成 AI 视频的技能,适用于文本生成视频和图片生成视频。它提交异步任务并主动查询进度,支持多种模型及视频参数。

主要功能

  1. 01支持文本生成视频与图片生成视频
  2. 02提供多种视频模型
  3. 03设置时长、画幅和分辨率
  4. 04主动轮询异步任务进度

适用场景

  1. 01将文本描述生成视频
  2. 02以起始帧或结束帧生成视频
  3. 03跟踪视频任务直至完成

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/giggle-official/skills --skill giggle-generation-video

安装后在 Claude Code 中输入/giggle-generation-video确认已加载。

附带文件requirements.txtscripts/generation_api.py

详细介绍

Giggle 视频生成

来源:giggle-official/skills · API:giggle.pro

通过 giggle.pro 的 Generation API 生成 AI 视频。支持文本生成视频和图像生成视频。提交任务后,Agent 会主动轮询,并使用 --query 查询直至完成(参见持续更新进度)。无需 Cron,也无需写入文件——所有操作都通过 exec 执行。


安装要求

要求值
二进制文件python3
环境变量GIGGLE_API_KEY(必需;见下文)
Piprequests

获取 GIGGLE_API_KEY 的方式:在已登录状态下打开 giggle.pro → 左侧边栏 → API Key(API 密钥)→ 创建或复制密钥。然后运行 export GIGGLE_API_KEY=your_api_key。如果尚未配置,脚本会提示你。

出错时不重试:如果脚本执行遇到错误,请勿重试。直接向用户报告错误并停止。


支持的模型

模型支持时长(秒)默认值描述
grok6、106综合能力强,推荐使用
grok-fast6、106grok 的快速版本
sora24、8、124OpenAI Sora 2
sora2-pro4、8、124Sora 2 Pro
sora2-fast10、1510Sora 2 Fast
sora2-pro-fast10、1510Sora 2 Pro Fast
kling255、105Kling 视频模型
seedance15-pro4、8、124Seedance Pro(带音频)
seedance15-pro-no-audio4、8、124Seedance Pro(无音频)
veo314、6、84Google Veo 3.1(带音频)
veo31-no-audio4、6、84Google Veo 3.1(无音频)
minimax2366MiniMax 模型
wan255、100万象模型

注意:--duration 必须选择模型支持的时长,否则 API 会报错。


帧参考(图像生成视频)

对于图像生成视频,--start-frame 和 --end-frame 支持三种互斥格式:

方法格式示例
asset_idasset_id:<ID>asset_id:lkllv0yv81
urlurl:<URL>url:https://example.com/img.jpg
base64base64:<DATA>base64:iVBORw0KGgo...

每个帧参数只能使用其中一种方法。


执行流程:提交并查询

视频生成采用异步方式(通常需要 60–300 秒)。先提交任务以获取 task_id,然后持续查询,直到任务进入终止状态。所有命令都通过 exec 执行;API 密钥从系统环境变量中读取。


持续更新进度(默认行为;用户无需在提示词中提出)

视频任务通常需要约 1–5 分钟以上(有时更久)。用户无需要求你检查进度。

  1. 提交后立即告知用户已提交,提供 task_id,并根据模型和负载情况给出合理的预计等待时间范围(如果处理流程通常更慢,请勿笼统地说“1–3 分钟”)。
  2. 主动轮询:每隔约 15–30 秒运行一次 --query,直至任务进入终止状态——不要等用户提出要求。
  3. 每次查询后,用自然语言简要报告状态;如果 stdout 返回的 JSON 尚未处于终止状态(例如 processing),请转述状态并说明你会再次检查——不要保持沉默。
  4. 完成后:成功时提供完整的带签名视频链接;失败时清楚说明原因。如果持续约 20 分钟后仍未进入终止状态(如果用户或模型的具体情况表明通常需要更久,可相应调整),请停止盲目轮询,说明情况,保留 task_id,并建议重试或稍后手动检查。
  5. 如果用户明确选择不轮询(例如“不要轮询”“我会再问”),则只提交一次,提供 task_id,并仅在用户提出要求时运行 --query。
第 1 步:提交任务

首先向用户发送一条消息:视频生成任务已提交;你会按计划查询进度并报告更新——用户无需催促。收到 JSON 响应后,将 task_id 一并告知用户。

# Text-to-video (default grok-fast)
python3 scripts/generation_api.py \
  --prompt "Camera slowly pushes forward, person smiling in frame" \
  --model grok-fast --duration 6 \
  --aspect-ratio 16:9 --resolution 720p

# Image-to-video - use asset_id as start frame
python3 scripts/generation_api.py \
  --prompt "Person slowly turns around" \
  --start-frame "asset_id:lkllv0yv81" \
  --model grok-fast --duration 6 \
  --aspect-ratio 16:9 --resolution 720p

# Image-to-video - use URL as start frame
python3 scripts/generation_api.py \
  --prompt "Scenery from still to motion" \
  --start-frame "url:https://example.com/img.jpg" \
  --model grok-fast --duration 6

# Image-to-video - both start and end frame
python3 scripts/generation_api.py \
  --prompt "Scene transition" \
  --start-frame "asset_id:abc123" \
  --end-frame "url:https://example.com/end.jpg" \
  --model grok --duration 6

响应示例:

{"status": "started", "task_id": "55bf24ca-e92a-4d9b-a172-8f585a7c5969"}

将 task_id 存储在记忆中(addMemory):

giggle-generation-video task_id: xxx (submitted: YYYY-MM-DD HH:mm)

第 2 步:查询直到完成(默认:主动轮询)

每次提交当前任务后,都要反复运行(每隔约 15–30 秒一次,直到进入终止状态或超时),无需等待用户询问:

python3 scripts/generation_api.py --query --task-id <task_id>

两次查询之间,在 shell 中短暂 sleep(例如 15–30 秒),或延迟后分别调用工具——不要长时间不回复;向用户概述每次查询的结果。

输出处理:

stdout 模式操作
含视频链接的纯文本(例如就绪消息)原样转发给用户;停止轮询此任务
含错误信息的纯文本原样转发给用户;停止轮询此任务
JSON {"status": "processing", "task_id": "..."}(或类似的非终止状态)告知用户当前状态以及你会很快再次查询;按本节要求继续轮询

如果用户在你已经轮询期间询问进度,使用最新已知状态作答(必要时额外运行一次 --query)。

链接返回规则:结果中的视频链接必须是完整的签名 URL(包含 Policy、Key-Pair-Id、Signature 查询参数)。如果 API 返回了 response-content-disposition=attachment,不要移除;原样转发(脚本只会将 ~ 编码为 %7E)。


新请求与查询旧任务

**当用户发起新的视频生成请求时,**必须运行第 1 步提交新任务。不要复用记忆中的旧 task_id。

对于正在进行的任务,按上述方式主动轮询。对于较早的任务(用户提及先前的视频或先前的 task_id),在用户询问时查询该 task_id;如果用户希望持续获取该特定任务的更新,则继续轮询。


参数参考

参数默认值说明
--prompt必填视频描述提示词
--modelgrok参见“支持的模型”表格
--duration模型默认值必须从模型支持的时长中选择
--aspect-ratio16:916:9、9:16、1:1、3:4、4:3
--resolution720p480p、720p、1080p
--start-frame-图像转视频的起始帧:asset_id:ID、url:URL 或 base64:DATA
--end-frame-图像转视频的结束帧,格式与起始帧相同

注意:base64 参数支持经过 base64 编码的图像。请直接传入原始 Base64 字符串,不要添加 data:image/xxx;base64, 前缀。


交互指南

如果用户的请求含糊不清,请按照以下步骤引导。如果用户已提供足够信息,则直接运行命令。

第 1 步:选择模型(必需)

生成前,必须介绍可用模型,并让用户选择。显示“支持的模型”表格中的模型列表。等待用户明确选择后再继续。

第 2 步:视频时长

显示所选模型支持的时长选项。默认使用该模型的默认时长。

第 3 步:生成模式
Question: "Do you need reference images as start/end frame?"
Options: No - text-to-video only / Yes - image-to-video (set start/end frame)
第 4 步:宽高比
Question: "What aspect ratio do you need?"
Options: 16:9 - Landscape (recommended) / 9:16 - Portrait / 1:1 - Square
第 5 步:执行并展示

按照以下流程:发送消息 → 第 1 步提交 → 第 2 步主动轮询直到进入终止状态,并在每次查询后向用户发送简短进度更新。在适当情况下(尤其是最终链接和错误),将 exec 标准输出原样转发给用户。

评论

支持 Markdown