2025-09-02 14:09:35 +08:00
import hmac
from hashlib import sha1
import base64
import time
2025-09-02 16:26:38 +08:00
import uuid
2025-09-02 16:27:43 +08:00
import requests
2025-09-02 16:26:38 +08:00
import Config . Config
2025-09-02 16:04:10 +08:00
2025-09-02 14:09:35 +08:00
def make_sign ( uri ) :
2025-09-02 16:26:38 +08:00
"""
生成签名
"""
# API访问密钥
secret_key = Config . Config . LIBLIB_SECRETKEY
# 当前毫秒时间戳
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 ( )
# 移除为了补全base64位数而填充的尾部等号
sign = base64 . urlsafe_b64encode ( digest ) . rstrip ( b ' = ' ) . decode ( )
return sign , timestamp , signature_nonce
if __name__ == ' __main__ ' :
2025-09-02 16:27:43 +08:00
# 要调用的接口路径
2025-09-02 16:26:38 +08:00
uri = " /api/model/version/get "
2025-09-02 16:27:43 +08:00
# 获取签名
2025-09-02 16:26:38 +08:00
sign , timestamp , signature_nonce = make_sign ( uri )
url = f ' { Config . Config . LIBLIB_URL } { uri } ?AccessKey= { Config . Config . LIBLIB_ACCESSKEY } &Signature= { sign } &Timestamp= { timestamp } &SignatureNonce= { signature_nonce } '
2025-09-02 16:27:43 +08:00
# 封装调用参数
2025-09-03 07:57:36 +08:00
# hellonijicute25d官方版
# https://www.liblib.art/modelinfo/018f2fd5718d45a38546b5e518483856?from=feed&versionUuid=390e7df48aed45d4bc3f0bcbc89fa44c
# 接口文档
# https://liblibai.feishu.cn/wiki/UAMVw67NcifQHukf8fpccgS5n6d
versionUuid = " 390e7df48aed45d4bc3f0bcbc89fa44c "
2025-09-02 16:26:38 +08:00
response = requests . post ( url , json = { " versionUuid " : versionUuid } )
2025-09-02 16:30:38 +08:00
response_data = response . json ( )
if response_data . get ( ' code ' ) == 0 :
model_info = response_data . get ( ' data ' )
modelName = model_info . get ( ' modelName ' )
versionNam = model_info . get ( ' versionName ' )
commercialUse = model_info . get ( ' commercialUse ' )
modelUrl = model_info . get ( ' modelUrl ' )
print ( f " 模型名称: { modelName } " )
print ( f " 版本名称: { versionNam } " )
print ( f " 是否允许商业用途: { commercialUse } " )
print ( f " 模型下载地址: { modelUrl } " )
else :
print ( f " 错误信息: { response_data . get ( ' message ' ) } " )
2025-09-03 07:57:36 +08:00
# POST /api/generate/webui/text2img
"""
https : / / liblibai . feishu . cn / wiki / UAMVw67NcifQHukf8fpccgS5n6d
{
" templateUuid " : " 7d888009f81d4252a7c458c874cd017f " , / / 参数模板ID
" generateParams " : {
/ / 基础参数
" checkPointId " : " 0ea388c7eb854be3ba3c6f65aac6bfd3 " , / / 仅 XL模型支持人像换脸
" prompt " : " Asian portrait,A young woman wearing a green baseball cap, close shot, background is coffee store, masterpiece, best quality, ultra resolution " , / / 选填
" width " : 768 , / / 宽 , 必填
" height " : 1152 , / / 高 , 必填
/ / 以下参数可不传
" sampler " : 20 , / / 默认DPM + + 2 M SDE Karras
" steps " : 35 , / / 默认35步
" cfgScale " : 2.0 ,
" imgCount " : 1 , / / 图片数量 , 默认1张
/ / controlNet , 最多4组
" controlNet " : [
/ / 设置要用的人像人脸
{
" unitOrder " : 1 , / / 第一步 : 先识别要用的人像人脸
" sourceImage " : " https://liblibai-online.liblib.cloud/img/081e9f07d9bd4c2ba090efde163518f9/49943c0b-4d79-4e2f-8c55-bc1e5b8c69d8.png " ,
" width " : 1080 , / / 参考图宽度
" height " : 1432 / / 参考图高度
} ,
/ / 设置面部朝向的人像参考图
{
" unitOrder " : 2 , / / 第二步 : 再识别要参考的人物面部朝向
" sourceImage " : " https://liblibai-online.liblib.cloud/img/081e9f07d9bd4c2ba090efde163518f9/e713676d-baaa-4dac-99b9-d5d814a29f9f.png " , / / 这张图可以与上一张不同 , 可以是任意人像 。 只参考面部朝向 , 不参考人物长相 。
" width " : 1024 , / / 参考图宽度
" height " : 1024 / / 参考图高度
}
]
}
}
"""