一、前提条件
·登录 Serverless 应用控制台,开通 Serverless 产品服务。
·开通对象存储产品服务,并创建一个存储桶,详见 新手指引。
·进入 数据万象控制台,开通数据万象服务。
二、创建 Stable Diffusion AI 应用
1. 登录 Serverless 控制台,选择左侧导航栏中的 Serverless 应用,在 Serverless 应用页面,单击新建应用。
2. 在新建应用页面,根据页面相关信息提示进行配置:
·创建方式:选择应用市场。
·模板:选择 Stable Diffusion AI 绘画。如下:
3. 单击下一步,根据页面相关信息提示进行配置:
·应用名:例如 “aigc-auditing-server”。
·地域:例如 “北京”。
·应用类型:选择 SD API(无 Web UI)的方式,通过 API 调用。
4. 单击完成,查看部署日志页面,等待部署,即可完成应用创建、函数创建以及 API 网关触发器创建。函数服务显示正常,即创建完成:
三、使用 Stable Diffusion AI 应用生成图片
你可以使用平台测试模板或 API 接口两种方式生成图片:
使用平台测试模板生成图片
通过控制台中的应用测试页面,你可以测试生成图片,按如下配置:
·请求方式:POST
·path: /sdapi/v1/txt2img
·Content-Type: application/json
·body: 传入绘图的参数,如 prompt
使用 API 接口生成图片(以 Python 为例)
·url:设置函数服务的访问路径。
·body:设置绘图参数。
图像转换可以安装 pillow,推荐使用 pip 安装。
pip install pillow
代码示例:
import jsonimport requestsimport ioimport base64from PIL import Image, PngImagePluginurl = "https://service.*********.tencentcs.com/release/"# 文生图接口path='sdapi/v1/txt2img'# 绘图参数body = { "prompt": "1 girl, upper body, look at viewer", "steps": 20 }# API请求response = requests.post(url=f'{url}{path}', json=body)r = response.json()# 保存生成的图片if 'images' in r: for i in r['images']: image = Image.open(io.BytesIO(base64.b64decode(i.split(",",1)[0]))) png_payload = { "image": "data:image/png;base64," + i } response2 = requests.post(url=f'{url}sdapi/v1/png-info', json=png_payload) pnginfo = PngImagePlugin.PngInfo() pnginfo.add_text("parameters", response2.json().get("info")) image.save('output.png', pnginfo=pnginfo)
生成图片示例如下所示:
更多细节可参考 部署 Stable Diffusion AI 绘画应用(自定义模型版)。
四、图片审核概述
图片批量审核接口 支持同步、异步请求方式,你可以通过本接口对多个图片文件进行内容审核,该接口属于 POST 请求。
五、图片审核调用示例(以 Python 为例)
依赖 qcloud_cos 使用 pip 安装(推荐)。
pip install -U cos-python-sdk-v5
代码示例:
import sys
import os
import logging
import base64
from qcloud_cos import CosConfig
from qcloud_cos import CosS3Client
from qcloud_cos.cos_comm import CiDetectType# 正常情况日志级别使用 INFO,需要定位时可以修改为 DEBUG,此时 SDK 会打印和服务端的通信信息logging.basicConfig(level=logging.INFO, stream=sys.stdout)# 设置用户属性, 包括 secret_id, secret_key, region等。Appid 已在 CosConfig 中移除,请在参数 Bucket 中带上 Appid。Bucket 由 BucketName-Appid 组成。secret_id = os.environ['COS_SECRET_ID'] # 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见:https://cloud.tencent.com/document/product/598/37140
secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见:https://cloud.tencent.com/document/product/598/37140
region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看:https://console.cloud.tencent.com/cos5/bucket
token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见:https://cloud.tencent.com/document/product/436/14048
scheme = 'https' # 指定使用 http/https 协议来访问 COS,默认为 https,可不填
bucket_name='test' # 指定cos桶中bucket的名称
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)
client = CosS3Client(config) # 创建 cos client
img_path='./output.png' # 生成的图片路径
with open(img_path, 'rb') as file:
data = file.read()
base64_data = base64.b64encode(data).decode("utf-8") # 将数据转换为Base64编码
response = client.ci_auditing_image_batch( # 调用审核接口
Bucket=bucket_name,
DetectType=CiDetectType.PORN,
Input=[
{
'Content':base64_data, #图像数据的base64编码
}
]
)
print(response)
其他细节,请参考 图片批量审核 。