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

搭建類似妙鴨相機的應用

本文以部署ModelScope社區的人物AIGC基礎模型(ly261666/cv_portrait_model)搭建類似妙鴨相機的應用為例,演示如何使用數據緩存。通過數據緩存提前拉取模型數據,然后在創建應用實例時直接掛載模型數據,可以免去在實例中拉取模型數據的等待時間,加速應用部署。

背景信息

妙鴨相機是一款基于AIGC的應用,用戶在小程序中上傳一些個人照片,就能得到個人專屬的數字分身,然后再挑選喜歡的風格模板,即可得到一組對應的個人寫真。

阿里云達摩院近期推出了開源版“妙鴨相機”,即facechain。facechain的基本原理是典型的SD(Stable Diffusion)+LoRA,流程大致如下:

  1. 對已有的幾張個人照片(原圖)進行訓練,得到個人專屬的面部LoRA權重。

  2. 基于標準的SD基礎模型生成各種風格的個人照片(結果圖)。

    說明

    facechain會在此基礎上,使用多種人像、皮膚相關的模型進行人像優化,從而生成更優效果的照片。

雖然目前開源版本的facechain下載后即可配置使用,但存在以下問題:

  • 訓練和推理的過程中會直接從模型Hub下載模型,整個應用涉及多個模型,大小約25 GB,導致整體耗時長,并且直接通過公網下載模型對帶寬和網絡穩定性要求很高,一旦無法下載就會失敗。

  • 不支持人臉記憶,只能基于當前最新的訓練結果進行推理,即不能保留歷史訓練出來的LoRA權重。

  • 如果想換個模型或者更新版本等,需要手動修改代碼,維護復雜,配置不靈活。

針對上述問題,ECI推出了優化版本,即eci-facechain。主要優化點如下:

  • 將模型數據放入ECI數據緩存中,應用啟動后無需從模型Hub下載模型。

  • 支持人臉記憶,訓練流程支持給人臉打標簽,推理時支持通過標簽選擇歷史訓練過的人臉進行生成。

  • 新增環境變量配置項(詳見env.py文件),無需修改應用代碼即可通過容器的環境變量自定義SD的模型、版本、目錄、以及應用端口等。

  • 優化Web頁面,例如支持設置生成照片的像素等。

前提條件

您使用的VPC已綁定公網NAT網關,并配置SNAT條目允許該VPC或下屬交換機的資源可以訪問公網。

說明

如果VPC沒有綁定公網NAT網關,您需要在創建數據緩存和部署應用時綁定EIP,以便可以拉取公網數據。

準備運行環境

  • 硬件要求

    需使用GPU規格。vCPU、內存等無具體要求,建議選擇顯存高的規格。ECI支持的GPU規格,請參見規格說明

  • 軟件環境

    ECI已基于eci-facechain制作了一個公共容器鏡像,您可以直接使用該鏡像或者將其作為基礎鏡像進行二次開發。鏡像地址為registry.cn-hangzhou.aliyuncs.com/eci_open/facechain:1.0.2。

操作步驟

創建數據緩存

控制臺

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

    本示例使用人物AIGC基礎模型(ID為ly261666/cv_portrait_model)的v4.0版本。在ModelScope找到目標模型后,在模型詳情頁面頂部可以復制模型ID。

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

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

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

  5. 創建人物AIGC基礎模型的數據緩存。

    1. 單擊創建數據緩存

    2. 完成數據緩存參數配置。

      本文使用的參數示例如下,其中緩存數據源為拉取人物AIGC基礎模型的固定配置,其他參數可自定義配置,更多信息,請參見創建數據緩存

      配置項

      示例值

      緩存所屬Bucket

      test

      緩存所屬目錄

      /model/cv

      緩存名

      cv

      緩存大小

      20 GiB

      緩存數據源

      • 類型:URL

      • 參數

        • repoSource:ModelScope/Mode

        • repoId:ly261666/cv_portrait_model

        • revision:v4.0

    3. 單擊確定

  6. 查看數據緩存狀態。

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

OpenAPI

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

    本示例使用人物AIGC基礎模型(ID為ly261666/cv_portrait_model)的v4.0版本。在ModelScope找到目標模型后,在模型詳情頁面頂部可以復制模型ID。

  2. 創建人物AIGC基礎模型的數據緩存。

    調用CreateDataCache接口創建數據緩存所采用的參數示例如下,表示從ModelScope拉取指定模型數據,保存到名為test的Bucket的/model/cv/目錄。數據緩存名為cv,保留時長為1天。

    重要

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

    {
      "RegionId": "cn-beijing",
      "VSwitchId": "vsw-2ze23nqzig8inpr******",
      "SecurityGroupId": "sg-2ze1003ujo0fuv******",
      "Bucket": "test",
      "Path": "/model/cv/",
      "Name": "cv",
      "DataSource": {
        "Type": "URL",
        "Options": {
          "#6#repoId": "ly261666/cv_portrait_model",
          "#10#repoSource": "ModelScope/Model",
          "#8#revision": "v4.0"
        }
      },
      "RetentionDays": 1
    }
  3. 查詢數據緩存狀態。

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

搭建“妙鴨相機”

控制臺

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

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

    本文使用的參數示例如下,實例使用GPU規格,并掛載了人物AIGC基礎模型的數據緩存。實例內容器使用ECI提供的制作好的facechain鏡像,容器啟動后會運行一個Web服務,可通過8888端口訪問。

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

    • 容器默認對外開放8888端口,如果想要修改端口,可通過設置容器環境變量APP_PORT來指定端口。

    配置區域

    配置項

    示例值

    容器組配置

    指定規格

    ecs.gn6i-c4g1.xlarge

    名稱

    cv

    容器配置

    容器名稱

    cv

    鏡像

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

    • 版本:1.0.2

    數據緩存

    緩存Bucket

    test

    單擊添加,掛載人物AIGC基礎模型的數據緩存

    • 緩存目錄:/model/cv/

    • 目標容器:cv

    • 容器掛載目錄:/mnt/workspace/.cache/modelscope/ly261666/cv_portrait_model/

    彈性公網IP

    彈性公網IP

    • 自動創建

    • 帶寬峰值:5 Mbps

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

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

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

    妙鴨相機-控制臺-zh.png

OpenAPI

  1. 使用數據緩存創建ECI實例,部署“妙鴨相機”應用。

    調用CreateContainerGroup接口創建ECI實例所采用的參數示例如下,該實例使用GPU規格,并掛載了人物AIGC基礎模型。

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

    • 容器默認對外開放8888端口,如果想要修改端口,可通過設置容器環境變量APP_PORT來指定端口。

    {
      "RegionId": "cn-beijing",
      "SecurityGroupId": "sg-2ze1003ujo0fuv******",
      "VSwitchId": "vsw-2ze23nqzig8inpr******",
      "ContainerGroupName": "cv",
      "InstanceType": "ecs.gn6i-c4g1.xlarge",
      "DataCacheBucket": "test",
      "AutoCreateEip": true,
      "Container": [
        {
          "Image": "registry.cn-hangzhou.aliyuncs.com/eci_open/facechain:1.0.2",
          "Name": "cv",
          "VolumeMount": [
            {
              "MountPath": "/mnt/workspace/.cache/modelscope/ly261666/cv_portrait_model/",
              "Name": "model-cv"
            }
          ]
        }
      ],
      "Volume": [
        {
          "Type": "HostPathVolume",
          "HostPathVolume.Path": "/model/cv/",
          "Name": "model-cv"
        }
      ]
    }
  2. 確認應用部署狀態。

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

  3. 查詢實例的EIP地址。

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

測試模型效果

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

  2. 打開瀏覽器,訪問“妙鴨相機”應用的Web頁面。

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

  3. 測試人物AIGC基礎模型是否可以類似妙鴨相機的效果。

    1. 形象定制頁簽下,上傳人臉照片。

    2. 按需給人臉增加標簽,然后單擊開始訓練

      妙鴨相機-結果.png

    3. 等待訓練完成后,單擊形象體驗頁簽。

    4. 按需選擇風格模型、服裝風格,配置圖片數量和高度寬度等參數,然后單擊開始生成

    5. 等待并查看生成結果。

      說明

      如果出現Error報錯,可查看容器日志確認報錯原因。如果是OOM,建議調小照片的寬度和高度,或者重新使用更大顯存的GPU規格來部署應用。

      妙鴨相機-結果2.png