公网文档首页:http://proxy.cyberran.com:50010/
在线接口文档:http://proxy.cyberran.com:50010/api.md
原始 Markdown:http://proxy.cyberran.com:50010/api.raw.md
网关只允许调用已注册的工作流,不接受调用方提交任意 ComfyUI 工作流。支持:
FLUX.2 Klein 9B FP8 文生图
FLUX.2 Edit 单图及最多 4 张参考图编辑
Z-Image-Turbo Full BF16 文生图与中英文文字渲染
Qwen3-TTS 1.7B 本地语音生成、音色设计与声音克隆
文生视频与原生立体声音频
首帧、尾帧或首尾帧控制
Omni Reference:最多 9 张参考图、3 个参考视频、3 个独立参考音频
参考视频配套音轨或视频内嵌音轨
带签名的公开成果网页和文件直链
除 /health、/api.md、/v1/crypto/public-key 和带签名的成果地址外,所有接口均需 API Key:
Authorization: Bearer <API_KEY>
或:
X-API-Key: <API_KEY>
API Key 由服务提供方单独分发,本文档不包含真实密钥。
创建任务成功后会额外返回仅属于该任务的 job_token。查询任务状态或通过鉴权接口下载文件时,必须同时提交 API Key 和该任务的 job_token:
X-Job-Token: <JOB_TOKEN>
job_token 只在创建响应中返回一次,不会在后续状态响应中回显。不同任务的令牌不能互用。
curl http://proxy.cyberran.com:50010/health
{
"status": "ok",
"comfyui": true,
"workflow_ready": true,
"qwen3_tts": {
"service": true,
"node_ready": true,
"ready": true,
"dtype": "bfloat16",
"attention": "sdpa",
"models": {
"preset_voice": true,
"voice_design": true,
"voice_clone": true
}
}
}
查询已经注册的工作流:
curl http://proxy.cyberran.com:50010/v1/workflows \
-H "X-API-Key: <API_KEY>"
{
"default_workflow": "minimax-h3",
"workflows": [
{
"name": "minimax-h3",
"display_name": "MiniMax H3 多模态视频",
"adapter": "minimax_h3",
"schema_url": "/v1/workflows/minimax-h3/schema"
},
{
"name": "minimax-h3-realism-people",
"display_name": "MiniMax H3 Realism People",
"adapter": "minimax_h3",
"schema_url": "/v1/workflows/minimax-h3-realism-people/schema"
},
{
"name": "flux2",
"display_name": "FLUX.2 Text to Image",
"adapter": "flux2",
"schema_url": "/v1/workflows/flux2/schema"
},
{
"name": "flux2-edit",
"display_name": "FLUX.2 Edit",
"adapter": "flux2_edit",
"schema_url": "/v1/workflows/flux2-edit/schema"
},
{
"name": "z-image-turbo-full",
"display_name": "Z-Image-Turbo Full BF16",
"adapter": "z_image_turbo",
"schema_url": "/v1/workflows/z-image-turbo-full/schema"
},
{
"name": "qwen3-tts-1.7b",
"display_name": "Qwen3-TTS Local 1.7B",
"adapter": "qwen3_tts",
"schema_url": "/v1/workflows/qwen3-tts-1.7b/schema"
}
]
}
查询指定工作流结构:
curl http://proxy.cyberran.com:50010/v1/workflows/minimax-h3/schema \
-H "X-API-Key: <API_KEY>"
兼容接口 /v1/schema 返回默认工作流结构;也可以指定名称:
curl "http://proxy.cyberran.com:50010/v1/schema?workflow=minimax-h3" \
-H "X-API-Key: <API_KEY>"
POST /v1/assets?u={user_namespace}&kind={image|video|audio}&filename={文件名}
Content-Type: application/octet-stream
X-API-Key: <API_KEY>
<原始文件字节>
上传图片:
curl -X POST \
"http://proxy.cyberran.com:50010/v1/assets?kind=image&filename=character.png" \
-H "X-API-Key: <API_KEY>" \
-H "Content-Type: image/png" \
--data-binary "@character.png"
上传视频:
curl -X POST \
"http://proxy.cyberran.com:50010/v1/assets?kind=video&filename=motion.mp4" \
-H "X-API-Key: <API_KEY>" \
-H "Content-Type: video/mp4" \
--data-binary "@motion.mp4"
上传音频:
curl -X POST \
"http://proxy.cyberran.com:50010/v1/assets?kind=audio&filename=voice.wav" \
-H "X-API-Key: <API_KEY>" \
-H "Content-Type: audio/wav" \
--data-binary "@voice.wav"
响应中的 asset_id 用于创建任务:
{
"asset_id": "comfy-api-assets/96972a52da114732a8667bb2d6ec62ce.png",
"kind": "image",
"filename": "character.png",
"size": 238015
}
单文件最大 512 MiB。支持格式:
POST /v1/jobs
Content-Type: application/json
X-API-Key: <API_KEY>
创建任务接口只接受加密信封,不接受明文任务 JSON。工作流名、user_namespace、user_task_id、parameters、inputs 和其中的提示词会作为一个完整 JSON 一起加密:
comfy-api:v1:jobs这一层可以让普通 HTTP 抓包看不到任务参数,但 API Key 仍位于请求头中,而且 HTTP 页面和公钥可能被主动篡改。需要抵御主动中间人、保护 API Key 和素材文件时,仍必须使用 HTTPS;服务端集成也建议预先核对并固定 kid。
先取得当前 RSA 公钥:
GET /v1/crypto/public-key
返回 kid、public_key_pem、算法名称和时间窗口。公钥可以缓存;如果创建任务返回 HTTP 409,应重新获取公钥并重新加密。实际发送到 /v1/jobs 的请求体格式如下,所有二进制字段均采用无填充 Base64URL:
{
"version": 1,
"alg": "RSA-OAEP-256",
"enc": "A256GCM",
"kid": "公钥标识",
"encrypted_key": "RSA 加密后的 32 字节 AES 密钥",
"iv": "12 字节随机 IV",
"ciphertext": "AES-GCM 密文与 16 字节认证标签"
}
加密前的任务对象由 parameters 和 inputs 两部分组成。下文展示的任务 JSON 均为“加密前对象”,不能直接作为 /v1/jobs 的 HTTP 请求体发送。
顶层 workflow 用于选择已注册工作流;省略时使用 minimax-h3。user_namespace 用作上传和输出文件的隔离目录;user_task_id 是调用方自己的任务编号,用于跨系统关联:
{
"workflow": "minimax-h3",
"user_namespace": "customer_001",
"user_task_id": "order-20260814-0001",
"parameters": {},
"inputs": {}
}
user_task_id 可选,类型为字符串,长度 1–128 个字符,不能包含控制字符。网关不会修改该值;创建响应、状态查询、完成/失败结果及成果网页都会原样返回。省略时返回 null。
user_namespace 可选,省略时为 api。只允许 1–64 位小写英文字母、数字、下划线和连字符,并且必须以字母或数字开头。上传素材时的查询参数 u 必须与加密任务对象中的 user_namespace 一致;生成结果将保存到该命名空间的子目录。
| 参数 | 类型 | 范围或选项 | 默认工作流值 |
|---|---|---|---|
prompt |
string | 最长 8000 字符 | 工作流提示词 |
seed |
integer | 0–4294967295 | 随机 |
duration |
number | 1–15 秒 | 5 |
aspect_ratio |
string | 见比例列表 | 16:9 (Widescreen) |
megapixels |
number | 0.1–2.5 | 0.4 |
multiple |
integer | 8–128 | 32 |
steps |
integer | 1–100 | 20 |
denoise |
number | 0–1 | 1 |
scheduler |
string | simple、sgm_uniform、karras、exponential、ddim_uniform、beta、normal、linear_quadratic、kl_optimal |
simple |
sampler |
string | res_multistep、euler、heun、dpmpp_2m、dpmpp_2m_sde、dpmpp_3m_sde、uni_pc |
res_multistep |
bit_depth |
integer | 8 或 10 | 8 |
output_format |
string | auto 或 mp4 |
auto |
codec |
string | auto 或 h264 |
auto |
lora_strength |
number | 0–1.5;仅 minimax-h3-realism-people |
1.0 |
minimax-h3-realism-people 使用 fal/MiniMax-H3-Realism-People-LoRA。网关会自动在提示词前加入触发词 r34l1sm;如果提示词已包含该词则不会重复。官方目标强度为 1.0,需要更轻效果时可使用 0.6–0.8。
画面比例:
1:1 (Square)
2:3 (Portrait Photo)
3:2 (Photo)
3:4 (Portrait Standard)
4:3 (Standard)
9:16 (Portrait Widescreen)
16:9 (Widescreen)
21:9 (Ultrawide)
| 参数 | 类型 | 限制 | 说明 |
|---|---|---|---|
first_frame |
string | 图片 asset_id |
起始帧 |
last_frame |
string | 图片 asset_id |
结束帧 |
reference_images |
string[] | 最多 9 个 | Omni Reference 图片 |
reference_videos |
string[] | 最多 3 个 | Omni Reference 视频,建议 2–15 秒 |
reference_video_audios |
(string或null)[] | 最多 3 个 | 按索引匹配参考视频的独立音轨 |
reference_audios |
string[] | 最多 3 个 | 独立参考音频/声音参考 |
use_embedded_video_audio |
boolean | 默认 false |
使用参考视频自带音轨 |
reference_image_size |
string | match 或 max |
max 身份保持更强,但可能慢数倍 |
首尾帧模式不能与 Omni Reference 素材混用。只传 first_frame、last_frame 时自动进入首尾帧模式;传任一 reference_* 数组时自动进入 Omni Reference 模式。
该工作流支持与 minimax-h3 相同的文生视频、首尾帧和 Omni Reference 输入,只需切换工作流名称,并可选传入 LoRA 强度:
{
"workflow": "minimax-h3-realism-people",
"user_task_id": "people-video-0001",
"parameters": {
"prompt": "A cinematic close-up of a real person walking through a city street",
"lora_strength": 1.0,
"duration": 5,
"aspect_ratio": "16:9 (Widescreen)",
"megapixels": 0.4,
"steps": 20
},
"inputs": {}
}
在 Omni Reference 提示词中使用以下标签指代素材:
<Picture 1>、<Picture 2> ...
<Video 1>、<Video 2> ...
<Audio 1>、<Audio 2> ...
{
"workflow": "minimax-h3",
"user_task_id": "order-20260814-0001",
"parameters": {
"prompt": "雨后的未来城市,电影摄影,车辆快速驶过,原生环境音",
"seed": 123456,
"duration": 5,
"aspect_ratio": "16:9 (Widescreen)",
"megapixels": 0.4,
"steps": 20,
"sampler": "res_multistep"
}
}
{
"workflow": "minimax-h3",
"parameters": {
"prompt": "The character turns toward the camera while the city lights come alive.",
"duration": 5,
"aspect_ratio": "16:9 (Widescreen)",
"megapixels": 0.4
},
"inputs": {
"first_frame": "comfy-api-assets/FIRST_IMAGE.png",
"last_frame": "comfy-api-assets/LAST_IMAGE.png"
}
}
{
"workflow": "minimax-h3",
"parameters": {
"prompt": "Keep the identity and clothing of <Picture 1>. Use the environment style from <Picture 2>. The protagonist speaks in the voice and delivery of <Audio 1>: This shot is simply amazing!",
"seed": 123456,
"duration": 5,
"aspect_ratio": "16:9 (Widescreen)",
"megapixels": 0.4,
"steps": 20
},
"inputs": {
"reference_images": [
"comfy-api-assets/CHARACTER.png",
"comfy-api-assets/ENVIRONMENT.png"
],
"reference_audios": [
"comfy-api-assets/VOICE.wav"
],
"reference_image_size": "match"
}
}
{
"workflow": "minimax-h3",
"parameters": {
"prompt": "Follow the motion and camera rhythm of <Video 1>, while using its associated <Audio 1> as the voice and timing reference.",
"duration": 5,
"aspect_ratio": "16:9 (Widescreen)",
"megapixels": 0.4
},
"inputs": {
"reference_videos": [
"comfy-api-assets/MOTION.mp4"
],
"reference_video_audios": [
"comfy-api-assets/MOTION_VOICE.wav"
]
}
}
如果要直接使用视频内嵌音轨:
{
"inputs": {
"reference_videos": ["comfy-api-assets/MOTION.mp4"],
"use_embedded_video_audio": true
}
}
安装依赖:pip install requests cryptography。request_body 可以替换为本节任一工作流示例:
import base64
import json
import os
import time
import requests
from cryptography.hazmat.primitives import hashes, serialization
from cryptography.hazmat.primitives.asymmetric import padding
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
BASE_URL = "http://proxy.cyberran.com:50010"
API_KEY = os.environ["COMFY_API_KEY"]
AAD = b"comfy-api:v1:jobs"
def b64url(value: bytes) -> str:
return base64.urlsafe_b64encode(value).decode("ascii").rstrip("=")
def encrypt_request(request_body: dict) -> dict:
metadata = requests.get(f"{BASE_URL}/v1/crypto/public-key", timeout=15).json()
public_key = serialization.load_pem_public_key(metadata["public_key_pem"].encode("ascii"))
aes_key = os.urandom(32)
iv = os.urandom(12)
protected = {
"issued_at": int(time.time() * 1000),
"nonce": b64url(os.urandom(18)),
"request": request_body,
}
plaintext = json.dumps(protected, ensure_ascii=False, separators=(",", ":")).encode("utf-8")
ciphertext = AESGCM(aes_key).encrypt(iv, plaintext, AAD)
encrypted_key = public_key.encrypt(
aes_key,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None,
),
)
return {
"version": 1,
"alg": "RSA-OAEP-256",
"enc": "A256GCM",
"kid": metadata["kid"],
"encrypted_key": b64url(encrypted_key),
"iv": b64url(iv),
"ciphertext": b64url(ciphertext),
}
request_body = {
"workflow": "minimax-h3",
"user_task_id": "order-20260814-0001",
"parameters": {
"prompt": "雨后的未来城市,电影摄影,车辆快速驶过,原生环境音",
"duration": 5,
"aspect_ratio": "16:9 (Widescreen)",
"megapixels": 0.4,
"steps": 20,
},
"inputs": {},
}
response = requests.post(
f"{BASE_URL}/v1/jobs",
headers={"X-API-Key": API_KEY},
json=encrypt_request(request_body),
timeout=30,
)
response.raise_for_status()
print(response.json())
响应:
{
"id": "ae736d94-f406-4812-b599-af553eb349d6",
"user_task_id": "order-20260814-0001",
"workflow": "minimax-h3",
"status": "queued",
"job_token": "<JOB_TOKEN>",
"elapsed_seconds": 0.0,
"mode": "omni_reference",
"status_url": "/v1/jobs/ae736d94-f406-4812-b599-af553eb349d6",
"result_page_url": "http://proxy.cyberran.com:50010/results/ae736d94-f406-4812-b599-af553eb349d6?sig=..."
}
mode 可能为 text、first_last_frame、omni_reference、text_to_image 或 image_edit。
请在收到创建响应后立即安全保存 job_token;令牌遗失后无法通过状态接口取回。
工作流名称:flux2。使用 FLUX.2 Klein 9B FP8 蒸馏模型与 Qwen 3 8B FP8 文本编码器,默认 4 步、CFG 1、Euler 采样。
许可提醒:FLUX.2 Klein 9B 权重采用 FLUX Non-Commercial License,仅用于该许可证允许的非商业、非生产用途;如需生产或商业使用,应另行取得相应授权。
{
"workflow": "flux2",
"user_task_id": "image-0001",
"parameters": {
"prompt": "A red sports car parked on a rainy Shanghai street at night, cinematic photography",
"seed": 12345,
"width": 1024,
"height": 1024,
"steps": 4,
"cfg": 1.0,
"sampler": "euler"
},
"inputs": {}
}
文生图参数:
| 参数 | 类型 | 范围/选项 | 默认值 |
|---|---|---|---|
prompt |
string | 最长 8000 字符 | 内置示例提示词 |
seed |
integer | 0–4294967295 | 0 |
width |
integer | 256–2048,必须是 16 的倍数 | 1024 |
height |
integer | 256–2048,必须是 16 的倍数 | 1024 |
steps |
integer | 1–20 | 4 |
cfg |
number | 0–10 | 1.0 |
sampler |
string | euler、euler_cfg_pp、heun、dpmpp_2m、res_multistep |
euler |
创建请求使用前文“Python 整包加密并创建任务”的方法,把 request_body 替换为本节的 FLUX.2 对象。
工作流名称:flux2-edit。先通过素材接口上传图片,再把返回的 asset_id 放到 inputs.reference_image。需要组合人物、商品、风格等多个参考时,可改用 inputs.reference_images 数组,接口最多接受 4 张图片。
curl -X POST \
"http://proxy.cyberran.com:50010/v1/assets?kind=image&filename=source.png" \
-H "X-API-Key: <API_KEY>" \
-H "Content-Type: image/png" \
--data-binary "@source.png"
{
"workflow": "flux2-edit",
"user_task_id": "edit-0001",
"parameters": {
"prompt": "Change the background to a snowy mountain landscape while preserving the person",
"seed": 12345,
"steps": 4,
"cfg": 1.0,
"sampler": "euler",
"megapixels": 1.0,
"upscale_method": "nearest-exact"
},
"inputs": {
"reference_image": "comfy-api-assets/返回的素材文件名.png"
}
}
图像编辑参数:
| 参数 | 类型 | 范围/选项 | 默认值 |
|---|---|---|---|
prompt |
string | 最长 8000 字符,填写编辑指令 | 内置示例指令 |
seed |
integer | 0–4294967295 | 0 |
steps |
integer | 1–20 | 4 |
cfg |
number | 0–10 | 1.0 |
sampler |
string | 与 flux2 相同 |
euler |
megapixels |
number | 0.25–4.0,输出保持参考图宽高比 | 1.0 |
upscale_method |
string | nearest-exact、bilinear、area、bicubic、lanczos |
nearest-exact |
inputs.reference_image 与 inputs.reference_images 二选一,不能同时提交。前者是单个图片 asset_id;后者是 1–4 个图片 asset_id 的数组,第一张图片决定输出宽高比。文生图和图像编辑的创建响应、任务隔离、状态查询、GPU 数据、耗时和成果地址与视频工作流一致;mode 分别返回 text_to_image 和 image_edit。
可分别查询实时参数结构:
GET /v1/workflows/flux2/schema
GET /v1/workflows/flux2-edit/schema
工作流名称:z-image-turbo-full。使用完整 BF16 的 Z-Image-Turbo 主模型、Qwen 3 4B BF16 文本编码器和原版 VAE。官方推荐默认值为 8 步、CFG 1、res_multistep 采样器、simple 调度器和 Shift 3。
{
"workflow": "z-image-turbo-full",
"user_task_id": "z-image-0001",
"parameters": {
"prompt": "一张电影感产品摄影,桌上放着一杯咖啡,背景招牌清晰写着‘早上好’,自然晨光",
"seed": 20260814,
"width": 1024,
"height": 1024,
"steps": 8,
"cfg": 1.0,
"sampler": "res_multistep",
"scheduler": "simple",
"shift": 3.0
},
"inputs": {}
}
参数:
| 参数 | 类型 | 范围/选项 | 默认值 |
|---|---|---|---|
prompt |
string | 最长 8000 字符,支持中文和英文 | 内置示例提示词 |
seed |
integer | 0–4294967295 | 0 |
width |
integer | 256–2048,必须是 16 的倍数 | 1024 |
height |
integer | 256–2048,必须是 16 的倍数 | 1024 |
steps |
integer | 1–30,Turbo 推荐 8 | 8 |
cfg |
number | 0–10,Turbo 推荐 1 | 1.0 |
sampler |
string | res_multistep、euler、euler_cfg_pp、heun、dpmpp_2m |
res_multistep |
scheduler |
string | simple、sgm_uniform、karras、exponential、beta、normal |
simple |
shift |
number | 0–10 | 3.0 |
实时参数结构:
GET /v1/workflows/z-image-turbo-full/schema
创建任务仍使用 POST /v1/jobs;创建响应中的 mode 为 text_to_image,状态查询、耗时、GPU 数据、任务隔离和成果链接与其他工作流一致。
工作流名称:qwen3-tts-1.7b。三个官方 1.7B 模型均在本机运行,使用 BF16 与 PyTorch SDPA;不调用外部语音生成服务。支持中文、英文、日语、韩语、德语、法语、俄语、葡萄牙语、西班牙语和意大利语。
可查询音色、语言、模式和模型就绪状态:
GET /v1/audio/voices
X-API-Key: <API_KEY>
{
"workflow": "qwen3-tts-1.7b",
"user_task_id": "audio-20260821-001",
"parameters": {
"mode": "preset_voice",
"text": "欢迎使用本地 Qwen3-TTS 声音接口。",
"language": "Chinese",
"speaker": "Vivian",
"instruct": "自然、清晰、语速适中",
"reference_text": "",
"x_vector_only": false,
"seed": 42,
"max_new_tokens": 2048,
"temperature": 0.9,
"top_p": 0.9,
"repetition_penalty": 1.05,
"unload_after_generate": true
},
"inputs": {}
}
预设音色包括 Vivian、Serena、Uncle_Fu、Dylan、Eric、Ryan、Aiden、Ono_Anna 和 Sohee。
将 mode 改为 voice_design,并用 instruct 详细描述声音:
{
"workflow": "qwen3-tts-1.7b",
"user_task_id": "audio-design-001",
"parameters": {
"mode": "voice_design",
"text": "夜色缓缓落在安静的海面上。",
"language": "Chinese",
"speaker": "Vivian",
"instruct": "温暖沉静的成年女性声音,低音区,纪录片旁白风格,语速稍慢",
"reference_text": "",
"x_vector_only": false,
"seed": 42,
"max_new_tokens": 2048,
"temperature": 0.9,
"top_p": 0.9,
"repetition_penalty": 1.05,
"unload_after_generate": true
},
"inputs": {}
}
先通过素材接口上传参考音频,再把返回的 asset_id 放入加密任务 JSON。建议参考音频为 5–15 秒,超过 30 秒的部分会被自动截断。
{
"workflow": "qwen3-tts-1.7b",
"user_task_id": "audio-clone-001",
"parameters": {
"mode": "voice_clone",
"text": "这是使用参考声音生成的新内容。",
"language": "Chinese",
"speaker": "Vivian",
"instruct": "",
"reference_text": "这里填写参考音频中实际说出的原文。",
"x_vector_only": false,
"seed": 42,
"max_new_tokens": 2048,
"temperature": 0.9,
"top_p": 0.9,
"repetition_penalty": 1.05,
"unload_after_generate": true
},
"inputs": {
"reference_audio": "comfy-api-assets/返回的声音素材文件名.wav"
}
}
x_vector_only=true 时可以不传 reference_text,但声音克隆质量通常会下降。unload_after_generate=true 会在任务结束后释放语音模型显存,适合与生图、生视频工作流共用显卡。
声音任务与其他工作流一样,完整任务 JSON 必须先按前文方式加密,再发送到 POST /v1/jobs。创建响应中的 mode 为 text_to_audio,完成后 files[].kind 为 audio,返回 MP3 预览、下载地址、总耗时和 GPU 状态。
实时参数结构:
GET /v1/workflows/qwen3-tts-1.7b/schema
curl http://proxy.cyberran.com:50010/v1/jobs/{id} \
-H "X-API-Key: <API_KEY>" \
-H "X-Job-Token: <JOB_TOKEN>"
完成响应:
{
"id": "ae736d94-f406-4812-b599-af553eb349d6",
"user_task_id": "order-20260814-0001",
"workflow": "minimax-h3",
"status": "completed",
"elapsed_seconds": 10.47,
"gpu": {
"available": true,
"name": "NVIDIA GeForce RTX 5090",
"utilization_percent": 100,
"temperature_c": 79,
"memory_used_mib": 26718,
"memory_total_mib": 32607,
"memory_used_percent": 81.9
},
"files": [
{
"kind": "video",
"filename": "MiniMax_H3_00003_.mp4",
"url": "/v1/jobs/ae736d94-f406-4812-b599-af553eb349d6/files/0",
"public_url": "http://proxy.cyberran.com:50010/public/jobs/ae736d94-f406-4812-b599-af553eb349d6/files/0?sig=..."
}
],
"errors": [],
"result_page_url": "http://proxy.cyberran.com:50010/results/ae736d94-f406-4812-b599-af553eb349d6?sig=..."
}
elapsed_seconds 为任务从提交到当前或完成时的耗时,单位为秒,保留最多三位小数。旧任务缺少可用时间数据时可能返回 null。
gpu 是查询状态时的实时显卡数据:
utilization_percent:GPU 核心利用率,百分比temperature_c:GPU 温度,摄氏度memory_used_mib:已使用显存,MiBmemory_total_mib:总显存,MiBmemory_used_percent:显存占用比例,百分比无法读取 NVIDIA 状态时返回 {"available": false}。GPU 数据最多缓存 1 秒。
任务创建后立刻返回 result_page_url。该网页在任务运行时每 5 秒自动刷新,完成后显示耗时、播放器和下载链接。
result_page_url:公开成果网页files[].public_url:公开文件直链files[].url:需要 API Key 和对应 job_token 的下载接口带签名的成果链接不需要 API Key。任何获得链接的人都能访问对应成果,请勿公开敏感内容。
| 状态码 | 说明 |
|---|---|
200 |
请求成功 |
201 |
素材上传成功 |
202 |
任务进入队列 |
400 |
参数、素材类型或组合不合法 |
401 |
API Key 无效 |
403 |
公开成果签名无效 |
404 |
接口、成果或任务访问凭据不存在/不匹配 |
413 |
JSON 或上传文件过大 |
500 |
网关内部错误 |
502 |
ComfyUI 拒绝任务 |
503 |
ComfyUI 不可用 |
job_token;每个令牌只能访问对应任务。