全部產品
Search
文件中心

Platform For AI:AI繪畫-SDWebUI部署

更新時間:Feb 28, 2026

Stable Diffusion(SD)是強大的映像產生模型,能夠產生高品質、高解析度的映像,並具有良好的穩定性和可控性。Stable Diffusion WebUI開源專案在模型的基礎上進行封裝,基於Gradio開發了可視化圖形介面,為使用者提供了豐富的生圖工具。EAS提供了情境化部署方式,您只需配置幾個參數,即可一鍵部署基於Stable Diffusion WebUI的服務。

功能與優勢

PAI-EAS 相比自建服務具有以下優勢:

  • 一鍵部署:預配置鏡像,包含所有依賴項。

  • GPU Auto Scaling:根據需求動態調整 GPU 資源。

  • 企業級功能:多使用者隔離、GPU 共用、成本分攤。

  • 整合檔案管理:FileBrowser 擴充便於上傳模型。

選擇適合版本

版本

適用情境

調用方式

計費

標準版

個人測試、原型開發

WebUI、API調用(同步)

根據部署配置進行計費,詳情請參見EAS計費說明

API版

生產環境 API、高並發情境

API調用(同步 & 非同步)

叢集版WebUI

團隊協作、設計團隊

WebUI

Serverless版

說明

僅支援華東2(上海)、華東1(杭州)地區。

彈性負載、成本最佳化

WebUI

服務部署完全免費,只根據使用出圖的時間長度進行計費。

快速入門:使用情境化方式部署AI繪畫

  1. 登入PAI控制台,在頁面上方選擇目標地區,並在右側選擇目標工作空間,然後單擊進入EAS

  2. 模型在线服务(EAS)頁面,單擊部署服务,然後在场景化模型部署地區,單擊AI绘画-SDWebUI部署

  3. 配置以下關鍵參數:

    • 版本选择:選擇標準版。

    • 模型配置:用來存放模型檔案和推理產生的圖片,選擇对象存储(OSS)並選擇Bucket路徑。

    • 实例规格:選擇GPU類型,規格推薦ml.gu7i.c16m60.1-gu30(性價比最高)。

  4. 參數配置完成後,單擊部署。等待 5-10 分鐘,直到服務狀態變為运行中

調用服務

使用WebUI調用

通過WebUI,您可以調用標準版、叢集版WebUI和Serverless版的服務。具體操作步驟如下:

  1. 單擊目標服務名稱進入概览頁面,在右上方單擊Web应用

  2. 進行模型推理驗證。

    在Stable Diffusion WebUI頁面文生圖頁簽中,輸入正向提示詞Prompt,例如cute dog,然後單擊產生,即可完成AI繪圖,效果圖如下:

    image

使用API同步調用

標準版和API版服務部署成功後,您可以參照以下操作步驟發送同步介面請求。

查詢調用資訊

  1. 服務部署成功後,單擊服務名稱,進入概览頁面。

  2. 基本信息地區中,單擊查看调用信息

  3. 调用信息頁面,擷取服務公用調用地址和Token。

調用樣本

圖片儲存至本地

import requests
import base64
from PIL import Image
import io

# 注意 !!!!:請刪除調用地址末尾的 /。
SERVICE_URL = "<調用地址>"
TOKEN = "<Token>"

def generate_image(prompt: str) -> Image.Image:
    """根據文本提示詞產生圖片。"""
    payload = {
        "prompt": prompt,
        "negative_prompt": "blurry, low quality, deformed",
        "steps": 25,
        "width": 512,
        "height": 512,
        "cfg_scale": 7.5,
    }
    
    response = requests.post(
        f"{SERVICE_URL}/sdapi/v1/txt2img",
        json=payload,
        headers={"Authorization": TOKEN}
    )
    response.raise_for_status()
    
    # 解碼第一張圖片
    img_data = response.json()["images"][0]
    return Image.open(io.BytesIO(base64.b64decode(img_data)))

# 產生並儲存
image = generate_image("a serene mountain landscape at sunset")
image.save("output.png")

圖片儲存至OSS

import requests

# 注意 !!!!:請刪除調用地址末尾的 /。
SERVICE_URL = "<調用地址>"
TOKEN = "<Token>"

payload = {
    "prompt": "professional portrait photography",
    "steps": 30,
    "alwayson_scripts": {
        "sd_model_checkpoint": "v1-5-pruned-emaonly.safetensors",
        "save_dir": "/code/stable-diffusion-webui/data/outputs"
    }
}

response = requests.post(
    f"{SERVICE_URL}/sdapi/v1/txt2img",
    json=payload,
    headers={"Authorization": TOKEN}
)

# 擷取儲存的圖片路徑
data = response.json()

# 對應部署EAS服務時,預設掛載OSS檔案夾對應的mount_path。
mount_path = "/code/stable-diffusion-webui/data"

# 對應部署EAS服務時,選擇的OSS地址bucket
oss_url = "oss://examplebucket/data-oss"

for idx, img_path in enumerate(data['parameters']['image_url'].split(',')):
    # 擷取產生的映像在OSS中的實際地址。
    img_oss_path = img_path.replace(mount_path, oss_url)
    print(img_oss_path)

此外,您還可以在請求資料中使用LoRA和Controlnet資料格式,以實現特定的功能。

請求資料中使用LoRA模型配置

發送服務要求時,您可以直接在請求體上加入<lora:yaeMikoRealistic_Genshin:1000>來增加Lora。更多詳細內容,請參見Lora

請求體配置樣本如下:

{
  "prompt":"girls <lora:yaeMikoRealistic_Genshin:1>",
  "steps":20,
  "save_images":true
}

請求資料中使用ControlNet資料格式

API請求資料中使用ControlNet資料格式可以方便地對映像進行一些常見的變換操作,比如使映像保持水平或垂直等。具體配置方法,請參見txt2img使用controlnet的資料格式

使用API非同步呼叫

API版服務部署成功後,您可以向該服務發送非同步介面請求,即用戶端不再同步等待結果,通過訂閱的方式在請求計算完成後等待服務端的結果推送。具體操作步驟如下:

查詢調用資訊

  1. 服務部署成功後,單擊服務名稱,進入概览頁面。

  2. 基本信息地區中,單擊查看调用信息

  3. 调用信息頁面,單擊切換至异步调用頁簽,擷取公網輸入調用地址和Token。

發送請求

用戶端通過非同步介面向服務端發送請求

import requests


SERVICE_URL = "<公網輸入調用地址>"
TOKEN = "<Token>"

response = requests.post(
    f"{SERVICE_URL}/sdapi/v1/txt2img?task_id=job_001",
    json={
        "prompt": "futuristic city skyline",
        "steps": 30,
        "alwayson_scripts": {
            "save_dir": "/code/stable-diffusion-webui/data/outputs"
        }
    },
    headers={"Authorization": TOKEN}
)
print(f"任務已入隊: {response.json()}")
重要
  • 非同步隊列對輸入請求和輸出結果的大小都有限制,通常不建議超過8 KB。因此,在發送請求時,需要滿足以下兩個條件:

    • 如果請求資料中包含圖片,建議使用URL來傳遞圖片資訊。Stable Diffusion WebUI內部會自動下載並解析這些圖片資料。

    • 為了確保返回結果中沒有原始圖片資料,建議您使用save_dir來指定產生圖片的儲存路徑。具體操作,請參見API介面額外支援配置的參數

訂閱結果

用戶端採用訂閱者式,一旦服務端完成相關請求的處理,便會自動推送結果至用戶端,實現高效非同步通訊。

from eas_prediction import QueueClient

# 請必須將調用地址的格式調整為樣本格式:112231234124214.cn-hangzhou.pai-eas.aliyuncs.com
SERVICE_URL = "<調用地址>"
TOKEN = "<Token>"
# 建立服務時配置的服務名稱
SERVICE_NAME = "<服務名稱>"

sink = QueueClient(SERVICE_URL, SERVICE_NAME + '/sink')
sink.set_token(TOKEN)
sink.init()

for result in sink.watch(0, 5, auto_commit=True).run():
    print(f"任務 {result.tags.get('task_id')} 已完成")
    print(f"圖片地址: {result.data}")

EAS基於原生Stable Diffusion WebUI介面支援了一些新特性,您可以在請求資料中添加一些選擇性參數用於實現更加豐富的功能或定製化需求。具體操作,請參見API介面額外支援配置的參數

進階部署選項

自訂部署

支援部署標準版、API版和叢集版WebUI服務。具體操作步驟如下:

  1. 登入PAI控制台,在頁面上方選擇目標地區,並在右側選擇目標工作空間,然後單擊進入EAS

  2. 推理服务頁簽,單擊部署服务,然後在自定义模型部署地區,單擊自定义部署

  3. 自定义部署頁面,配置以下關鍵參數。

    參數

    描述

    环境信息

    部署方式

    • 部署標準版和叢集版WebUI服務時,選擇镜像部署,並選中开启Web应用

    • 部署API版服務時,選擇镜像部署,並選中异步服务

    镜像配置

    官方镜像列表中選擇stable-diffusion-webui,鏡像名稱選擇最高版本,其中:

    • x.x-standard:表示標準版。

    • x.x-api:表示API版。

    • x.x-cluster-webui:表示叢集版WebUI。

    說明
    • 由於版本迭代迅速,部署時鏡像版本選擇最高版本即可。

    • 當需要實現多人同時使用一個Stable Diffusion WebUI出圖時,您可以選擇x.x-cluster-webui版本。

    • 更多關於每個版本的使用情境說明,請參見選擇適合版本

    存储挂载

    用來存放模型檔案和推理產生的圖片。

    重要

    API版和叢集版必須配置儲存掛載。

    支援以下幾種類型:

    • OSS

      • Uri:將OSS路徑配置為已建立的OSS Bucket路徑。

      • 挂载路径:配置為/code/stable-diffusion-webui/data

    • NAS

      • 选择文件系统:選擇已建立的NAS檔案系統。

      • 文件系统挂载点:選擇已建立的掛載點。

      • 文件系统路径:配置為/

      • 挂载路径:配置為/code/stable-diffusion-webui/data

    • PAI模型

      • PAI模型:選擇PAI模型和模型版本。

      • 挂载路径:配置為/code/stable-diffusion-webui/data

    本文以OSS掛載為例來說明。

    运行命令

    完成上述配置後,系統將自動產生相應的運行命令。

    • 進行儲存掛載後,需要在運行命令中增加參數--data-dir,將資料掛載到服務執行個體的指定路徑。要求路徑與掛載路徑一致,如 --data-dir /code/stable-diffusion-webui/data

    • (可選)您也可以在運行命令中增加參數--blade--xformers來開啟推理加速功能,以提升出圖速度。更多參數配置說明,請參見服務啟動時支援配置的參數

    资源信息

    部署资源

    選擇GPU類型,资源规格推薦使用ml.gu7i.c16m60.1-gu30(性價比最高)。

    服务接入

    专有网络(VPC)

    儲存掛載選擇NAS時,系統會自動匹配與NAS所在VPC相連通的專用網路,無需進行額外的修改。

    交换机

    安全组名称

  4. 參數配置完成後,單擊部署

JSON獨立部署

您可以使用JSON獨立部署方式,來部署Stable Diffusion WebUI服務,以下以標準版和API版為例,具體操作步驟如下:

  1. 登入PAI控制台,在頁面上方選擇目標地區,並在右側選擇目標工作空間,然後單擊進入EAS

  2. 模型在线服务(EAS)頁面,單擊部署服务,在自定义模型部署地區,單擊JSON独立部署

  3. JSON独立部署頁面編輯框中,配置以下JSON格式的內容。

    部署標準版服務

    {
        "metadata": {
            "instance": 1,
            "name": "sd_v32",
            "enable_webservice": true
        },
        "containers": [
            {
                "image": "eas-registry-vpc.<region>.cr.aliyuncs.com/pai-eas/stable-diffusion-webui:4.2",
                "script": "./webui.sh --listen --port 8000 --skip-version-check --no-hashing --no-download-sd-model --skip-prepare-environment --api --filebrowser --data-dir=/code/stable-diffusion-webui/data",
                "port": 8000
            }
        ],
        "cloud": {
            "computing": {
                "instance_type": "ml.gu7i.c16m60.1-gu30",
                "instances": null
            },
            "networking": {
                "vpc_id": "vpc-t4nmd6nebhlwwexk2****",
                "vswitch_id": "vsw-t4nfue2s10q2i0ae3****",
                "security_group_id": "sg-t4n85ksesuiq3wez****"
            }
        },
        "storage": [
            {
                "oss": {
                    "path": "oss://examplebucket/data-oss",
                    "readOnly": false
                },
                "properties": {
                    "resource_type": "model"
                },
                "mount_path": "/code/stable-diffusion-webui/data"
            },
            {
                "nfs": {
                    "path": "/",
                    "server": "726434****-aws0.ap-southeast-1.nas.aliyuncs.com"
                },
                "properties": {
                    "resource_type": "model"
                },
                "mount_path": "/code/stable-diffusion-webui/data"
            }
        ]
    } 

    其中關鍵參數說明如下:

    參數

    是否必選

    描述

    metadata.name

    自訂模型服務名稱,同地區唯一。

    containers.image

    其中<region>需要替換為當前地區ID,例如華東2(上海)為cn-shanghai。關於如何查詢地區ID,請參見地區和可用性區域

    storage

    支援以下兩種掛載方式,任意選擇一種即可:

    • OSS:使用OSS上傳和下載資料更方便,能夠為產生後的映像產生公網訪問地址,但切換模型和儲存映像的速度比NAS慢。您需要將storage.oss.path配置為已建立的OSS儲存空間路徑。

    • NAS:使用NAS掛載方式,切換模型和儲存映像的速度更快。您需要將storage.nfs.server配置為已建立的NAS檔案系統。

    本文以掛載OSS為例來說明。

    cloud.networking

    當storage使用NAS掛載時,您需要配置專用網路,包括vpc_id(專用網路ID)、vswitch_id(交換器ID)和security_group_id(安全性群組ID),且配置的專用網路需要與通用型NAS檔案系統保持一致。

    部署API版服務

    {
        "metadata": {
            "name": "sd_async",
            "instance": 1,
            "rpc.worker_threads": 1,
            "type": "Async"
        },
        "cloud": {
            "computing": {
                "instance_type": "ml.gu7i.c16m60.1-gu30",
                "instances": null
            },
            "networking": {
                "vpc_id": "vpc-bp1t2wukzskw9139n****",
                "vswitch_id": "vsw-bp12utkudylvp4c70****",
                "security_group_id": "sg-bp11nqxfd0iq6v5g****"
            }
        },
        "queue": {
            "cpu": 1,
            "max_delivery": 1,
            "memory": 4000,
            "resource": ""
        },
        "storage": [
            {
                "oss": {
                    "path": "oss://examplebucket/aohai-singapore/",
                    "readOnly": false
                },
                "properties": {
                    "resource_type": "model"
                },
                "mount_path": "/code/stable-diffusion-webui/data"
            },
            {
                "nfs": {
                    "path": "/",
                    "server": "0c9624****-fgh60.cn-hangzhou.nas.aliyuncs.com"
                },
                "properties": {
                    "resource_type": "model"
                },
                "mount_path": "/code/stable-diffusion-webui/data"
            }
        ],
        "containers": [
            {
                "image": "eas-registry-vpc.<region>.cr.aliyuncs.com/pai-eas/stable-diffusion-webui:4.2",
                "script": "./webui.sh --listen --port 8000 --skip-version-check --no-hashing --no-download-sd-model --skip-prepare-environment --api-log --time-log --nowebui --data-dir=/code/stable-diffusion-webui/data",
                "port": 8000
            }
        ]
    } 

    相較於標準版服務的配置,以下是API版服務的配置變更,其他參數配置與標準版服務相同。

    參數

    描述

    刪除以下參數:

    metadata.enable_webservice

    刪除該參數,表示不開啟webserver。

    containers.script

    刪除containers.script中配置的--filebrowser,加快服務啟動速度。

    新增以下參數:

    metadata.type

    配置為Async,表示開啟非同步服務。

    metadata.rpc.worker_threads

    配置為1,單個執行個體只允許並發處理一個請求。

    queue.max_delivery

    配置為1,訊息處理錯誤後不允許重試。

    containers.script

    containers.script配置中新增--nowebui(加快啟動速度)和--time-log(記錄介面回應時間)。

    更多參數配置說明,請參見部署標準版服務

  4. 單擊部署

安裝外掛程式實現增強功能

您可以為Stable Diffusion WebUI配置外掛程式,以實現更加多樣化的功能。PAI預置了豐富的外掛程式,例如PAI自主研發的BeautifulPrompt外掛程式,用來實驗Prompt的擴寫和美化。下文將以BeautifulPrompt外掛程式為例,為您介紹外掛程式的安裝和使用方法。

安裝外掛程式

您可以在WebUI頁面的擴充頁簽中,查看並安裝外掛程式。具體操作步驟如下:

  1. 單擊目標服務名稱進入概览頁面,在右上方單擊Web应用

  2. 在WebUI頁面中的擴充頁簽下,檢查是否已選中BeautifulPrompt。如果未選中,您需要選中該外掛程式,並單擊應用更改並重載前端,來重新載入BeautifulPrompt外掛程式。image

    在安裝外掛程式時,WebUI頁面將會自動重啟,待重新載入完成後即可進行推理驗證。

使用外掛程式進行推理驗證

  1. 切換到BeautifulPrompt頁簽,在文字框中輸入一個比較簡單的Prompt,然後單擊產生,即可產生更詳細的Prompt。image

    PAI提供了多個Prompt產生模型,每個模型產生的Prompt略有不同。其中:

    • pai-bloom-1b1-text2prompt-sd-v2:擅長產生複雜情境下的Prompt。

    • pai-bloom-1b1-text2prompt-sd:產生描述單個物體的Prompt。

    您可以根據情境需要選擇合適的模型來產生Prompt。image

  2. 選擇需要使用的Prompt,單擊Prompt右側的to txt2img

    頁面自動跳轉至文生圖頁簽,並自動填滿了提示詞(Prompt)地區。image

  3. 單擊產生,即可在WebUI頁面右側產生圖片。image

    與不使用BeautifulPrompt外掛程式相比,使用BeautifulPrompt外掛程式可以提升產生映像的美觀度,並且協助您補充更多細節。其他情境使用BeautifulPrompt外掛程式前後效果對比如下:

    輸入Prompt

    不使用BeautifulPrompt的效果

    使用BeautifulPrompt的效果

    a cat

    image.png

    image.png

    a giant tiger

    image.png

    image.png

常見問題

Q:如何掛載自己的模型及輸出目錄等內容

服務部署成功後,系統會自動在已掛載的OSS或NAS儲存空間中建立以下目錄結構:image

其中:

  • models:該目錄用來存放模型檔案。

  • 發起推理請求後,系統將按照API代碼中預設的配置,自動將結果檔案輸出至該目錄中。

您可以將從開源社區下載的模型或自己訓練得到的LoRA或Stable Diffusion等模型存放於上述指定目錄中,以便載入使用新的模型。具體操作步驟如下:

  1. 請將模型檔案上傳至掛載儲存的models目錄下的相應子目錄中,具體操作,請參見步驟二:上傳檔案

  2. 模型在线服务(EAS)頁面,單擊目標服務操作列下的image>重启服务,服務重啟成功後,即可生效。

  3. 在Stable Diffusion WebUI頁面切換模型,進行模型推理驗證。

    image

Q:下載的外掛程式、上傳的檔案等,在配置不變的情況下,會儲存在執行個體中嗎?

不掛載儲存的情況下,檔案的生命週期和服務一致。服務停止、重啟、刪除,所有檔案都會被刪除。故建議通過掛載外部儲存(如OSS、NAS)的方式來儲存這些檔案。

Q:服務長時間卡住怎麼辦?

  • 您可以先嘗試重新開啟Stable Diffusion WebUI介面或重啟EAS服務來解決:

    • 單擊目標服務進入概览頁面,右上方單擊Web应用,重新開啟Stable Diffusion WebUI。

    • 單擊目標服務操作列下的image>重启服务,重啟EAS服務。

  • 如果重啟後長時間無法解決,則大機率是因為服務需要從外網下載模型或外掛程式等內容導致。EAS預設不開公網,鏡像可以離線啟動,掛載模型也無需網路。但部分外掛程式的使用,需要依賴從互連網下載相關內容。此時推薦您根據日誌,找到模型或外掛程式的下載路徑,手動下載模型並上傳到OSS進行掛載,詳情請參見Q:如何掛載自己的模型及輸出目錄等內容。如果仍需要串連互連網,請參見EAS訪問公網或內網資源進行公網串連配置。

Q:如何將WebUI頁面的預設語言切換為英文?

  1. 在Stable Diffusion WebUI頁面單擊设置

  2. 在左側導覽列單擊使用者介面,在右側頁面本地化地區,選擇

  3. 在Stable Diffusion WebUI頁面上方,單擊儲存設定,儲存成功後單擊重載前端

    重新重新整理WebUI頁面,即可切換為英文。

Q:如何管理自己的檔案系統?

在部署標準版、叢集版WebUI服務時,系統已預設在運行命令中增加了--filebrowser參數,您可以直接通過WebUI介面管理您的檔案系統。具體操作步驟如下:

  1. 單擊目標服務名稱進入概览頁面,在右上方單擊Web应用

  2. 在Stable Diffusion WebUI頁面,單擊FileBrowser頁簽。您可以直接查看檔案系統,或進行上傳、下載操作。

    image

Q:報錯:No such file or directory: 'data-oss/data-********.png'

  1. 檢查部署版本。如果是API版(鏡像為x.x-api)或者叢集版WebUI(鏡像為x.x-cluster-webui),必須進行模型配置。

  2. 檢查掛載路徑。請檢查運行命令中是否有--data-dir參數,並且需要保證其路徑與OSS的掛載路徑一致。

    image

Q:無法訪問WebUI頁面

請檢查服務部署版本,API版不支援使用WebUI。如使用自訂部署,x.x-api的鏡像是API版。

附錄

服務啟動時支援配置的參數

  • 公用參數

    公用參數

    功能說明

    使用建議

    --blade

    啟用PAI-blade加速,提升出圖速度。

    建議開啟。

    --filebrowser

    支援您自主上傳、下載模型或圖片的外掛程式。

    預設啟用。

    --data-dir /code/stable-diffusion-webui/data-oss

    持久化儲存掛載使用的路徑。

    掛載持久化儲存時使用,預設起始路徑為/code/stable-diffusion-webui/,也可以使用相對路徑。

    --api

    WebUI的API調用模式。

    預設啟用。

    --enable-nsfw-censor

    預設關閉。如果您有安全合規需求,則可以選擇開啟鑒黃過濾功能。

    根據業務需要進行調整。

    --always-hide-tabs

    指定部分Tab頁處於隱藏狀態。

    根據業務需要進行調整。

    --min-ram-reserved 40 --sd-dynamic-cache

    緩衝Stable Diffusion大模型到記憶體中。

    無。

  • 叢集版參數

    說明

    ckpt的大模型和ControlNet的大模型會自動載入公用目錄下的檔案和您自訂的檔案。

    叢集版參數

    功能說明

    使用建議

    --lora-dir

    指定公用LoRA模型目錄,例如:--lora-dir /code/stable-diffusion-webui/data-oss/models/Lora

    預設不配置,使用者的所有LoRA目錄將被隔離,並且只載入使用者檔案夾中的LoRA模型。當指定特定目錄後,所有的使用者將同時載入該公用目錄中的LoRA模型和使用者檔案夾中的LoRA模型。

    --vae-dir

    指定公用VAE模型目錄,例如:--vae-dir /code/stable-diffusion-webui/data-oss/models/VAE

    預設不配置,使用者的所有VAE目錄將被隔離,並且只載入使用者檔案夾中的VAE模型。當指定特定目錄後,所有的使用者只載入該公用目錄下的VAE模型。

    --gfpgan-dir

    指定公用GFPGAN模型目錄,例如:--gfpgan-dir /code/stable-diffusion-webui/data-oss/models/GFPGAN

    預設不配置,使用者的所有GFPGAN目錄將被隔離,並且只載入使用者檔案夾中的GFPGAN模型。當指定特定目錄後,所有的使用者只載入該公用目錄下的GFPGAN模型。

    --embeddings-dir

    指定公用embeddings模型目錄,例如:--embeddings-dir /code/stable-diffusion-webui/data-oss/embeddings

    預設不配置,使用者的所有embeddings目錄將被隔離,並且只載入使用者檔案夾中的embeddings模型。當指定特定目錄後,所有的使用者只載入該公用目錄下的embeddings模型。

    --hypernetwork-dir

    指定公用hypernetwork模型目錄,例如:--hypernetwork-dir /code/stable-diffusion-webui/data-oss/models/hypernetworks

    預設不配置,使用者的所有hypernetwork目錄將被隔離,並且只載入使用者檔案夾中的hypernetwork模型。當指定特定目錄後,所有的使用者只載入該公用目錄下的hypernetwork模型。

    --root-extensions

    外掛程式目錄使用共用目錄。使用該參數後,所有使用者看到的外掛程式完全相同。

    需要集中安裝外掛程式或集中管理外掛程式時使用該參數。

API介面額外支援配置的參數

EAS基於原生Stable Diffusion WebUI介面支援了一些新特性,在API介面中除了必填參數以外,還可以添加一些選擇性參數用於實現更加豐富的功能或定製化需求:

  • 可以指定Stable Diffusion模型、VAE模型以及儲存目錄。

  • 支援通過URL輸入參數,並返回相應的狀態代碼。

  • 產生的圖片和ControlNet所對應的圖片可以通過URL進行訪問。

具體使用樣本如下:

txt2img請求和返回樣本

請求資料格式樣本如下:

{
      "alwayson_scripts": {
          "sd_model_checkpoint": "deliberate_v2.safetensors",  
          "save_dir": "/code/stable-diffusion-webui/data-oss/outputs",
          "sd_vae": "Automatic"
      },
      "steps": 20,
      "prompt": "girls",          
      "batch_size": 1,                                            
      "n_iter": 2,                                                 
      "width": 576, 
      "height": 576,
      "negative_prompt": "ugly, out of frame"
  }

其中關鍵參數說明如下:

  • sd_model_checkpoint:指定Stable Diffusion模型參數,並且可以自動切換到大模型。

  • sd_vae:指定VAE模型。

  • save_dir:指定產生圖片的儲存路徑。

發送同步介面請求樣本如下:

# 調用同步介面驗證模型效果。

curl --location --request POST '<service_url>/sdapi/v1/txt2img' \
--header 'Authorization: <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
      "alwayson_scripts": {
          "sd_model_checkpoint": "deliberate_v2.safetensors",
          "save_dir": "/code/stable-diffusion-webui/data-oss/outputs",
          "sd_vae": "Automatic"
      },
      "prompt": "girls",          
      "batch_size": 1,                                            
      "n_iter": 2,                                                 
      "width": 576, 
      "height": 576,
      "negative_prompt": "ugly, out of frame"
  }'

返回資料格式樣本如下:

{
  "images": [],
  "parameters": {
    "id_task": "14837",
    "status": 0,
    "image_url": "/code/stable-diffusion-webui/data-oss/outputs/txt2img-grids/2023-07-24/grid-29a67c1c-099a-4d00-8ff3-1ebe6e64931a.png,/code/stable-diffusion-webui/data-oss/outputs/txt2img-images/2023-07-24/74626268-6c81-45ff-90b7-faba579dc309-1146644551.png,/code/stable-diffusion-webui/data-oss/outputs/txt2img-images/2023-07-24/6a233060-e197-4169-86ab-1c18adf04e3f-1146644552.png",
    "seed": "1146644551,1146644552",
    "error_msg": "",
    "total_time": 32.22393465042114
  },
  "info": ""
}

發送非同步介面請求樣本如下:

# 將資料直接送入非同步隊列。
curl --location --request POST '<service_url>/sdapi/v1/txt2img' \
--header 'Authorization: <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "alwayson_scripts": {
        "sd_model_checkpoint": "deliberate_v2.safetensors",
        "id_task": "14837",
        "uid": "123",
        "save_dir": "tmp/outputs"
    },
    "prompt": "girls",
    "batch_size": 1,
    "n_iter": 2,
    "width": 576,
    "height": 576,
    "negative_prompt": "ugly, out of frame"
}'

img2img請求資料格式樣本

請求資料格式樣本如下:

{
    "alwayson_scripts": {
        "image_link":"https://eas-cache-cn-hangzhou.oss-cn-hangzhou-internal.aliyuncs.com/stable-diffusion-cache/tests/boy.png",
        "sd_model_checkpoint": "deliberate_v2.safetensors",
        "sd_vae": "Automatic",
        "save_dir": "/code/stable-diffusion-webui/data-oss/outputs"
    },
    "prompt": "girl",
    "batch_size": 1,                                            
    "n_iter": 2,                                                 
    "width": 576, 
    "height": 576,
    "negative_prompt": "ugly, out of frame",
    "steps": 20, # Sampling steps
    "seed": 111,   
    "subseed": 111, # Variation seed
    "subseed_strength": 0, # Variation strength
    "seed_resize_from_h": 0, # Resize seed from height
    "seed_resize_from_w": 0, # Resize seed from width
    "seed_enable_extras": false, # Extra
    "sampler_name": "DDIM", # Sampling method
    "cfg_scale": 7.5, # CFG Scale
    "restore_faces": true, # Restore faces
    "tiling": false, # Tiling
    "init_images": [], # image base64 str, default None
    "mask_blur": 4, # Mask blur
    "resize_mode": 1, # 0 just resize, 1 crop and resize, 2 resize and fill, 3 just resize
    "denoising_strength": 0.75, # Denoising strength
    "inpainting_mask_invert": 0, #int, index of ['Inpaint masked', 'Inpaint not masked'], Mask mode
    "inpainting_fill": 0, #index of ['fill', 'original', 'latent noise', 'latent nothing'], Masked content
    "inpaint_full_res": 0, # index of ["Whole picture", "Only masked"], Inpaint area
    "inpaint_full_res_padding": 32, #minimum=0, maximum=256, step=4, value=32, Only masked padding, pixels
    #"image_cfg_scale": 1, # resized by scale
    #"script_name": "Outpainting mk2", # 使用的script名字,不使用的話不要加這個欄位
    #"script_args": ["Outpainting", 128, 8, ["left", "right", "up", "down"], 1, 0.05]  # 對應script指令碼的參數,此處依次對應: 固定欄位, pixels, mask_blur, direction, noise_q, color_variation
}

返回資料格式樣本如下:

{
    "images":[],
    "parameters":{
        "id_task":"14837",
        "status":0,
        "image_url":"/data/api_test/img2img-grids/2023-06-05/grid-0000.png,/data/api_test/img2img-images/2023-06-05/00000-1003.png,/data/api_test/img2img-images/2023-06-05/00001-1004.png",
        "seed":"1003,1004",
        "error_msg":""
    },
    "info":""
}

txt2img使用controlnet的資料格式

請求資料格式如下:

{
    "alwayson_scripts": {
        "sd_model_checkpoint": "deliberate_v2.safetensors", #模型名稱,需要帶著 
        "save_dir": "/code/stable-diffusion-webui/data-oss/outputs",
        "controlnet":{
            "args":[
                {
                    "image_link": "https://pai-aigc-dataset.oss-cn-hangzhou.aliyuncs.com/pixabay_images/00008b87bf3ff6742b8cf81c358b9dbc.jpg",
                    "enabled": true, 
                    "module": "canny", 
                    "model": "control_v11p_sd15_canny", 
                    "weight": 1, 
                    "resize_mode": "Crop and Resize", 
                    "low_vram": false, 
                    "processor_res": 512, 
                    "threshold_a": 100, 
                    "threshold_b": 200, 
                    "guidance_start": 0, 
                    "guidance_end": 1, 
                    "pixel_perfect": true, 
                    "control_mode": "Balanced", 
                    "input_mode": "simple", 
                    "batch_images": "", 
                    "output_dir": "", 
                    "loopback": false
                }
            ]
        }
    },
    # 主要參數
    "prompt": "girls",          
    "batch_size": 1,                                            
    "n_iter": 2,                                                 
    "width": 576, 
    "height": 576,
    "negative_prompt": "ugly, out of frame"
}

返回資料格式樣本如下:

{
    "images":[],
    "parameters":{
        "id_task":"14837",
        "status":0,
        "image_url":"/data/api_test/txt2img-grids/2023-06-05/grid-0007.png,/data/api_test/txt2img-images/2023-06-05/00014-1003.png,/data/api_test/txt2img-images/2023-06-05/00015-1004.png",
        "seed":"1003,1004",
        "error_msg":"",
        "image_mask_url":"/data/api_test/controlnet_mask/2023-06-05/00000.png,/data/api_test/controlnet_mask/2023-06-05/00001.png"
    },
    "info":""
}

相關文檔