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

視頻生成解決方案

EasyAnimate是阿里云PAI平臺自主研發(fā)的DiT的視頻生成框架,它提供了完整的高清長視頻生成解決方案,包括視頻數(shù)據(jù)預處理、VAE訓練、DiT訓練、模型推理和模型評測等。本文為您介紹如何在PAI平臺集成EasyAnimate并一鍵完成模型推理、微調(diào)及部署的實踐流程。

背景信息

本文為您介紹以下兩種視頻生成的方式:

  • 方式一:使用DSW

    DSW是為算法開發(fā)者量身打造的一站式AI開發(fā)平臺,集成了JupyterLab、WebIDE、Terminal多種云端開發(fā)環(huán)境,其中,Gallery提供了豐富的案例和解決方案,幫助您快速熟悉研發(fā)流程。您可以打開DSW Gallery中的案例教程,實現(xiàn)一鍵式運行Notebook,完成基于EasyAnimate的視頻生成模型的推理和訓練任務,也可以進行模型推理和微調(diào)等二次開發(fā)操作。

  • 方式二:使用快速開始

    快速開始集成了眾多AI開源社區(qū)中優(yōu)質(zhì)的預訓練模型,并且基于開源模型支持零代碼實現(xiàn)從訓練到部署再到推理的全部過程,您可以通過快速開始一鍵部署EasyAnimate模型并生成視頻,享受更快、更高效、更便捷的AI應用體驗。

費用說明

方式

費用說明

方式一:使用DSW

如果您的賬號為DSWEAS的新用戶,可以免費試用對應產(chǎn)品。關于免費試用的額度、領取方式及注意事項等詳細信息,請參見新用戶免費試用。

說明
  • 在本教程中,僅支持使用DSW免費資源類型ecs.gn7i-c8g1.2xlarge。

  • 由于免費試用資源存在資源額度限制,因此無法進行模型訓練相關操作。

如果您的賬號非新用戶,使用DSWEAS會產(chǎn)生相應費用。更多計費詳情,請參見交互式建模(DSW)計費說明、模型在線服務(EAS)計費說明。

方式二:使用快速開始

如果您的賬號為DLCEAS的新用戶,可以免費試用對應產(chǎn)品。關于免費試用的額度、領取方式及注意事項等詳細信息,請參見新用戶免費試用

說明

由于免費試用資源存在資源額度限制,因此無法進行模型訓練相關操作。

如果您的賬號非新用戶,使用DLCEAS會產(chǎn)生相應費用。更多計費詳情,請參見分布式訓練(DLC)計費說明、模型在線服務(EAS)計費說明。

前提條件

方式一:使用DSW

步驟一:創(chuàng)建DSW實例

  1. 進入DSW頁面。

    1. 登錄PAI控制臺。

    2. 概覽頁面選擇目標地域。

    3. 在左側(cè)導航欄單擊工作空間列表,在工作空間列表頁面中單擊目標工作空間名稱,進入對應工作空間內(nèi)。

    4. 在工作空間頁面的左側(cè)導航欄選擇模型開發(fā)與訓練>交互式建模(DSW),進入DSW頁面。

  2. 單擊創(chuàng)建實例。

  3. 配置實例向?qū)ы撁?,配置以下關鍵參數(shù),其他參數(shù)保持默認即可。

    參數(shù)

    說明

    實例名稱

    本教程使用的示例值為:AIGC_test_01

    資源規(guī)格

    選擇GPU規(guī)格下的ecs.gn7i-c8g1.2xlarge,或其他A10、GU100規(guī)格。

    鏡像

    選擇官方鏡像easyanimate:1.1.5-pytorch2.2.0-gpu-py310-cu118-ubuntu22.04。

    數(shù)據(jù)集(可選)

    單擊添加,單擊創(chuàng)建數(shù)據(jù)集,創(chuàng)建OSSNAS數(shù)據(jù)集。

  4. 單擊確定。

步驟二:下載EasyAnimate模型

  1. 單擊目標DSW實例操作列下的打開,進入DSW實例的開發(fā)環(huán)境。

  2. Notebook頁簽的Launcher頁面,單擊快速開始區(qū)域Tool下的DSW Gallery,打開DSW Gallery頁面。

  3. DSW Gallery頁面中,搜索基于EasyAnimateAI視頻生成示例,單擊DSW中打開,即可自動將本教程所需的資源和教程文件下載至DSW實例中,并在下載完成后自動打開教程文件。

    image

  4. 下載EasyAnimate相關代碼和模型并進行安裝。

    在教程文件easyanimate.ipynb中,單擊image運行環(huán)境安裝節(jié)點命令,包括定義函數(shù)、下載代碼下載模型。當成功運行一個步驟命令后,再順次運行下個步驟的命令。

步驟三:推理模型

  1. 單擊image運行模型推理>UI啟動節(jié)點的命令,進行模型推理。

  2. 單擊生成的鏈接,進入WebUI界面。

    image

  3. WebUI界面選擇預訓練模型路徑,其它參數(shù)按需配置即可。

    image

    (可選)如果您希望使用圖生視頻功能,可以在Image to Video區(qū)域上傳對應圖片,用于生成視頻。

    image

  4. 單擊Generate(生成),等待一段時間后,即可在右側(cè)查看或下載生成的視頻。

    image

步驟四:微調(diào)LoRA

EasyAnimate提供了豐富的模型訓練方式,包括DiT模型的訓練(LoRA微調(diào)和基模型的全量微調(diào))和VAE的訓練。關于Gallery中內(nèi)置的LoRA微調(diào)部分,更多信息,請參見EasyAnimate

準備數(shù)據(jù)

單擊image執(zhí)行模型訓練>數(shù)據(jù)準備節(jié)點的命令,即可下載示例數(shù)據(jù),用于模型訓練。您也可以按照如下格式要求自行準備數(shù)據(jù)文件。

文件數(shù)據(jù)格式如下。

project/
├── datasets/
│   ├── internal_datasets/
│       ├── videos/
│       │   ├── 00000001.mp4
│       │   ├── 00000002.mp4
│       │   └── .....
│       └── json_of_internal_datasets.json

其中,JSON文件數(shù)據(jù)格式和參數(shù)說明如下。

[
    {
      "file_path": "videos/00000001.mp4",
      "text": "A group of young men in suits and sunglasses are walking down a city street.",
      "type": "video"
    },
    {
      "file_path": "videos/00000002.mp4",
      "text": "A notepad with a drawing of a woman on it.",
      "type": "video"
    }
    .....
]

參數(shù)

說明

file_path

視頻/圖片數(shù)據(jù)的存放位置(相對路徑)。

text

數(shù)據(jù)的文本描述。

type

視頻為video,圖片為image。

啟動訓練

  1. (可選)如果您使用自行準備的數(shù)據(jù)文件進行微調(diào),需要將對應的訓練腳本中的DATASET_NAMEDATASET_META_NAME設置為訓練數(shù)據(jù)所在目錄及訓練文件地址。

    export DATASET_NAME=“” # 訓練數(shù)據(jù)所在目錄
    export DATASET_META_NAME=“datasets/Minimalism/metadata_add_width_height.json” # 訓練文件地址
  2. 單擊image執(zhí)行啟動訓練>LoRA訓練節(jié)點的命令。

  3. 訓練完成后,單擊image執(zhí)行LoRA模型推理節(jié)點的命令,將訓練好的模型移動至EasyAnimate/models/Personalized_Model文件夾。

  4. 單擊生成的鏈接,進入WebUI界面,選擇訓練好的LoRA模型生成視頻。

    image

方式二:使用快速開始

快速開始作為PAI的產(chǎn)品組件,集成了眾多AI開源社區(qū)中優(yōu)質(zhì)的預訓練模型,并且基于開源模型支持零代碼實現(xiàn)從訓練到部署再到推理的全部過程。您可以直接部署模型并使用,也可以根據(jù)實際需求微調(diào)訓練模型后部署使用。

場景一:直接部署模型

  1. 進入快速開始頁面。

    1. 登錄PAI控制臺。

    2. 在左側(cè)導航欄單擊工作空間列表,在工作空間列表頁面單擊目標工作空間名稱,進入對應工作空間。

    3. 在左側(cè)導航欄單擊快速開始,進入快速開始頁面。

  2. 在快速開始頁面,搜索EasyAnimate 高清長視頻生成,然后單擊部署,配置相關參數(shù)。

    EasyAnimate目前僅支持使用bf16進行推理,請選擇A10及其以上的顯卡。

    image

  3. 單擊部署,在彈出的計費提醒對話框中,單擊確定,頁面將自動跳轉(zhuǎn)到服務詳情頁面。

    狀態(tài)變?yōu)?b data-tag="uicontrol" id="2bfb5250f00tf" class="uicontrol">運行中時,表示模型部署成功。

  4. 模型部署完成后,您可以使用WebUIAPI兩種方式調(diào)用服務來生成視頻。

    WebUI方式

    1. 服務詳情頁面,單擊查看WEB應用。

      image

    2. WebUI界面選擇預訓練的模型路徑,其它參數(shù)按需配置即可。

      image

    3. 單擊Generate(生成),等待一段時間后,即可在右側(cè)查看或下載生成的視頻。

      image

    API方式

    1. 服務詳情頁面的資源詳情區(qū)域,單擊查看調(diào)用信息,獲取調(diào)用服務所需的信息。

      image

    2. 通過接口更新Transformer模型,可在DSW實例或本地Python環(huán)境中執(zhí)行。

      如果已經(jīng)在WebUI中選擇模型,則無需發(fā)送請求重復調(diào)用。如遇請求超時,請在EAS日志中確認模型已加載完畢。加載完成,日志中將提示Update diffusion transformer done

      Python請求示例如下。

      import json
      import requests
      
      
      def post_diffusion_transformer(diffusion_transformer_path, url='http://127.0.0.1:7860', token=None):
          datas = json.dumps({
              "diffusion_transformer_path": diffusion_transformer_path
          })
          head = {
              'Authorization': token
          }
          r = requests.post(f'{url}/easyanimate/update_diffusion_transformer', data=datas, headers=head, timeout=15000)
          data = r.content.decode('utf-8')
          return data
      
      def post_update_edition(edition, url='http://0.0.0.0:7860',token=None):
          head = {
              'Authorization': token
          }
      
          datas = json.dumps({
              "edition": edition
          })
          r = requests.post(f'{url}/easyanimate/update_edition', data=datas, headers=head)
          data = r.content.decode('utf-8')
          return data
        
      if __name__ == '__main__':
          url = '<eas-service-url>'
          token = '<eas-service-token>'
      
          # -------------------------- #
          #  Step 1: update edition
          # -------------------------- #
          edition = "v3"
          outputs = post_update_edition(edition,url = url,token=token)
          print('Output update edition: ', outputs)
      
          # -------------------------- #
          #  Step 2: update edition
          # -------------------------- #
          # 默認路徑 (二選一)
          diffusion_transformer_path = "/mnt/models/Diffusion_Transformer/EasyAnimateV3-XL-2-InP-512x512"
          # diffusion_transformer_path = "/mnt/models/Diffusion_Transformer/EasyAnimateV3-XL-2-InP-768x768"
          outputs = post_diffusion_transformer(diffusion_transformer_path, url = url, token=token)
          print('Output update edition: ', outputs)

      其中:

      • <eas-service-url>:替換為步驟a中查詢到的服務訪問地址。

      • <eas-service-token>:替換為步驟a中查詢到的服務Token。

    3. 調(diào)用服務,生成視頻或圖片。

    • 服務輸入?yún)?shù)說明

      參數(shù)名

      說明

      類型

      默認值

      prompt_textbox

      用戶輸入的正向提示詞。

      string

      必填。無默認值

      negative_prompt_textbox

      用戶輸入的負向提示詞。

      string

      "The video is not of a high quality, it has a low resolution, and the audio quality is not clear. Strange motion trajectory, a poor composition and deformed video, low resolution, duplicate and ugly, strange body structure, long and strange neck, bad teeth, bad eyes, bad limbs, bad hands, rotating camera, blurry camera, shaking camera. Deformation, low-resolution, blurry, ugly, distortion."

      sample_step_slider

      用戶輸入的步數(shù)。

      int

      30

      cfg_scale_slider

      引導系數(shù)。

      int

      6

      sampler_dropdown

      采樣器類型。

      取值包括:Eluer、EluerA、DPM++、PNDM、DDIM

      string

      Eluer

      width_slider

      生成視頻寬度。

      int

      672

      height_slider

      生成視頻高度。

      int

      384

      length_slider

      生成視頻幀數(shù)。

      int

      144

      is_image

      是否是圖片。

      bool

      FALSE

      lora_alpha_slider

      LoRA模型參數(shù)的權重。

      float

      0.55

      seed_textbox

      隨機種子。

      int

      43

      lora_model_path

      額外的LoRA模型路徑。

      若有,則會在請求時帶上lora。在當次請求后移除。

      string

      none

      base_model_path

      需要更新的transformer模型路徑。

      string

      none

      motion_module_path

      需要更新的motion_module模型路徑。

      string

      none

      generation_method

      生成類型。包括:Video Generation,Image Generation

      string

      none

    • Python請求示例

      服務返回base64_encoding,為base64結(jié)果。

      您可以在/mnt/workspace/demos/easyanimate/目錄中查看生成結(jié)果。

      import base64
      import json
      import sys
      import time
      from datetime import datetime
      from io import BytesIO
      
      import cv2
      import requests
      import base64
      
      def post_infer(generation_method, length_slider, url='http://127.0.0.1:7860',token=None):
          head = {
              'Authorization': token
          }
      
          datas = json.dumps({
              "base_model_path": "none",
              "motion_module_path": "none",
              "lora_model_path": "none", 
              "lora_alpha_slider": 0.55, 
              "prompt_textbox": "This video shows Mount saint helens, washington - the stunning scenery of a rocky mountains during golden hours - wide shot. A soaring drone footage captures the majestic beauty of a coastal cliff, its red and yellow stratified rock faces rich in color and against the vibrant turquoise of the sea.", 
              "negative_prompt_textbox": "Strange motion trajectory, a poor composition and deformed video, worst quality, normal quality, low quality, low resolution, duplicate and ugly, strange body structure, long and strange neck, bad teeth, bad eyes, bad limbs, bad hands, rotating camera, blurry camera, shaking camera", 
              "sampler_dropdown": "Euler", 
              "sample_step_slider": 30, 
              "width_slider": 672, 
              "height_slider": 384, 
              "generation_method": "Video Generation",
              "length_slider": length_slider,
              "cfg_scale_slider": 6,
              "seed_textbox": 43,
          })
          r = requests.post(f'{url}/easyanimate/infer_forward', data=datas, headers=head, timeout=1500)
          data = r.content.decode('utf-8')
          return data
      
      
      if __name__ == '__main__':
          # initiate time
          now_date    = datetime.now()
          time_start  = time.time()  
          
          url = '<eas-service-url>'
          token = '<eas-service-token>'
      
          # -------------------------- #
          #  Step 3: infer
          # -------------------------- #
          # "Video Generation" and "Image Generation"
          generation_method = "Video Generation"
          length_slider = 72
          outputs = post_infer(generation_method, length_slider, url = url, token=token)
          
          # Get decoded data
          outputs = json.loads(outputs)
          base64_encoding = outputs["base64_encoding"]
          decoded_data = base64.b64decode(base64_encoding)
      
          is_image = True if generation_method == "Image Generation" else False
          if is_image or length_slider == 1:
              file_path = "1.png"
          else:
              file_path = "1.mp4"
          with open(file_path, "wb") as file:
              file.write(decoded_data)
              
          # End of record time
          # The calculated time difference is the execution time of the program, expressed in seconds / s
          time_end = time.time()  
          time_sum = (time_end - time_start) % 60 
          print('# --------------------------------------------------------- #')
          print(f'#   Total expenditure: {time_sum}s')
          print('# --------------------------------------------------------- #')

      其中:

      • <eas-service-url>:替換為步驟a中查詢到的服務訪問地址。

      • <eas-service-token>:替換為步驟a中查詢到的服務Token。

場景二:微調(diào)訓練后部署模型

  1. 進入快速開始頁面。

    1. 登錄PAI控制臺。

    2. 在左側(cè)導航欄單擊工作空間列表,在工作空間列表頁面單擊目標工作空間名稱,進入對應工作空間內(nèi)。

    3. 在左側(cè)導航欄單擊快速開始,進入快速開始頁面。

  2. 在快速開始頁面,搜索EasyAnimate 高清長視頻生成,單擊卡片,進入模型詳情頁面。

  3. 單擊右上角的微調(diào)訓練,根據(jù)業(yè)務需求完成訓練輸出配置、超參數(shù)配置等。其中,超參數(shù)詳情請參見附錄:微調(diào)模型超參數(shù)說明。

    EasyAnimate目前僅支持使用bf16進行推理,請選擇A10及其以上的顯卡。如果使用圖片進行LoRA訓練,需要最低GPU顯存為20 GB。如果您使用更大的batch_size、num_train_epochs使用視頻數(shù)據(jù)進行微調(diào),訓練需要消耗更大的顯存。

    image

  4. 單擊訓練,在彈出的計費提醒對話框中,單擊確定,頁面將自動跳轉(zhuǎn)到服務詳情頁面。

    任務狀態(tài)變?yōu)?b data-tag="uicontrol" id="1c06b08eac1sw" class="uicontrol">成功時,代表模型訓練成功。

  5. 單擊右上角的部署

    狀態(tài)變?yōu)?b data-tag="uicontrol" id="f4dc2b6a601tl" class="uicontrol">運行中時,代表模型部署成功。

  6. 服務詳情頁面,單擊查看WEB應用

    image

  7. WebUI界面,選擇訓練完成的LoRA模型進行視頻生成。

    image

附錄:微調(diào)模型超參數(shù)說明

參數(shù)名稱

類型

含義

learning_rate

float

學習率。

adam_weight_decay

float

Adam優(yōu)化器的權重衰減值。

adam_epsilon

float

Adam優(yōu)化器的epsilon值。

num_train_epochs

int

訓練總輪數(shù)。

checkpointing_steps

int

保存模型的間隔步數(shù)。

train_batch_size

int

訓練采樣的批大小。

vae_mini_batch

int

訓練vae的切片大小。

image_sample_size

int

訓練圖片分辨率。

video_sample_size

int

訓練視頻分辨率。

video_sample_stride

int

訓練視頻采樣間隔。

video_sample_n_frames

int

訓練視頻采樣幀數(shù)。

rank

int

LoRA rank。

network_alpha

int

LoRA nework_alpha。

gradient_accumulation_steps

int

梯度累計步數(shù)。

dataloader_num_workers

int

數(shù)據(jù)加載的子進程數(shù)。