當使用萬相進行 映像產生 時,若通過 Prompt 最佳化 仍無法滿足對 特定風格、IP形象或畫面效果 的定製需求,請使用 模型微調 。
適用範圍
-
適用地區:本文描述的功能僅在新加坡地區可用,且必須使用該地區的API Key。
-
支援微調的方式:SFT-LoRA高效微調。
-
支援微調的模型:
- 映像產生(文生圖/圖生圖):wan2.7-image-pro、wan2.7-image。
如何微調模型
文生圖
微調目標:訓練一個人物LoRA模型。
預期效果:輸入一段提示詞,模型自動產生特定人物在符合提示詞情境下的描述。
| 輸入提示詞 人物在擁擠的早高峰地鐵車廂內,抓著扶手,背景是模糊的乘客和車窗外的隧道燈光,身穿普通的上班族白襯衫和黑色西褲,人物站立面向鏡頭,半身照,寫實抓拍感。 | 輸出映像(微調前-文生圖)![]()
| 輸出映像(微調後)![]()
|
圖生圖
微調目標:訓練一個"末日廢土紅黑機甲"LoRA模型。
預期效果:輸入一張人物映像,無需提示詞,模型自動產生人物“末日廢土紅黑機甲”風格的映像。
輸入映像![]() | 輸出映像(微調前)![]()
| 輸出映像(微調後)![]()
|
步驟1:上傳資料集
將本地的資料集(.zip 格式)上傳到阿里雲百鍊平台,並擷取檔案 ID (id)。
訓練集範例資料:格式請參見訓練集。
- 映像產生-文生圖:wan-image-t2i-training-dataset.zip
- 映像產生-圖生圖:wan-image-i2i-training-dataset.zip
本樣本使用文生圖,僅上傳訓練集,系統將自動從訓練集中劃分一部分作為驗證集。
curl --location --request POST 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/files' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--form 'file=@"./wan-image-t2i-training-dataset.zip"' \
--form 'purpose="fine-tune"'
響應樣本
請儲存 id,這是上傳資料集的唯一標識。
{
"id": "file-ft-3c67043a747c-xxxxxx",
"object": "file",
"bytes": 73310369,
"filename": "wan-image-t2i-training-dataset.zip",
"purpose": "fine-tune",
"status": "processed",
"created_at": 1782271893
}
步驟2:微調模型
步驟2.1 建立微調任務
使用步驟1中的檔案ID啟動訓練任務。
請求樣本請將<替換為訓練資料集的檔案id>完整替換為上一步擷取的id。完整參數說明與格式約束請參見超參數。
超參數
欄位 | 類型 | 必選 | 描述 | 推薦值 |
|---|---|---|---|---|
max_steps | int | 是 | 訓練總步數。控制訓練時間長度的核心參數。max_steps 決定訓練迭代次數,max_token_length 決定每步處理的資料量。建議不少於 500 步以確保模型充分收斂;巨量資料集可適當增加步數。 | 800 |
eval_steps | int | 是 | 驗證間隔。取值需≥0。訓練期間每隔多少個 steps 進行一次驗證評估,用於階段性評估模型訓練效果。同時儲存當前 step 的模型檔案。 | 200 |
learning_rate | float | 是 | 學習率。控制模型權重更新的幅度。過高可能導致模型變差,過低則變化不明顯。推薦使用預設值。 | 3e-5 |
generation_type | string | 是 | 產生模式。 | t2i |
max_pixels | string | 是 | 訓練圖片的最大解析度。例如 "1k"、"2k"(1K 即 1024×1024,2K 即 2048×2048)。設定訓練集中圖片解析度的像素總數(寬×高)上限,系統僅對超過該值的圖片進行縮放處理,未超限的圖片保持原樣。建議三個解析度參數(max_pixels、max_token_length、val_img_size)保持一致。 | 文生圖:"2k" |
val_img_size | string | 是 | 驗證圖產生解析度。例如 "1k"、"2k"(1K 即 1024×1024,2K 即 2048×2048)。訓練過程中驗證評估時產生圖片的目標解析度。 | 文生圖:"2k" |
max_token_length | string | 是 | 每步訓練的最大 Token 長度。例如 "1k"、"2k"。與 max_steps 共同控制訓練過程:max_steps 決定迭代次數,max_token_length 決定每步處理的資料量。 | 文生圖:"2k" |
gradient_clip | float | 是 | 梯度裁剪。對所有可訓練參數做全域梯度範數裁剪的閾值,防止梯度爆炸。設為 -1 表示不裁剪。 | 0.5 |
weight_decay | float | 是 | 權重衰減。AdamW 解耦式權重衰減係數,對所有可訓練參數生效,用於正則化防止過擬合。 | 0.02 |
lora_rank | int | 是 | LoRA 低秩矩陣的維數。該值決定了微調參數量的大小。數值越大,模型擬合能力越強,但訓練速度會變慢。取值必須為 2n(如 16、32、64)。 | 32 |
save_total_limit | int | 否 | Checkpoint 儲存數量上限。限制最多儲存的模型數量。系統將始終只儲存訓練產生的最後 N 個 Checkpoint(N 為該參數值)。 | 10 |
split | float | 否 | 訓練集劃分比例。取值範圍為 (0, 1)。僅在未指定 | 0.9 |
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/fine-tunes' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "wan2.7-image-pro",
"training_datasets": [
{
"data_source_type": "file_id",
"file_id": "<替換為訓練資料集的檔案id>"
}
],
"training_type": "efficient_sft",
"hyper_parameters": {
"learning_rate": 3e-5,
"max_steps": 800,
"eval_steps": 200,
"max_token_length": "1k",
"gradient_clip": 0.5,
"weight_decay": 0.02,
"max_pixels": "1k",
"val_img_size": "1k",
"generation_type": "t2i",
"lora_rank": 32,
"save_total_limit": 10
}
}'
除使用步驟 1 擷取的檔案 ID 外,您還可以通過 OSS 掛載方式載入訓練資料集,請求樣本如下:
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/fine-tunes' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "wan2.7-image-pro",
"training_datasets": [
{
"data_source_type": "oss_mount",
"mount_storage": {
"region": "ap-southeast-1",
"bucket": "example_bucket",
"file_path": "dataset/data.jsonl"
}
}
],
"training_type": "efficient_sft",
"hyper_parameters": {
"learning_rate": 3e-5,
"max_steps": 800,
"eval_steps": 200,
"max_token_length": "1k",
"gradient_clip": 0.5,
"weight_decay": 0.02,
"max_pixels": "1k",
"val_img_size": "1k",
"generation_type": "t2i",
"lora_rank": 32,
"save_total_limit": 10
}
}'
說明使用 OSS 掛載方式載入資料集時,需將未經壓縮的資料集檔案夾整體上傳到 OSS Bucket(如 dataset 檔案夾下包含 data.jsonl 及對應的圖片檔案),不支援 zip 檔案;掛載時指定 data.jsonl 的檔案路徑即可,無需單獨指定圖片檔案。OSS Bucket 所屬地區支援北京(cn-beijing)和新加坡(ap-southeast-1)。
說明訓練耗時(僅供參考):
- 文生圖(t2i):2K,300 步,約 77 分鐘。
- 圖生圖(i2i):2K,300 步,約 110 分鐘。
關注 output 中的三個關鍵參數:
job_id:任務ID,用於查詢進度。finetuned_output:微調後的新模型名稱,後續部署和調用時必須使用此名稱。status:模型訓練狀態。建立微調任務後,初始狀態為PENDING,表示訓練待開始。
{
...
"output": {
"job_id": "ft-202511111122-xxxx",
"status": "PENDING",
"finetuned_output": "xxxx-ft-202511111122-xxxx",
...
}
}
步驟2.2 查詢微調任務狀態
通過步驟2.1獲得的 job_id 查詢任務進度,輪詢以下介面直到 status 變為 SUCCEEDED。
請將 URL 中的 <替換為微調任務job_id> 完整替換為job_id的值。
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/fine-tunes/<替換為微調任務job_id>' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json'
響應樣本
關注output 欄位的兩個參數:
status:當它的值變為 SUCCEEDED 時,表示模型已訓練完畢,可以進行模型部署。usage:模型訓練消耗的總Token數量,用於模型訓練計費。
{
...
"output": {
"job_id": "ft-202511111122-xxxx",
"status": "SUCCEEDED",
"usage": 432000,
...
}
}
步驟3:部署微調後的模型
步驟3.1 部署模型為線上服務
當微調任務的狀態為 SUCCEEDED 後,將模型部署為線上服務。
請求樣本請將<替換為模型名稱model_name> 完整替換為建立微調任務的輸出參數finetuned_output的值。
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/deployments' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model_name": "<替換為模型名稱model_name>",
"capacity": 1,
"plan": "lora"
}'
響應樣本
關注 output 中的兩個參數:
deployed_model:部署的模型名稱,用於查詢部署狀態和調用模型。status:模型部署狀態。部署微調模型後,初始狀態為PENDING,表示部署未開始。
{
...
"output": {
"deployed_model": "wan2.7-image-pro-xxxxxxxxxxxx",
"status": "PENDING",
...
}
}
步驟3.2 查詢部署狀態
查詢部署狀態,輪詢以下介面直到 status 變為 RUNNING。
說明本文樣本的微調模型,部署過程預計需要 5~10分鐘。
請將<替換為deployed_model>完整替換為步驟3.1輸出參數deployed_model的值。
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/deployments/<替換為deployed_model>' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json'
響應樣本
關注output欄位的兩個參數:
status:當狀態變為 RUNNING 時,表示模型已部署成功,可以開始調用。deployed_model:部署的模型名稱。
{
...
"output": {
"status": "RUNNING",
"deployed_model": "wan2.7-image-pro-xxxxxxxxxxxx",
...
}
}
步驟4:調用模型產生映像
模型部署成功後(即部署狀態status為 RUNNING ),即可發起調用。
說明當前部署後的映像模型僅支援非同步呼叫,且返迴響應的message.content中無type欄位。
步驟4.1:建立映像產生任務,並擷取task_id
請將<替換為部署名稱deployed_model>完整替換為上一步輸出的deployed_model值。
文生圖
輸入一段包含觸發詞的文本描述,模型自動產生符合訓練風格的映像。
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/image-generation/generation' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "X-DashScope-Async: enable" \
--data '{
"model": "<替換為部署名稱deployed_model>",
"input": {
"messages": [
{
"role": "user",
"content": [
{"text": "s86b5p, 人物在擁擠的早高峰地鐵車廂內,抓著扶手,背景是模糊的乘客和車窗外的隧道燈光,身穿普通的上班族白襯衫和黑色西褲,人物站立面向鏡頭,半身照,寫實抓拍感。"}
]
}
]
},
"parameters": {
"size": "2K",
"n": 1
}
}'
圖生圖
輸入一張參考映像和編輯指令,模型基於參考映像產生符合訓練風格的映像。
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/image-generation/generation' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "X-DashScope-Async: enable" \
--data '{
"model": "<替換為部署名稱deployed_model>",
"input": {
"messages": [
{
"role": "user",
"content": [
{"image": "<替換為參考映像URL>"},
{"text": "s86b5p, Change the background to an elevator with red lighting. Change the character clothing to red tight-fitting mech armor with black stripe decorations."}
]
}
]
},
"parameters": {
"size": "2K",
"n": 1
}
}'
請複製並儲存task_id,用於下一步結果查詢。
{
"request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx",
"output": {
"task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx",
"task_status": "PENDING"
}
}
輸入參數說明說明調用微調後的 LoRA 模型時,輸入參數用法與萬相-映像產生與編輯2.7 API保持一致。
下表僅列出 LoRA 模型調用時的關鍵參數說明。
欄位 | 類型 | 必選 | 描述 | 樣本值 |
|---|---|---|---|---|
model | string | 是 | 模型名稱。必須使用已成功部署且部署狀態為RUNNING的微調模型。 | wan2.7-image-pro-xxxxxxxxxxxx |
input.messages[].content[].text | string | 是 | 文本提示詞。建議包含觸發詞以啟用 LoRA 風格。 | s86b5p, 人物在午後靜謐的私人圖書館... |
parameters.size | string | 否 | 輸出圖片解析度。
| 2K |
parameters.n | integer | 否 | 產生映像數量,取值範圍 1~4,預設為 1。 | 1 |
步驟4.2:根據task_id查詢結果
使用task_id輪詢任務狀態,直到 task_status 變為 SUCCEEDED,從output.choices[].message.content[].image擷取映像URL。
請將
86ecf553-d340-4e21-xxxxxxxxx替換為真實的task_id。
curl -X GET https://dashscope-intl.aliyuncs.com/api/v1/tasks/86ecf553-d340-4e21-xxxxxxxxx \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
響應樣本映像URL有效期間為24小時,請及時下載映像。
{
"request_id": "3f2ebb4e-3d47-97b5-xxxx-xxxxxx",
"output": {
"task_id": "aeea547c-e24e-4acb-xxxx-xxxxxx",
"task_status": "SUCCEEDED",
"submit_time": "2026-05-29 17:35:23.826",
"scheduled_time": "2026-05-29 17:35:23.865",
"end_time": "2026-05-29 17:36:32.498",
"finished": true,
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": [
{
"image": "https://dashscope-7c2c.oss-accelerate.aliyuncs.com/xxx.png?Expires=xxxxxx"
}
]
}
}
]
},
"usage": {
"size": "2048*2048",
"total_tokens": 770,
"image_count": 1,
"output_tokens": 691,
"input_tokens": 79
}
}
構建自訂資料集
除了使用本文樣本資料體驗微調流程外,您也可以構建自己的資料集進行微調。
資料集應包含 訓練集(必須)和 驗證集(可選,支援從訓練集自動劃分)。所有檔案請打包為.zip格式,檔案名稱建議僅使用英文、數字、底線或虛線。
資料集格式
訓練集:必須提供
文生圖
訓練集包括訓練靶心圖表像和標註檔案(data.jsonl)。
- 訓練集範例:wan-image-t2i-training-dataset.zip
- zip包目錄結構:
wan-image-t2i-training-dataset.zip
├── data.jsonl # 必須固定命名為data.jsonl,最大支援 20MB
├── 1_0.png # 訓練靶心圖表像,最大解析度4096*4096,單張≤20MB,支援PNG/JPG/JPEG/WEBP/BMP
├── 1_1.png # 檔案名稱僅支援英文字元,平鋪結構(禁止子目錄)
└── 1_2.png
- 標註檔案(data.jsonl):每一行代表一條訓練資料,必須為 JSON 對象。
{
"prompt": "s86b5p, The character stands in a quiet private library in the afternoon, with tall dark walnut bookshelves behind, sunlight streaming through blinds casting striped light and shadow, wearing a soft beige cable-knit sweater, the character stands facing the camera, half-body shot, the image has a fine film grain texture.",
"img_path": "./1_0.png"
}
單圖生圖
訓練集包括參考映像(輸入)、訓練靶心圖表像(輸出)和標註檔案(data.jsonl)。
- 訓練集範例:wan-image-i2i-training-dataset.zip
- zip包目錄結構:
wan-image-i2i-training-dataset.zip
├── data.jsonl # 必須固定命名為data.jsonl,最大支援 20MB
├── 1_0.jpg # 訓練靶心圖表像(輸出)
├── 1_1.jpg # 參考映像(輸入)
├── 6_0.jpg # 訓練靶心圖表像(輸出)
└── 6_1.jpg # 參考映像(輸入)
- 標註檔案(data.jsonl):每一行代表一條訓練資料,必須為 JSON 對象。
{
"prompt": "s86b5p, Change the background to an elevator with red lighting, featuring large floor-to-ceiling windows. Change the character's clothing to red tight-fitting mech armor with black stripe decorations.",
"input_img": "./1_1.jpg",
"img_path": "./1_0.jpg"
}
多圖生圖
訓練集包括多張參考映像(輸入)、訓練靶心圖表像(輸出)和標註檔案(data.jsonl)。與單圖生圖不同,多圖生圖支援同時輸入多張參考映像(如人物照片+姿態圖,最多支援9張參考圖),模型基於多張參考圖的綜合資訊產生靶心圖表像。
說明
- 多圖生圖使用
input_imgs(數組),單圖生圖使用input_img(字串),請注意區分。 input_imgs數組中的映像順序應與訓練意圖一致(如第一張為人物參考,第二張為姿態參考)。
- 訓練集範例:
- zip包目錄結構:
wan-image-multi-i2i-training-dataset.zip
├── data.jsonl # 必須固定命名為data.jsonl,最大支援 20MB
├── 1_0.jpg # 訓練靶心圖表像(輸出)
├── 1_ref.jpg # 參考映像1(如人物照片)
├── 1_pose.jpg # 參考映像2(如姿態圖)
├── 2_0.jpg # 訓練靶心圖表像(輸出)
├── 2_ref.jpg # 參考映像1
└── 2_pose.jpg # 參考映像2
- 標註檔案(data.jsonl):每一行代表一條訓練資料,必須為 JSON 對象。使用
input_imgs欄位傳入多張參考映像路徑。
{
"prompt": "s86b5p, Change the background to an elevator with red lighting, featuring large floor-to-ceiling windows. Outside the windows, there is a post-apocalyptic scene with red mist. Change the character's clothing to red tight-fitting mech armor with black stripe decorations. Standing with both arms stretched horizontally to form a T-shape.",
"input_imgs": ["./1_ref.jpg", "./1_pose.jpg"],
"img_path": "./1_0.jpg"
}
說明
- data.jsonl 必須為 Line-delimited JSONL 格式(每行一個獨立 JSON 對象),禁止使用 JSON 數組格式(即檔案首字元不能是
[)。 - zip 包內檔案必須平鋪放置,禁止使用子目錄。檔案名稱僅支援英文字元(禁止中文、空格、特殊字元)。
驗證集:可選
驗證集包括標註檔案(data.jsonl)和可選的參考映像(圖生圖模式需要),無需提供靶心圖表像。訓練任務會在每個評估節點,自動調用模型服務,使用驗證集的 Prompt(和參考映像)產生預覽映像。
-
驗證集:
-
zip包目錄結構:
wan-image-i2i-valid-dataset.zip
├── data.jsonl # 必須固定命名為data.jsonl,最大支援 20MB
├── input_001.png # 可選,圖生圖模式的參考映像
└── input_002.png
-
標註檔案(data.jsonl):每一行代表一條驗證資料,必須為 JSON 對象。
文生圖
{ "prompt": "s86b5p, The character is in a crowded morning rush hour subway car, holding onto a handrail, with blurred passengers in the background and tunnel lights outside the window, wearing a plain white office shirt and black trousers, the character stands facing the camera, half-body shot, realistic candid feel." }圖生圖
{ "prompt": "s86b5p, Change the background to an elevator with red lighting, featuring large floor-to-ceiling windows. Change the character's clothing to red tight-fitting mech armor with black stripe decorations.", "input_img": "./input_001.png" }多圖生圖
多圖生圖驗證集使用
input_imgs(數組)傳入多張參考映像路徑,最多支援9張。{ "prompt": "s86b5p, Change the background to an elevator with red lighting, featuring large floor-to-ceiling windows. Outside the windows, there is a post-apocalyptic scene with red mist. Change the character's clothing to red tight-fitting mech armor with black stripe decorations. Standing with both arms stretched horizontally to form a T-shape.", "input_imgs": ["./input_001.png", "./input_002.png"] }
資料規模與限制
-
資料量:建議至少提供 25張 映像(推薦 50 張以上效果更佳)。要求同一角色/風格,多情境多角度,內容描述一致。
-
Zip壓縮包:通過 API 上傳時,總包大小 ≤ 1GB。
-
訓練映像要求:
- 映像格式支援BMP、JPEG、PNG、WEBP。
- 映像解析度 ≤ 4096×4096。
- 單個影像檔大小 ≤ 20MB。
資料收集和清洗
1. 確定微調情境
萬相支援映像產生的微調情境包括:
- IP角色風格化:讓模型學會特定IP角色的繪畫風格,如二次元人物、吉祥物形象等。
- 固定畫面風格:提升模型對特定藝術風格的複現度,如扁平插畫、水墨畫、像素風等。
- 特定情境產生:複刻特定的構圖模式或情境模板,如商品展示圖、海報版式等。
2. 擷取原始素材
- AI 產生篩選:利用"萬相"基本模型批量產生映像,再人工挑選出最符合目標效果的優質樣本。這是最常用的方法。
- 真實拍攝:如果您的目標是追求高真實感的情境(如產品實拍、人物攝影等),使用實拍素材是最佳選擇。
- 三維軟體渲染:對於需要控制細節的情境或3D渲染風格,建議使用 3D 軟體(如 Blender、C4D)製作素材。
3. 清洗資料
維度 | 正面要求 | 負面案例 |
|---|---|---|
一致性 | 核心特徵必須高度統一。 例如:訓練"扁平插畫風格",所有映像必須都是相同的線條寬度和色彩配置。 | 風格混雜。 資料集中既有厚塗風格,又有扁平風格。模型不知道該學哪種風格。 |
多樣性 | 主體與情境越豐富越好。 覆蓋不同主體(男女老少、貓狗建築)和不同構圖(遠景、近景、特寫)。同時,解析度和長寬比應儘可能多樣化。 | 單一情境或主體。 所有映像都是"穿紅衣的人在白牆前"。模型會誤以為"紅衣"和"白牆"是風格的一部分,換了情境就不會產生了。 |
均衡性 | 各類型資料比例均衡。 如果包含多種風格,數量應大致相等。 | 比例嚴重失調。 90%是人像映像,10%是風景映像。模型可能在產生風景映像時效果不佳。 |
純淨度 | 畫面乾淨清晰。 使用無幹擾的原始素材。 | 有幹擾元素。 映像中帶有浮水印、明顯的黑邊或噪點。模型可能會把浮水印當成風格學進去。 |
解析度 | 解析度適中。 建議訓練映像解析度不超過 2048×2048,過大的映像會增加訓練時間。 | 解析度差異過大。 訓練集中既有 256×256 的小圖,又有 4096×4096 的大圖,會影響訓練穩定性。 |
映像標註:為映像編寫Prompt
在資料集的標註檔案(data.jsonl)中,每張映像都有對應的一段 Prompt。Prompt 是用來描述靶心圖表像的畫面內容,Prompt 的品質直接決定模型"學什麼"。
Prompt編寫公式
Prompt = [主體描述] + [背景描述] + [觸發詞] + [風格描述]Prompt描述項 | 說明 | 填寫建議 | 樣本 |
|---|---|---|---|
主體描述 | 描述畫面中原本存在的人或物 | 必填 | 一位年輕女性身著紅色中式長衫... |
背景描述 | 描述畫面中主體所處的環境 | 必填 | 背景是被綠色的藤蔓覆蓋的磚牆... |
觸發詞 | 一個無實際意義的稀有詞彙 | 推薦填寫 | s86b5p 或 m01aa |
風格描述 | 詳細描述靶心圖表像的藝術風格和畫面特徵 | 推薦填寫 | 採用扁平化插畫風格,以簡潔流暢的線條、鮮明平塗色彩突出主體立體感與現代設計感。 |
使用驗證集評估模型
指定驗證集
微調任務必須包含訓練集,驗證集則是可選項。您可以選擇由系統自動劃分或手動上傳驗證集,具體指定方式如下:
方式一:未上傳驗證集(系統自動劃分)
在建立微調任務時,如果沒有單獨上傳驗證集(即未傳入validation_datasets參數),系統將根據split從訓練集劃分驗證集,預設 0.9。即 90% 用於訓練,10% 用作驗證。
方式二:主動上傳驗證集(通過 validation_datasets 指定)
如果您希望使用一套自己準備的資料來評估Checkpoint,而不是依賴系統隨機劃分,可以上傳自訂驗證集。
注意:一旦選擇主動上傳,系統將完全忽略上述自動劃分規則,僅使用您上傳的資料進行驗證。
挑選最佳Checkpoint進行部署
在訓練過程中,系統會定期儲存模型的"快照"(即 Checkpoint)。預設情況下,系統會輸出最後一個Checkpoint作為最終的微調模型。但中間過程產出的Checkpoint效果可能優於最終版本,您可以從中挑選出最滿意的一個進行部署。
系統將按照超參數eval_steps設定的間隔,在驗證集上運行Checkpoint並產生預覽映像。
- 如何評估:通過直接觀察產生的預覽映像來判斷效果。
- 挑選標準:找到效果最好、且風格最貼合的那個 Checkpoint 。
操作步驟
步驟1:查看Checkpoint產生的預覽效果
步驟1.1 查詢已通過驗證的Checkpoint列表
該介面僅返回通過驗證集驗證、且成功產生預覽映像的 Checkpoint,驗證失敗的不會列出。
請求樣本<替換為微調任務job_id>:完整替換為建立微調任務介面的輸出參數job_id。
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/fine-tunes/<替換為微調任務job_id>/validation-results' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json'
響應樣本此介面返回一個僅包含成功通過驗證的Checkpoint名稱的列表。
{
"request_id": "da1310f5-5a21-4e29-99d4-xxxxxx",
"output": [
{
"checkpoint": "checkpoint-160"
},
...
]
}
步驟1.2 查詢Checkpoint對應的驗證集結果
從上一步返回的 Checkpoint 列表中選擇一個(例如"checkpoint-160"),查看其產生的映像效果。
請求樣本<替換為微調任務job_id>: 完整替換為建立微調任務輸出參數job_id的值。<替換為待匯出的checkpoint>:完整替換為checkpoint的值,例如"checkpoint-160"。
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/fine-tunes/<替換為微調任務job_id>/validation-details/<替換為選擇的checkpoint>?page_no=1&page_size=10' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
響應樣本預覽映像URL為img_path,有效期間為24小時,請及時下載映像並查看效果。重複此步驟,比較多個Checkpoint的效果,找出最滿意的一個。
{
"request_id": "375b3ad0-d3fa-451f-b629-xxxxxxx",
"output": {
"page_no": 1,
"page_size": 10,
"total": 5,
"list": [
{
"img_path": "https://finetune-result.oss-cn-wulanchabu.aliyuncs.com/xxx.png?Expires=xxxxxx",
"prompt": "s86b5p, Change the background to an elevator equipped with a white ceiling lighting, featuring large floor-to-ceiling windows. Change the character's clothing to red tight-fitting mech armor with black stripe decorations.",
"input_img": "https://finetune-result.oss-cn-wulanchabu.aliyuncs.com/val_dataset/input_001.png?Expires=xxxxxx"
},
...
]
}
}
步驟2:匯出Checkpoint,並擷取待部署的模型名稱
步驟2.1 匯出模型
假設"checkpoint-160"的效果最佳,接下來是將其匯出。
請求樣本<替換為微調任務job_id>: 完整替換為建立微調任務輸出參數job_id的值。<替換為待匯出的checkpoint>:完整替換為checkpoint的值,例如"checkpoint-160"。<替換為控制台展示的匯出模型名稱>:完整替換為自訂的模型名稱,僅用於控制台展示,例如"wan2.5-checkpoint-160"。該名稱必須全域唯一,不支援重複名稱多次匯出,參數填寫請參見匯出Checkpoint。
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/fine-tunes/<替換為微調任務job_id>/export/<替換為待匯出的checkpoint>?model_name=<替換為控制台展示的匯出模型名稱>' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
響應樣本響應參數output=true,表示匯出請求已成功建立。
{
"request_id": "0817d1ed-b6b6-4383-9650-xxxxx",
"output": true
}
步驟2.2 查詢部署後的新模型名稱
查詢所有Checkpoint的狀態,確認匯出已完成,並擷取它專屬的、用於部署的新模型名稱(model_name)。
<替換為微調任務job_id>:完整替換為建立微調任務輸出參數job_id的值。
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/fine-tunes/<替換為微調任務job_id>/checkpoints' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
響應樣本在返回列表中定位匯出的 Checkpoint(如 checkpoint-160)。當其 status 變為 SUCCEEDED 時,表示匯出成功;此時返回的 model_name 欄位即為匯出後的新模型名稱。
{
"request_id": "b0e33c6e-404b-4524-87ac-xxxxxx",
"output": [
...,
{
"create_time": "2025-11-11T13:27:29",
"full_name": "ft-202511111122-496e:checkpoint-160",
"job_id": "ft-202511111122-496e",
"checkpoint": "checkpoint-160",
"model_name": "xxxx-ft-202511111122-xxxx-c160", // 重要欄位,將用於模型部署和調用
"model_display_name": "xxxx-ft-202511111122-xxxx",
"status": "SUCCEEDED" // 成功匯出的checkpoint
},
...
]
}
步驟3:部署並調用模型
在成功匯出 Checkpoint 並擷取 model_name 後,請按照以下步驟執行後續操作:
-
模型部署:在輸入參數
model_name,填入匯出後擷取到的具體值。 -
模型調用:參照介面說明,調用已部署模型,詳情請參見萬相-映像產生與編輯2.7。
當前部署後的映像模型僅支援非同步呼叫,且返迴響應的
message.content中無type欄位。
計費說明
-
模型訓練:收費。詳情請參見模型訓練計費。
- 費用 = 訓練 Tokens 總量 × 單價。
- 訓練結束後,在查詢微調任務狀態介面
usage欄位查看訓練消耗的總 Token 數。
下表列出了wan2.7-image、wan2.7-image-pro不同組建類型訓練中常見訓練步數及預估費用。該資料僅供參考,實際訓練效果請以最終交付為準,費用請以正式賬單為準。詳細計費公式請參見模型訓練計費。
generation_type
圖片解析度
常見Step步數
Token消耗預估
費用預估
t2i(文生圖)
1K
500
6,400,000
$96
1000
12,800,000
$192
2000
25,600,000
$384
2K
500
11,610,000
$174.15
1000
23,220,000
$348.3
2000
46,440,000
$696.6
i2i(圖生圖)
1K
500
11,610,000
$174.15
1000
23,220,000
$348.3
2000
46,440,000
$696.6
2K
500
16,000,000
$240
1000
32,000,000
$480
2000
64,000,000
$960
-
模型部署與調用:部署免費,調用按微調的基本模型的標準調用價格計費。
模型名稱
Lora部署調用價格
wan2.7-image-pro
$0.075/張
wan2.7-image
$0.03/張
API文檔
常見問題
Q:如何設計一個好的觸發詞?
A: 規則如下:
- 推薦使用無實際語義的稀有字元組合,如 s86b5p、m01aa、EVEAven638123。確保在基模詞表中無語義含義。
- 避免使用常用英語單詞(如 beautiful, fire, dance),否則會汙染模型原本對這些詞的理解。




