mcpField
L
letzai-api

letzai-api

github.com/letz-ai创意与媒体1913 次安装13 周前更新
代码仓库

关于 letzai-api

letzai-api 是供开发者集成 LetzAI 公共 API 的技能,涵盖图像和视频生成、编辑、放大、文件上传及自定义模型训练。它说明端点工作流、身份验证、模型选项和异步状态轮询。

主要功能

  1. 01生成图像和视频
  2. 02编辑图像并放大输出
  3. 03上传用户资源
  4. 04训练和管理自定义模型
  5. 05说明身份验证与异步轮询

适用场景

  1. 01根据提示词生成图像
  2. 02根据文本或图像创建视频
  3. 03编辑或放大上传的图像
  4. 04为人物、物体或风格训练模型

安装

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

$npx skills add https://github.com/letz-ai/letzai-skill --skill letzai-api

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

包含的文件

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

README.md
LICENSE.txt
api_reference.md
examples/
image_generation.js
polling_pattern.md
uploads_and_training.md
video_generation.py

详细介绍

LetzAI API 集成技能

概述

帮助你集成 LetzAI 公共 API,用于生成和编辑 AI 图像及视频、放大图像、上传资源和训练自定义模型(LoRA)。自定义训练的人物、物体和风格模型可在提示词中通过 @modelname 引用。

身份验证

  • 基础 URL: https://api.letz.ai
  • 身份验证: Authorization: Bearer YOUR_API_KEY
  • 获取 API 密钥: letz.ai/subscription
  • Swagger(权威来源): api.letz.ai/doc — 可通过 /doc-json 和 /doc-yaml 获取机器可读版本
const headers = {
  'Content-Type': 'application/json',
  Authorization: `Bearer ${process.env.LETZAI_API_KEY}`,
};
headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {os.environ['LETZAI_API_KEY']}",
}

请勿将公共 API 与私有 API 混淆。 https://api.letz.ai 是此处介绍的公共开发者 API。https://private-api.letz.ai 为 LetzAI 网页应用提供支持,路由名称不同(/upscales、/image_completions、/video-edits)。这些路由在公共 API 上会返回 404。

拒绝未知字段

API 会严格验证请求正文。发送架构中不存在的字段会返回 400。特别是,POST /images 不支持 negativePrompt、seed 或 aspectRatio;宽高比通过 width/height 表示。

核心工作流

1. 图像生成 — POST /images
参数类型默认值说明
prompt字符串—**必填。**可包含 @modelname 标签。
baseModel字符串账户默认值请参阅下方的模型表。
mode字符串模型默认值分辨率档位——允许值因模型而异。
width整数1600480–2160
height整数1600480–2160
quality整数21–6
creativity整数21–6
hasWatermark布尔值true
systemVersion整数账户默认值2 或 3
hideFromUserProfile布尔值false
webhookUrl字符串—任务完成时会发送 POST 请求。
organizationIdUUID—从你所属的组织扣除点数。
图像模型

mode 是分辨率档位,可接受的值因模型而异。

模型baseModelmode 值点数(生成)点数(编辑)
Nano Banana Pro(Google)gemini-3-pro-imagedefault(1K) · 2k(HD) · 4k80 / 160 / 24080 / 160 / 240
Nano Banana 2(Google)nbf-inferenceshdefault(1K) · 2k(HD) · 4k40 / 80 / 16050 / 100 / 150
Nano Banana 2 Lite(Google)nano-banana-2-litedefault(1K)2025
Seedream 5 Pro(ByteDance)seedream-5-0-pro2k(HD) · 4k80 / 16080 / 160
Seedream 4.5(ByteDance)seedream-4-5-2511282k(HD) · 4k80 / 16080 / 160
Flux 2(Black Forest Labs)flux21k · hd60 / 12060 / 120
GPT Image 2(OpenAI)gpt-image-21k · hd · 4k160 / 240 / 480160 / 240 / 480
WAN 2.7 Image Pro(Alibaba)wan-2-7-image-pro1k · 2k1010

也接受别名,例如,gemini-3-pro-image-preview 仍会解析为 Nano Banana Pro。 包含价格的实时目录位于 letz.ai/docs/models.json。

工作流

  1. POST /images
  2. 从响应中读取 id
  3. 每隔 3 s 轮询一次 GET /images/{id}
  4. 当 status === "ready" 时,读取 imageVersions.original

请参阅 examples/image_generation.js。

2. 视频生成 — POST /videos
参数类型说明
promptstring必填。
originalImageCompletionIdUUID为之前生成的 LetzAI 图像制作动画。
imageUrlstring为公开图像 URL 制作动画。
imageUrlsstring[]多帧:[0] = 首帧,[1] = 尾帧。
promptsobject[]多镜头故事板(video-kling3):[{ prompt, duration }]。
baseModelstring可选;通常使用 settings.mode 选择模型。
width / height / resolutionnumber可选的输出尺寸设置。
settingsobject模型 + 时长 + 音频(见下文)。
webhookUrlstring
hidePromptbool
organizationIdUUID

图像输入为可选项——纯文本转视频时,请省略 originalImageCompletionId / imageUrl / imageUrls。

settings
字段说明
mode视频模型键,参见下表。
duration秒数,会限制在模型允许的值范围内。
withSound在支持的情况下启用原生音频。
highQuality更高分辨率档位,价格通常翻倍。
resolution按秒计价的模型可选 "720p"、"1080p"、"4k"。
视频模型

将带 video- 前缀的键用作 settings.mode。

模型settings.mode时长积分
Google Veo 3.1video-veo318 s(固定)1500 · 启用音频 ×2 · 1080p ×2
Kling V3video-kling33–15 s150 · 启用音频 300
Kling V2.6video-kling265 或 10 s150 · 启用音频 ×2 · 1080p ×2
WAN 2.5video-wan255 或 10 s110 · 1080p ×2(仅限图像转视频)
Seedance 2.0video-seedance24–15 s按秒计价:480p 为 105 · 720p 为 210 · 1080p 为 500 · 4K 为 1000(始终启用音频)
Seedance 2.0 Enterprisevideo-seedance2-enterprise4–15 s与 Seedance 2.0 相同;需要 organizationId
Gemini Omni Flashvideo-gemini-omni3–10 s每秒 100(始终启用音频)

工作流

  1. POST /videos
  2. 每隔 2–3 s 轮询 GET /videos/{id}
  3. 当 status === "ready" 时,读取 videoVersions.original

参见 examples/video_generation.py。

3. 图像编辑 — POST /image-edits
参数类型说明
modestring必填。 context(AI 编辑)或 skin(修复皮肤)。
promptstring编辑指令。可包含 @modelname 标签。
imageUrlstring单张源图像 URL。
inputImageUrlsstring[]多张参考源图像(实际最多 9 张)。
originalImageCompletionIdUUID编辑之前生成的 LetzAI 图像。
originalImageCompletionIdsUUID[]将多张 LetzAI 图像用作源图像。
baseModelstring与图像生成使用相同的标识符。
settingsobject{ resolution, aspect_ratio, model }
imageCompletionsCountint要生成的变体数量(1–5,默认值为 1)。skin 不使用此参数。
maskstringBase64 掩码,仅用于旧版修复填充。
width / heightnumber目标尺寸。
webhookUrl、organizationId、hidePrompt

settings:

  • resolution:"2k"(高清)或 "4k"(超高清)
  • aspect_ratio:"1:1"、"16:9"、"9:16"、"4:3"、"3:4"、"21:9"、"9:21"
  • model:与 baseModel 相同的标识符

至少提供一个源图像:imageUrl、inputImageUrls、originalImageCompletionId 或 originalImageCompletionIds。

优先使用顶层的 baseModel。 服务端队列路由会读取 baseModel; settings.model 会转发给工作器。将两者设为相同值最稳妥。

工作流

  1. POST /image-edits
  2. 每隔 3 s 轮询 GET /image-edits/{id}
  3. 当 status === "ready" 时,读取 generatedImageCompletion.imageVersions.original

mode: "in"(修复填充)和 mode: "out"(扩展填充)已弃用,请改用 context。

4. 放大 — POST /upscale

公共路由是 /upscale(单数)。/upscales 是私有 Web 应用路由, 在此处会返回 404。

参数类型默认值备注
imageIdUUID—LetzAI 图像生成任务 ID。
imageUrlstring—公共图像 URL。使用此参数代替 imageId。若要放大自己的文件,请通过 /user-assets 上传,并传入返回的 imageUrl。
modestringdefault放大模型 — 见表格。
sizenumber—2–12;输出档位 — 见表格。
strengthnumber11–5。
promptstring—创意放大模型的可选指导提示。
webhookUrl、organizationId
mode放大模型size → 输出点数
nano-banana-proGoogle Gemini 3 Pro4 → 1K · 8 → 2K · 12 → 4K80 / 160 / 240
nano-banana-2Google Gemini 3.1 Flash4 → 1K · 8 → 2K · 12 → 4K50 / 100 / 150
gpt-image-2OpenAI GPT Image 24 → 1K · 8 → 2K · 12 → 4K160 / 240 / 480
prunaPruna P-Image-Upscale4 → 1 MP · 8 → 4 MP · 12 → 16 MP20 / 40 / 80
defaultLetzAI 自研—20

工作流

  1. POST /upscale
  2. 每隔 3 s 轮询 GET /upscale/{id}
  3. 当 status === "ready" 时,读取 imageVersions.original
5. 上传自己的文件 — POST /user-assets

两步式预签名 S3 上传。可用此方式在将本地文件传给 /image-edits、/videos 或 /upscale 前获取公共 URL。

  1. 使用 { extension } 调用 POST /user-assets(还可选传入 originalFilename、 mimeType、fileSize、caption、metadata、numberOfImages)。
  2. 使用匹配的 Content-Type 标头,将原始文件字节 PUT 到返回的 uploadUrl。 不要添加 Authorization 标头 — 该 URL 已签名。
  3. 随后即可通过第 1 步响应中的 imageUrl 访问该文件。

允许的 extension 值:jpg、jpeg、png、gif、webp、mp4、webm、mov、 avi、mp3、wav、ogg、m4a、aac、flac。

POST /user-images 是同一流程的旧版、仅支持图像/视频的变体;建议使用 /user-assets,它还支持音频。

参见 examples/uploads_and_training.md。

6. 自定义 AI 模型(@modelname)

用于人物、物体和风格的训练模型。在任何图像或编辑提示词中添加标签:@john_doe on the beach at sunset。

列表: GET /models — 查询参数 page、limit、sortBy、sortOrder、search、 name、userId、username、class(person | object | style)、type、 description、privacy(public | private | licensed)、systemVersion、 isActive、status。分页信息通过响应标头 X-Total-Count、 X-Current-Page、X-Per-Page 和 X-Total-Pages 返回。

获取单个模型: GET /models/{id}

训练新模型: POST /models — API 支持此功能(Enterprise 计划)。

参数备注
name必填。可使用字母数字字符、_ 和 .,最多 50 个字符。此值会成为 @tag。
class必填。person | style | object
privacypublic | private | licensed
type可选;省略时自动生成。
trainingDataUrls1–50 个公共图像 URL。请先通过 /user-assets 上传。
trainingMode例如 default、slow
settings例如 ["NO_ADULT_CONTENT", "NO_VIOLENCE"]
description、website、webhookUrl、organizationId可选。

训练会自动开始。轮询 GET /models/{id},直到 status 为 available。

管理: PATCH /models/{id}、DELETE /models/{id}、 PUT /models/{id}/thumbnail。

工作流决策树

创建图像 → 从模型表中选择 baseModel + mode → POST /images → 轮询 GET /images/{id} → imageVersions.original。

使用训练好的模型 → 使用 GET /models?class=person 查找名称 → 在提示词中填入 @name → 正常生成。

编辑图像 → 获取源图像(URL、通过 /user-assets 上传,或 LetzAI 完成记录 id) → 使用 mode: "context" 调用 POST /image-edits → 轮询 → generatedImageCompletion.imageVersions.original。

创建视频 → 可选源图像 → 使用 settings.mode = video-* 键调用 POST /videos → 轮询 → videoVersions.original。

放大 → 使用 imageId 或 imageUrl 调用 POST /upscale → 轮询 → imageVersions.original。

训练模型 → 通过 /user-assets 上传图像 → 使用 trainingDataUrls 调用 POST /models → 轮询 GET /models/{id},直到状态变为 available。

状态轮询

每个生成端点都是异步的:POST 返回一个 id,然后轮询对应的 GET,直到状态变为终止状态。

资源状态
图像new · generating · ready · failed · interrupted · not_allowed · hidden
视频new · generating · ready · saved · failed · interrupted
图像编辑new · generating · ready · saved · failed · interrupted
放大new · generating · ready · failed
模型new · pending · training · finished · available · failed

没有 "in progress" 状态——正在处理的任务会报告 generating。将 ready 和 saved 视为成功;将 failed、interrupted 和 not_allowed 视为终止 失败。响应还包含 progress(0–100),并且在生成期间包含 base64 previewImage。

建议的间隔:图像/编辑/放大为 3 s,视频为 2–3 s。生产工作负载可使用 webhookUrl 代替轮询。

完整实现请参阅 examples/polling_pattern.md。

错误处理

状态含义解决方法
400参数无效,或请求正文中包含未知字段检查取值范围,并删除架构中未定义的字段
401缺少密钥、密钥无效,或不是 organizationId 的成员检查 Authorization 标头
402点数不足前往 letz.ai/subscription 充值
404未找到资源,或使用了私有 API 路由检查 id,以及 api.letz.ai 上是否存在该路径
429请求受到速率限制逐步延长重试间隔
500服务器错误采用退避策略重试

限制

  • 所有生成都是异步的——请轮询或使用 Webhook。
  • 视频按模型计费;逐秒计费的模型在 1080p/4K 下可能费用较高。
  • mode 的取值因模型而异;不支持的档位会回退到模型默认值。
  • Seedance 2.0 Enterprise 需要使用者是 organizationId 的成员。
  • API 访问需要付费订阅。

快速参考:API 端点

端点方法用途
/imagesPOST创建图像
/imagesGET列出 / 筛选图像
/images/{id}GET图像状态 + URL
/images/{id}/interruptionPUT停止生成
/images/{id}/privacyPUT{ privacy: "public" | "private" | "licensed" }
/images/{id}/prompt-privacyPUT隐藏 / 公开显示提示词
/image-editsPOST创建编辑
/image-editsGET列出编辑
/image-edits/{id}GET编辑状态 + URL
/image-edits/{imageCompletionId}/maskGET获取旧版局部重绘使用的蒙版
/videosPOST创建视频
/videosGET列出视频
/videos/{id}GET视频状态 + URL
/videos/{id}/privacyPUT更改视频隐私设置
/videos/{id}/prompt-privacyPUT隐藏 / 公开显示提示词
/upscalePOST创建放大任务
/upscaleGET列出放大任务
/upscale/{id}GET放大任务状态 + URL
/upscale/{id}DELETE删除放大任务
/modelsGET列出模型
/modelsPOST训练新模型
/models/{id}GET模型详情
/models/{id}PATCH更新模型元数据
/models/{id}DELETE删除模型
/models/{id}/thumbnailPUT设置缩略图
/user-assetsPOST获取预签名上传 URL(图像 / 视频 / 音频)
/user-assetsGET列出上传内容
/user-assets/{id}GET / PATCH / DELETE管理上传内容
/user-imagesPOST / GET旧版仅支持图像和视频的上传流程
/user-images/{id}GET / DELETE管理旧版上传内容
/realtime/healthGET实时网关运行状况

不属于公共 API 的端点(私有 Web 应用路由——这些端点会返回 404):/upscales、 /video-edits、/image_completions、PUT /videos/{id}/interruption。

关键响应字段
  • 图像 / 放大任务: imageVersions.original、imageVersions["1920x1920"]、imageVersions["640x640"]
  • 编辑: generatedImageCompletion.imageVersions.original(源图像位于 originalImageCompletion 中)
  • 视频: videoVersions.original
  • 进行中: progress(0–100)、previewImage(base64)、失败时的 statusDetail
模型目录

如需查看 LetzAI 当前支持的 AI 模型列表(包括其参数和令牌成本),请始终阅读 models.json 文件:

模型目录(实时): letz.ai/docs/models.json

其他资源

评论

支持 Markdown