Saat menggunakan Wan untuk image generation , jika Text-to-video/image-to-video prompt guide tidak dapat memenuhi kebutuhan kustomisasi Anda untuk gaya tertentu, karakter IP, atau efek visual , gunakan model fine-tuning .
Scope
-
Supported region: Dokumen ini hanya berlaku untuk wilayah Singapura. Anda harus menggunakan API key dari wilayah ini.
-
Supported fine-tuning method: Fine-tuning efisien SFT-LoRA.
-
Supported models:
- Image generation (text-to-image/image-to-image): wan2.7-image-pro, wan2.7-image.
How to fine-tune a model
Text-to-image
Fine-tuning objective: Train a character LoRA model.
Hasil yang diharapkan: Diberikan prompt teks, model menghasilkan gambar karakter tertentu dalam adegan yang dijelaskan oleh prompt tersebut.
| Input prompt A person in a crowded morning rush hour subway car, holding onto the handrail, with blurred passengers in the background and tunnel lights visible through the windows, wearing an ordinary office worker white shirt and black trousers, standing facing the camera, half-body shot, realistic candid feel. | Output image (before fine-tuning - text-to-image)![]()
| Output image (after fine-tuning)![]()
|
Image-to-image
Fine-tuning objective: Train a "post-apocalyptic red-black mech armor" LoRA model.
Hasil yang diharapkan: Diberikan gambar karakter, model menghasilkan versi bergaya "post-apocalyptic red-black mech armor" dari karakter tersebut tanpa memerlukan prompt teks.
Input image![]() | Output image (before fine-tuning)![]()
| Output image (after fine-tuning)![]()
|
Sebelum menjalankan kode berikut, Dapatkan kunci API dan Konfigurasikan kunci API sebagai variabel lingkungan.
Step 1: Upload the dataset
Unggah dataset lokal Anda (dalam format .zip) ke platform Alibaba Cloud Model Studio dan peroleh ID file (id).
Data pelatihan contoh: Untuk formatnya, lihat Training set.
- Image generation - text-to-image: wan-image-t2i-training-dataset.zip
- Image generation - image-to-image: wan-image-i2i-training-dataset.zip
Contoh ini menggunakan text-to-image dan hanya mengunggah set pelatihan. Sistem secara otomatis membagi sebagian dari set pelatihan sebagai set validasi.
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"'
Response example
Simpan id. Ini adalah pengidentifikasi unik untuk dataset yang diunggah.
{
"id": "file-ft-3c67043a747c-xxxxxx",
"object": "file",
"bytes": 73310369,
"filename": "wan-image-t2i-training-dataset.zip",
"purpose": "fine-tune",
"status": "processed",
"created_at": 1782271893
}
Step 2: Fine-tune the model
Step 2.1: Create a fine-tuning job
Gunakan ID file dari Langkah 1 untuk memulai pekerjaan pelatihan.
Request exampleGanti <replace_with_training_dataset_file_id> dengan id yang diperoleh pada langkah sebelumnya. Untuk referensi parameter lengkap dan batasan format, lihat Hyperparameters.
Hyperparameters
Parameter | Type | Required | Description | Recommended value |
|---|---|---|---|---|
max_steps | int | Yes | Total training steps. Parameter inti yang menentukan jumlah total iterasi pelatihan. Kami merekomendasikan minimal 500 langkah untuk memastikan konvergensi model, dan nilai yang lebih tinggi untuk dataset yang lebih besar. | 800 |
eval_steps | int | Yes | Validation interval. Nilainya harus ≥ 0. Menentukan frekuensi (dalam langkah) evaluasi model selama pelatihan. Checkpoint juga disimpan pada setiap interval tersebut. | 200 |
learning_rate | float | Yes | tingkat pembelajaran. Mengontrol besarnya pembaruan bobot model. Nilai yang terlalu tinggi dapat menurunkan performa model, sedangkan nilai yang terlalu rendah mungkin menghasilkan perubahan yang tidak signifikan. Kami merekomendasikan menggunakan nilai default. | 3e-5 |
generation_type | string | Yes | generation mode. Gunakan | t2i |
max_pixels | string | Yes | Maximum resolution for training images. Misalnya, "1k" atau "2k" (1K = 1024×1024, 2K = 2048×2048). Menetapkan batas atas jumlah total piksel (lebar × tinggi) untuk gambar dalam set pelatihan. Sistem hanya mengecilkan gambar yang melebihi nilai ini; gambar di bawah batas tetap tidak berubah. Kami merekomendasikan menjaga konsistensi tiga parameter terkait resolusi ( | text-to-image: "2k" |
val_img_size | string | Yes | Validation image generation resolution. Misalnya, "1k" atau "2k" (1K = 1024×1024, 2K = 2048×2048). Resolusi target untuk gambar yang dihasilkan selama evaluasi validasi. | text-to-image: "2k" |
max_token_length | string | Yes | Maximum token length per step. Misalnya, "1k" atau "2k". Parameter ini, bersama dengan | text-to-image: "2k" |
gradient_clip | float | Yes | pemotongan gradien. Ambang batas untuk pemotongan norma gradien global di semua parameter yang dapat dilatih, digunakan untuk mencegah gradien meledak. Atur ke -1 untuk menonaktifkan pemotongan. | 0.5 |
weight_decay | float | Yes | weight decay. Koefisien weight decay terpisah untuk pengoptimal AdamW. Berlaku untuk semua parameter yang dapat dilatih dan digunakan untuk regularisasi guna mencegah overfitting. | 0.02 |
lora_rank | int | Yes | LoRA rank. Rank (dimensi) matriks low-rank LoRA. Nilai ini menentukan jumlah parameter yang dapat dilatih untuk fine-tuning. Nilai yang lebih besar meningkatkan kemampuan fitting model tetapi memperlambat pelatihan. Nilainya harus merupakan pangkat dari 2 (misalnya, 16, 32, 64). | 32 |
save_total_limit | int | No | Checkpoint save limit. Jumlah maksimum checkpoint model yang disimpan. Sistem hanya menyimpan N checkpoint terbaru, di mana N adalah nilai ini. | 10 |
split | float | No | Training set split ratio. Rentang nilainya (0, 1). Parameter ini hanya berlaku jika | 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": "<replace_with_training_dataset_file_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
}
}'
CatatanReferensi durasi pelatihan:
- Text-to-image (t2i): sekitar 77 menit untuk 300 langkah.
- Image-to-image (i2i): sekitar 110 menit untuk 300 langkah.
Perhatikan tiga parameter kunci dalam bidang output:
job_id: ID pekerjaan, digunakan untuk menanyakan progres.finetuned_output: Nama model hasil fine-tuning. Anda harus menggunakan nama ini untuk penerapan dan pemanggilan selanjutnya.status: Status pelatihan. Setelah membuat pekerjaan fine-tuning, status awalnya adalah PENDING, yang menunjukkan bahwa pelatihan belum dimulai.
{
...
"output": {
"job_id": "ft-202511111122-xxxx",
"status": "PENDING",
"finetuned_output": "xxxx-ft-202511111122-xxxx",
...
}
}
Step 2.2: Query the fine-tuning job status
Gunakan job_id yang diperoleh pada Langkah 2.1 untuk menanyakan progres pekerjaan. Poll API berikut hingga status berubah menjadi SUCCEEDED.
Ganti <replace_with_fine_tuning_job_id> dalam URL dengan nilai job_id.
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/fine-tunes/<replace_with_fine_tuning_job_id>' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json'
Response example
Perhatikan dua parameter dalam bidang output:
status: Ketika nilainya berubah menjadi SUCCEEDED, pelatihan model selesai dan Anda dapat melanjutkan ke penerapan model.usage: Jumlah total token yang dikonsumsi selama pelatihan model, digunakan untuk penagihan.
{
...
"output": {
"job_id": "ft-202511111122-xxxx",
"status": "SUCCEEDED",
"usage": 432000,
...
}
}
Step 3: Deploy the fine-tuned model
Step 3.1: Deploy the model as an online service
Setelah status pekerjaan fine-tuning berubah menjadi SUCCEEDED, terapkan model sebagai layanan online.
Request exampleGanti <replace_with_model_name> dengan nilai finetuned_output dari output Create a fine-tuning job.
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/deployments' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model_name": "<replace_with_model_name>",
"capacity": 1,
"plan": "lora"
}'
Response example
Perhatikan dua parameter dalam bidang output:
deployed_model: Nama model yang diterapkan, digunakan untuk menanyakan status penerapan dan memanggil model.status: Status penerapan model. Setelah menerapkan model hasil fine-tuning, status awalnya adalah PENDING, yang menunjukkan bahwa penerapan belum dimulai.
{
...
"output": {
"deployed_model": "wan2.7-image-pro-xxxxxxxxxxxx",
"status": "PENDING",
...
}
}
Step 3.2: Query the deployment status
Tanyakan status penerapan. Poll API berikut hingga status berubah menjadi RUNNING.
CatatanUntuk model hasil fine-tuning dalam contoh ini, proses penerapan memakan waktu sekitar 5–10 menit.
Ganti <replace_with_deployed_model> dengan nilai deployed_model dari output Langkah 3.1.
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/deployments/<replace_with_deployed_model>' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json'
Response example
Perhatikan dua parameter dalam bidang output:
status: Ketika status berubah menjadi RUNNING, model telah berhasil diterapkan dan Anda dapat mulai memanggilnya.deployed_model: Nama model yang diterapkan.
{
...
"output": {
"status": "RUNNING",
"deployed_model": "wan2.7-image-pro-xxxxxxxxxxxx",
...
}
}
Step 4: Invoke the model to generate images
Setelah model berhasil diterapkan (status penerapan status adalah RUNNING), Anda dapat mulai melakukan pemanggilan.
CatatanModel yang saat ini diterapkan hanya mendukung panggilan asinkron, dan tidak ada bidang type dalam message.content.
Step 4.1: Create an image generation task and obtain the task_id
Ganti <replace_with_deployed_model> dengan nilai deployed_model dari langkah sebelumnya.
Text-to-image
Berikan deskripsi teks yang berisi kata pemicu. Model menghasilkan gambar yang sesuai dengan gaya yang dilatih.
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": "<replace_with_deployed_model>",
"input": {
"messages": [
{
"role": "user",
"content": [
{"text": "s86b5p, A person in a crowded morning rush hour subway car, holding onto the handrail, with blurred passengers in the background and tunnel lights visible through the windows, wearing an ordinary office worker white shirt and black trousers, standing facing the camera, half-body shot, realistic candid feel."}
]
}
]
},
"parameters": {
"size": "2K",
"n": 1
}
}'
Image-to-image
Berikan gambar referensi dan instruksi pengeditan. Model menghasilkan gambar berdasarkan gambar referensi dalam gaya yang dilatih.
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": "<replace_with_deployed_model>",
"input": {
"messages": [
{
"role": "user",
"content": [
{"image": "<replace_with_reference_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
}
}'
Salin dan simpan task_id untuk menanyakan hasil pada langkah berikutnya.
{
"request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx",
"output": {
"task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx",
"task_status": "PENDING"
}
}
Input parametersCatatanSaat memanggil model LoRA hasil fine-tuning, parameter input sama dengan parameter untuk Wan2.7 - image generation and editing.
Tabel berikut hanya mencantumkan parameter kunci untuk pemanggilan model LoRA.
Field | Type | Required | Description | Example |
|---|---|---|---|---|
model | string | Yes | Nama model. Anda harus menggunakan model hasil fine-tuning yang telah berhasil diterapkan dengan status RUNNING. | wan2.7-image-pro-xxxxxxxxxxxx |
input.messages[].content[].text | string | Yes | Prompt teks. Kami merekomendasikan menyertakan kata pemicu untuk mengaktifkan gaya LoRA. | s86b5p, A person in a quiet private library on a peaceful afternoon... |
parameters.size | string | No | Resolusi gambar output.
| 2K |
parameters.n | integer | No | Jumlah gambar yang dihasilkan. Nilai valid: 1-4. Default: 1. | 1 |
Step 4.2: Query results by task_id
Poll status tugas menggunakan task_id hingga task_status berubah menjadi SUCCEEDED. Ambil URL gambar dari output.choices[].message.content[].image.
Ganti
86ecf553-d340-4e21-xxxxxxxxxdengan task_id Anda yang sebenarnya.
curl -X GET https://dashscope-intl.aliyuncs.com/api/v1/tasks/86ecf553-d340-4e21-xxxxxxxxx \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Response exampleURL gambar berlaku selama 24 jam. Unduh gambar segera.
{
"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
}
}
Build custom datasets
Selain menggunakan data contoh dalam dokumen ini untuk mencoba alur kerja fine-tuning, Anda juga dapat membuat dataset sendiri untuk fine-tuning.
Dataset harus berisi set pelatihan (wajib) dan set validasi (opsional; mendukung pemisahan otomatis dari set pelatihan). Kemas semua file dalam format .zip. Nama file hanya boleh berisi karakter Inggris, angka, garis bawah, atau tanda hubung.
Dataset format
Training set: Required
Text-to-image
Set pelatihan mencakup gambar target pelatihan dan file anotasi (data.jsonl).
- Contoh set pelatihan: wan-image-t2i-training-dataset.zip
- Struktur direktori paket zip:
wan-image-t2i-training-dataset.zip
├── data.jsonl # Harus bernama data.jsonl, maksimum 20MB
├── 1_0.png # Gambar target pelatihan, resolusi maks 4096*4096, maks 20MB per gambar, mendukung PNG/JPG/JPEG/WEBP/BMP
├── 1_1.png # Nama file hanya mendukung karakter Inggris, struktur datar (tanpa subdirektori)
└── 1_2.png
- File anotasi (data.jsonl): Setiap baris merepresentasikan satu sampel pelatihan dan harus berupa objek JSON.
{
"prompt": "s86b5p, A person in a quiet private library on a peaceful afternoon, with tall dark walnut bookshelves behind them, sunlight streaming through venetian blinds casting striped shadows, wearing a soft beige cable-knit sweater, standing facing the camera, half-body shot, the image has a delicate film grain texture.",
"img_path": "./1_0.png"
}
Image-to-image
Set pelatihan mencakup gambar referensi (input), gambar target pelatihan (output), dan file anotasi (data.jsonl).
- Contoh set pelatihan: wan-image-i2i-training-dataset.zip
- Struktur direktori paket zip:
wan-image-i2i-training-dataset.zip
├── data.jsonl # Harus bernama data.jsonl, maksimum 20MB
├── 1_0.jpg # Gambar target pelatihan (output)
├── 1_1.jpg # Gambar referensi (input)
├── 6_0.jpg # Gambar target pelatihan (output)
└── 6_1.jpg # Gambar referensi (input)
- File anotasi (data.jsonl): Setiap baris merepresentasikan satu sampel pelatihan dan harus berupa objek 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"
}
Multi-image-to-image
Set pelatihan mencakup beberapa gambar referensi (input), gambar target pelatihan (output), dan file anotasi (data.jsonl). Berbeda dengan image-to-image tunggal, multi-image-to-image mendukung input beberapa gambar referensi secara simultan (misalnya, foto karakter + gambar pose, hingga 9 gambar referensi). Model menghasilkan gambar target berdasarkan informasi gabungan dari semua gambar referensi.
- Contoh set pelatihan:
- Struktur direktori paket zip:
wan-image-multi-i2i-training-dataset.zip
├── data.jsonl # Harus bernama data.jsonl, maksimum 20MB
├── 1_0.jpg # Gambar target pelatihan (output)
├── 1_ref.jpg # Gambar referensi 1 (misalnya, foto karakter)
├── 1_pose.jpg # Gambar referensi 2 (misalnya, gambar pose)
├── 6_0.jpg # Gambar target pelatihan (output)
├── 6_ref.jpg # Gambar referensi 1
└── 6_pose.jpg # Gambar referensi 2
- File anotasi (data.jsonl): Setiap baris merepresentasikan satu sampel pelatihan dan harus berupa objek JSON. Gunakan bidang
input_imgs(tipe array) untuk meneruskan beberapa jalur gambar referensi.
{
"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"
}
Catatan
- Multi-image-to-image menggunakan
input_imgs(array), sedangkan image-to-image tunggal menggunakaninput_img(string). Harap perhatikan perbedaannya. - Urutan gambar dalam array
input_imgsharus konsisten dengan tujuan pelatihan (misalnya, gambar pertama sebagai referensi karakter, yang kedua sebagai referensi pose). input_imgsmendukung hingga 9 gambar referensi.
Catatan
- data.jsonl harus dalam format JSONL berbasis baris (satu objek JSON independen per baris). Menggunakan format array JSON (di mana karakter pertama file adalah
[) tidak diperbolehkan. - File dalam paket zip harus ditempatkan dalam struktur datar. Subdirektori tidak diperbolehkan. Nama file hanya mendukung karakter Inggris (karakter Cina, spasi, dan karakter khusus tidak diperbolehkan).
Validation set: Optional
Set validasi mencakup file anotasi (data.jsonl) dan gambar referensi opsional (wajib untuk mode image-to-image). Gambar target tidak diperlukan. Pada setiap checkpoint evaluasi, pekerjaan pelatihan secara otomatis memanggil layanan model untuk menghasilkan gambar pratinjau menggunakan prompt (dan gambar referensi) dari set validasi.
-
Set validasi:
- Text-to-image: wan-image-t2i-valid-dataset.zip
- Image-to-image: wan-image-i2i-valid-dataset.zip
-
Struktur direktori paket zip:
wan-image-i2i-valid-dataset.zip
├── data.jsonl # Harus bernama data.jsonl, maksimum 20MB
├── input_001.png # Opsional, gambar referensi untuk mode image-to-image
└── input_002.png
-
File anotasi (data.jsonl): Setiap baris merepresentasikan satu sampel validasi dan harus berupa objek JSON.
Text-to-image
{ "prompt": "s86b5p, A person in a crowded morning rush hour subway car, holding onto the handrail, with blurred passengers in the background and tunnel lights visible through the windows, wearing an ordinary office worker white shirt and black trousers, standing facing the camera, half-body shot, realistic candid feel." }Image-to-image
{ "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" }Multi-image-to-image
Set validasi multi-image-to-image menggunakan
input_imgs(array) untuk meneruskan beberapa jalur gambar referensi, mendukung hingga 9 gambar.{ "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"] }
Data scale and limits
-
Data volume: Kami merekomendasikan menyediakan minimal 25 gambar (50 atau lebih direkomendasikan untuk hasil yang lebih baik). Gunakan karakter atau gaya yang sama di berbagai adegan dan sudut pandang dengan deskripsi konten yang konsisten.
-
Zip package: Saat mengunggah melalui API, ukuran total paket tidak boleh lebih dari 1 GB.
-
Training image requirements:
- Format gambar yang didukung: BMP, JPEG, PNG, dan WEBP.
- Resolusi gambar tidak boleh lebih dari 4096×4096.
- Ukuran file gambar individual tidak boleh lebih dari 20 MB.
Data collection and cleaning
1. Determine the fine-tuning scenario
Wan mendukung skenario fine-tuning berikut untuk image generation:
- IP character stylization: Latih model untuk mempelajari gaya menggambar karakter IP tertentu, seperti karakter anime atau gambar maskot.
- Fixed visual style: Tingkatkan kemampuan model untuk mereproduksi gaya seni tertentu, seperti ilustrasi datar, lukisan tinta, atau seni piksel.
- Specific scene generation: Replikasi pola komposisi atau templat adegan tertentu, seperti gambar tampilan produk atau tata letak poster.
2. Obtain raw materials
- Generasi AI dan seleksi: Gunakan model dasar Wan untuk menghasilkan gambar secara massal, lalu pilih secara manual sampel berkualitas tinggi yang paling sesuai dengan efek target. Ini adalah metode yang paling umum digunakan.
- Fotografi nyata: Jika tujuan Anda adalah mencapai adegan yang sangat realistis (seperti foto produk nyata atau fotografi potret), menggunakan rekaman hasil jepretan nyata adalah pilihan terbaik.
- Rendering perangkat lunak 3D: Untuk adegan yang memerlukan kontrol detail halus atau gaya rendering 3D, kami merekomendasikan menggunakan perangkat lunak 3D (seperti Blender atau C4D) untuk membuat materi sumber.
3. Clean the data
Dimension | Best practice | Anti-pattern |
|---|---|---|
Consistency | Fitur inti harus sangat konsisten. Contoh: Saat melatih "gaya ilustrasi datar", semua gambar harus memiliki ketebalan garis dan skema warna yang sama. | Gaya campuran. Dataset berisi gambar bergaya impasto dan bergaya datar. Model tidak dapat menentukan gaya mana yang harus dipelajari. |
Diversity | Semakin beragam subjek dan adegan, semakin baik. Cakup berbagai subjek (pria, wanita, lansia, anak-anak, kucing, anjing, bangunan) dan komposisi berbeda (shot panjang, close-up, extreme close-up). Resolusi dan rasio aspek juga harus bervariasi sebanyak mungkin. | Adegan atau subjek tunggal. Semua gambar menunjukkan "seseorang berpakaian merah di depan dinding putih". Model mungkin salah mengira bahwa "pakaian merah" dan "dinding putih" adalah bagian dari gaya, dan gagal menghasilkan dengan benar di adegan berbeda. |
Balance | Proporsi seimbang di seluruh jenis data. Jika beberapa gaya disertakan, jumlahnya harus kira-kira sama. | Proporsi sangat tidak seimbang. 90% adalah gambar potret dan 10% adalah gambar lanskap. Model mungkin berkinerja buruk saat menghasilkan gambar lanskap. |
Cleanliness | Gambar bersih dan jelas. Gunakan materi asli tanpa gangguan. | Berisi elemen gangguan. Gambar berisi watermark, batas hitam jelas, atau noise. Model mungkin mempelajari watermark sebagai bagian dari gaya. |
Resolution | Resolusi moderat. Kami merekomendasikan resolusi gambar pelatihan tidak melebihi 2048×2048. Gambar yang terlalu besar meningkatkan waktu pelatihan. | Resolusi bervariasi terlalu lebar. Memiliki gambar kecil 256×256 dan gambar besar 4096×4096 dalam set pelatihan memengaruhi stabilitas pelatihan. |
Image annotation: Writing prompts for images
Dalam file anotasi dataset (data.jsonl), setiap gambar memiliki prompt yang sesuai. Prompt tersebut menggambarkan konten gambar target. Kualitas prompt secara langsung menentukan apa yang dipelajari model.
Prompt writing formula
Prompt = [Subject description] + [Background description] + [Trigger word] + [Style description]Prompt component | Description | Recommendation | Example |
|---|---|---|---|
Subject description | Menggambarkan orang atau objek dalam gambar | Wajib | A young woman wearing a red Chinese-style long shirt... |
Background description | Menggambarkan lingkungan tempat subjek berada | Wajib | The background is a brick wall covered with green vines... |
Trigger word | Kata langka yang tidak memiliki makna sebenarnya | Direkomendasikan | s86b5p atau m01aa |
Style description | Menggambarkan gaya seni dan karakteristik visual gambar target secara detail | Direkomendasikan | Rendered in flat illustration style with clean flowing lines and vivid flat colors to emphasize three-dimensionality and modern design aesthetics. |
Evaluate models with validation sets
Specify the validation set
Pekerjaan fine-tuning harus mencakup set pelatihan, sedangkan set validasi opsional. Anda dapat memilih agar sistem secara otomatis membagi atau mengunggah secara manual set validasi. Metode spesifiknya sebagai berikut:
Metode 1: Tidak mengunggah set validasi (pembagian otomatis sistem)
Saat Video and image generation model fine-tuning API, jika tidak mengunggah set validasi secara terpisah (yaitu, parameter validation_file_ids tidak diberikan), sistem membagi set validasi dari set pelatihan berdasarkan split, yang default-nya 0,9. Artinya, 90% digunakan untuk pelatihan dan 10% untuk validasi.
Metode 2: Mengunggah set validasi secara manual (ditentukan melalui validation_file_ids)
Jika Anda ingin menggunakan data yang telah Anda siapkan sendiri untuk mengevaluasi checkpoint alih-alih mengandalkan pembagian acak sistem, Anda dapat mengunggah set validasi kustom.
Catatan: Setelah Anda memilih untuk mengunggah secara manual, sistem sepenuhnya mengabaikan aturan pembagian otomatis di atas dan hanya menggunakan data yang Anda unggah untuk validasi.
Select the best checkpoint for deployment
Selama pelatihan, sistem secara berkala menyimpan "snapshot" model (yaitu, checkpoint). Secara default, sistem mengeluarkan checkpoint terakhir sebagai model hasil fine-tuning akhir. Namun, checkpoint yang dihasilkan selama tahap antara mungkin berkinerja lebih baik daripada versi akhir. Anda dapat memilih yang paling memuaskan untuk diterapkan.
Sistem menjalankan checkpoint pada set validasi dan menghasilkan gambar pratinjau pada interval yang ditetapkan oleh Hyperparameters (hyper_parameters) eval_steps.
- Cara mengevaluasi: Nilai hasilnya dengan langsung mengamati gambar pratinjau yang dihasilkan.
- Kriteria seleksi: Temukan checkpoint dengan hasil terbaik dan gaya yang paling sesuai.
Procedure
Langkah 1: Lihat hasil pratinjau yang dihasilkan oleh checkpoint
Langkah 1.1: Tanyakan daftar checkpoint yang telah divalidasi
API ini hanya mengembalikan checkpoint yang telah lulus validasi dan berhasil menghasilkan gambar pratinjau. Checkpoint yang gagal validasi tidak tercantum.
Request example<replace_with_fine_tuning_job_id>: Ganti sepenuhnya dengan parameter outputjob_iddari Video and image generation model fine-tuning API.
curl --location 'https://dashscope.aliyuncs.com/api/v1/fine-tunes/<replace_with_fine_tuning_job_id>/validation-results' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json'
Response exampleAPI ini mengembalikan daftar yang hanya berisi nama checkpoint yang berhasil lulus validasi.
{
"request_id": "da1310f5-5a21-4e29-99d4-xxxxxx",
"output": [
{
"checkpoint": "checkpoint-160"
},
...
]
}
Langkah 1.2: Tanyakan hasil set validasi untuk suatu checkpoint
Pilih checkpoint dari daftar yang dikembalikan pada langkah sebelumnya (misalnya, "checkpoint-160") dan lihat hasil gambar yang dihasilkan.
Request example<replace_with_fine_tuning_job_id>: Ganti sepenuhnya dengan nilaijob_iddari output Create a fine-tuning job.<replace_with_checkpoint_to_export>: Ganti sepenuhnya dengan nilai checkpoint, misalnya "checkpoint-160".
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/fine-tunes/<replace_with_fine_tuning_job_id>/validation-details/<replace_with_checkpoint_to_export>?page_no=1&page_size=10' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Response exampleURL gambar pratinjau berada di bidang img_path dan berlaku selama 24 jam. Unduh gambar segera untuk meninjau hasilnya. Ulangi langkah ini untuk membandingkan hasil beberapa checkpoint dan temukan yang paling memuaskan.
{
"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"
},
...
]
}
}
Langkah 2: Ekspor checkpoint dan peroleh nama model untuk penerapan
Langkah 2.1: Ekspor model
Asumsikan "checkpoint-160" memiliki hasil terbaik, langkah selanjutnya adalah mengekspornya.
Request example<replace_with_fine_tuning_job_id>: Ganti sepenuhnya dengan nilaijob_iddari output Create a fine-tuning job.<replace_with_checkpoint_to_export>: Ganti sepenuhnya dengan nilai checkpoint, misalnya "checkpoint-160".<replace_with_exported_model_display_name>: Ganti sepenuhnya dengan nama model kustom yang hanya digunakan untuk tampilan konsol, misalnya "wan2.5-checkpoint-160". Nama ini harus unik secara global. Mengekspor dengan nama duplikat tidak didukung. Untuk detail parameter, lihat 3. Export a checkpoint.
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/fine-tunes/<replace_with_fine_tuning_job_id>/export/<replace_with_checkpoint_to_export>?model_name=<replace_with_exported_model_display_name>' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Response exampleParameter respons output=true menunjukkan bahwa permintaan ekspor telah berhasil dibuat.
{
"request_id": "0817d1ed-b6b6-4383-9650-xxxxx",
"output": true
}
Langkah 2.2: Tanyakan nama model baru untuk penerapan
Tanyakan status semua checkpoint, pastikan ekspor selesai, dan peroleh nama model baru khusus (model_name) untuk penerapan.
<replace_with_fine_tuning_job_id>: Ganti sepenuhnya dengan nilaijob_iddari output Create a fine-tuning job.
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/fine-tunes/<replace_with_fine_tuning_job_id>/checkpoints' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Response exampleTemukan checkpoint yang diekspor (seperti checkpoint-160) dalam daftar yang dikembalikan. Ketika status-nya berubah menjadi SUCCEEDED, ekspor berhasil. Bidang model_name yang dikembalikan pada titik ini adalah nama model baru setelah ekspor.
{
"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", // Bidang penting, digunakan untuk penerapan dan pemanggilan model
"model_display_name": "xxxx-ft-202511111122-xxxx",
"status": "SUCCEEDED" // Checkpoint berhasil diekspor
},
...
]
}
Langkah 3: Terapkan dan panggil model
Setelah berhasil mengekspor checkpoint dan memperoleh model_name, ikuti langkah-langkah berikut untuk operasi selanjutnya:
- Model deployment: Isi parameter input
model_namedengan nilai spesifik yang diperoleh setelah ekspor. - Model invocation: Ikuti dokumentasi API untuk memanggil model yang diterapkan.
Billing
-
Model training: Charged.
- Biaya = Total token pelatihan × Harga satuan. Lihat Training and deployment pricing.
- Setelah pelatihan selesai, periksa jumlah total token yang dikonsumsi selama pelatihan dalam bidang
usagedari API Retrieve a fine-tuning job.
Tabel berikut mencantumkan jumlah langkah pelatihan dan perkiraan biaya untuk wan2.7-image, wan2.7-image-pro. Data ini hanya untuk referensi. Hasil pelatihan aktual mengikuti pengiriman akhir, dan biaya mengikuti tagihan resmi. Untuk rumus penagihan detail, lihat Training and deployment pricing.
generation_type
Image Resolution
Common Step Count
Estimated Token Consumption
Estimated Cost
t2i (text-to-image)
1K
500
6.400.000
$96
1.000
12.800.000
$192
2.000
25.600.000
$384
2K
500
11.610.000
$174,15
1.000
23.220.000
$348,3
2.000
46.440.000
$696,6
i2i (image-to-image)
1K
500
11.610.000
$174,15
1.000
23.220.000
$348,3
2.000
46.440.000
$696,6
2K
500
16.000.000
$240
1.000
32.000.000
$480
2.000
64.000.000
$960
-
Model deployment and invocation: Penerapan gratis. Pemanggilan dikenai biaya sesuai tarif standar model dasar hasil fine-tuning.
Model ID
LoRA Deployment & Invocation Price
wan2.7-image-pro
$0,075/image
wan2.7-image
$0,03/image
API reference
Video and image generation model fine-tuning API
FAQ
Q: How do I design a good trigger word?
A: Aturannya sebagai berikut:
- Kami merekomendasikan menggunakan kombinasi karakter langka yang tidak memiliki makna semantik sebenarnya, seperti s86b5p, m01aa, atau EVEAven638123. Pastikan tidak ada makna semantik dalam kosakata model dasar.
- Hindari menggunakan kata bahasa Inggris umum (seperti beautiful, fire, atau dance), karena hal ini akan mencemari pemahaman asli model terhadap kata-kata tersebut.




