生成图片
Action
GenerateImages
简介
此接口用于生成图片。
请求
参数名 | 类型 | 描述信息 | 必填 |
---|---|---|---|
Action | String | 对应的 API 指令名称 | ✓ |
PublicKey | String | 用户公钥,可从 PICPIK用户中心 (opens in a new tab) 获取 | ✓ |
Signature | String | 根据公钥及 API 指令生成的用户签名,参见 签名算法 | ✓ |
request_uuid | String | 请求uuid,采用uuid生成方式随机生成,可用于管理您业务和客户的请求 |
参数名 | 类型 | 描述信息 | 必填 |
---|---|---|---|
MainModel | Model | 主模型 | ✓ |
SubModelList | []Model | 子模型列表,包含LoRA、Embedding和HyperNetwork | |
PositivePrompts | []String | 希望在画面中出现的内容描述 | |
NegativePrompts | []String | 不希望在画面中出现的内容描述 | |
TranslatePrompts | Bool | 是否将内容描述翻译成英文,支持的语言列表见此处。默认值:true | |
Seed | Int | 种子编号(-1~2147483647),-1代表随机种子,默认值:-1 | |
Width | Int | 图片宽度(64~2560),默认值:1024 | |
Height | Int | 图片高度(64~2560),默认值:1024 | |
BatchSize | Int | 批量生图的数量(1~16),默认值:1 | |
UseMainModelVAE | Bool | 是否使用主模型自带的编解码器,默认值:false |
参数名 | 类型 | 描述信息 | 必填 |
---|---|---|---|
ControlNetList | []ControlNet | 生成图像所需的ControlNet模型(最多三个)和参数 | |
Image2Image | Image2Image | 以图生图时,参考图的相关参数 | |
Tileable | Bool | 是否生成可平铺的图片,主要用于生成可拼接的纹理图案,默认值:false | |
ImageAndMaskList | []Base64 | Base64编码的图片和蒙版遮罩列表 |
复杂数据类型说明
Model
字段名 | 类型 | 描述信息 | 必填 |
---|---|---|---|
Name | String | 模型名称 | |
ModelCode | String | 模型编码 | ✓ |
IsOfficial | Bool | 是否为官方模型 | |
TriggerWordList | []String | 触发词列表(仅模型为lora时生效) | |
InferenceParams | InferenceParams | 推理用的参数 |
ControlNet
参数名 | 类型 | 描述信息 | 必填 |
---|---|---|---|
ImageIndex | Int | 图片在ImageAndMaskList索引,从0开始 | ✓ |
MaskIndex | Int | 图片在ImageAndMaskList索引,从0开始。蒙版可独立绘制或通过去背景和内容提取API获得。 | |
InvertMask | Bool | 是否需要反转遮罩,默认值:false | |
PreProcessor | PreProcessor | 预处理器的模型与参数 | ✓ |
ControlModel | ControlModel | ControlNet的模型与参数 | ✓ |
Image2Image
参数名 | 类型 | 描述信息 | 默认值 | 范围 | 步长 | 必填 |
---|---|---|---|---|---|---|
ImageIndex | Int | 图片在ImageAndMaskList 或ImageList 中的索引编号,从0开始 | ✓ | |||
ReferStrength | Float | 参考强度(0~1) 默认值: 0.5 | 0.5 | 0~1 | 0.01 |
PreProcessor
参数名 | 类型 | 描述信息 | 必填 |
---|---|---|---|
ModelCode | String | ControlNet预处理器编码 | ✓ |
InferenceParams | InferenceParams | ControlNet预处理器推理参数 |
ControlModel
参数名 | 类型 | 描述信息 | 必填 |
---|---|---|---|
ModelCode | String | ControlModel模型编码 | ✓ |
InferenceParams | InferenceParams | ControlModel推理参数 |
InferenceParams
注意:特定参数仅对某个特定的模型数据类型(父级)生效,并不通用。
参数名 | 类型 | 有效的父级类型 | 描述信息 | 默认值 | 范围 | 步长 | 必填 |
---|---|---|---|---|---|---|---|
LoraWeight | Float | Model | 推理时的模型权重, 仅对 LoRA模型生效 | 1 | -1~2 | 0.01 | |
Resolution | Int | PreProcessor | Controlnet预处理器的生成分辨率 | 512 | 64~2048 | 64 | |
ControlWeight | Float | ControlModel | ControlNet模型的推理权重 | 1 | 0~2 | 0.01 | |
StartingStep | Float | ControlModel | ControlNet模型开始介入推理的时机(比率) | 0 | 0~1 | 0.01 | |
EndingStep | Float | ControlModel | ControlNet模型退出推理过程的时机(比率) | 1 | 0~1 | 0.01 |
参数传递技巧
💡
您可以直接将ListModels
接口内的MainModels
参数所返回的某个Model
对象最为值传入本接口的MainModel
参数。以Python为例:
# 假设变量“sdModels”为成功请求“ListModels”接口后返回的JSON数据
{
"MainModel": sdModels["MainModels"]["PICPIK General"],
}
SubModelList
和ControlNetList
这些包含模型数据的参数也可以使用同样的方式传递。
简单请求示例
{
"Action": "GenerateImages",
"PublicKey": "ALLaXAM4cNdHXPDJAJJ4k8Hh1hZS2EgJF1D0FlPwfl",
"Signature": "83f3ce02e110bbb25cecb5092637934a95e3bdc8",
"request_uuid": "432c57d3-102b-4817-9e98-28054b33db8e",
"MainModel": {
"ModelCode": "PICPIK Anime"
},
"PositivePrompts": [
"一只猫在沙发上"
]
}
复杂请求示例
{
"Action": "GenerateImages",
"PublicKey": "ALLak9M4cNdHXKOJAJJ4k8Hh1hZS2EgJF1D0FlPwfl",
"Signature": "59734dfd3985e96d452a2072533f47c766d52c19",
"request_uuid": "9e3f5da5-8020-463c-af54-a24912f4eb0e",
"MainModel": {
"ModelCode": "PICPIK General"
},
"SubModelList": [
{
"InferenceParams": {
"LoraWeight": 1
},
"ModelCode": "lora_model1_20230825_165436"
}
],
"NegativePrompts": [],
"PositivePrompts": [
"一只猫在沙发上"
],
"TranslatePrompts": true,
"Width": 512,
"Height": 512,
"BatchSize": 1,
"Seed": -1,
"Image2Image": {
"ImageIndex": 0,
"ReferStrength": 0.5
},
"ControlNetList": [
{
"ImageIndex": 1,
"MaskIndex": 2,
"InvertMask": false,
"PreProcessor": {
"InferenceParams": {
"Resolution": 512
},
"ModelCode": "mlsd"
},
"ControlModel": {
"InferenceParams": {
"ControlWeight": 1,
"EndingStep": 1,
"StartingStep": 0
},
"ModelCode": "control_v11p_sd15_mlsd"
}
}
],
"Tileable": false,
"UseMainModelVAE": false,
"ImageAndMaskList": ["data:image/png;base64,xxx","data:image/png;base64,xxx","data:image/png;base64,xxx"]
}
响应
字段名 | 类型 | 描述信息 | 必填 |
---|---|---|---|
RetCode | Int | 返回状态码,为 0 则为成功返回,非 0 为失败 | ✓ |
Action | String | 操作指令名称 | ✓ |
Message | String | 返回错误消息,当 RetCode 非 0 时提供详细的描述信息 | |
request_uuid | String | 返回请求时填写的uuid |
参数名 | 类型 | 描述信息 | 必填 |
---|---|---|---|
TaskUID | String | 任务UID,用于查询任务详情与获取结果 | ✓ |
响应示例
{
"Action": "GenerateImages",
"RetCode": 0,
"Message": "",
"request_uuid": "432c57d3-102b-4817-9e98-28054b33db8e",
"TaskUID": "ckt3uqlrh4miq8mr9lgg"
}