1166 lines
42 KiB
Markdown
1166 lines
42 KiB
Markdown
# LibLibAI 图像生成 API Python 开发指南
|
||
|
||
> 基于 LibLibAI 开放平台官方文档整理,仅保留 Python 调用相关内容。
|
||
|
||
---
|
||
|
||
## 官方文档链接
|
||
|
||
| 章节 | 地址 |
|
||
| --- | --- |
|
||
| API 产品主页 & 购买 | https://www.liblib.art/apis |
|
||
| 工作流挑选 & 商用查询 | https://www.liblib.art/workflows |
|
||
| 开放平台域名(需配合密钥) | https://openapi.liblibai.cloud |
|
||
| API 文档(飞书) | https://liblibai.feishu.cn/wiki/UAMVw67NcifQHukf8fpccgS5n6d |
|
||
| 文件上传文档(飞书) | https://liblibai.feishu.cn/wiki/A9M2whHxsiKtu8kpIn3cZp0PnVw |
|
||
| ComfyUI LibLib 节点 | https://github.com/lib-teamwork/ComfyUI-liblib |
|
||
| JS/TS SDK (npm) | https://www.npmjs.com/package/liblibai |
|
||
|
||
---
|
||
|
||
## 目录
|
||
|
||
1. [产品概览](#1-产品概览)
|
||
2. [认证与签名](#2-认证与签名)
|
||
3. [星流 Star-3 Alpha 生图](#3-星流-star-3-alpha-生图)
|
||
4. [自定义模型生图](#4-自定义模型生图)
|
||
5. [查询生图结果](#5-查询生图结果)
|
||
6. [文件上传](#6-文件上传)
|
||
7. [参数详解](#7-参数详解)
|
||
8. [ControlNet 预处理器参考](#8-controlnet-预处理器参考)
|
||
9. [ControlNet 模型列表](#9-controlnet-模型列表)
|
||
10. [枚举值速查](#10-枚举值速查)
|
||
11. [文档版本更新](#11-文档版本更新)
|
||
|
||
---
|
||
|
||
## 1. 产品概览
|
||
|
||
LibLibAI 提供工作流 API 和多款生图模型 API:
|
||
|
||
| 模型 | 特点 |
|
||
| --- | --- |
|
||
| LiblibAI 工作流 | 社区商用工作流和个人本地工作流均可调用 |
|
||
| F.1 Kontext | 文本生图 + 高级图像编辑,真实感和风格一致性行业领先 |
|
||
| 智能算法 IMG 1 | 超强风格一致性、Prompt 还原能力 |
|
||
| LibDream | 中文指令理解良好,中文/海报生成能力最强 |
|
||
| 星流 Star-3 Alpha | 自带 LoRA 推荐算法,照片级真实感,不能自由添加 LoRA,仅支持部分 ControlNet |
|
||
| LiblibAI 自定义模型 | 可调用全量 50 万+ 可商用模型和私有模型,基于 F.1/XL/v3/v1.5 基础算法 |
|
||
|
||
### 计费规则
|
||
|
||
非固定消耗,每次生图任务积分消耗取决于:选用模型、采样步数、采样方法(SDE 系列额外消耗)、图片宽高、张数、重绘幅度、高分辨率修复参数、ControlNet 数量。
|
||
|
||
### 并发数和 QPS
|
||
|
||
| 项目 | 限制 |
|
||
| --- | --- |
|
||
| 生图任务并发数 | 默认 5(同时进行的生图任务数) |
|
||
| 生图接口 QPS | 默认 1 次/秒 |
|
||
| 查询结果接口 QPS | 无限制 |
|
||
|
||
---
|
||
|
||
## 2. 认证与签名
|
||
|
||
### 2.1 API 密钥
|
||
|
||
登录 LibLib 领取或购买 API 积分后,系统生成开放平台访问密钥:
|
||
|
||
| 密钥 | 说明 | 示例 |
|
||
| --- | --- | --- |
|
||
| **AccessKey** | API 访问凭证,唯一标识用户,20-30 位 | `KIQMFXjHaobx7wqo9XvYKA` |
|
||
| **SecretKey** | API 访问密钥,用于加密请求参数,30 位以上 | `KppKsn7ezZxhi6lIDjbo7YyVYzanSu2d` |
|
||
|
||
### 2.2 请求签名参数
|
||
|
||
每次请求 API 接口时,需在 URL 查询字符串中传递以下参数:
|
||
|
||
| 参数 | 类型 | 必需 | 说明 |
|
||
| --- | --- | --- | --- |
|
||
| AccessKey | String | 是 | 开放平台授权的 AccessKey |
|
||
| Signature | String | 是 | 加密请求参数生成的签名 |
|
||
| Timestamp | String | 是 | 生成签名时的毫秒时间戳(有效期 5 分钟) |
|
||
| SignatureNonce | String | 是 | 生成签名时的随机字符串 |
|
||
|
||
请求 URL 示例:
|
||
|
||
```
|
||
https://openapi.liblibai.cloud/api/generate/webui/text2img?AccessKey=KIQMFXjHaobx7wqo9XvYKA&Signature=xxx&Timestamp=1725458584000&SignatureNonce=random1232
|
||
```
|
||
|
||
### 2.3 签名生成算法
|
||
|
||
```
|
||
原文 = URI地址 + "&" + 毫秒时间戳 + "&" + 随机字符串
|
||
密文 = hmacSha1(原文, SecretKey)
|
||
签名 = encodeBase64URLSafeString(密文) # 不补全位数,去除尾部 =
|
||
```
|
||
|
||
### 2.4 Python 签名实现
|
||
|
||
```python
|
||
import hmac
|
||
from hashlib import sha1
|
||
import base64
|
||
import time
|
||
import uuid
|
||
|
||
def make_sign(uri: str, secret_key: str) -> tuple[str, str, str]:
|
||
"""
|
||
生成 LibLib API 签名。
|
||
返回 (signature, timestamp, signature_nonce)。
|
||
"""
|
||
timestamp = str(int(time.time() * 1000))
|
||
signature_nonce = str(uuid.uuid4())
|
||
content = '&'.join((uri, timestamp, signature_nonce))
|
||
|
||
digest = hmac.new(secret_key.encode(), content.encode(), sha1).digest()
|
||
sign = base64.urlsafe_b64encode(digest).rstrip(b'=').decode()
|
||
return sign, timestamp, signature_nonce
|
||
```
|
||
|
||
### 2.5 Python 构造完整请求 URL
|
||
|
||
```python
|
||
def build_url(base_url: str, uri: str, access_key: str, secret_key: str) -> str:
|
||
sign, ts, nonce = make_sign(uri, secret_key)
|
||
return (
|
||
f"{base_url}{uri}"
|
||
f"?AccessKey={access_key}"
|
||
f"&Signature={sign}"
|
||
f"&Timestamp={ts}"
|
||
f"&SignatureNonce={nonce}"
|
||
)
|
||
|
||
# 示例
|
||
url = build_url(
|
||
"https://openapi.liblibai.cloud",
|
||
"/api/generate/webui/text2img/ultra",
|
||
"KIQMFXjHaobx7wqo9XvYKA",
|
||
"KppKsn7ezZxhi6lIDjbo7YyVYzanSu2d",
|
||
)
|
||
```
|
||
|
||
---
|
||
|
||
## 3. 星流 Star-3 Alpha 生图
|
||
|
||
照片级真实感,自带 LoRA 推荐算法。不能自由添加 LoRA,仅支持部分 ControlNet。
|
||
|
||
### 3.1 模板 UUID
|
||
|
||
| 模板名称 | UUID |
|
||
| --- | --- |
|
||
| 星流 Star-3 Alpha 文生图 | `5d7e67009b344550bc1aa6ccbfa1d7f4` |
|
||
| 星流 Star-3 Alpha 图生图 | `07e00af4fc464c7ab55ff906f8acf1b7` |
|
||
|
||
### 3.2 文生图
|
||
|
||
- **接口**: `POST /api/generate/webui/text2img/ultra`
|
||
- **Content-Type**: `application/json`
|
||
|
||
**请求参数:**
|
||
|
||
| 参数 | 类型 | 必需 | 说明 |
|
||
| --- | --- | --- | --- |
|
||
| templateUuid | string | 是 | `5d7e67009b344550bc1aa6ccbfa1d7f4` |
|
||
| generateParams | object | 是 | 生图参数 |
|
||
|
||
**generateParams 字段:**
|
||
|
||
| 字段 | 类型 | 必填 | 说明 | 范围 |
|
||
| --- | --- | --- | --- | --- |
|
||
| prompt | string | 是 | 正向提示词(纯英文) | ≤2000 字符 |
|
||
| aspectRatio | string | 二选一 | 宽高比预设 | `square`(1024x1024) / `portrait`(768x1024) / `landscape`(1280x720) |
|
||
| imageSize | object | 二选一 | 具体宽高 `{width, height}` | 512~2048 |
|
||
| imgCount | int | 是 | 单次生图张数 | 1~4 |
|
||
| steps | int | 否 | 采样步数 | 建议 30 |
|
||
| controlnet | object | 否 | 构图控制 | 见下方 |
|
||
|
||
**controlnet 字段(星流专用简化版):**
|
||
|
||
| 字段 | 说明 |
|
||
| --- | --- |
|
||
| controlType | `line`(线稿) / `depth`(深度) / `pose`(姿态) / `IPAdapter`(风格迁移) / `subject`(主体参考,仅文生图) |
|
||
| controlImage | 参考图可公网访问的完整 URL |
|
||
|
||
```python
|
||
import httpx
|
||
|
||
url = build_url(BASE_URL, "/api/generate/webui/text2img/ultra", ACCESS_KEY, SECRET_KEY)
|
||
|
||
resp = httpx.post(url, json={
|
||
"templateUuid": "5d7e67009b344550bc1aa6ccbfa1d7f4",
|
||
"generateParams": {
|
||
"prompt": "1 girl, lotus leaf, masterpiece, best quality, highres, 8k",
|
||
"aspectRatio": "portrait",
|
||
"imgCount": 1,
|
||
"steps": 30,
|
||
}
|
||
})
|
||
data = resp.json()
|
||
generate_uuid = data["data"]["generateUuid"]
|
||
```
|
||
|
||
**带 ControlNet 构图控制:**
|
||
|
||
```python
|
||
resp = httpx.post(url, json={
|
||
"templateUuid": "5d7e67009b344550bc1aa6ccbfa1d7f4",
|
||
"generateParams": {
|
||
"prompt": "1 girl, lotus leaf, masterpiece, best quality",
|
||
"aspectRatio": "portrait",
|
||
"imgCount": 1,
|
||
"steps": 30,
|
||
"controlnet": {
|
||
"controlType": "depth",
|
||
"controlImage": "https://example.com/reference.png",
|
||
}
|
||
}
|
||
})
|
||
```
|
||
|
||
**F.1 主体参考(仅文生图):**
|
||
|
||
```python
|
||
resp = httpx.post(url, json={
|
||
"templateUuid": "5d7e67009b344550bc1aa6ccbfa1d7f4",
|
||
"generateParams": {
|
||
"prompt": "A fluffy cat lounges on a plush cushion.",
|
||
"promptMagic": 1,
|
||
"aspectRatio": "square",
|
||
"imgCount": 1,
|
||
"controlnet": {
|
||
"controlType": "subject",
|
||
"controlImage": "https://example.com/cat_ref.png",
|
||
}
|
||
}
|
||
})
|
||
```
|
||
|
||
### 3.3 图生图
|
||
|
||
- **接口**: `POST /api/generate/webui/img2img/ultra`
|
||
- **Content-Type**: `application/json`
|
||
|
||
**generateParams 字段:**
|
||
|
||
| 字段 | 类型 | 必填 | 说明 |
|
||
| --- | --- | --- | --- |
|
||
| prompt | string | 是 | 正向提示词(纯英文,≤2000 字符) |
|
||
| sourceImage | string | 是 | 参考图 URL(可公网访问) |
|
||
| imgCount | int | 是 | 单次生图张数(1~4) |
|
||
| controlnet | object | 否 | 构图控制(同文生图) |
|
||
|
||
```python
|
||
url = build_url(BASE_URL, "/api/generate/webui/img2img/ultra", ACCESS_KEY, SECRET_KEY)
|
||
|
||
resp = httpx.post(url, json={
|
||
"templateUuid": "07e00af4fc464c7ab55ff906f8acf1b7",
|
||
"generateParams": {
|
||
"prompt": "girl with beautiful face, beautiful and aesthetic",
|
||
"sourceImage": "https://example.com/source.png",
|
||
"imgCount": 1,
|
||
}
|
||
})
|
||
generate_uuid = resp.json()["data"]["generateUuid"]
|
||
```
|
||
|
||
---
|
||
|
||
## 4. 自定义模型生图
|
||
|
||
可自由调用 LiblibAI 网站内 F.1-dev/XL/v3/v1.5 全量模型(暂不支持混元和 PixArt)。
|
||
|
||
### 4.1 查询模型版本
|
||
|
||
- **接口**: `POST /api/model/version/get`
|
||
|
||
`versionUuid` 从 LibLib 网站模型详情页浏览器 URL 中获取。
|
||
|
||
```python
|
||
url = build_url(BASE_URL, "/api/model/version/get", ACCESS_KEY, SECRET_KEY)
|
||
|
||
resp = httpx.post(url, json={
|
||
"versionUuid": "21df5d84cca74f7a885ba672b5a80d19"
|
||
})
|
||
print(resp.json())
|
||
# {
|
||
# "version_uuid": "21df5d84cca74f7a885ba672b5a80d19",
|
||
# "model_name": "AWPortrait XL",
|
||
# "version_name": "1.1",
|
||
# "baseAlgo": "基础算法 XL",
|
||
# "show_type": "1",
|
||
# "commercial_use": "1",
|
||
# "model_url": "https://www.liblib.art/modelinfo/..."
|
||
# }
|
||
```
|
||
|
||
### 4.2 文生图
|
||
|
||
- **接口**: `POST /api/generate/webui/text2img`
|
||
- **Content-Type**: `application/json`
|
||
|
||
**generateParams 基础字段:**
|
||
|
||
| 字段 | 类型 | 必填 | 说明 | 范围 |
|
||
| --- | --- | --- | --- | --- |
|
||
| checkPointId | string | 是 | 底模 modelVersionUUID | 全网可商用或自有模型 |
|
||
| prompt | string | 是 | 正向提示词(纯英文) | ≤2000 字符 |
|
||
| negativePrompt | string | 是 | 负向提示词(纯英文) | ≤2000 字符 |
|
||
| clipSkip | int | 是 | Clip 跳过层 | 1~12,默认 2 |
|
||
| sampler | int | 是 | 采样器枚举值 | 见枚举参考 |
|
||
| steps | int | 是 | 采样步数 | 1~60 |
|
||
| cfgScale | double | 是 | 提示词引导系数 | 1.0~15.0 |
|
||
| width | int | 是 | 初始宽度 | 128~1536(1.5: 512~768, XL: 768~1344, F.1: 768~1536) |
|
||
| height | int | 是 | 初始高度 | 同上 |
|
||
| imgCount | int | 是 | 单次生图张数 | 1~4 |
|
||
| randnSource | int | 是 | 随机种子来源 | 0: CPU, 1: GPU,默认 0 |
|
||
| seed | long | 是 | 随机种子 | -1~9999999999,-1 随机 |
|
||
| restoreFaces | int | 是 | 面部修复 | 0: 关, 1: 开,默认 0 |
|
||
| vaeId | string | 否 | VAE 模型 UUID | 空值取 checkpoint 的 VAE |
|
||
| additionalNetwork | list | 否 | LoRA 组合(最多 5 个) | 见 [7.1 节](#71-lora-参数) |
|
||
| hiResFixInfo | object | 否 | 高分辨率修复 | 见 [7.2 节](#72-高分辨率修复) |
|
||
| controlNet | list | 否 | ControlNet(最多 4 组) | 见 [7.4 节](#74-controlnet-基础参数) |
|
||
|
||
```python
|
||
url = build_url(BASE_URL, "/api/generate/webui/text2img", ACCESS_KEY, SECRET_KEY)
|
||
|
||
resp = httpx.post(url, json={
|
||
"templateUuid": "e10adc3949ba59abbe56e057f20f883e",
|
||
"generateParams": {
|
||
"checkPointId": "0ea388c7eb854be3ba3c6f65aac6bfd3",
|
||
"prompt": "Asian portrait, A young woman wearing a green baseball cap",
|
||
"negativePrompt": "ng_deepnegative_v1_75t,(badhandv4:1.2),EasyNegative,(worst quality:2)",
|
||
"sampler": 15,
|
||
"steps": 20,
|
||
"cfgScale": 7,
|
||
"width": 768,
|
||
"height": 1024,
|
||
"imgCount": 1,
|
||
"randnSource": 0,
|
||
"seed": -1,
|
||
"restoreFaces": 0,
|
||
"additionalNetwork": [
|
||
{"modelId": "31360f2f031b4ff6b589412a52713fcf", "weight": 0.3},
|
||
{"modelId": "365e700254dd40bbb90d5e78c152ec7f", "weight": 0.6},
|
||
],
|
||
"hiResFixInfo": {
|
||
"hiresSteps": 20,
|
||
"hiresDenoisingStrength": 0.75,
|
||
"upscaler": 10,
|
||
"resizedWidth": 1024,
|
||
"resizedHeight": 1536,
|
||
},
|
||
}
|
||
})
|
||
generate_uuid = resp.json()["data"]["generateUuid"]
|
||
```
|
||
|
||
### 4.3 图生图
|
||
|
||
- **接口**: `POST /api/generate/webui/img2img`
|
||
- **Content-Type**: `application/json`
|
||
|
||
**相比文生图额外字段:**
|
||
|
||
| 字段 | 类型 | 必填 | 说明 | 范围 |
|
||
| --- | --- | --- | --- | --- |
|
||
| sourceImage | string | 是 | 参考图 URL(可公网访问) | - |
|
||
| resizeMode | int | 是 | 缩放模式 | 0: 拉伸, 1: 裁剪, 2: 填充 |
|
||
| resizedWidth | int | 是 | 缩放后宽度 | 128~2048 |
|
||
| resizedHeight | int | 是 | 缩放后高度 | 128~2048 |
|
||
| mode | int | 是 | 生图模式 | 0: 图生图, 4: 蒙版重绘 |
|
||
| denoisingStrength | double | 是 | 重绘幅度 | 0~1,默认 0.75 |
|
||
| inpaintParam | object | mode=4 时必填 | 蒙版重绘参数 | 见 [7.3 节](#73-蒙版重绘参数) |
|
||
|
||
```python
|
||
url = build_url(BASE_URL, "/api/generate/webui/img2img", ACCESS_KEY, SECRET_KEY)
|
||
|
||
resp = httpx.post(url, json={
|
||
"templateUuid": "9c7d531dc75f476aa833b3d452b8f7ad",
|
||
"generateParams": {
|
||
"checkPointId": "0ea388c7eb854be3ba3c6f65aac6bfd3",
|
||
"prompt": "1 girl wear sunglasses",
|
||
"negativePrompt": "ng_deepnegative_v1_75t,(badhandv4:1.2),EasyNegative,(worst quality:2)",
|
||
"clipSkip": 2,
|
||
"sampler": 15,
|
||
"steps": 20,
|
||
"cfgScale": 7,
|
||
"randnSource": 0,
|
||
"seed": -1,
|
||
"imgCount": 1,
|
||
"restoreFaces": 0,
|
||
"sourceImage": "https://example.com/source.png",
|
||
"resizeMode": 0,
|
||
"resizedWidth": 1024,
|
||
"resizedHeight": 1536,
|
||
"mode": 0,
|
||
"denoisingStrength": 0.75,
|
||
}
|
||
})
|
||
generate_uuid = resp.json()["data"]["generateUuid"]
|
||
```
|
||
|
||
---
|
||
|
||
## 5. 查询生图结果
|
||
|
||
- **接口**: `POST /api/generate/webui/status`
|
||
- **Content-Type**: `application/json`
|
||
|
||
Star-3 Alpha 和自定义模型共用此接口。
|
||
|
||
**返回字段:**
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
| --- | --- | --- |
|
||
| generateUuid | string | 生图任务 UUID |
|
||
| generateStatus | int | 生图状态(见下方枚举) |
|
||
| percentCompleted | float | 生图进度 0~1(暂未实现) |
|
||
| generateMsg | string | 附加信息(如失败原因) |
|
||
| pointsCost | int | 本次任务消耗积分 |
|
||
| accountBalance | int | 账户剩余积分 |
|
||
| images | []object | 图片列表(仅审核通过的) |
|
||
| images[].imageUrl | string | 图片地址(有效期 7 天) |
|
||
| images[].seed | int | 随机种子值 |
|
||
| images[].auditStatus | int | 审核状态 |
|
||
|
||
**生图状态枚举:**
|
||
|
||
| 状态码 | 含义 |
|
||
| --- | --- |
|
||
| 1 | 等待执行 |
|
||
| 2 | 执行中 |
|
||
| 3 | 已生图 |
|
||
| 4 | 审核中 |
|
||
| 5 | 任务成功 |
|
||
| 6 | 任务失败 |
|
||
|
||
```python
|
||
import time
|
||
|
||
url = build_url(BASE_URL, "/api/generate/webui/status", ACCESS_KEY, SECRET_KEY)
|
||
|
||
# 轮询等待生图完成
|
||
while True:
|
||
resp = httpx.post(url, json={"generateUuid": generate_uuid})
|
||
result = resp.json()["data"]
|
||
|
||
status = result["generateStatus"]
|
||
if status == 5:
|
||
# 成功
|
||
for img in result["images"]:
|
||
print(f"图片地址: {img['imageUrl']}")
|
||
print(f"种子值: {img['seed']}")
|
||
print(f"消耗积分: {result['pointsCost']}")
|
||
print(f"剩余积分: {result['accountBalance']}")
|
||
break
|
||
elif status == 6:
|
||
print(f"生图失败: {result['generateMsg']}")
|
||
break
|
||
else:
|
||
time.sleep(3)
|
||
```
|
||
|
||
**返回示例:**
|
||
|
||
```json
|
||
{
|
||
"code": 0,
|
||
"msg": "",
|
||
"data": {
|
||
"generateUuid": "8dcbfa2997444899b71357ccb7db378b",
|
||
"generateStatus": 5,
|
||
"percentCompleted": 0,
|
||
"generateMsg": "",
|
||
"pointsCost": 10,
|
||
"accountBalance": 1356402,
|
||
"images": [
|
||
{
|
||
"imageUrl": "https://liblibai-online.liblib.cloud/sd-images/xxx.png",
|
||
"seed": 12345,
|
||
"auditStatus": 3
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 6. 文件上传
|
||
|
||
当图生图需要使用本地图片作为参考图时,需先上传到 LibLib OSS,再使用返回的地址作为 `sourceImage`。
|
||
|
||
### 6.1 获取上传签名
|
||
|
||
- **接口**: `POST /api/generate/upload/signature`(使用 AK 签名逻辑)
|
||
|
||
| 字段 | 类型 | 必需 | 说明 |
|
||
| --- | --- | --- | --- |
|
||
| name | string | 是 | 文件名(≤100 字符) |
|
||
| extension | string | 是 | 扩展名:`jpg` / `png` / `jpeg` |
|
||
|
||
> 图片大小不能超过 10MB。
|
||
|
||
```python
|
||
url = build_url(BASE_URL, "/api/generate/upload/signature", ACCESS_KEY, SECRET_KEY)
|
||
|
||
resp = httpx.post(url, json={
|
||
"name": "my_photo",
|
||
"extension": "jpg",
|
||
})
|
||
sign_data = resp.json()["data"]
|
||
# sign_data 包含: key, policy, postUrl, xOssDate, xOssExpires,
|
||
# xOssSignature, xOssCredential, xOssSignatureVersion
|
||
```
|
||
|
||
**返回示例:**
|
||
|
||
```json
|
||
{
|
||
"code": 0,
|
||
"data": {
|
||
"key": "aliyun-cn-test/a0d9244a5ea14465955faf6b178240b8.png",
|
||
"policy": "eyJleHBpcmF0aW9uIjo...",
|
||
"postUrl": "https://liblibai-airship-temp.oss-cn-beijing.aliyuncs.com",
|
||
"xOssDate": "20250409T134329Z",
|
||
"xOssExpires": 3600,
|
||
"xOssSignature": "22349dd272560cd303ac15a9fcef...",
|
||
"xOssCredential": "LTAI5tLuXj4MH4XhnpKBjnsY/20250409/cn-beijing/oss/aliyun_v4_request",
|
||
"xOssSignatureVersion": "OSS4-HMAC-SHA256"
|
||
},
|
||
"msg": ""
|
||
}
|
||
```
|
||
|
||
### 6.2 上传文件到 OSS
|
||
|
||
通过 POST 表单上传到签名接口返回的 `postUrl`。
|
||
|
||
**重要注意事项:**
|
||
- 签名过期时间为 **1 小时**,必须在生成签名后 1 小时内上传
|
||
- file 文件扩展名必须和签名接口使用的 `extension` 一致
|
||
- **`file` 必须放到表单最末尾,作为最后一个表单域**
|
||
|
||
```python
|
||
import requests
|
||
|
||
data = {
|
||
'key': sign_data['key'],
|
||
'policy': sign_data['policy'],
|
||
'x-oss-date': sign_data['xOssDate'],
|
||
'x-oss-expires': sign_data['xOssExpires'],
|
||
'x-oss-signature': sign_data['xOssSignature'],
|
||
'x-oss-credential': sign_data['xOssCredential'],
|
||
'x-oss-signature-version': sign_data['xOssSignatureVersion'],
|
||
}
|
||
|
||
# file 必须放到表单最末尾
|
||
files = {
|
||
'file': ('photo.jpg', open('/path/to/photo.jpg', 'rb'), 'image/jpeg')
|
||
}
|
||
|
||
response = requests.post(sign_data['postUrl'], data=data, files=files)
|
||
print(f"Status Code: {response.status_code}") # 200 或 204 表示成功
|
||
```
|
||
|
||
### 6.3 使用上传后的图片地址
|
||
|
||
上传成功后,图片地址 = `postUrl` + `/` + `key`:
|
||
|
||
```python
|
||
image_url = f"{sign_data['postUrl']}/{sign_data['key']}"
|
||
# 例: https://liblibai-airship-temp.oss-cn-beijing.aliyuncs.com/aliyun-cn-prod/a0d9244a5ea14465955faf6b178240b8.png
|
||
```
|
||
|
||
将此地址填入生图参数的 `sourceImage` 字段即可:
|
||
|
||
```python
|
||
resp = httpx.post(img2img_url, json={
|
||
"templateUuid": "07e00af4fc464c7ab55ff906f8acf1b7",
|
||
"generateParams": {
|
||
"prompt": "girl with beautiful face",
|
||
"imgCount": 1,
|
||
"sourceImage": image_url,
|
||
}
|
||
})
|
||
```
|
||
|
||
---
|
||
|
||
## 7. 参数详解
|
||
|
||
### 7.1 LoRA 参数
|
||
|
||
`additionalNetwork` 最多 5 个 LoRA,基础算法类型需与 checkpoint 一致。
|
||
|
||
| 字段 | 类型 | 说明 | 范围 |
|
||
| --- | --- | --- | --- |
|
||
| modelId | string | LoRA 模型版本 UUID | 从可商用模型中选择 |
|
||
| weight | double | LoRA 权重 | -4.00~+4.00,默认 0.8 |
|
||
|
||
```python
|
||
"additionalNetwork": [
|
||
{"modelId": "31360f2f031b4ff6b589412a52713fcf", "weight": 0.3},
|
||
{"modelId": "365e700254dd40bbb90d5e78c152ec7f", "weight": 0.6},
|
||
]
|
||
```
|
||
|
||
### 7.2 高分辨率修复
|
||
|
||
`hiResFixInfo` 对象。
|
||
|
||
| 字段 | 类型 | 说明 | 范围 |
|
||
| --- | --- | --- | --- |
|
||
| hiresSteps | int | 高清修复采样步数 | 1~30 |
|
||
| hiresDenoisingStrength | double | 去噪强度 | 0~1 |
|
||
| upscaler | int | 放大算法枚举 | 从放大算法列表选择 |
|
||
| resizedWidth | int | 缩放宽度 | 128~2048 |
|
||
| resizedHeight | int | 缩放高度 | 128~2048 |
|
||
|
||
```python
|
||
"hiResFixInfo": {
|
||
"hiresSteps": 20,
|
||
"hiresDenoisingStrength": 0.75,
|
||
"upscaler": 10,
|
||
"resizedWidth": 1024,
|
||
"resizedHeight": 1536,
|
||
}
|
||
```
|
||
|
||
### 7.3 蒙版重绘参数
|
||
|
||
`inpaintParam` 对象,当 `mode=4` 时必填。
|
||
|
||
| 字段 | 类型 | 说明 | 范围 |
|
||
| --- | --- | --- | --- |
|
||
| maskImage | string | 蒙版图 URL(白色蒙版,黑色底色) | - |
|
||
| maskBlur | int | 蒙版模糊度 | 0~64,默认 4 |
|
||
| maskPadding | int | 蒙版边缘预留像素 | 0~256,默认 32 |
|
||
| maskMode | int | 蒙版模式 | 0: 重绘蒙版区域, 1: 重绘非蒙版区域 |
|
||
| inpaintArea | int | 重绘区域 | 0: 全图, 1: 仅蒙版区域 |
|
||
| inpaintingFill | int | 填充模式 | 0: 填充, 1: 原图, 2: 潜空间噪声, 3: 空白潜空间 |
|
||
|
||
```python
|
||
"inpaintParam": {
|
||
"maskImage": "https://example.com/mask.png",
|
||
"maskBlur": 4,
|
||
"maskPadding": 32,
|
||
"maskMode": 0,
|
||
"inpaintArea": 0,
|
||
"inpaintingFill": 1,
|
||
}
|
||
```
|
||
|
||
### 7.4 ControlNet 基础参数
|
||
|
||
`controlNet` 列表,最多 4 组。每组参数:
|
||
|
||
| 字段 | 类型 | 必填 | 说明 | 范围 |
|
||
| --- | --- | --- | --- | --- |
|
||
| unitOrder | int | 是 | 执行顺序 | 1~4 |
|
||
| sourceImage | string | 是 | 参考图 URL | 可公网访问 |
|
||
| width | int | 是 | 参考图宽度 | ≤4096 |
|
||
| height | int | 是 | 参考图高度 | ≤4096 |
|
||
| preprocessor | int | 是 | 预处理器枚举值 | 见 [第 8 节](#8-controlnet-预处理器参考) |
|
||
| annotationParameters | object | 是 | 预处理器参数 | 见 [第 8 节](#8-controlnet-预处理器参考) |
|
||
| model | string | 是 | ControlNet 模型 UUID | 见 [第 9 节](#9-controlnet-模型列表) |
|
||
| controlWeight | double | 是 | 控制权重 | 0~2,默认 1 |
|
||
| startingControlStep | double | 是 | 生效起始步(百分比) | 0~1,默认 0 |
|
||
| endingControlStep | double | 是 | 生效终止步(百分比) | 0~1,默认 1 |
|
||
| pixelPerfect | int | 是 | 完美像素 | 0: 关, 1: 开,默认 1 |
|
||
| controlMode | int | 是 | 控制模式 | 0: 均衡, 1: 更注重提示词, 2: 更注重 ControlNet |
|
||
| resizeMode | int | 是 | 缩放模式 | 0: 拉伸, 1: 裁剪, 2: 填充 |
|
||
| maskImage | string | 否 | 蒙版图 URL(白蒙版黑底,需与参考图尺寸一致) | - |
|
||
|
||
```python
|
||
"controlNet": [
|
||
{
|
||
"unitOrder": 1,
|
||
"sourceImage": "https://example.com/ref.png",
|
||
"width": 1024,
|
||
"height": 1536,
|
||
"preprocessor": 3,
|
||
"annotationParameters": {
|
||
"depthLeres": {
|
||
"preprocessorResolution": 1024,
|
||
"removeNear": 0,
|
||
"removeBackground": 0,
|
||
}
|
||
},
|
||
"model": "6349e9dae8814084bd9c1585d335c24c",
|
||
"controlWeight": 1,
|
||
"startingControlStep": 0,
|
||
"endingControlStep": 1,
|
||
"pixelPerfect": 1,
|
||
"controlMode": 0,
|
||
"resizeMode": 1,
|
||
"maskImage": "",
|
||
}
|
||
]
|
||
```
|
||
|
||
---
|
||
|
||
## 8. ControlNet 预处理器参考
|
||
|
||
### 8.1 线稿类
|
||
|
||
#### Canny(硬边缘)
|
||
|
||
| 预处理器 | 映射名 | 枚举值 | 参数 | 建议模型 |
|
||
| --- | --- | --- | --- | --- |
|
||
| canny | `canny` | 1 | `preprocessorResolution`(64~2048, 默认512), `lowThreshold`(1~255, 默认100), `highThreshold`(1~255, 默认200) | 1.5: `control_v11p_sd15_canny`, XL: `xinsir_controlnet-canny-sdxl_V2`, F.1: `InstantX-FLUX.1-dev-Controlnet-Union-Pro` |
|
||
|
||
```python
|
||
"preprocessor": 1,
|
||
"annotationParameters": {
|
||
"canny": {"preprocessorResolution": 512, "lowThreshold": 100, "highThreshold": 200}
|
||
}
|
||
```
|
||
|
||
#### SoftEdge(软边缘)
|
||
|
||
| 预处理器 | 映射名 | 枚举值 | 参数 |
|
||
| --- | --- | --- | --- |
|
||
| hed | `hed` | 5 | `preprocessorResolution`(默认512) |
|
||
| hed_safe | `hedSafe` | 6 | `preprocessorResolution`(默认512) |
|
||
| pidinet | `pidinet` | 17 | `preprocessorResolution`(默认512) |
|
||
| pidinet_safe | `pidinetSafe` | 18 | `preprocessorResolution`(默认512) |
|
||
| softedge_teed | `softedgeTeed` | 58 | `preprocessorResolution`(默认512), `safeSteps`(0~64, 默认2) |
|
||
| softedge_anyline | `softedgeAnyline` | 65 | `preprocessorResolution`(默认512), `safeSteps`(0~64, 默认2) |
|
||
|
||
> 建议模型 — 1.5: `control_v11p_sd15_softedge`, XL: `mistoLine_rank256`, F.1: `InstantX-FLUX.1-dev-Controlnet-Union-Pro` / `F.1_mistoline_dev_v1`
|
||
|
||
#### MLSD(直线)
|
||
|
||
| 预处理器 | 映射名 | 枚举值 | 参数 |
|
||
| --- | --- | --- | --- |
|
||
| mlsd | `mlsd` | 8 | `preprocessorResolution`(默认512), `valueThreshold`(0.01~2.00, 默认0.1), `distanceThreshold`(0.01~20.00, 默认0.1) |
|
||
|
||
> 建议模型 — 1.5: `control_v11p_sd15_mlsd`,XL/F.1: 暂无
|
||
|
||
#### Scribble/Sketch(涂鸦/草图)
|
||
|
||
| 预处理器 | 映射名 | 枚举值 | 参数 |
|
||
| --- | --- | --- | --- |
|
||
| scribble_pidinet | `scribblePidinet` | 20 | `preprocessorResolution`(默认512) |
|
||
| scribble_xdog | `scribbleXdog` | 21 | `preprocessorResolution`(默认512), `XDoGThreshold`(1~64, 默认32) |
|
||
| scribble_hed | `scribbleHed` | 22 | `preprocessorResolution`(默认512) |
|
||
|
||
> 建议模型 — 1.5: `control_v11p_sd15_scribble`, XL: `xinsir_anime_painter`, F.1: `InstantX-FLUX.1-dev-Controlnet-Union-Pro`
|
||
|
||
#### Lineart(线稿)
|
||
|
||
| 预处理器 | 映射名 | 枚举值 | 参数 |
|
||
| --- | --- | --- | --- |
|
||
| lineart_realistic | `lineartRealistic` | 29 | `preprocessorResolution`(默认512) |
|
||
| lineart_coarse | `lineartCoarse` | 30 | `preprocessorResolution`(默认512) |
|
||
| lineart_anime | `lineartAnime` | 31 | `preprocessorResolution`(默认512) |
|
||
| lineart_standard | `lineartStandard` | 32 | `preprocessorResolution`(默认512) |
|
||
| lineart_anime_denoise | `lineartAnimeDenoise` | 36 | `preprocessorResolution`(默认512) |
|
||
|
||
> 建议模型 — 1.5: `control_v11p_sd15_lineart` / `control_v11p_sd15s2_lineart_anime`, XL: `xinsir_anime_painter`, F.1: `InstantX-FLUX.1-dev-Controlnet-Union-Pro`
|
||
|
||
### 8.2 空间关系类
|
||
|
||
#### Depth(深度图)
|
||
|
||
| 预处理器 | 映射名 | 枚举值 | 参数 |
|
||
| --- | --- | --- | --- |
|
||
| depth_midas | `depthMidas` | 2 | `preprocessorResolution`(默认512) |
|
||
| depth_leres | `depthLeres` | 3 | `preprocessorResolution`, `removeNear`(0~100, 默认0), `removeBackground`(0~100, 默认0) |
|
||
| depth_leres++ | `depthLeresPlus` | 4 | 同 depth_leres |
|
||
| depth_zoe | `depthZoe` | 25 | `preprocessorResolution`(默认512) |
|
||
| depth_hand_refiner | `depthHandRefiner` | 57 | `preprocessorResolution`(默认512) |
|
||
| depth_anything | `depthAnything` | 64 | `preprocessorResolution`(默认512) |
|
||
|
||
> 建议模型 — 1.5: `control_v11f1p_sd15_depth`, XL: `xinsir_controlnet_depth_sdxl_1.0`, F.1: `InstantX-FLUX.1-dev-Controlnet-Union-Pro`
|
||
|
||
#### Segment(语义分割)
|
||
|
||
| 预处理器 | 映射名 | 枚举值 | 参数 |
|
||
| --- | --- | --- | --- |
|
||
| segmentation | `segmentation` | 23 | `preprocessorResolution`(默认512) |
|
||
| oneformer_coco | `oneformerCoco` | 27 | `preprocessorResolution`(默认512) |
|
||
| oneformer_ade20k | `oneformerAde20k` | 28 | `preprocessorResolution`(默认512) |
|
||
| anime_face_segment | `animeFaceSegment` | 54 | `preprocessorResolution`(默认512) |
|
||
|
||
> 建议模型 — 1.5: `control_v11p_sd15_seg`,XL/F.1: 暂无
|
||
|
||
#### Normal(法线贴图)
|
||
|
||
| 预处理器 | 映射名 | 枚举值 | 参数 |
|
||
| --- | --- | --- | --- |
|
||
| normal_map | `normalMap` | 9 | `preprocessorResolution`(默认512), `backgroundThreshold`(0~1.0, 默认0.4) |
|
||
| normal_bae | `normalBae` | 26 | `preprocessorResolution`(默认512) |
|
||
|
||
> 建议模型 — 1.5: `control_v11p_sd15_normalbae`, F.1: `Flux.1-dev-Controlnet-Surface-Normal`
|
||
|
||
### 8.3 姿态类
|
||
|
||
#### OpenPose
|
||
|
||
| 预处理器 | 映射名 | 枚举值 | 参数 |
|
||
| --- | --- | --- | --- |
|
||
| mediapipe_face | `mediapipeFace` | 7 | `preprocessorResolution`, `maxFaces`(1~10, 默认1), `minConfidence`(0.01~1, 默认0.5) |
|
||
| openpose | `openpose` | 10 | `preprocessorResolution`(默认512) |
|
||
| openpose_hand | `openposeHand` | 11 | `preprocessorResolution` |
|
||
| openpose_face | `openposeFace` | 12 | `preprocessorResolution` |
|
||
| openpose_faceonly | `openposeFaceonly` | 13 | `preprocessorResolution` |
|
||
| openpose_full | `openposeFull` | 14 | `preprocessorResolution` |
|
||
| dw_openpose_full | `dwOpenposeFull` | 45 | `preprocessorResolution` |
|
||
| animal_openpose | `animalOpenpose` | 53 | `preprocessorResolution` |
|
||
| densepose | `densepose` | 55 | `preprocessorResolution` |
|
||
| densepose_parula | `denseposeParula` | 56 | `preprocessorResolution` |
|
||
|
||
> 建议模型 — 1.5: `control_v11p_sd15_openpose`, XL: `xinsir_controlnet-openpose-sdxl-1.0`, F.1: `F.1-ControlNet-Pose-V1` / `InstantX-FLUX.1-dev-Controlnet-Union-Pro`
|
||
|
||
### 8.4 画面参考
|
||
|
||
#### Tile/Blur(分块/模糊)
|
||
|
||
| 预处理器 | 映射名 | 枚举值 | 参数 |
|
||
| --- | --- | --- | --- |
|
||
| tile_resample | `tileResample` | 34 | `downSamplingRate`(1.00~8.00, 默认1) |
|
||
| tile_colorfix | `tileColorfix` | 43 | `variation`(3~32, 默认8) |
|
||
| tile_colorfix+sharp | `tileColorfixSharp` | 44 | `variation`(3~32, 默认8), `sharpness`(0~2.00, 默认1) |
|
||
| blur_gaussian | `blurGaussian` | 52 | `preprocessorResolution`(默认512), `sigma`(0~64, 默认9) |
|
||
|
||
> 建议模型 — 1.5: `control_v11f1e_sd15_tile`, XL: `xinsir_controlnet_tile_sdxl_1.0`, F.1: `Flux.1-dev-Controlnet-Upscaler`
|
||
|
||
#### Reference(参考)
|
||
|
||
| 预处理器 | 映射名 | 枚举值 | 参数 |
|
||
| --- | --- | --- | --- |
|
||
| reference_only | `referenceOnly` | 37 | `styleFidelity`(0~1.0, 默认0.5) |
|
||
| reference_adain | `referenceAdain` | 38 | `styleFidelity`(0~1.0, 默认0.5) |
|
||
| reference_adain+attn | `referenceAdainAttn` | 39 | `styleFidelity`(0~1.0, 默认0.5) |
|
||
|
||
> 仅适用基础算法 1.5,模型选 `None`。
|
||
|
||
### 8.5 风格迁移
|
||
|
||
#### IP-Adapter
|
||
|
||
| 预处理器 | 映射名 | 枚举值 | 参数 | 适用算法 |
|
||
| --- | --- | --- | --- | --- |
|
||
| ip-adapter_clip_sd15 | `ipAdapterClipSd15` | 48 | `preprocessorResolution` | 1.5 |
|
||
| ip-adapter_clip_sdxl | `ipAdapterClipSdxl` | 49 | `preprocessorResolution` | XL |
|
||
| ip-adapter_clip_sdxl_plus_vith | `ipAdapterClipSdxlPlusVith` | 61 | 无 | XL |
|
||
| ip-adapter-siglip | `ipAdapterSiglip` | 66 | `preprocessorResolution` | F.1 |
|
||
|
||
#### T2I-Adapter / Shuffle
|
||
|
||
| 预处理器 | 映射名 | 枚举值 | 参数 |
|
||
| --- | --- | --- | --- |
|
||
| clip_vision | `clipVision` | 15 | `preprocessorResolution` |
|
||
| color | `color` | 16 | `preprocessorResolution` |
|
||
| pidinet_sketch | `pidinetSketch` | 19 | `preprocessorResolution` |
|
||
| shuffle | `shuffle` | 33 | `preprocessorResolution`(默认512) |
|
||
|
||
### 8.6 上色
|
||
|
||
| 预处理器 | 映射名 | 枚举值 | 参数 |
|
||
| --- | --- | --- | --- |
|
||
| recolor_luminance | `recolorLuminance` | 50 | `gammaCorrection`(0.1~2.0, 默认1) |
|
||
| recolor_intensity | `recolorIntensity` | 51 | `gammaCorrection`(0.1~2.0, 默认1) |
|
||
|
||
> 建议模型 — 1.5: `ioclab_sd15_recolor`, XL: `sai_xl_recolor_256lora`
|
||
|
||
### 8.7 局部重绘
|
||
|
||
| 预处理器 | 映射名 | 枚举值 | 参数 |
|
||
| --- | --- | --- | --- |
|
||
| inpaint_global_harmonious | `inpaintGlobalHarmonious` | 40 | 无 |
|
||
| inpaint_only | `inpaintOnly` | 41 | 无 |
|
||
| inpaint_only+lama | `inpaintOnlyLama` | 42 | 无 |
|
||
|
||
> 建议模型 — 1.5: `segmentation_mask_brushnet_ckpt`, XL: `segmentation_mask_brushnet_ckpt_sdxl_v1`, F.1: `F.1-dev-Controlnet-Inpainting-Beta`
|
||
|
||
### 8.8 换脸
|
||
|
||
#### IP-Adapter Face
|
||
|
||
| 预处理器 | 映射名 | 枚举值 | 参数 |
|
||
| --- | --- | --- | --- |
|
||
| ip-adapter_face_id | `ipAdapterFaceId` | 62 | 无 |
|
||
| ip-adapter_face_id_plus | `ipAdapterFaceIdPlus` | 63 | 无 |
|
||
|
||
#### Instant ID
|
||
|
||
| 预处理器 | 映射名 | 枚举值 | 参数 |
|
||
| --- | --- | --- | --- |
|
||
| instant_id_face_keypoints | `instantIdFaceKeypoints` | 59 | `preprocessorResolution`(默认512) |
|
||
| instant_id_face_embedding | `instantIdFaceEmbedding` | 60 | `preprocessorResolution`(默认512) |
|
||
|
||
### 8.9 其他
|
||
|
||
| 预处理器 | 映射名 | 枚举值 | 说明 |
|
||
| --- | --- | --- | --- |
|
||
| none | `none` | 0 | 参考图已处理为线稿/深度图/骨骼图时使用 |
|
||
| invert | `invert` | 35 | 白底黑线反色,应用线稿模型时使用 |
|
||
|
||
---
|
||
|
||
## 9. ControlNet 模型列表
|
||
|
||
### 9.1 线稿类
|
||
|
||
**Canny(硬边缘):**
|
||
|
||
| 模型名称 | 算法 | UUID |
|
||
| --- | --- | --- |
|
||
| control_v11p_sd15_canny | 1.5 | `7d917ec7e55c5805db737d3b493c91ce` |
|
||
| t2iadapter_canny_sd14v1 | 1.5 | `a2c41c4e97944f3aa71f913bdc45b1ca` |
|
||
| t2iadapter_canny_sd15v2 | 1.5 | `c04144bcf017232483181cd8607097c2` |
|
||
| diffusers_xl_canny_full | XL | `56de5edadb6f2891aff05ff078dc0470` |
|
||
| diffusers_xl_canny_mid | XL | `efb97e9d8c237573298c3a5a7869b89c` |
|
||
| diffusers_xl_canny_small | XL | `dccde738064e9748f93b48ec5868968e` |
|
||
| kohya_controllllite_xl_canny | XL | `5242e3d18cc18689bd8af11dd2d675c1` |
|
||
| kohya_controllllite_xl_canny_anime | XL | `4f3e1cfe79f87496ec69a37826c3afeb` |
|
||
| sai_xl_canny_128lora | XL | `63c7f2c6c354336513831aa522d7e0f4` |
|
||
| sai_xl_canny_256lora | XL | `5bf551f53651764cad56363e17900d87` |
|
||
| t2i-adapter_diffusers_xl_canny | XL | `618390ab2957a422612cb2ba92a2788f` |
|
||
| t2i-adapter_xl_canny | XL | `7cd56501c336c1edba78430355c9d081` |
|
||
| xinsir_controlnet-canny-sdxl_V2 | XL | `b6806516962f4e1599a93ac4483c3d23` |
|
||
| XLabs-flux-canny-controlnet_v3 | F.1 | `017997cd6ba44c4dbe8f60e0a26cd0df` |
|
||
| InstantX-FLUX.1-dev-Controlnet-Union-Pro | F.1 | `13c1e1b96ba64f9cbb2b54f89b5fe873` |
|
||
| InstantX-Qwen-Image-Controlnet-Union | Qwen | `5b5f21d2b80445598db19e924bd3a409` |
|
||
|
||
**SoftEdge(软边缘):**
|
||
|
||
| 模型名称 | 算法 | UUID |
|
||
| --- | --- | --- |
|
||
| control_v11p_sd15_softedge | 1.5 | `0929722d9047ec6498a50ff5d1081629` |
|
||
| sargezt_xl_softedge | XL | `dda1a0c480bfab9833d9d9a1e4a71fff` |
|
||
| controlnet-sd-xl-1.0-softedge-dexined | XL | `37bddde3d45c11ee9b5e00163e365853` |
|
||
| mistoLine_softedge_sdxl_fp16 | XL | `4f6726be104a432f8039b018c92ed4bf` |
|
||
| mistoLine_rank256 | XL | `83286d0e66a845c58f7d23442f9dedf9` |
|
||
| XLabs-flux-hed-controlnet_v3 | F.1 | `6c4d620df3644514903b8189735c6ae9` |
|
||
| F.1_mistoline_dev_v1 | F.1 | `3e6860a3b9444f25ae07d9c1b5d1ba9e` |
|
||
| InstantX-FLUX.1-dev-Controlnet-Union-Pro | F.1 | `13c1e1b96ba64f9cbb2b54f89b5fe873` |
|
||
|
||
**MLSD(直线):** `control_v11p_sd15_mlsd` (1.5) → `7168cece6a0d491375aa1753ff3bdc21`
|
||
|
||
**Scribble/Sketch(涂鸦):**
|
||
|
||
| 模型名称 | 算法 | UUID |
|
||
| --- | --- | --- |
|
||
| control_v11p_sd15_scribble | 1.5 | `fe57911f7ba1b84eb27f1e1ecead3367` |
|
||
| kohya_controllllite_xl_scribble_anime | XL | `4a399a87f1ffbc26d065a38765d30d24` |
|
||
| xinsir_controlnet-scribble-sdxl-1.0 | XL | `888cf8985bd6442cba1f2d975b6eb022` |
|
||
| xinsir_anime_painter | XL | `f936bf22cb8e4dcfa6b0f3b96cdd8eb7` |
|
||
|
||
**Lineart(线稿):**
|
||
|
||
| 模型名称 | 算法 | UUID |
|
||
| --- | --- | --- |
|
||
| control_v11p_sd15_lineart | 1.5 | `b06dfbd1a61c35e933d9f8caa8a0e031` |
|
||
| control_v11p_sd15s2_lineart_anime | 1.5 | `c263e039c57b8a958ee0a936039af654` |
|
||
| t2i-adapter_diffusers_xl_lineart | XL | `a0f01da42bf48b0ba02c86b6c26b5699` |
|
||
|
||
### 9.2 空间关系类
|
||
|
||
**Depth(深度图):**
|
||
|
||
| 模型名称 | 算法 | UUID |
|
||
| --- | --- | --- |
|
||
| control_v11f1p_sd15_depth | 1.5 | `cf63d214734760dcdc108b1bd094921b` |
|
||
| t2iadapter_depth_sd15v2 | 1.5 | `f08a4a889b56d4099e8a947503cabc14` |
|
||
| t2iadapter_depth_sd14v1 | 1.5 | `8b74bf9ea84f592c069b523d9bef9dab` |
|
||
| t2iadapter_zoedepth_sd15v1 | 1.5 | `fc8b79f97eeceda388b43df12509c311` |
|
||
| control_sd15_inpaint_depth_hand_fp16 | 1.5 | `3497061cd45c11ee9b5e00163e365853` |
|
||
| t2i-adapter_diffusers_xl_depth_zoe | XL | `a35993a2d1cde4a6c800364a68731c67` |
|
||
| sai_xl_depth_128lora | XL | `3156f3428afc7122c66b2b950f09d4cd` |
|
||
| t2i-adapter_diffusers_xl_depth_midas | XL | `c22ec6a7a24eed6b91889ae1a1e94b2e` |
|
||
| diffusers_xl_depth_mid | XL | `740d6d428e70d4b40888efa4d9eb642a` |
|
||
| xinsir_controlnet_depth_sdxl_1.0 | XL | `6349e9dae8814084bd9c1585d335c24c` |
|
||
| sai_xl_depth_256lora | XL | `08d0fbb72d7fab601218df26978a46e0` |
|
||
| sargezt_xl_depth | XL | `feb9ee5779bf2eb3fdd669f2e3e6b1aa` |
|
||
| sargezt_xl_depth_zeed | XL | `4216d4b49a6b559d76d181908f866eb8` |
|
||
| kohya_controllllite_xl_depth_anime | XL | `dea707d52e3a8f243da5579579cb3a3d` |
|
||
| kohya_controllllite_xl_depth | XL | `693d7182db5293c0087524580111fd96` |
|
||
| sargezt_xl_depth_faid_vidit | XL | `1c6d32d0fb004cf1becc2b526fd83690` |
|
||
| diffusers_xl_depth_small | XL | `6a786af31a13776100e9c6a90f99aebf` |
|
||
| diffusers_xl_depth_full | XL | `04dcab4b18c7b821e96660d6c19de50b` |
|
||
| XLabs-flux-depth-controlnet_v3 | F.1 | `0cc4e6b8206b44cdab51e30fb8b9c328` |
|
||
| InstantX-FLUX.1-dev-Controlnet-Union-Pro | F.1 | `13c1e1b96ba64f9cbb2b54f89b5fe873` |
|
||
| Flux.1-dev-Controlnet-Depth | F.1 | `64dd7a6c714f4512a4500f6a01b016b7` |
|
||
|
||
**Segment(语义分割):** `control_v11p_sd15_seg` (1.5) → `94571f4bb5136464afc1540a92ae3ee8`
|
||
|
||
**Normal(法线贴图):**
|
||
|
||
| 模型名称 | 算法 | UUID |
|
||
| --- | --- | --- |
|
||
| control_v11p_sd15_normalbae | 1.5 | `9a85fdca18a8b58b2fb2ff13ab339be4` |
|
||
| Flux.1-dev-Controlnet-Surface-Normal | F.1 | `e51fdccdf3b8417aab246bde40b5f360` |
|
||
|
||
### 9.3 姿态类
|
||
|
||
| 模型名称 | 算法 | UUID |
|
||
| --- | --- | --- |
|
||
| control_v11p_sd15_openpose | 1.5 | `b46dd34ef9c2fe189446599d62516cbf` |
|
||
| t2iadapter_openpose_sd14v1 | 1.5 | `5a8b19a8809e00be4e17517e8ab174ad` |
|
||
| control_v11p_sd15_densepose_fp16 | 1.5 | `3b4e0830d45c11ee9b5e00163e365853` |
|
||
| control_sd15_animal_openpose_fp16 | 1.5 | `329f0073d45c11ee9b5e00163e365853` |
|
||
| control_v2p_sd15_mediapipe_face | 1.5 | `73de0752a7a8431ba21637cda6723c95` |
|
||
| kohya_controllllite_xl_openpose_anime_v2 | XL | `4cbbd2483088ef5f0d41bfef0d7141fb` |
|
||
| kohya_controllllite_xl_openpose_anime | XL | `abb5d55cf94c504f6f8c64abc0b1483f` |
|
||
| thibaud_xl_openpose_256lora | XL | `4dd1f4df2a9d3a9db8aeaa9480196d02` |
|
||
| t2i-adapter_xl_openpose | XL | `9deac5a5c60abfd03261bd174ddba47d` |
|
||
| t2i-adapter_diffusers_xl_openpose | XL | `9cd43e1856040c2436f00802d5b54ee5` |
|
||
| thibaud_xl_openpose | XL | `2fe4f992a81c5ccbdf8e9851c8c96ff2` |
|
||
| controlnet-densepose-sdxl | XL | `3ae77dfdd45c11ee9b5e00163e365853` |
|
||
| xinsir_controlnet-openpose-sdxl-1.0 | XL | `23ef8ab803d64288afdb7106b8967a55` |
|
||
| F.1-ControlNet-Pose-V1 | F.1 | `7c6d889cb9c04b78858d8fece80f9f85` |
|
||
|
||
### 9.4 画面参考
|
||
|
||
**Tile/Blur:**
|
||
|
||
| 模型名称 | 算法 | UUID |
|
||
| --- | --- | --- |
|
||
| control_v11f1e_sd15_tile | 1.5 | `37e42c6bdb6fab4c24a662100f20f722` |
|
||
| kohya_controllllite_xl_blur_anime | XL | `46a34a643f6855e9b3861515712df5d9` |
|
||
| xinsir_controlnet_tile_sdxl_1.0 | XL | `0f47ef6d4f4b40afab8b290c98baac0e` |
|
||
| kohya_controllllite_xl_blur_anime_beta | XL | `44199bb6dcf4f65e09a4e5e57ebdf9b4` |
|
||
| kohya_controllllite_xl_blur | XL | `aac5fe593565f0673673731d54ecfab8` |
|
||
| TTPLanet_SDXL_Controlnet_Tile_Realistic_v1 | XL | `13bfaf39f9214c658507a92cd15fd02d` |
|
||
| TTPLanet_SDXL_Controlnet_Tile_Realistic_v2 | XL | `163d505651a64d6bac9a907b213dc8b0` |
|
||
| Flux.1-dev-Controlnet-Upscaler | F.1 | `a696b5bdadc740119fd76505b33d6898` |
|
||
|
||
### 9.5 风格迁移
|
||
|
||
**IP-Adapter:**
|
||
|
||
| 模型名称 | 算法 | UUID |
|
||
| --- | --- | --- |
|
||
| ip-adapter_sd15 | 1.5 | `18801062fe4289dd0a984e69de9f9e7c` |
|
||
| ip-adapter_sd15_plus | 1.5 | `ad4bd9b4b05c4ac8faf7f81d9fdcadc8` |
|
||
| ip-adapter_sd15_light | 1.5 | `3a1ddfd0d45c11ee9b5e00163e365853` |
|
||
| ip-adapter_sd15_vit-G | 1.5 | `36f3d2a0d45c11ee9b5e00163e365853` |
|
||
| ip-adapter_xl | XL | `8ea2538fdd7dcdea52b2da6b5151f875` |
|
||
| ip-adapter-plus_sdxl_vit-h | XL | `38ee73f1d45c11ee9b5e00163e365853` |
|
||
| ip-adapter_sdxl_vit-h | XL | `375866e3d45c11ee9b5e00163e365853` |
|
||
| InstantX-F.1-dev-IP-Adapter | F.1 | `c6ed70879cf011ef96d600163e37ec70` |
|
||
| F.1-redux-dev | F.1 | `8ddf6f3ba8a111efbb1700163e031cf1` |
|
||
|
||
**T2I-Adapter:**
|
||
|
||
| 模型名称 | 算法 | UUID |
|
||
| --- | --- | --- |
|
||
| t2iadapter_color_sd14v1 | 1.5 | `8e581a4e7c986950d71f1102accad5d0` |
|
||
| t2iadapter_keypose_sd14v1 | 1.5 | `181d8d213381458cb6e326760637d4b4` |
|
||
| t2iadapter_seg_sd14v1 | 1.5 | `3c680cc8edfbc4479423549e01f21897` |
|
||
| t2iadapter_sketch_sd14v1 | 1.5 | `0d19dd02091ec2d01f3cdd99a4f4b442` |
|
||
| t2iadapter_sketch_sd15v2 | 1.5 | `bd6c5dbb73c2c2e538850c23ab2dcbf5` |
|
||
| t2iadapter_style_sd14v1 | 1.5 | `e33777a1f374eccd9464623c56a82c91` |
|
||
|
||
**Shuffle:** `control_v11e_sd15_shuffle` (1.5) → `9efba1cc2d469bf4be8fc135689bc8a0`
|
||
|
||
### 9.6 上色
|
||
|
||
| 模型名称 | 算法 | UUID |
|
||
| --- | --- | --- |
|
||
| ioclab_sd15_recolor | 1.5 | `e0db5b9e227eac932c71498cf7e03a78` |
|
||
| sai_xl_recolor_128lora | XL | `af92235f1de682ceac136c06450c9a51` |
|
||
| sai_xl_recolor_256lora | XL | `03051a3606b4974ec02fc55b079757e7` |
|
||
|
||
### 9.7 局部重绘
|
||
|
||
| 模型名称 | 算法 | UUID |
|
||
| --- | --- | --- |
|
||
| control_v11p_sd15_inpaint | 1.5 | `ebeada0aa92959b4e905ab6980d5d203` |
|
||
| segmentation_mask_brushnet_ckpt | 1.5 | `14aa553bf6534a419a9a465eba900f3a` |
|
||
| random_mask_brushnet_cpkt | 1.5 | `de44488f84a74e02a1fac604d790698c` |
|
||
| segmentation_mask_brushnet_ckpt_sdxl_v1 | XL | `a311363995dd4f2fa42ee3fc9582d920` |
|
||
| random_mask_brushnet_ckpt_sdxl | XL | `3161fc68c59847b0ad826a9fb18c857f` |
|
||
| F.1-dev-Controlnet-Inpainting-Alpha | F.1 | `012d2f780c0b44dba829bb223207e608` |
|
||
| F.1-dev-Controlnet-Inpainting-Beta | F.1 | `31df01fc271d484ca4d496179d69a665` |
|
||
| InstantX-Qwen-Image-ControlNet-Inpainting | Qwen | `2228ab9234a34aa5abf77caa907c0de1` |
|
||
|
||
### 9.8 换脸
|
||
|
||
**IP-Adapter Face:**
|
||
|
||
| 模型名称 | 算法 | UUID |
|
||
| --- | --- | --- |
|
||
| ip-adapter_face_id | 1.5 | `368e6a37d45c11ee9b5e00163e365853` |
|
||
| ip-adapter-faceid-portrait_sd15 | 1.5 | `330504bcd45c11ee9b5e00163e365853` |
|
||
| ip-adapter-faceid-plusv2_sd15 | 1.5 | `34fb8ef6d45c11ee9b5e00163e365853` |
|
||
| ip-adapter-faceid-plus_sd15 | 1.5 | `362a215ad45c11ee9b5e00163e365853` |
|
||
| ip-adapter-faceid-portrait-v11_sd15 | 1.5 | `35c50016d45c11ee9b5e00163e365853` |
|
||
| ip-adapter-faceid_sdxl | XL | `38879e1ad45c11ee9b5e00163e365853` |
|
||
| ip-adapter-faceid-plusv2_sdxl | XL | `3953f672d45c11ee9b5e00163e365853` |
|
||
| ip-adapter-plus-face_sdxl_vit-h | XL | `336955e4d45c11ee9b5e00163e365853` |
|
||
|
||
**Instant ID(仅 XL):**
|
||
|
||
| 模型名称 | UUID |
|
||
| --- | --- |
|
||
| ip-adapter_instant_id_sdxl | `3a8267c7d45c11ee9b5e00163e365853` |
|
||
| control_instant_id_sdxl | `3560664ad45c11ee9b5e00163e365853` |
|
||
|
||
**PuLID(仅 F.1):** `pulid_flux_v0.9.1` → `405836d1ae2646b4ba2716ed6bd5453a`
|
||
|
||
### 9.9 其他
|
||
|
||
| 模型名称 | 算法 | UUID | 用途 |
|
||
| --- | --- | --- | --- |
|
||
| control_v1u_sd15_illumination | 1.5 | `3109072a5cf6403faba6162003b8f483` | 光影 |
|
||
| control_v1p_sd15_brightness | 1.5 | `39b8eac0d45c11ee9b5e00163e365853` | 光影 |
|
||
| control_v1p_sd15_qrcode_monster | 1.5 | `1fa6070c35626e760b1473926852cbbc` | 二维码 |
|
||
|
||
---
|
||
|
||
## 10. 枚举值速查
|
||
|
||
### 生图状态 (generateStatus)
|
||
|
||
| 值 | 含义 |
|
||
| --- | --- |
|
||
| 1 | 等待执行 |
|
||
| 2 | 执行中 |
|
||
| 3 | 已生图 |
|
||
| 4 | 审核中 |
|
||
| 5 | 任务成功 |
|
||
| 6 | 任务失败 |
|
||
|
||
### 审核状态 (auditStatus)
|
||
|
||
| 值 | 含义 |
|
||
| --- | --- |
|
||
| 0 | 待审核 |
|
||
| 3 | 审核通过 |
|
||
|
||
### 采样器 (sampler)
|
||
|
||
需从 LibLib 提供的采样方法列表中选择枚举值。常用值:`15`。
|
||
|
||
### 放大算法 (upscaler)
|
||
|
||
需从 LibLib 提供的放大算法模型枚举中选择。常用值:`10`。
|
||
|
||
---
|
||
|
||
## 11. 文档版本更新
|
||
|
||
| 日期 | 说明 |
|
||
| --- | --- |
|
||
| 2025.12.21 | 增加 Seedream4.5、Kling2.6 接口 |
|
||
| 2025.11.4 | 增加 Kling2.5、Seedream4.0 接口 |
|
||
| 2025.8.19 | 增加可灵生成视频接口、LibDream & LibEdit |
|
||
| 2025.6.16 | 增加 F.1 Kontext、智能算法 IMG-1 |
|
||
| 2025.4.30 | 支持图片上传 |
|
||
| 2025.3.18 | 增加 F.1-ControlNet(PuLID 人像换脸、主体参考) |
|
||
| 2025.1.17 | 增加调用 ComfyUI 工作流 |
|
||
| 2025.1.2 | 增加 ComfyUI 接入星流 API |
|
||
| 2024.12.18 | 查询结果新增 pointsCost 和 accountBalance 字段 |
|
||
| 2024.12.5 | 原【进阶模式】更名为【LiblibAI 自定义模型】 |
|
||
| 2024.11.15 | 支持 F.1 风格迁移 |
|