Python SDK
本SDK主要面向使用Python的用户,自动签名并简化调用过程。下载以下文件,并另存为api.py
:
函数说明
.call(params)
调用API。返回值:Dictionary
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
params | Dictionary | 无 | 调用参数,更多信息请查询API文档。其中的PublicKey 、PrivateKey 和Signature 这3个公共参数无需填写。 |
.localImg2Base64(path)
从本地获取图片或遮罩并转换为Base64编码格式。返回值:String
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
path | String | 无 | 图片或遮罩的本地路径。 |
.remoteImg2Base64(url)
远程获取图片或遮罩并转换为Base64编码格式。返回值:String
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
url | String | 无 | 图片或遮罩的链接地址。如果url并非以“https://”开头,本SDK会尝试自动修正。 |
.pollingTask(taskUID, interval, callback)
轮询一个任务。返回值:Dictionary
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
taskUID | String | 无 | 调用生成和修改类API后获得的任务ID。 |
interval | Int | 3000 | 非必要。轮询的时间间隔,单位为毫秒。 |
callback | Function | null | 非必要。轮训时的回调函数,该函数会返回一个Dictionary ,包含了当前任务的详细信息。为了简化使用,如果没有设置interval,callback可直接作为第二个参数。 |
.setKeys(publicKey, privateKey)
设置调用API所需的公私钥。返回值:None
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
publicKey | String | 无 | 公钥,可在用户中心页面获得。 |
privateKey | String | 无 | 私钥,可在用户中心页面获得。 |
gateway | String | https://api.picpik.ai/ (opens in a new tab) | 非必要。API网关,如您是国内站用户,请修改为 https://api.picpikai.com/ 。如果url并非以“https://”开头,本SDK会尝试自动修正。 |
使用示例
示例:生成一只鸟的图片,并去除背景。
import api
# 设置调用API所需的公私钥。登陆官网后,可在用户中心页面找到您的密钥。
api.setKeys(
publicKey = "Your Public Key",
privateKey = "Your Private Key"
)
# 获取模型列表。生成图片时,需要指定一个主模型及其参数。与直接调用不同,本SDK在调用API时会自动填写“PublicKey”、“PrivateKey”和“Signature”这些公共参数。
data = api.call({
"Action": "ListModels"
})
model = data["MainModels"]["PICPIK General"]
# 选择模型列表中的一个模型,并生成图片
data = api.call({
"Action": "GenerateImages",
"MainModel": model,
"PositivePrompts": ["One Bird"],
})
taskUID = data["TaskUID"]
# 利用获得的task UID,轮训任务状态。
data = api.pollingTask(taskUID, lambda taskDetail:print(taskDetail["Status"]))
# 任务完成后,获得生成图片的URL并编码为Base64格式。
imageURL = data["ImgList"][0]
base64Img = api.remoteImg2Base64(imageURL)
# 去除背景
data = api.call({
"Action": "RemoveBackground",
"RawImage": base64Img
})
taskUID = data["TaskUID"]
# 利用获得的task UID,轮训任务状态。
data = api.pollingTask(taskUID, lambda taskDetail:print(taskDetail["Status"]))
# 任务完成后,获得生成图片的URL
imageURL = "https://" + data["ImgList"][0]
print(imageURL)