本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
FLUX.2 Klein LoRA 微調和產生影像
此範例示範如何使用 LoRA (低排名調整) 微調 FLUX.2 Klein 影像產生模型,並在截止日期雲端上大規模產生影像。工作流程會從小型影像資料集訓練輕量型轉接器。然後,它會使用該轉接器從文字提示產生新映像,所有文字提示都會協調為 GPU 機群上的截止日期雲端任務。
此範例的原始程式碼可在 GitHub 的 deadline-cloud-samples
下列影片示範在截止日期雲端上的 FLUX.2 Klein LoRA 工作流程。
預估時間:30–60 分鐘 (包括 15–45 分鐘的訓練)。
概觀
此範例包含兩個任務套件:
-
lora_training – 使用 LoRA
在影像資料集上微調 FLUX.2Krein ,產生 .safetensors轉接器檔案。 -
image_generation – 使用訓練過的轉接器載入基本模型,並從文字提示產生影像。產生多個映像時,工作會跨工作者平行處理。
LoRA 是一種參數高效的微調技術,可訓練小型轉接器,而不是修改完整的模型權重。此方法可讓訓練快速 (在單一 GPU 上為 15–45 分鐘),而產生的轉接器便攜且易於版本。
若要完成此範例,請遵循下列步驟:
-
完成先決條件。
-
準備訓練資料。
-
提交訓練任務。
-
提交映像產生任務。
-
清除資源。
先決條件
開始前,請確定您有下列項目:
-
具有 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
準備訓練資料
準備訓練資料
-
建立包含您主體影像的目錄。為了獲得最佳結果,請使用 20–50 張具有不同姿勢、照明和背景的影像。
-
或者,為每個影像提供
.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"如果沒有字幕檔案,訓練指令碼會使用執行個體提示參數自動產生這些檔案。自訂字幕會產生更高品質的結果,因為它們會教導模型您的觸發詞和視覺特徵之間更具體的關聯。
-
選擇唯一的觸發詞 (例如
ohwx)。這會將學到的概念繫結到不會與現有模型知識衝突的字符。
提交訓練任務
提交訓練任務
-
導覽至您複製儲存
deadline-cloud-samples庫中的flux2_klein_lora目錄。 -
若要使用 GUI 提交訓練任務,請執行下列命令:
deadline bundle gui-submit ./lora_training或者,若要直接使用 CLI 提交訓練任務,請執行下列命令:
deadline bundle submit ./lora_training \ --queue-idgpu-queue-id\ --parameter DatasetPath=~/training_images \ --parameter InstancePrompt="a photo of ohwx dog" \ --parameter OutputDir=/tmp/lora_output \ --parameter MaxTrainSteps=1500 \ --parameter Resolution=512 -
在截止日期雲端主控台或使用
deadline job get命令來監控任務狀態。
訓練參數
| 參數 | 描述 | 預設 |
|---|---|---|
| 模型版本 | flux.2-klein-base-4b 或 flux.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-idtraining-job-id\ --queue-idgpu-queue-id
提交映像產生任務
提交映像產生任務
-
導覽至您複製儲存
deadline-cloud-samples庫中的flux2_klein_lora目錄。 -
若要使用 GUI 提交映像產生任務,請執行下列命令:
deadline bundle gui-submit ./image_generation或者,若要直接使用 CLI 提交映像產生任務,請執行下列命令:
deadline bundle submit ./image_generation \ --queue-idgpu-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 -
在截止日期雲端主控台或使用
deadline job get命令來監控任務狀態。
當 NumImages 大於 1 時,Deadline Cloud 會將工作分散到多個工作者,以便更快速產生。
產生參數
| 參數 | 描述 | 預設 |
|---|---|---|
| LoRA 路徑 | 訓練.safetensors檔案的路徑 |
— |
| 提示詞 | 文字描述 (包括您的觸發字詞) | — |
| 影像數量 | 要產生的映像總數 | 1 |
| Width | 輸出寬度,以像素為單位 | 1024 |
| Height | 輸出高度,以像素為單位 | 1024 |
| 推論步驟 | 雜訊消除步驟的數量 | 50 |
| 指導規模 | 無分類器指引擴展 | 4.0 |
產生輸出
影像會儲存為 image_0001.png、 image_0002.png等。若要下載它們,請執行下列命令:
deadline job download-output \ --job-idgeneration-job-id\ --queue-idgpu-queue-id
模型變體
| 模型 | 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 的預設值適用於大多數情況。
清除
為了避免持續收費,請清除您為此範例建立的資源:
清除範例資源
-
在截止日期雲端主控台中,停止或刪除您用於此範例的 GPU 機群。
-
如果不再需要任務附件建立的任何 Amazon Simple Storage Service (Amazon S3) 物件,請將其刪除。
-
如果不再需要本機輸出檔案,請將其移除:
rm -rf /tmp/lora_output /tmp/generated_images
相關資源
下列資源提供其他資訊: