日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

事件訂閱接入指南

更新時間:

事件訂閱用于自有系統接入,實現自定義的生圖生命周期的管控增強和相關拓展功能

生圖流程

生圖主要包括三個階段:

  1. 頁面渲染

  2. 任務提交

  3. 任務執行 & 結果展示

事件及回調流程

截屏2024-07-12 11

  • sdImgGenControlConfig: 可用于展示自定義文案, 根據回調請求的token獲取自有系統用戶信息, 展示自由系統信息,比如用戶額度。

  • apiAccessPreInvoke:可用于自有系統的用戶額度的實時扣減。

  • apiAccessCommit:可用于自有系統的用戶額度扣減狀態維護。

  • apiAccessRollback:可用于自由系統的用戶額度扣減的回滾。

  • sdTaskFinished:可用于自由系統的用戶生圖結果存儲。

回調協議

回調請求通過HTTP協議發起,使用POST請求, 默認超時時間為5s, 請保證5s內響應

回調類型

  • 同步回調: 會阻塞平臺下一步流程, 不會進行重試

  • 異步回調: 不會阻塞平臺下一步流程, 如響應狀態碼為4xx或者5xx系列, 會觸發重試

接收回調

回調請求包括兩部分

  • 請求上下文:請求發起人、請求目標接口、事件類型等,在url參數中。

  • 請求詳情:用戶發送到平臺的業務參數內容,在請求體中,請求體可能為空

請求上下文參數

名稱

類型

描述

apiId

string

用戶請求目標api

bizType

string

回調事件類型

invokeId

string

請求id,可用于自有系統前后請求串聯

apiToken

string

請求使用的Token(加密后)

sign

string

簽名, 用于接收方驗證http請求的合法性

nonce

string

隨機值,用于接收方驗證http請求的合法性

timestamp

string

時間戳,用于接收方驗證http請求的合法性

響應回調

狀態碼

  • 2xx:表示請求已成功接收處理, 回調完成。

  • 4xx/5xx: 表示請求未成功接收處理,回調失敗,平臺會發起重試。重試間隔為10s/30s/1分鐘/2分鐘/3分鐘/4分鐘/5分鐘/6分鐘/7分鐘/8分鐘/9分鐘/10分鐘/20分鐘/30分鐘/1小時/2小時。

事件請求參數、響應格式

apiAccessPreInvoke

用戶發起請求后, 發起預校驗, 判斷當前用戶是否有足夠的權益

  • 請求時機: 用戶請求實際執行前

  • 數據內容: 用戶提交的請求

  • 請求類型: 同步

  • 請求格式: 用戶實際請求內容, 無統一格式

響應體格式

名稱

類型

描述

success

bool

是否具有權限,有權限:true

errMessage

string

錯誤詳情,預校驗失敗時給客戶彈窗展示內容

sdPreInvoke

SD生圖請求預校驗, 判斷當前用戶是否具有足夠的權益

  • 請求時機: 用戶發起生圖請求前

  • 請求內容: 用戶生圖原始請求

  • 請求類型: 同步

請求詳情

名稱

類型

描述

checkpoint

object

底模

modelId

string

模型id

modelVersionId

string

模型版本id

aliasName

string

別名

modelFileId

string

模型文件id

modelFileName

string

模型文件名

vae

object

vae

modelId

string

模型id

modelVersionId

string

模型版本id

aliasName

string

別名

modelFileId

string

模型文件id

modelFileName

string

模型文件名

loras

object

lora

modelId

string

模型id

modelVersionId

string

模型版本id

aliasName

string

別名

modelFileId

string

模型文件id

modelFileName

string

模型文件名

param

object

用戶實際生圖請求

  • SD WebUI中,用戶生成一張圖,內部可能對應多次文生圖/圖生圖請求。sdPreInvokeapiAccessPreInvoke都是在請求前發起。apiAccessPreInvoke對應了每次后端接收到的子請求,入參為接口實際請求;sdPreInvoke對應SD WebUI用戶發起的原始請求。

響應體

名稱

類型

描述

success

bool

請求是否成功,成功:true

errMessage

string

錯誤信息

data

object

info

message

string

錯誤信息

disabled

bool

權益校驗是否通過, 通過:false

sdTaskFinished

生圖子任務執行完成后, 通知生圖結果

  • 請求時機: 生圖子任務完成后

  • 請求內容: 用戶生圖結果

  • 請求類型: 異步

請求詳情

名稱

類型

描述

success

bool

生圖是否成功,生圖成功:true

data

object

生圖內容

generatedImageId

string

圖片id

url

string

圖片地址,有效期只有5h, 請注意轉存

type

string

圖片格式,如png

modelId

string

主模型id

sdCheckpointVersionId

object

主模型版本id

sdCheckpointName

string

主模型名稱

sdVae

string

生圖vae

sdLoras

string

使用lora

infotexts

string

生圖參數

width

string

圖片寬度

height

object

圖片高度

響應體

無,成功返回HTTP狀態碼200。如果返回500,系統會進行重試調用

sdJobFinished

生圖任務執行完成后, 通知生圖結果

  • 請求時機: 生圖任務完成后

  • 請求內容: 用戶生圖結果

  • 請求類型: 異步

請求詳情

名稱

類型

描述

success

bool

生圖是否成功,生圖成功:true

data

object

生圖內容

generatedImageId

string

圖片id

url

string

圖片地址,有效期只有5h,請注意轉存

type

string

圖片格式,如png

modelId

string

主模型id

sdCheckpointVersionId

object

主模型版本id

sdCheckpointName

string

主模型名稱

sdVae

string

生圖vae

sdLoras

string

使用lora

infotexts

string

生圖參數

width

string

圖片寬度

height

object

圖片高度

  • SD WebUI中,用戶生成一張圖,內部可能對應多次文生圖/圖生圖請求。sdTaskFinishedsdJobFinished都是在請求完成后發起。sdTaskFinished表示單個子任務的結束;sdJobFinished表示用戶視角的任務結束,結果可以是由插件對多個生圖結果進行后置處理后產生的,是用戶實際看到的圖片。

響應體

無,成功返回HTTP狀態碼200。如果返回500,系統會進行重試調用

sdImgGenControlConfig

生圖提交區塊控制

  • 請求時機: 用戶打開生圖頁時

  • 請求內容: 當前請求上下文

  • 請求類型: 同步

請求詳情

名稱

類型

描述

checkpoint

object

底模

modelId

string

模型id

modelVersionId

string

模型版本id

aliasName

string

別名

modelFileId

string

模型文件id

modelFileName

string

模型文件名

vae

object

vae

modelId

string

模型id

modelVersionId

string

模型版本id

aliasName

string

別名

modelFileId

string

模型文件id

modelFileName

string

模型文件名

loras

object

lora

modelId

string

模型id

modelVersionId

string

模型版本id

aliasName

string

別名

modelFileId

string

模型文件id

modelFileName

string

模型文件名

param

object

用戶實際生圖請求

響應體

名稱

類型

描述

success

bool

請求是否成功,成功:true

errMessage

string

錯誤信息

data

object

info

message

string

按鈕下方展示的內容

buttonText

string

按鈕展示的內容

disabled

bool

生圖按鈕是否禁用,禁用:true

apiAccessRollback

生圖提交失敗回調

  • 請求時機: 用于生圖請求提交失敗時

  • 數據內容: 當前請求上下文

  • 請求類型: 同步

響應體格式

名稱

類型

描述

success

bool

請求是否成功,成功:true

errMessage

string

失敗原因

解密 Token、驗證簽名(以Python接入為例)

安裝依賴

pip install pycryptodome

樣例

import hmac
import hashlib
import base64
from Crypto.Hash import SHA256
from Crypto.Cipher import AES


def decrypt_api_token(
        encrypted_api_token: str,
        sk: str
):
    """
    解密 api token,返回解密結果
    :param encrypted_api_token:
    :param sk:
    :return:
    """

    sha256 = SHA256.new()
    sha256.update(sk.encode('utf-8'))
    key = sha256.digest()[:16]

    encrypted = base64.b64decode(encrypted_api_token)
    iv = encrypted[:16]

    cipher = AES.new(key, AES.MODE_CBC, iv)
    decrypted = cipher.decrypt(encrypted[16:])
    pad_size = decrypted[-1]
    decrypted = decrypted[:-pad_size]
    return decrypted.decode('utf-8')


def check_sign_equal(
        sign: str,
        ak: str,
        sk: str,
        nonce: str,
        timestamp: str,
        body: str = None,
        biz_type: str = None,
        api_token: str = None,
        api_id: str = None,
        invoke_id: str = None,
):
    """
    檢查 signature 是否一致
    :param sign:
    :param ak:
    :param sk:
    :param nonce:
    :param timestamp:
    :param body:
    :param biz_type:
    :param api_token: 解密之后
    :param api_id:
    :param invoke_id:
    :return
    """

    params = [ak, nonce, body, timestamp]
    if biz_type and len(biz_type.strip()) > 0:
        params.append(api_token)
        params.append(biz_type)
        params.append(api_id)
        params.append(invoke_id)
    sign_str = "".join(param for param in params if params is not None)

    h = hmac.new(bytes(sk, 'utf-8'), bytes(sign_str, 'utf-8'), hashlib.sha256)
    expect_sign = base64.b64encode(h.digest()).decode('utf-8')
    return sign == expect_sign