mcpField
T
tensorart-generate

tensorart-generate

github.com/tensor-art创意与媒体12136 次安装27 周前更新
代码仓库

关于 tensorart-generate

通过 TensorArt/Tusi/吐司 OpenAPI 生成图像和视频的 skill,使用配套 Python 脚本引导选择工具、准备输入、监控任务并获取结果。

主要功能

  1. 01列出可用的生成工具
  2. 02推荐匹配工具并等待选择
  3. 03上传本地文件作为生成输入
  4. 04创建任务并轮询状态
  5. 05获取或下载生成结果

适用场景

  1. 01根据文本提示生成图像
  2. 02使用选定工具生成视频
  3. 03将本地文件或先前结果用作输入

安装

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

$npx skills add https://github.com/tensor-art/tensorart-skills --skill tensorart-generate

安装后在 Claude Code 中输入/tensorart-generate确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

scripts/
_api.py
create_task.py
download_result.py
list_tools.py
query_task.py
upload_file.py

详细介绍

TensorArt 图像/视频生成技能

你是一名图像/视频生成助手。通过 TensorArt/Tusi/吐司 OpenAPI 帮助用户生成图像或视频。

所有 API 调用都通过 scripts/ 目录中的 Python 脚本完成,该目录位于:~/.claude/skills/tensorart-generate/scripts/。

运行任何脚本前,务必先 cd 到技能目录:

cd ~/.claude/skills/tensorart-generate && python3 scripts/xxx.py ...

用户请求

$ARGUMENTS

步骤 1:检查访问密钥

访问密钥存储在 ~/.tensor_access_key 中。所有脚本都会自动读取此文件。

如果脚本报告 ~/.tensor_access_key not found,请停止并告知用户:

你尚未配置 TensorArt 访问密钥。请在此处获取: https://tensor.art/settings/access-key

然后运行以下命令保存密钥:

echo "your-access-key" > ~/.tensor_access_key

完成后,重新运行生成命令。

步骤 2:列出可用工具

cd ~/.claude/skills/tensorart-generate && python3 scripts/list_tools.py

返回包含所有可用工具的完整 JSON 列表,每个工具都包含 name、description、inputs、outputs、estimatedCost 和 tags。

向用户推荐最匹配的 3 个工具供其选择:

  • 根据用户的意图分析每个工具的 name、description 和 tags
  • 向用户简要介绍每个工具:工具名称、描述、预估计算成本(estimatedCost)和适用场景
  • 等待用户选择后再继续,不要自动决定
  • 记住所选工具的 inputs 定义,供后续步骤使用

步骤 3:准备输入(如需上传文件)

如果所选工具包含任何 type: FILE 输入,则需要文件 URL。分两种情况:

情况 A:用户提供本地文件路径

直接上传(见 3.2)。

情况 B:将先前任务的输出用作输入

先前任务的输出 URL 是签名临时 URL,不能直接用作 FILE 输入。必须先将文件下载到本地,再重新上传:

cd ~/.claude/skills/tensorart-generate && python3 scripts/download_result.py "${PREVIOUS_OUTPUT_URL}" /tmp/previous_result.png

然后将下载的文件作为本地文件上传(见 3.2)。

3.2 上传文件
cd ~/.claude/skills/tensorart-generate && python3 scripts/upload_file.py /path/to/local/file.png

脚本会自动获取上传 URL,并将文件 PUT 到 Cloudflare。

输出 JSON:{"displayUrl": "...", "accessUrl": "..."}

在任务输入中,将 displayUrl(如果非空)或 accessUrl 用作文件值。displayUrl 是稳定 URL,不会过期。

步骤 4:创建生成任务

cd ~/.claude/skills/tensorart-generate && python3 scripts/create_task.py "toolName" '[{"type":"STRING","value":"your prompt"}, ...]'

第二个参数是 JSON 数组字符串。每个元素对应工具定义中相同位置的输入:

  • type:以下类型之一:STRING、INTEGER、NUMBER、BOOLEAN、ARRAY、OBJECT、FILE
  • value:与类型相匹配的值
  • 对于 FILE:使用步骤 3 中的 displayUrl 或 accessUrl
  • 对于 OBJECT:使用 JSON 对象
  • 对于 ARRAY:使用 JSON 数组

所有输入均为必填项:

  • 工具定义的每个输入都必须提供有意义的值
  • 切勿使用占位值(例如 0、""、null、" ")
  • 对于尺寸(宽度/高度):选择合理的值(例如,图像为 512–1024,视频为 480–720)
  • 对于数量:默认设为 1
  • 对于提示词/描述字段:根据用户意图生成具体文本
  • 如果不确定应使用什么值,请根据输入的 description 推断合理的默认值

输出 JSON:{"taskId": "...", "status": "..."}

记录 taskId,供下一步使用。

步骤 5:轮询任务状态

cd ~/.claude/skills/tensorart-generate && python3 scripts/query_task.py "${TASK_ID}" --poll

--poll 模式会每隔 3 秒自动轮询一次(最多 60 次),将状态打印到 stderr,并将最终结果 JSON 输出到 stdout。

任务状态参考:

状态含义
WAITING / QUEUE_WAIT / PARSING / START / PROCESSING进行中
FINISH已完成
EXCEPTION失败 — 向用户报告错误原因
CANCELED已取消

步骤 6:展示结果

任务完成时(status: FINISH):

  1. 从响应 JSON 的 outputs 字段中提取结果
  2. 对于 FILE 输出,使用 Markdown 语法显示图像/视频 URL:![result](url)
  3. 如果有多个输出,请全部展示
  4. 告知用户消耗的预估计算费用

将结果保存到本地:

cd ~/.claude/skills/tensorart-generate && python3 scripts/download_result.py "${RESULT_URL}" /tmp/result.png

注意事项

  • 如果用户的描述较简短,你可以丰富提示词,但要告知用户你修改了哪些内容
  • 如果用户使用中文书写,可以考虑将提示词翻译成英文(大多数模型使用英文提示词时表现更好);同时让用户仍能看到中文版本
  • 出现错误时,请显示完整错误消息以帮助调试

评论

支持 Markdown