View a markdown version of this page

FLUX.2 Klein LoRA 微調和產生影像 - 截止日期雲端

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

FLUX.2 Klein LoRA 微調和產生影像

此範例示範如何使用 LoRA (低排名調整) 微調 FLUX.2 Klein 影像產生模型,並在截止日期雲端上大規模產生影像。工作流程會從小型影像資料集訓練輕量型轉接器。然後,它會使用該轉接器從文字提示產生新映像,所有文字提示都會協調為 GPU 機群上的截止日期雲端任務。

此範例的原始程式碼可在 GitHub 的 deadline-cloud-samples 儲存庫中使用。

下列影片示範在截止日期雲端上的 FLUX.2 Klein LoRA 工作流程。

預估時間:30–60 分鐘 (包括 15–45 分鐘的訓練)。

概觀

此範例包含兩個任務套件:

  1. lora_training – 使用 LoRA 在影像資料集上微調 FLUX.2Krein,產生.safetensors轉接器檔案。

  2. image_generation – 使用訓練過的轉接器載入基本模型,並從文字提示產生影像。產生多個映像時,工作會跨工作者平行處理。

LoRA 是一種參數高效的微調技術,可訓練小型轉接器,而不是修改完整的模型權重。此方法可讓訓練快速 (在單一 GPU 上為 15–45 分鐘),而產生的轉接器便攜且易於版本。

任務套件使用擴散器peft 程式庫進行訓練和推論。

若要完成此範例,請遵循下列步驟:

  1. 完成先決條件。

  2. 準備訓練資料。

  3. 提交訓練任務。

  4. 提交映像產生任務。

  5. 清除資源。

先決條件

開始前,請確定您有下列項目:

  • 具有 GPU 機群的截止日期雲端陣列 (Linux建議使用 NVIDIA A10G GPU、13 GB+ VRAM、64 GiB+ 系統記憶體)。

  • 與 GPU 機群相關聯的佇列。

  • 工作站上安裝的截止日期雲端 CLI

  • 您主題的 20–50 張訓練影像 (.jpg.jpeg.png.webp)。

任務套件結構

flux2_klein_lora/ ├── lora_training/ │ ├── template.yaml # OpenJD job template │ └── train_lora.py # Training script └── image_generation/ ├── template.yaml # OpenJD job template └── generate_image.py # Inference script

準備訓練資料

準備訓練資料
  1. 建立包含您主體影像的目錄。為了獲得最佳結果,請使用 20–50 張具有不同姿勢、照明和背景的影像。

  2. 或者,為每個影像提供.txt字幕檔案,以獲得更細微的訓練:

    training_images/ ├── IMG_001.jpeg ├── IMG_001.txt # "a photo of ohwx dog sitting on grass" ├── IMG_002.jpeg ├── IMG_002.txt # "a photo of ohwx dog running on beach"

    如果沒有字幕檔案,訓練指令碼會使用執行個體提示參數自動產生這些檔案。自訂字幕會產生更高品質的結果,因為它們會教導模型您的觸發詞和視覺特徵之間更具體的關聯。

  3. 選擇唯一的觸發詞 (例如 ohwx)。這會將學到的概念繫結到不會與現有模型知識衝突的字符。

提交訓練任務

提交訓練任務
  1. 導覽至您複製儲存deadline-cloud-samples庫中的flux2_klein_lora目錄。

  2. 若要使用 GUI 提交訓練任務,請執行下列命令:

    deadline bundle gui-submit ./lora_training

    或者,若要直接使用 CLI 提交訓練任務,請執行下列命令:

    deadline bundle submit ./lora_training \ --queue-id gpu-queue-id \ --parameter DatasetPath=~/training_images \ --parameter InstancePrompt="a photo of ohwx dog" \ --parameter OutputDir=/tmp/lora_output \ --parameter MaxTrainSteps=1500 \ --parameter Resolution=512
  3. 在截止日期雲端主控台或使用 deadline job get命令來監控任務狀態。

訓練參數

訓練參數
參數 描述 預設
模型版本 flux.2-klein-base-4bflux.2-klein-4b flux.2-klein-base-4b
資料集路徑 包含訓練映像的目錄
執行個體提示 描述您的主體的文字
Resolution 以像素為單位的訓練影像解析度 512
Network Dim LoRA 排名 (較高 = 更多容量) 16
網路 Alpha LoRA alpha 擴展係數 16
訓練步驟上限 訓練反覆運算次數 1500
輸出目錄 在何處儲存訓練過的權重

訓練輸出

訓練任務會產生下列成品:

  • flux2_klein_lora.safetensors – 具有內嵌中繼資料的訓練 LoRA 轉接器。

  • 每 300 個步驟儲存的檢查點。

若要在訓練完成後下載輸出,請執行下列命令:

deadline job download-output \ --job-id training-job-id \ --queue-id gpu-queue-id

提交映像產生任務

提交映像產生任務
  1. 導覽至您複製儲存deadline-cloud-samples庫中的flux2_klein_lora目錄。

  2. 若要使用 GUI 提交映像產生任務,請執行下列命令:

    deadline bundle gui-submit ./image_generation

    或者,若要直接使用 CLI 提交映像產生任務,請執行下列命令:

    deadline bundle submit ./image_generation \ --queue-id gpu-queue-id \ --parameter LoRAPath=/tmp/lora_output/flux2_klein_lora.safetensors \ --parameter Prompt="a photo of ohwx dog wearing a tuxedo" \ --parameter OutputDir=/tmp/generated_images \ --parameter NumImages=4
  3. 在截止日期雲端主控台或使用 deadline job get命令來監控任務狀態。

NumImages 大於 1 時,Deadline Cloud 會將工作分散到多個工作者,以便更快速產生。

產生參數

產生參數
參數 描述 預設
LoRA 路徑 訓練.safetensors檔案的路徑
提示詞 文字描述 (包括您的觸發字詞)
影像數量 要產生的映像總數 1
Width 輸出寬度,以像素為單位 1024
Height 輸出高度,以像素為單位 1024
推論步驟 雜訊消除步驟的數量 50
指導規模 無分類器指引擴展 4.0

產生輸出

影像會儲存為 image_0001.pngimage_0002.png等。若要下載它們,請執行下列命令:

deadline job download-output \ --job-id generation-job-id \ --queue-id gpu-queue-id

模型變體

FLUX.2 Klein 模型變體
模型 Parameters 最適合
flux.2-klein-base-4b 4B 微調、商業用途
flux.2-klein-4b 4B 快速推論 (4 個雜訊消除步驟)

訓練建議

下列建議可協助您獲得最佳結果:

  • 資料集大小 – 20–50 張高品質影像非常適合大多數主體。

  • 解析度 – 針對具有 24 GB VRAM 的 GPUs 使用 512。較高的解析度需要更多記憶體。

  • 訓練步驟 – 從 1500 開始。如果輸出與您的主體不相似,請增加 。

  • 網路變暗 – 16 是良好的預設值。針對複雜或抽象概念使用 32。

  • 學習率 – 1e-4 的預設值適用於大多數情況。

清除

為了避免持續收費,請清除您為此範例建立的資源:

清除範例資源
  1. 在截止日期雲端主控台中,停止或刪除您用於此範例的 GPU 機群。

  2. 如果不再需要任務附件建立的任何 Amazon Simple Storage Service (Amazon S3) 物件,請將其刪除。

  3. 如果不再需要本機輸出檔案,請將其移除:

    rm -rf /tmp/lora_output /tmp/generated_images

下列資源提供其他資訊: