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

文檔

搭建類似妙鴨相機(jī)的應(yīng)用

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

背景信息

妙鴨相機(jī)是一款基于AIGC的應(yīng)用,用戶在小程序中上傳一些個(gè)人照片,就能得到個(gè)人專屬的數(shù)字分身,然后再挑選喜歡的風(fēng)格模板,即可得到一組對(duì)應(yīng)的個(gè)人寫真。

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

  1. 對(duì)已有的幾張個(gè)人照片(原圖)進(jìn)行訓(xùn)練,得到個(gè)人專屬的面部LoRA權(quán)重。

  2. 基于標(biāo)準(zhǔn)的SD基礎(chǔ)模型生成各種風(fēng)格的個(gè)人照片(結(jié)果圖)。

    說(shuō)明

    facechain會(huì)在此基礎(chǔ)上,使用多種人像、皮膚相關(guān)的模型進(jìn)行人像優(yōu)化,從而生成更優(yōu)效果的照片。

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

  • 訓(xùn)練和推理的過(guò)程中會(huì)直接從模型Hub下載模型,整個(gè)應(yīng)用涉及多個(gè)模型,大小約25 GB,導(dǎo)致整體耗時(shí)長(zhǎng),并且直接通過(guò)公網(wǎng)下載模型對(duì)帶寬和網(wǎng)絡(luò)穩(wěn)定性要求很高,一旦無(wú)法下載就會(huì)失敗。

  • 不支持人臉記憶,只能基于當(dāng)前最新的訓(xùn)練結(jié)果進(jìn)行推理,即不能保留歷史訓(xùn)練出來(lái)的LoRA權(quán)重。

  • 如果想換個(gè)模型或者更新版本等,需要手動(dòng)修改代碼,維護(hù)復(fù)雜,配置不靈活。

針對(duì)上述問題,ECI推出了優(yōu)化版本,即eci-facechain。主要優(yōu)化點(diǎn)如下:

  • 將模型數(shù)據(jù)放入ECI數(shù)據(jù)緩存中,應(yīng)用啟動(dòng)后無(wú)需從模型Hub下載模型。

  • 支持人臉記憶,訓(xùn)練流程支持給人臉打標(biāo)簽,推理時(shí)支持通過(guò)標(biāo)簽選擇歷史訓(xùn)練過(guò)的人臉進(jìn)行生成。

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

  • 優(yōu)化Web頁(yè)面,例如支持設(shè)置生成照片的像素等。

前提條件

您使用的VPC已綁定公網(wǎng)NAT網(wǎng)關(guān),并配置SNAT條目允許該VPC或下屬交換機(jī)的資源可以訪問公網(wǎng)。

說(shuō)明

如果VPC沒有綁定公網(wǎng)NAT網(wǎng)關(guān),您需要在創(chuàng)建數(shù)據(jù)緩存和部署應(yīng)用時(shí)綁定EIP,以便可以拉取公網(wǎng)數(shù)據(jù)。

準(zhǔn)備運(yùn)行環(huán)境

  • 硬件要求

    需使用GPU規(guī)格。vCPU、內(nèi)存等無(wú)具體要求,建議選擇顯存高的規(guī)格。ECI支持的GPU規(guī)格,請(qǐng)參見規(guī)格說(shuō)明

  • 軟件環(huán)境

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

操作步驟

創(chuàng)建數(shù)據(jù)緩存

控制臺(tái)

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

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

  2. 登錄彈性容器實(shí)例控制臺(tái)

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

  4. 在左側(cè)導(dǎo)航欄,單擊數(shù)據(jù)緩存

  5. 創(chuàng)建人物AIGC基礎(chǔ)模型的數(shù)據(jù)緩存。

    1. 單擊創(chuàng)建數(shù)據(jù)緩存

    2. 完成數(shù)據(jù)緩存參數(shù)配置。

      本文使用的參數(shù)示例如下,其中緩存數(shù)據(jù)源為拉取人物AIGC基礎(chǔ)模型的固定配置,其他參數(shù)可自定義配置,更多信息,請(qǐng)參見創(chuàng)建數(shù)據(jù)緩存

      配置項(xiàng)

      示例值

      緩存所屬Bucket

      test

      緩存所屬目錄

      /model/cv

      緩存名

      cv

      緩存大小

      20 GiB

      緩存數(shù)據(jù)源

      • 類型:URL

      • 參數(shù)

        • repoSource:ModelScope/Mode

        • repoId:ly261666/cv_portrait_model

        • revision:v4.0

    3. 單擊確定

  6. 查看數(shù)據(jù)緩存狀態(tài)。

    數(shù)據(jù)緩存頁(yè)面刷新查看數(shù)據(jù)緩存狀態(tài),當(dāng)狀態(tài)為Available時(shí),表示可以使用該數(shù)據(jù)緩存。

OpenAPI

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

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

  2. 創(chuàng)建人物AIGC基礎(chǔ)模型的數(shù)據(jù)緩存。

    調(diào)用CreateDataCache接口創(chuàng)建數(shù)據(jù)緩存所采用的參數(shù)示例如下,表示從ModelScope拉取指定模型數(shù)據(jù),保存到名為test的Bucket的/model/cv/目錄。數(shù)據(jù)緩存名為cv,保留時(shí)長(zhǎng)為1天。

    重要

    如果您通過(guò)SDK創(chuàng)建數(shù)據(jù)緩存,DataSource.Options中的各個(gè)參數(shù)前無(wú)需添加參數(shù)名的長(zhǎng)度,例如#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. 查詢數(shù)據(jù)緩存狀態(tài)。

    根據(jù)返回的數(shù)據(jù)緩存ID調(diào)用DescribeDataCaches接口查詢數(shù)據(jù)緩存信息,當(dāng)數(shù)據(jù)緩存的狀態(tài)(DataCaches.Status)為Available時(shí),表示可以使用該數(shù)據(jù)緩存。

搭建“妙鴨相機(jī)”

控制臺(tái)

  1. 彈性容器實(shí)例控制臺(tái)容器組頁(yè)面,單擊創(chuàng)建彈性容器組

  2. 填寫實(shí)例相關(guān)配置信息,然后單擊配置確認(rèn)

    本文使用的參數(shù)示例如下,實(shí)例使用GPU規(guī)格,并掛載了人物AIGC基礎(chǔ)模型的數(shù)據(jù)緩存。實(shí)例內(nèi)容器使用ECI提供的制作好的facechain鏡像,容器啟動(dòng)后會(huì)運(yùn)行一個(gè)Web服務(wù),可通過(guò)8888端口訪問。

    說(shuō)明
    • 當(dāng)VPC已綁定公網(wǎng)NAT網(wǎng)關(guān)時(shí),創(chuàng)建ECI實(shí)例時(shí)可以不綁定EIP。在實(shí)例創(chuàng)建完成后,您可以配置DNAT條目實(shí)現(xiàn)外部訪問ECI實(shí)例。

    • 容器默認(rèn)對(duì)外開放8888端口,如果想要修改端口,可通過(guò)設(shè)置容器環(huán)境變量APP_PORT來(lái)指定端口。

    配置區(qū)域

    配置項(xiàng)

    示例值

    容器組配置

    指定規(guī)格

    ecs.gn6i-c4g1.xlarge

    名稱

    cv

    容器配置

    容器名稱

    cv

    鏡像

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

    • 版本:1.0.2

    數(shù)據(jù)緩存

    緩存Bucket

    test

    單擊添加,掛載人物AIGC基礎(chǔ)模型的數(shù)據(jù)緩存

    • 緩存目錄:/model/cv/

    • 目標(biāo)容器:cv

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

    彈性公網(wǎng)IP

    彈性公網(wǎng)IP

    • 自動(dòng)創(chuàng)建

    • 帶寬峰值:5 Mbps

  3. 確認(rèn)實(shí)例配置信息,閱讀并選中服務(wù)協(xié)議,單擊確認(rèn)訂單

  4. 返回容器組頁(yè)面,確認(rèn)應(yīng)用部署狀態(tài)并查看實(shí)例的EIP地址。

    容器組頁(yè)面可以查看實(shí)例狀態(tài),單擊實(shí)例ID進(jìn)入實(shí)例詳情頁(yè)可以查看容器狀態(tài)。當(dāng)實(shí)例狀態(tài)和容器狀態(tài)均為運(yùn)行中時(shí),表示應(yīng)用部署成功。您可以在IP地址列獲取實(shí)例的EIP地址。

    妙鴨相機(jī)-控制臺(tái)-zh.png

OpenAPI

  1. 使用數(shù)據(jù)緩存創(chuàng)建ECI實(shí)例,部署“妙鴨相機(jī)”應(yīng)用。

    調(diào)用CreateContainerGroup接口創(chuàng)建ECI實(shí)例所采用的參數(shù)示例如下,該實(shí)例使用GPU規(guī)格,并掛載了人物AIGC基礎(chǔ)模型。

    說(shuō)明
    • 以下示例中,系統(tǒng)會(huì)自動(dòng)創(chuàng)建并為ECI實(shí)例綁定一個(gè)EIP。當(dāng)VPC已綁定公網(wǎng)NAT網(wǎng)關(guān)時(shí),創(chuàng)建ECI實(shí)例時(shí)可以不綁定EIP。在實(shí)例創(chuàng)建完成后,您可以配置DNAT條目實(shí)現(xiàn)外部訪問ECI實(shí)例。

    • 容器默認(rèn)對(duì)外開放8888端口,如果想要修改端口,可通過(guò)設(shè)置容器環(huán)境變量APP_PORT來(lái)指定端口。

    {
      "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. 確認(rèn)應(yīng)用部署狀態(tài)。

    根據(jù)返回的實(shí)例ID調(diào)用DescribeContainerGroupStatus查詢實(shí)例和容器狀態(tài)。當(dāng)實(shí)例狀態(tài)(Status)和容器狀態(tài)(ContainerStatuses.State)為Running,表示實(shí)例已經(jīng)創(chuàng)建成功,容器正在運(yùn)行。

  3. 查詢實(shí)例的EIP地址。

    根據(jù)返回的實(shí)例ID調(diào)用DescribeContainerGroups查詢實(shí)例詳情,在InternetIp中可以獲取實(shí)例的EIP地址。

測(cè)試模型效果

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

  2. 打開瀏覽器,訪問“妙鴨相機(jī)”應(yīng)用的Web頁(yè)面。

    本文示例的“妙鴨相機(jī)”應(yīng)用已單獨(dú)綁定了EIP,可以直接輸入實(shí)例的EIP地址和容器開放的端口進(jìn)行訪問,例如47.94.XX.XX:8888

  3. 測(cè)試人物AIGC基礎(chǔ)模型是否可以類似妙鴨相機(jī)的效果。

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

    2. 按需給人臉增加標(biāo)簽,然后單擊開始訓(xùn)練

      妙鴨相機(jī)-結(jié)果.png

    3. 等待訓(xùn)練完成后,單擊形象體驗(yàn)頁(yè)簽。

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

    5. 等待并查看生成結(jié)果。

      說(shuō)明

      如果出現(xiàn)Error報(bào)錯(cuò),可查看容器日志確認(rèn)報(bào)錯(cuò)原因。如果是OOM,建議調(diào)小照片的寬度和高度,或者重新使用更大顯存的GPU規(guī)格來(lái)部署應(yīng)用。

      妙鴨相機(jī)-結(jié)果2.png