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

通過Stable Diffusion擴展插件實現文字光影圖

本文以部署Stable Diffusion和ControlNet擴展插件實現文字光影效果圖為例,演示如何使用數據緩存。通過數據緩存提前拉取Stable Diffusion和ControlNet模型數據,然后在創建Stable Diffusion應用實例時直接掛載模型數據,可以免去在實例中拉取模型數據的等待時間,加速應用部署。

背景信息

Stable Diffusion是一個可以根據文字描述生成和修改圖像的模型,支持擴展插件來豐富繪圖效果。ControlNet是一個用于控制AI圖像生成的插件。在Stable Diffusion上安裝ControlNet擴展插件后,可以使用ControlNet來控制生成的圖像效果,使得AI生成更貼近需求的圖像。

重要
  • 阿里云不對第三方模型的合法性、安全性、準確性進行任何保證,阿里云不對由此引發的任何損害承擔責任。

  • 您應自覺遵守第三方模型的用戶協議、使用規范和相關法律法規,并就使用第三方模型的合法性、合規性自行承擔相關責任。

操作步驟

創建數據緩存

控制臺

  1. 訪問HuggingFace,獲取模型ID。

    本文使用以下模型作為示例,在HuggingFace找到目標模型后,在模型詳情頁面頂部可以復制模型ID。

    • Stable Diffusion模型:hanafuusen2001/BeautyProMix

    • ControlNet模型:ioclab/ioc-controlnet

  2. 登錄彈性容器實例控制臺

  3. 在頂部菜單欄左上角處選擇地域。

    重要

    如果您的業務部署在中國內地地域,可能會因為網絡原因導致無法緩存HuggingFace的模型數據,建議您在中國香港地域創建數據緩存,然后拷貝數據緩存到您需要的地域。

  4. 在左側導航欄,單擊數據緩存

  5. 創建數據緩存。

    單擊創建數據緩存,分別創建hanafuusen2001/BeautyProMix和ioclab/ioc-controlnet的數據緩存。本文使用的參數示例如下,其中緩存數據源為拉取兩個模型數據的固定配置,其他參數可自定義配置,更多信息,請參見創建數據緩存

    配置項

    hanafuusen2001/BeautyProMix

    ioclab/ioc-controlnet

    緩存所屬Bucket

    test

    test

    緩存所屬目錄

    /model/beautypromix/

    /model/ioc/

    緩存名

    beautypromix

    ioc

    緩存大小

    20 GiB

    20 GiB

    緩存數據源

    • 類型:URL

    • 參數

      • repoSource:HuggingFace/Model

      • repoId:hanafuusen2001/BeautyProMix

    • 類型:URL

    • 參數

      • repoSource:HuggingFace/Model

      • repoId:ioclab/ioc-controlnet

    彈性公網IP

    • 自動創建

    • 帶寬峰值:5 Mbps

    • 自動創建

    • 帶寬峰值:5 Mbps

  6. 查看數據緩存狀態。

    數據緩存頁面刷新查看數據緩存狀態,當狀態為Available時,表示可以使用該數據緩存。

  7. 拷貝數據緩存。

    如果當前數據緩存所在地域和您要部署應用的地域不一致,您可以在數據緩存頁面單擊目標數據緩存的復制,將數據緩存拷貝到需要的地域。

OpenAPI

  1. 訪問HuggingFace,獲取模型ID。

    本文使用以下模型作為示例,在HuggingFace找到目標模型后,在模型詳情頁面頂部可以復制模型ID。

    • Stable Diffusion模型:hanafuusen2001/BeautyProMix

    • ControlNet模型:ioclab/ioc-controlnet

  2. 調用CreateDataCache接口創建數據緩存。

    重要
    • 如果您的業務部署在中國內地地域,可能會因為網絡原因導致無法緩存HuggingFace的模型數據,建議您在中國香港地域創建數據緩存,然后拷貝數據緩存到您需要的地域。

    • 如果您通過SDK創建數據緩存,DataSource.Options中的各個參數前無需添加參數名的長度,例如#10#repoSource直接寫成repoSource#6#repoId直接寫成repoId即可。

    1. 創建hanafuusen2001/BeautyProMix的數據緩存。

      參數示例如下,表示從HuggingFace拉取指定模型數據,保存到名為test的Bucket的/model/beautypromix/目錄。數據緩存名為beautypromix,保留時長為1天。拉取模型數據的過程中,會自動創建并綁定EIP。數據緩存創建完成后,EIP會被自動釋放。

      {
        "RegionId": "cn-hongkong",
        "Path": "/model/beautypromix/",
        "Name": "beautypromix",
        "DataSource": {
          "Type": "URL",
          "Options": {
            "#10#repoSource": "HuggingFace/Model",
            "#6#repoId": "hanafuusen2001/BeautyProMix"
          }
        },
        "RetentionDays": 1,
        "EipCreateParam": {
          "Bandwidth": 5
        },
        "Bucket": "test"
      }
    2. 創建ioclab/ioc-controlnet的數據緩存。

      參數示例如下,表示從HuggingFace拉取指定模型數據,保存到名為test的Bucket的/model/ioc/目錄。數據緩存名為ioc,保留時長為1天。拉取模型數據的過程中,會自動創建并綁定EIP。數據緩存創建完成后,EIP會被自動釋放。

      {
        "RegionId": "cn-hongkong",
        "Path": "/model/ioc/",
        "Name": "ioc",
        "DataSource": {
          "Type": "URL",
          "Options": {
            "#10#repoSource": "HuggingFace/Model",
            "#6#repoId": "ioclab/ioc-controlnet"
          }
        },
        "RetentionDays": 1,
        "EipCreateParam": {
          "Bandwidth": 5
        },
        "Bucket": "test"
      }
  3. 查詢數據緩存狀態。

    根據返回的數據緩存ID調用DescribeDataCaches接口查詢數據緩存信息,當數據緩存的狀態(DataCaches.Status)為Available時,表示可以使用該數據緩存。

  4. 拷貝數據緩存。

    如果當前數據緩存所在地域和您要部署應用的地域不一致,您可以調用CopyDataCache接口將數據緩存拷貝到需要的地域。

部署Stable Diffusion應用和插件

控制臺

  1. 彈性容器實例控制臺容器組頁面,單擊創建彈性容器組

  2. 填寫實例相關配置信息,然后單擊配置確認

    本文使用的參數示例如下,實例使用GPU規格,并掛載了hanafuusen2001/BeautyProMix和ioclab/ioc-controlnet的數據緩存。實例內容器使用ECI提供的包含Stable Diffusion應用的鏡像,容器啟動后會運行python3 launch.py --listen --skip-torch-cuda-test --port 8888 --no-half啟動WebUI。

    重要

    當VPC已綁定公網NAT網關時,創建ECI實例時可以不綁定EIP。在實例創建完成后,您可以配置DNAT條目實現外部訪問ECI實例。

    配置區域

    配置項

    示例值

    容器組配置

    指定規格

    ecs.gn6i-c16g1.4xlarge

    名稱

    sd-webui

    容器配置

    容器名稱

    sd

    鏡像

    • 鏡像:registry.cn-hangzhou.aliyuncs.com/eci_open/stable-diffusion

    • 版本:1.0.1

    可執行命令

    /bin/sh

    參數

    • -c

    • python3 launch.py --listen --skip-torch-cuda-test --port 8888 --no-half

    數據緩存

    緩存Bucket

    test

    單擊添加,掛載hanafuusen2001/BeautyProMix的數據緩存

    • 緩存目錄:/model/beautypromix/

    • 目標容器:sd

    • 容器掛載目錄:/stable-diffusion-webui/models/Stable-diffusion/

    單擊添加,掛載ioclab/ioc-controlnet的數據緩存

    • 緩存目錄:/model/ioc/

    • 目標容器:sd

    • 容器掛載目錄:/stable-diffusion-webui/extensions/sd-webui-controlnet/models/

    開啟Burst

    開啟

    彈性公網IP

    彈性公網IP

    • 自動創建

    • 帶寬峰值:5 Mbps

  3. 確認實例配置信息,閱讀并選中服務協議,單擊確認訂單

  4. 返回容器組頁面,確認應用部署狀態并查看實例的EIP地址。

    容器組頁面可以查看實例狀態,單擊實例ID進入實例詳情頁可以查看容器狀態。當實例狀態和容器狀態均為運行中時,表示應用部署成功。您可以在IP地址列獲取實例的EIP地址。

    sd-1.png

OpenAPI

  1. 使用數據緩存創建ECI實例,部署Stable Diffusion應用和插件。

    調用CreateContainerGroup接口創建ECI實例所采用的參數示例如下,實例使用GPU規格,并掛載了hanafuusen2001/BeautyProMix和ioclab/ioc-controlnet的數據緩存。實例內容器使用ECI提供的包含Stable Diffusion應用的鏡像,容器啟動后會運行python3 launch.py --listen --skip-torch-cuda-test --port 8888 --no-half啟動WebUI。

    說明

    以下示例中,系統會自動創建并為ECI實例綁定一個EIP。當VPC已綁定公網NAT網關時,創建ECI實例時可以不綁定EIP。在實例創建完成后,您可以配置DNAT條目實現外部訪問ECI實例。

    {
      "RegionId": "cn-beijing",
      "SecurityGroupId": "sg-2ze7l1o0ql1cbk******",
      "VSwitchId": "vsw-2ze23nqzig8inpr******",
      "ContainerGroupName": "sd-web",
      "InstanceType": "ecs.gn6i-c16g1.4xlarge",
      "DataCacheBucket": "test",
      "Container": [
        {
          "Arg": [
            "-c",
            "python3 launch.py --listen --skip-torch-cuda-test --port 8888 --no-half"
          ],
          "Command": [
            "/bin/sh"
          ],
          "Gpu": 1,
          "Name": "sd",
          "Image": "registry.cn-hangzhou.aliyuncs.com/eci_open/stable-diffusion:1.0.1",
          "VolumeMount": [
            {
              "Name": "model1",
              "MountPath": "/stable-diffusion-webui/models/Stable-diffusion/"
            },
            {
              "MountPath": "/stable-diffusion-webui/extensions/sd-webui-controlnet/models/",
              "Name": "model2"
            }
          ]
        }
      ],
      "Volume": [
        {
          "Type": "HostPathVolume",
          "HostPathVolume.Path": "/model/beautypromix/",
          "Name": "model1"
        },
        {
          "Type": "HostPathVolume",
          "HostPathVolume.Path": "/model/ioc/",
          "Name": "model2"
        }
      ],
      "DataCacheProvisionedIops": 35000,
      "DataCacheBurstingEnabled": true,
      "AutoCreateEip": true
    }
  2. 確認應用部署狀態。

    根據返回的實例ID調用DescribeContainerGroupStatus查詢實例和容器狀態。當實例狀態(Status)和容器狀態(ContainerStatuses.State)為Running,表示實例已經創建成功,容器正在運行。

  3. 查詢實例的EIP地址。

    根據返回的實例ID調用DescribeContainerGroups查詢實例詳情,在InternetIp中可以獲取實例的EIP地址。

測試模型和插件效果

  1. 在ECI實例所屬安全組中添加入方向規則,開放8888端口。

  2. 打開瀏覽器,訪問Stable Diffusion應用的Web頁面。

    本文示例的Stable Diffusion應用已單獨綁定了EIP,可以直接輸入實例的EIP地址和容器開放的端口進行訪問,例如182.92.XX.XX:8888

  3. 查看ControlNet擴展插件安裝情況。

    Extensions頁簽下,可以看到插件已自動安裝,可以直接使用。

    sd-2.png

  4. 測試插件效果。

    1. 單擊img2img頁簽。

    2. 在頁面上方按需輸入關于結果圖像的文本描述,并上傳用于AI繪圖的參考圖片。

    3. 在頁面下方展開ControlNet配置,上傳用于控制圖像效果的圖片并按需配置參數。

      說明
      • 為實現文字光影效果,此處上傳的是黑底白字圖片。

      • 不同的圖和不同的文字光影搭配效果差異很大,請根據實際出圖結果對參數進行微調。

      需要注意的參數如下:

      • Model:選擇brightness模型。

      • Control Weight:ControlNet影響的權重。

      • Starting Control Step:ControlNet介入開始時間,越早開始AI繪圖的自由度越小,文字光影效果越明顯。

      • Ending Control Step:ControlNet介入結束時間,越早結束圖像和文字融合效果好,但可能文字光影效果不明顯。

      sd-測試1.png

    4. 單擊Generate生成結果圖。

      示例如下:

      sd-測試結果.png