All Products
Search
Document Center

Alibaba Cloud Model Studio:Fine-tuning model pembuatan video

Last Updated:Sep 02, 2026

Saat menggunakan image-to-video , jika optimasi prompt atau pemanggilan efek video resmi tidak memenuhi kebutuhan kustom Anda untuk aksi, efek, atau gaya tertentu , gunakan model fine-tuning .

Ruang lingkup penerapan

  • Wilayah yang didukung: Fitur yang dijelaskan dalam dokumen ini hanya tersedia di wilayah Singapura. Anda harus menggunakan API key yang dibuat di wilayah ini.

  • Metode fine-tuning yang didukung: Fine-tuning SFT-LoRA efisien.

  • Model yang didukung untuk fine-tuning:

    • Image-to-video (berbasis frame pertama): wan2.7-i2v, wan2.6-i2v, wan2.5-i2v-preview, wan2.2-i2v-flash.
    • Image-to-video (berbasis frame pertama dan terakhir): wan2.2-kf2v-flash.

Cara melakukan fine-tuning model

Image-to-video (berbasis frame pertama)

Tujuan fine-tuning: Melatih model LoRA untuk efek hujan uang.

Hasil yang diharapkan: Masukkan gambar frame pertama—tanpa perlu prompt—dan model akan menghasilkan video dengan efek hujan uang.

Gambar input frame pertamaimage_3Video output (sebelum fine-tuning)

Anda tidak dapat menghasilkan efek hujan uang yang konsisten setiap kali menggunakan prompt. Gerakan tidak dapat dikontrol.

Video output (setelah fine-tuning)

Model yang telah difine-tune mereproduksi efek hujan uang spesifik dari dataset pelatihan tanpa memerlukan prompt.

Image-to-video (berbasis frame pertama dan terakhir)

Tujuan fine-tuning: Melatih model LoRA untuk efek majalah mode.

Hasil yang diharapkan: Masukkan gambar frame pertama dan frame terakhir—tanpa perlu prompt—dan model akan menghasilkan video dengan efek majalah mode.

Gambar input frame pertama3_firstGambar input frame terakhir3_lastVideo output (sebelum fine-tuning)

Anda tidak dapat menghasilkan efek majalah mode yang konsisten setiap kali menggunakan prompt. Gerakan tidak dapat dikontrol.

Video output (setelah fine-tuning)

Model yang telah difine-tune mereproduksi efek majalah mode spesifik dari training dataset tanpa memerlukan prompt.

Sebelum menjalankan kode di bawah, ambil API key dan API host Anda, lalu konfigurasikan API key tersebut.

Langkah 1: Unggah dataset Anda

Unggah dataset lokal Anda (dalam format .zip) ke Alibaba Cloud Model Studio dan catat ID file (id).

Contoh training dataset: Lihat training set untuk detail format.

Contoh Permintaan

Contoh ini menggunakan model image-to-video berbasis frame pertama. Cukup unggah training set; sistem akan secara otomatis membagi sebagian datanya sebagai validation set. Proses pengunggahan dataset memerlukan beberapa menit, tergantung pada ukuran file.

curl --location --request POST 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/files' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--form 'file=@"./wan-i2v-training-dataset.zip"' \
--form 'purpose="fine-tune"'
Contoh Respons

Simpan id. Ini adalah pengenal unik untuk dataset yang Anda unggah.

{
    "id": "file-ft-b2416bacc4d742xxxx",
    "object": "file",
    "bytes": 73310369,
    "filename": "wan-i2v-training-dataset.zip",
    "purpose": "fine-tune",
    "status": "processed",
    "created_at": 1766127125
}

Langkah 2: Fine-tune model

Langkah 2.1 Buat pekerjaan fine-tuning

Mulai pelatihan menggunakan ID file dari Langkah 1.

Contoh permintaan

Ganti <ganti dengan ID file dataset pelatihan> sepenuhnya dengan id dari langkah sebelumnya.

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-i2v",
    "training_file_ids": [
        "<your-training-dataset-file-id>"
    ],
    "training_type": "efficient_sft",
    "hyper_parameters": {
        "n_epochs": 50,
        "batch_size": 1,
        "learning_rate": 2e-5,
        "split": 0.9,
        "max_split_val_dataset_sample": 5,
        "eval_epochs": 20,
        "max_pixels": 102400,
        "save_total_limit": 10,
        "lora_rank": 32,
        "lora_alpha": 32
    }
}'
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.2-kf2v-flash",
    "training_file_ids": [
        "<your-training-dataset-file-id>"
    ],
    "training_type": "efficient_sft",
    "hyper_parameters": {
        "n_epochs": 50,
        "batch_size": 4,
        "learning_rate": 2e-5,
        "split": 0.9,
        "max_split_val_dataset_sample": 5,
        "eval_epochs": 20,
        "max_pixels": 262144,
        "save_total_limit": 10,
        "lora_rank": 32,
        "lora_alpha": 32
    }
}'
Hiperparameter

Field

Type

Required

Description

Recommended value

batch_size

int

Yes

Ukuran batch. Jumlah sampel data yang dikirim ke model untuk pelatihan sekaligus.

Parameter ini merupakan konfigurasi per-instans. Kami menyarankan menggunakan nilai default untuk setiap model. Jangan sesuaikan kecuali diperlukan.

  • wan2.7-i2v: Nilai yang direkomendasikan: 1.
  • wan2.6-i2v: Nilai yang direkomendasikan: 1.
  • wan2.5-i2v-preview: Nilai yang direkomendasikan: 4.
  • wan2.2-i2v-flash: Nilai yang direkomendasikan: 4.
  • wan2.2-kf2v-flash: Nilai yang direkomendasikan: 4.

Jumlah instans aktual yang berjalan untuk pekerjaan pelatihan ditentukan oleh penjadwalan platform. Global Step yang ditampilkan di log pelatihan mungkin berbeda dari hasil perkiraan, tetapi hal ini tidak mengubah jumlah total data pelatihan atau memengaruhi kinerja akhir model.

Tergantung model

n_epochs

int

Yes

Epoch pelatihan. steps = n_epochs x ceiling(ukuran dataset / batch_size). Total langkah harus >= 800.

Contoh: dataset memiliki 5 sampel, batch_size=4, langkah per epoch = ceiling(5/4) = 2, epoch minimum = 800/2 = 400.

Jumlah epoch pelatihan yang direkomendasikan menyesuaikan secara otomatis berdasarkan volume data. Data yang lebih sedikit memerlukan lebih banyak epoch untuk belajar secara cukup; data yang lebih banyak berarti setiap epoch berisi lebih banyak sampel, sehingga diperlukan lebih sedikit epoch. 50 epoch terutama cocok untuk dataset yang sangat kecil sekitar 2 sampel; ketika volume data mencapai 50–60 video, biasanya direkomendasikan untuk melatih sekitar 3000–5000 langkah.

50

learning_rate

float

Yes

Tingkat pembelajaran. Mengontrol besarnya pembaruan bobot model. Terlalu tinggi dapat menurunkan kualitas model; terlalu rendah dapat menghasilkan perubahan yang tidak signifikan.

2e-5

eval_epochs

int

Yes

Interval evaluasi. Nilai harus >= n_epochs/10. Menentukan berapa banyak epoch antara setiap evaluasi dan penyimpanan checkpoint.

20

max_pixels

int

Yes

Resolusi maksimum untuk video pelatihan (total piksel = lebar x tinggi). Sistem hanya menskalakan video yang melebihi nilai ini.

  • wan2.7-i2v: Direkomendasikan 102400. Rentang: 36864–123904.
  • wan2.6-i2v: Direkomendasikan 36864. Rentang: 16384–36864.
  • wan2.5-i2v-preview: Direkomendasikan 36864. Rentang: 16384–36864.
  • wan2.2-i2v-flash: Direkomendasikan 262144. Rentang: 65536–262144.
  • wan2.2-kf2v-flash: Direkomendasikan 262144. Rentang: 65536–262144.

Tergantung model

split

float

No

Rasio pemisahan training set. Rentang nilai: (0,1). Hanya berlaku saat validation_datasets tidak ditentukan.

0.9

max_split_val_dataset_sample

int

No

Jumlah maksimum sampel validasi dari pemisahan otomatis. Jumlah validasi = min(total x (1 - split), nilai ini).

5

save_total_limit

int

No

Jumlah maksimum checkpoint yang disimpan. Sistem hanya menyimpan N checkpoint terakhir.

10

lora_rank

int

No

Dimensi matriks low-rank LoRA. Nilai harus 2n (16/32/64).

32

lora_alpha

int

No

Koefisien penskalaan bobot LoRA. Nilai harus 2n (16/32/64).

32

Contoh respons

Periksa tiga parameter utama berikut di output:

  • job_id: ID pekerjaan. Gunakan untuk memeriksa progres.
  • finetuned_output: Nama model fine-tuned baru. Gunakan nama ini untuk deployment.
  • status: Status pelatihan. Setelah membuat pekerjaan, status awalnya adalah PENDING. Pelatihan belum dimulai.
{
    ...
    "output": {
        "job_id": "ft-202511111122-xxxx",
        "status": "PENDING",
        "finetuned_output": "xxxx-ft-202511111122-xxxx",
        ...
    }
}
Langkah 2.2 Periksa status pekerjaan fine-tuning

Gunakan job_id dari Langkah 2.1 untuk memeriksa progres. Poll endpoint ini hingga status menjadi SUCCEEDED.

CatatanPekerjaan fine-tuning ini memerlukan beberapa jam. Waktu tepatnya tergantung pada model. Harap bersabar.

Contoh permintaan

Ganti <ganti dengan job_id pekerjaan fine-tuning> di URL sepenuhnya dengan nilai job_id.

curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/fine-tunes/<your-job-id>' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json'
Contoh respons

Periksa dua parameter berikut di field output:

  • status: Ketika nilai ini menjadi SUCCEEDED, pelatihan selesai. Anda dapat menerapkan model.
  • usage: Total token yang digunakan untuk pelatihan. Digunakan untuk penagihan.
{
    ...
    "output": {
        "job_id": "ft-202511111122-xxxx",
        "status": "SUCCEEDED",
        "usage": 432000,
        ...
    }
}

Langkah 3: Terapkan model yang telah difine-tune

Langkah 3.1 Terapkan model sebagai layanan online

Setelah status pekerjaan fine-tuning berubah menjadi SUCCEEDED, terapkan model tersebut sebagai layanan online.

Contoh permintaan

Ganti <ganti dengan nama model model_name> sepenuhnya dengan nilai finetuned_output dari membuat pekerjaan fine-tuning.

curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/deployments' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model_name": "<your-model-name>",
    "aigc_config": {
        "use_input_prompt": false,
        "prompt": "Provide a video description based on the image content. The description must include the phrase “Then the s86b5p money rain effect begins, countless huge-sized US dollar bills (beige background/dark green patterns) pour down like a torrential rain, densely hitting and surrounding them. The bills continue to fall, while the camera slowly zooms in, they stretch their arms upward, neck slightly tilted back, expression surprised, completely immersed in this wild money rain.”\nOutput Template:\nThe video begins with a shot of [subject description]. [Environment description]. Then the s86b5p money rain effect begins, countless huge-sized US dollar bills (beige background/dark green patterns) pour down like a torrential rain, densely hitting and surrounding them. The bills continue to fall, while the camera slowly zooms in, they stretch their arms upward, neck slightly tilted back, expression surprised, completely immersed in this wild money rain.\nExample:\nThe video begins showing a young woman standing in front of a brick wall covered with ivy. She has long, smooth reddish-brown hair, wearing a white sleeveless dress, a shiny silver necklace, and a smile on her face. The brick wall in the background is covered with green vines, appearing rustic and natural. Then the s86b5p money rain effect begins, countless huge-sized US dollar bills (beige background/dark green patterns) pour down like a torrential rain, densely hitting and surrounding her. The bills continue to fall, while the camera slowly zooms in, she stretches her arms upward, neck slightly tilted back, expression surprised, completely immersed in this wild money rain.",
        "lora_prompt_default": "Then the s86b5p money rain effect begins, countless huge-sized US dollar bills (beige background/dark green patterns) pour down like a torrential rain, densely hitting and surrounding the main character. The bills continue to fall, while the camera slowly zooms in, the main character stretches their arms upward, neck slightly tilted back, with a surprised expression, completely immersed in this wild money rain."
    },
    "capacity": 1,
    "plan": "lora"
}'
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/deployments' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model_name": "<your-model-name>",
    "aigc_config": {
        "use_input_prompt": false,
        "prompt": "Provide a video description based on the image content. The description must include the phrase “Then they begin the s86b5p transformation.”\nOutput Template:\nThe video begins with a shot of [subject description]. [Environment description]. Then they begin the s86b5p transformation.\nExample:\nThe video begins with a young woman in an outdoor setting. She has short, curly dark brown hair and a friendly smile. She is wearing a black Polo shirt with colorful floral embroidery. The background features green vegetation and distant mountains. Then she begins the s86b5p transformation.",
        "lora_prompt_default": "Then they begin the s86b5p transformation."
    },
    "capacity": 1,
    "plan": "lora"
}'
Contoh respons

Periksa dua parameter berikut di output:

  • deployed_model: Nama model yang diterapkan. Gunakan untuk memeriksa status deployment dan memanggil model.
  • status: Status deployment. Setelah menerapkan model fine-tuned, status awalnya adalah PENDING, yang menandakan bahwa deployment belum dimulai.
{
    ...
    "output": {
        "deployed_model": "xxxx-ft-202511111122-xxxx",
        "status": "PENDING",
        ...
    }
}
Langkah 3.2 Periksa status deployment

Poll endpoint ini hingga status berubah menjadi RUNNING.

CatatanDeployment model fine-tuned ini memerlukan waktu sekitar 5–10 menit.

Contoh permintaan

Ganti <ganti dengan deployed_model> sepenuhnya dengan nilai deployed_model dari Langkah 3.1.

Contoh respons

Periksa dua parameter berikut di field output:

  • status: Ketika status berubah menjadi RUNNING, model berhasil diterapkan dan siap digunakan.
  • deployed_model: Nama model yang diterapkan.
{
    ...
    "output": {
        "status": "RUNNING",
        "deployed_model": "xxxx-ft-202511111122-xxxx",
        ...
    }
}

Langkah 4: Panggil model untuk menghasilkan video

Setelah deployment model berhasil (ketika status deployment adalah RUNNING), Anda dapat mulai memanggil model.

Langkah 4.1: Buat tugas pembuatan video dan dapatkan task_id

Contoh permintaan

Ganti <ganti dengan nama deployed_model> dengan nilai deployed_model yang dihasilkan dari langkah sebelumnya.

Image-to-video (berbasis frame pertama)

Hasil yang diharapkan: Masukkan gambar frame pertama. Tidak diperlukan prompt. Model secara otomatis menghasilkan video dengan "efek hujan uang" berdasarkan gambar tersebut.

Panggilan model Wan2.7

curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--header 'X-DashScope-Async: enable' \
--data '{
    "model": "<replace with deployed_model name>",
    "input": {
        "media": [
            {
                "type": "first_frame",
                "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/en-US/20251219/xmvyqn/lora.webp"
            }
        ]
    },
    "parameters": {
        "resolution": "720P",
        "prompt_extend": false
    }
}'

Pemanggilan model Wan2.6/Wan2.5/Wan2.2

curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--header 'X-DashScope-Async: enable' \
--data '{
    "model": "<replace with deployed_model name>",
    "input": {
        "img_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/en-US/20251219/xmvyqn/lora.webp"
    },
    "parameters": {
        "resolution": "720P",
        "prompt_extend": false
    }
}'
Contoh respons

Salin dan simpan task_id untuk menanyakan hasil pada langkah berikutnya.

{
    "output": {
        "task_status": "PENDING",
        "task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx"
    },
    "request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx"
}
Deskripsi parameter input

CatatanSaat memanggil model LoRA yang telah difine-tune, penggunaan parameter input model Wan2.7 sebagian besar sama seperti Wan2.7 - image-to-video. Untuk Wan2.6/Wan2.5/Wan2.2, lihat Wan - image-to-video - referensi API frame pertama (2.1-2.6).

Tabel di bawah hanya mencantumkan penggunaan atau batasan parameter khusus LoRA. Untuk parameter umum yang tidak tercantum di sini (seperti duration), lihat dokumentasi API.

Field

Type

Required

Description

Contoh nilai

model

string

Yes

Nama model.

Anda harus menggunakan model fine-tuned yang berhasil diterapkan dan memiliki status RUNNING.

xxxx-ft-202511111122-xxxx

input.prompt

string

No

Text prompt.

Apa parameter ini berlaku tergantung pada pengaturan aigc_config.use_input_prompt:

  • Jika use_input_prompt=true, parameter ini berlaku. Sistem menghasilkan video berdasarkan prompt ini.

  • Jika use_input_prompt=false, parameter ini diabaikan. Sistem menggunakan templat preset aigc_config.prompt untuk menghasilkan prompt secara otomatis.

-

parameters.resolution

string

No

Resolusi video yang dihasilkan.

Model wan2.2 dan wan2.5: 480P, 720P. Default adalah 720P.

Model wan2.6: 720P, 1080P. Default adalah 720P.

Model wan2.7: 720P, 1080P. Default adalah 1080P.

720P

parameters.prompt_extend

boolean

No

Aktifkan penulisan ulang prompt.

Saat memanggil model LoRA yang telah difine-tune, nonaktifkan ini. Atur ke false.

false

Image-to-video (berbasis frame pertama dan terakhir)

Hasil yang diharapkan: Masukkan gambar frame pertama dan gambar frame terakhir. Tidak diperlukan prompt. Model secara otomatis menghasilkan video dengan "efek majalah mode" berdasarkan gambar tersebut.

curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/image2video/video-synthesis' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--header 'X-DashScope-Async: enable' \
--data '{
    "model": "<replace with deployed_model name>",
    "input": {
        "first_frame_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260113/typemn/kf2v-first.webp",
        "last_frame_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260113/ekzmff/kf2v_last.webp"
    },
    "parameters": {
        "resolution": "720P",
        "prompt_extend": false
    }
}'
Contoh respons

Salin dan simpan task_id untuk menanyakan hasil pada langkah berikutnya.

{
    "output": {
        "task_status": "PENDING",
        "task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx"
    },
    "request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx"
}
Deskripsi parameter input

CatatanSaat memanggil model LoRA yang telah difine-tune, penggunaan parameter input sebagian besar sama seperti API image-to-video berbasis frame pertama dan terakhir.

Tabel di bawah hanya mencantumkan penggunaan atau batasan parameter khusus LoRA. Untuk parameter umum yang tidak tercantum di sini (seperti duration), lihat referensi API.

Field

Type

Required

Description

Contoh nilai

model

string

Yes

Nama model.

Anda harus menggunakan model fine-tuned yang berhasil diterapkan dan memiliki status RUNNING.

xxxx-ft-202511111122-xxxx

input.prompt

string

No

Text prompt.

Apa parameter ini berlaku tergantung pada pengaturan aigc_config.use_input_prompt:

  • Jika use_input_prompt=true, parameter ini berlaku. Sistem menghasilkan video berdasarkan prompt ini.

  • Jika use_input_prompt=false, parameter ini diabaikan. Jangan kirimkan. Sistem menggunakan templat preset aigc_config.prompt untuk menghasilkan prompt secara otomatis.

-

input.first_frame_url

string

Yes

URL gambar frame pertama.

Untuk cara mengirimkannya, lihat parameter first_frame_url.

https://help-static-aliyun-doc.aliyuncs.com/xxx.jpg

input.last_frame_url

string

No

URL gambar frame terakhir.

Untuk cara mengirimkannya, lihat parameter last_frame_url.

https://help-static-aliyun-doc.aliyuncs.com/xxx.jpg

parameters.resolution

string

No

Resolusi video yang dihasilkan.

Model fine-tuned mendukung 480P, 720P. Default adalah 720P.

720P

parameters.prompt_extend

boolean

No

Aktifkan penulisan ulang prompt.

Saat memanggil model LoRA yang telah difine-tune, nonaktifkan ini. Atur ke false.

false

Langkah 4.2: Tanyakan hasil menggunakan task_id

Poll status tugas menggunakan task_id hingga task_status menjadi SUCCEEDED, lalu dapatkan URL video.

Contoh permintaan

Ganti 86ecf553-d340-4e21-xxxxxxxxx dengan task_id yang sebenarnya.

curl -X GET https://dashscope-intl.aliyuncs.com/api/v1/tasks/86ecf553-d340-4e21-xxxxxxxxx \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Contoh respons

URL video berlaku selama 24 jam. Unduh video segera.

{
    "request_id": "c87415d2-f436-41c3-9fe8-xxxxxx",
    "output": {
        "task_id": "a017e64c-012b-431a-84fd-xxxxxx",
        "task_status": "SUCCEEDED",
        "submit_time": "2025-11-12 11:03:33.672",
        "scheduled_time": "2025-11-12 11:03:33.699",
        "end_time": "2025-11-12 11:04:07.088",
        "orig_prompt": "",
        "video_url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.mp4?Expires=xxxx"
    },
    "usage": {
        "duration": 5,
        "video_count": 1,
        "SR": 480
    }
}

Buat dataset kustom

Selain menggunakan dataset contoh dalam panduan ini, Anda dapat membuat dataset sendiri untuk fine-tuning.

Dataset Anda harus mencakup training set (wajib) dan boleh mencakup validation set (opsional, mendukung pemisahan otomatis dari training set). Kemas semua file ke dalam file .zip. Gunakan hanya huruf Inggris, angka, garis bawah, atau tanda hubung dalam nama file.

Format dataset

Training set: Wajib

Image-to-video (berbasis frame pertama)

Training set mencakup gambar frame pertama, video pelatihan, dan file anotasi (data.jsonl).

wan-i2v-training-dataset.zip
├── data.jsonl        # Harus bernama data.jsonl. Ukuran maks: 20 MB.
├── image_1.jpeg      # Resolusi maks: 4096×4096. Format: BMP, JPEG, PNG, WEBP.
├── video_1.mp4       # Resolusi maks: 4096×4096. Format: MP4, MOV.
├── image_2.jpeg
└── video_2.mp4
  • File anotasi (data.jsonl): Setiap baris adalah satu sampel pelatihan. Harus berupa objek JSON. Struktur:
{
    "prompt": "The video begins showing a young woman standing in front of a brick wall covered with ivy. She has long, smooth reddish-brown hair, wearing a white sleeveless dress, a shiny silver necklace, and a smile on her face. The brick wall in the background is covered with green vines, appearing rustic and natural. Then the s86b5p money rain effect begins, countless huge-sized US dollar bills (beige background/dark green patterns) pour down like a torrential rain, densely hitting and surrounding her. The bills continue to fall, she stretches her arms upward, neck slightly tilted back, expression surprised, completely immersed in this wild money rain.",
    "first_frame_path": "image_1.jpg",
    "video_path": "video_1.mp4"
}

Image-to-video (berbasis frame pertama dan terakhir)

Training set mencakup gambar frame pertama, gambar frame terakhir, video pelatihan, dan file anotasi (data.jsonl).

wan-kf2v-training-dataset.zip
├── data.jsonl                # Harus bernama data.jsonl. Ukuran maks: 20 MB.
├── image/                    # Gambar frame pertama dan terakhir.
│   ├── image_1_first.jpg     # Resolusi maks: 4096×4096. Format: BMP, JPEG, PNG, WEBP.
│   └── image_1_last.png
└── video/                    # Video pelatihan.
    ├── video_1.mp4           # Resolusi maks: 4096×4096. Format: MP4, MOV.
    └── video_2.mov
  • File anotasi (data.jsonl): Setiap baris adalah satu sampel pelatihan. Harus berupa objek JSON. Struktur:
{
    "prompt": "The video begins by showing a young woman in an outdoor setting. She has short, curly dark brown hair, a smile on her face, and looks very friendly. She is wearing a black polo shirt with colorful floral embroidery, with a background of green vegetation and distant mountains. Then she begins the s86b5p transformation.",
    "first_frame_path": "image/image_1_first.jpg",
    "last_frame_path": "image/image_1_last.jpg",
    "video_path": "video/video_1.mp4"
}

Validation set: Opsional

Image-to-video (berbasis frame pertama)

Validation set mencakup gambar frame pertama dan file anotasi (data.jsonl). Video tidak diperlukan. Pada setiap titik evaluasi, pekerjaan pelatihan secara otomatis memanggil layanan model untuk menghasilkan video pratinjau menggunakan gambar validasi dan prompt.

wan-i2v-valid-dataset.zip
├── data.jsonl       # Harus bernama data.jsonl. Ukuran maks: 20 MB.
├── image_1.jpeg     # Resolusi maks: 4096×4096. Format: BMP, JPEG, PNG, WEBP.
└── image_2.jpeg
  • File anotasi (data.jsonl): Setiap baris adalah satu sampel validasi. Harus berupa objek JSON. Struktur:
{
    "prompt": "The video begins showing a scene of a young man standing in front of a cityscape. He is wearing a black and white checkered jacket over a black hoodie, with a smile on his face and a confident expression. The background is a city skyline at sunset, with a famous domed building and layered roofs visible in the distance, the sky filled with clouds showing warm orange-yellow hues. Then the s86b5p money rain effect begins, countless huge-sized US dollar bills (beige background/dark green patterns) pour down like a torrential rain, densely hitting and surrounding him. The bills continue to fall while the camera slowly zooms in, he stretches his arms upward, neck slightly tilted back, expression surprised, completely immersed in this wild money rain.",
    "first_frame_path": "image_1.jpg"
}

Image-to-video (berbasis frame pertama dan terakhir)

Validation set mencakup gambar frame pertama, gambar frame terakhir, dan file anotasi (data.jsonl). Video tidak diperlukan. Pada setiap titik evaluasi, pekerjaan pelatihan secara otomatis memanggil layanan model untuk menghasilkan video pratinjau menggunakan gambar validasi dan prompt.

wan-kf2v-valid-dataset.zip
├── data.jsonl                 # Harus bernama data.jsonl. Ukuran maks: 20 MB.
└── image/                     # Gambar frame pertama dan terakhir.
    ├── image_1_first.jpg      # Resolusi maks: 4096×4096. Format: BMP, JPEG, PNG, WEBP.
    └── image_1_last.jpg
  • File anotasi (data.jsonl): Setiap baris adalah satu sampel validasi. Harus berupa objek JSON. Struktur:
{
    "prompt": "The video begins showing a scene of a young man standing in front of a cityscape. He is wearing a black and white checkered jacket over a black hoodie, with a smile on his face and a confident expression. The background is a city skyline at sunset, with a famous domed building and layered roofs visible in the distance, the sky filled with clouds showing warm orange-yellow hues. Then the s86b5p money rain effect begins, countless huge-sized US dollar bills (beige background/dark green patterns) pour down like a torrential rain, densely hitting and surrounding him. The bills continue to fall while the camera slowly zooms in, he stretches his arms upward, neck slightly tilted back, expression surprised, completely immersed in this wild money rain.",
    "first_frame_path": "image/image_1_first.jpg",
    "last_frame_path": "image/image_1_last.jpg",
}

Skala data dan batasan

  • Volume data: Berikan minimal 10 sampel. Semakin banyak data pelatihan, hasilnya semakin baik. Kami merekomendasikan 20–100 sampel untuk kinerja yang stabil.

  • Arsip ZIP: Saat mengunggah melalui API, ukuran total ≤ 1 GB.

  • Persyaratan gambar pelatihan:

    • Format: BMP, JPEG, PNG, WEBP.
    • Resolusi ≤ 4096×4096.
    • Tidak ada batasan keras pada ukuran file individual (sistem melakukan pra-pemrosesan secara otomatis).
  • Persyaratan video pelatihan:

    • Format: MP4, MOV.
    • Resolusi ≤ 4096×4096.
    • Tidak ada batasan keras pada ukuran file individual (sistem melakukan pra-pemrosesan secara otomatis).
    • Durasi per video: model wan2.2 direkomendasikan 2–5 detik; model wan2.5 direkomendasikan 2–10 detik; model wan2.6 dan wan2.7 direkomendasikan 2–10 detik.

Pengumpulan dan pembersihan data

1. Tentukan skenario fine-tuning

Wanxiang mendukung fine-tuning untuk image-to-video dalam skenario berikut:

  • Efek video tetap: Ajarkan model perubahan visual spesifik, seperti carousel atau pergantian kostum ajaib.
  • Aksi karakter tetap: Tingkatkan kemampuan model untuk mereproduksi gerakan tubuh spesifik, seperti gerakan tari atau teknik bela diri.
  • Gerakan kamera tetap: Replikasi sinematografi kompleks, seperti dorong, tarik, geser, miring, atau bidikan orbit.
2. Kumpulkan aset mentah
  • Generasi dan penyaringan AI: Gunakan model dasar Wanxiang untuk menghasilkan video secara batch. Pilih secara manual sampel berkualitas tinggi yang paling sesuai dengan efek target Anda. Ini adalah metode paling umum.
  • Pembuatan film dunia nyata: Jika Anda memerlukan realisme tinggi untuk adegan interaktif (misalnya, berpelukan, berjabat tangan), gunakan rekaman nyata.
  • Rendering perangkat lunak 3D: Untuk efek atau animasi abstrak yang memerlukan kontrol presisi, gunakan perangkat lunak 3D (misalnya, Blender, Cinema 4D).
3. Bersihkan data

Dimensi

Persyaratan Positif

Contoh negatif

Konsistensi

Fitur inti harus sangat seragam.

Contoh: Untuk melatih “rotasi 360 derajat”, semua video harus berputar searah jarum jam dengan kecepatan yang kurang lebih sama.

Arah campuran.

Dataset berisi rotasi searah dan berlawanan arah jarum jam. Model tidak tahu arah mana yang harus dipelajari.

Keragaman

Lebih banyak variasi subjek dan adegan lebih baik.

Cakup berbagai subjek (pria, wanita, anak-anak, hewan, bangunan) dan komposisi (close-up, wide shot, sudut tinggi, sudut rendah). Variasikan juga resolusi dan rasio aspek.

Adegan atau subjek tunggal.

Semua video menunjukkan “seseorang berpakaian merah berputar di depan dinding putih”. Model mungkin salah menganggap “pakaian merah” dan “dinding putih” sebagai bagian dari efek. Model gagal saat pakaian berubah.

Keseimbangan

Jenis data harus seimbang.

Jika ada beberapa gaya, jumlahnya harus kurang lebih sama.

Ketidakseimbangan parah.

90% adalah video potret, 10% adalah video lanskap. Model mungkin berkinerja buruk pada video lanskap.

Kemurnian

Visual bersih dan jelas.

Gunakan aset asli tanpa gangguan.

Elemen gangguan.

Video berisi subtitle, logo, watermark, bilah hitam yang jelas, atau kebisingan. Model mungkin mempelajari watermark sebagai bagian dari efek.

Durasi

Durasi aset ≤ durasi target.

Jika Anda menginginkan video 5 detik, potong aset menjadi 4–5 detik.

Aset terlalu panjang.

Anda menginginkan video berdurasi 5 detik, tetapi memberikan aset berdurasi 8 detik kepada model. Hal ini menyebabkan pembelajaran aksi menjadi tidak lengkap dan menghasilkan kesan terputus-putus.

Anotasi video: Tulis prompt untuk video

Dalam file anotasi dataset (data.jsonl), setiap video memiliki prompt yang sesuai. Prompt menggambarkan konten video. Kualitas prompt secara langsung menentukan apa yang dipelajari model.

Contoh prompt

Video dimulai dengan seorang wanita muda berdiri di depan dinding bata yang ditutupi tanaman ivy. Ia memiliki rambut cokelat kemerahan panjang yang halus, mengenakan gaun tanpa lengan berwarna putih, kalung perak mengilap, dan senyum di wajahnya. Latar belakangnya adalah dinding bata yang ditutupi sulur hijau, terlihat rustic dan alami. Kemudian efek hujan uang s86b5p dimulai, lembaran uang kertas dolar AS berukuran sangat besar (latar belakang krem/pola hijau tua) turun deras seperti hujan lebat, memenuhi dan mengelilinginya secara padat. Uang terus berjatuhan; ia mengangkat kedua lengannya ke atas, leher sedikit mendongak, ekspresi terkejut, benar-benar tenggelam dalam hujan uang liar ini.

Rumus penulisan prompt

Prompt = [Deskripsi subjek] + [Deskripsi latar belakang] + [Kata pemicu] + [Deskripsi gerakan]

Elemen prompt

Description

Panduan

Contoh

Deskripsi subjek

Deskripsikan orang atau objek yang ada dalam frame

Wajib

The video begins with a young woman...

Deskripsi latar belakang

Deskripsikan lingkungan tempat subjek berada

Wajib

The background is a brick wall covered with green vines...

Kata pemicu

Kata yang jarang digunakan dan tidak bermakna

Direkomendasikan

s86b5p atau m01aa

Deskripsi gerakan

Deskripsikan perubahan dinamis selama efek secara detail

Direkomendasikan

Countless huge-sized US dollar bills (beige background/dark green patterns) pour down like a torrential rain...

Tentang kata pemicu

  • Apa itu kata pemicu?

    Berfungsi sebagai "jangkar visual". Banyak gerakan kompleks (misalnya, jalur tari unik atau efek cahaya) sulit dijelaskan dalam teks. Kata pemicu memaksa model menghasilkan efek visual yang tepat saat melihat kata tersebut.

  • Mengapa menggunakannya?

    Fine-tuning membangun pemetaan antara teks dan fitur video. Kata pemicu mengikat efek yang sulit dijelaskan ke kata unik sehingga model dapat mengunci target.

  • Jika kita memiliki kata pemicu, mengapa masih perlu mendeskripsikan gerakan secara detail?

    Keduanya memiliki peran berbeda dan bekerja lebih baik bersama.

    • Deskripsi gerakan menjelaskan apa yang terjadi dalam adegan. Memberi tahu model tindakan fisik dasar dan logika. Deskripsi gerakan biasanya konsisten di semua sampel.
    • Kata pemicu menjelaskan seperti apa tampilan spesifik dari aksi tersebut. Mewakili perubahan dan fitur unik yang tidak dapat dijelaskan dengan kata-kata.

Cara menulis prompt yang baik

Ikuti aturan konsistensi untuk deskripsi efek

Untuk semua sampel yang mengandung efek yang sama, pertahankan bagian deskripsi gerakan se-konsisten mungkin. Terapkan aturan ini pada training set dan validation set.

  • Tujuan: Saat model melihat s86b5p diikuti deskripsi tetap yang sama dan selalu melihat hujan uang, model belajar bahwa s86b5p = efek visual hujan uang.

  • Contoh: Baik subjeknya “wanita muda” atau “pria berjas”, prompt berakhir dengan cara yang sama untuk efek hujan uang: “...then the s86b5p money rain effect begins, countless US dollar bills pour down like a torrential rain...”

    Jenis sampel

    Konten prompt (Perhatikan konsistensi pada bagian yang digarisbawahi)

    Training sample 1

    Video dimulai dengan seorang wanita muda yang berdiri di depan dinding bata... (deskripsi lingkungan dihilangkan)...

    Kemudian, efek hujan uang s86b5p dimulai: lembaran dolar AS raksasa yang tak terhitung jumlahnya (latar belakang krem/pola hijau tua) mengguyur turun seperti hujan deras, mengenai dan mengelilinginya secara rapat. Lembaran-lembaran uang terus berjatuhan; ia merentangkan tangan ke atas, lehernya sedikit mendongak ke belakang, dengan ekspresi terkejut, sepenuhnya larut dalam hujan uang yang liar ini.

    Training sample 2

    Video dimulai dengan seorang pria berjas di sebuah restoran mewah... (deskripsi lingkungan dihilangkan)...

    Lalu efek hujan uang s86b5p dimulai: uang kertas dolar AS berukuran sangat besar yang tak terhitung jumlahnya (latar belakang krem/pola hijau tua) mengguyur turun seperti hujan deras, menghantam dan mengelilinginya dengan rapat. Uang kertas terus berjatuhan; ia merentangkan tangan ke atas, lehernya sedikit mendongak, dengan ekspresi terkejut, sepenuhnya larut dalam hujan uang yang liar ini.

    Validation sample 1

    Video dimulai dengan seorang anak kecil berdiri di depan pemandangan kota... (deskripsi lingkungan tidak disertakan)...

    Kemudian, efek hujan uang s86b5p dimulai: lembaran-lembaran dolar AS berukuran raksasa yang tak terhitung jumlahnya (latar belakang krem/pola hijau tua) mengguyur turun seperti hujan deras, menerpa dan mengelilinginya dengan rapat. Sementara lembaran-lembaran uang terus berjatuhan, Kamera perlahan melakukan zoom in. Anak tersebut merentangkan tangannya ke atas, lehernya sedikit mendongak, dengan ekspresi terkejut, sepenuhnya larut dalam hujan uang yang liar ini.

Gunakan AI untuk menghasilkan prompt

Untuk mendapatkan prompt berkualitas tinggi, gunakan model bahasa besar multimodal seperti Qwen-VL untuk membantu.

  1. Gunakan AI untuk menghasilkan deskripsi awal
    1. Brainstorming bebas (cari inspirasi): Jika Anda tidak yakin cara mendeskripsikan efek, biarkan AI menjelajah secara bebas.

      • Kirim “Describe the video content in detail” dan amati output model.
      • Fokus pada istilah yang digunakan model untuk lintasan gerakan (misalnya, “pour down like a torrential rain”, “camera slowly zooms in”). Istilah ini dapat digunakan untuk optimasi selanjutnya.
    2. Prompt format tetap (standarkan output): Setelah Anda memiliki gambaran kasar, rancang format tetap untuk memandu AI menghasilkan prompt yang sesuai dengan templat Anda.

      Kode contoh

      Lihat pemahaman visual untuk detail pemanggilan API.

      import os
      from openai import OpenAI
      
      client = OpenAI(
          # Kunci API berbeda antara wilayah Beijing dan Singapura. Dapatkan kunci API Anda: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
          # Jika Anda belum mengatur variabel lingkungan, ganti baris berikut dengan: api_key="sk-xxx".
          api_key=os.getenv("DASHSCOPE_API_KEY"),
          # Base URL untuk wilayah Singapura. Untuk wilayah Beijing, ganti dengan: https://dashscope.aliyuncs.com/compatible-mode/v1
          base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
      )
      completion = client.chat.completions.create(
          model="qwen3-vl-plus",
          messages=[
              {"role": "user","content": [{
                  # Saat mengirimkan file video langsung, atur type ke video_url.
                  # Dengan OpenAI SDK, frame diambil setiap 0,5 detik secara default dan tidak dapat diubah. Untuk laju frame kustom, gunakan SDK DashScope.
                  "type": "video_url",
                  "video_url": {"url": "https://cloud.video.taobao.com/vod/Tm1s_RpnvdXfarR12RekQtR66lbYXj1uziPzMmJoPmI.mp4"}},
                  {"type": "text", "text": "Analyze the video carefully and generate a detailed video description using the following fixed format:"
                                          "Format template: The video begins with [subject description]. The background is [background description]. Then the s86b5p melting effect begins, [detailed motion description]."
                                          "Requirements:"
                                          "1.[Subject description]: Describe people or objects in the frame in detail, including appearance, clothing, and expressions."
                                          "2.[Background description]: Describe the environment, lighting, and weather in detail."
                                          "3.[Motion description]: Describe dynamic changes during the effect (e.g., how objects move, how lighting changes, how the camera moves)."
                                          "4.Integrate all content naturally into the format. Do not keep “[ ]” symbols or add unrelated text."}]
               }]
      )
      print(completion.choices[0].message.content)
      
  2. Ekstrak templat efek
    1. Jalankan proses ini beberapa kali pada sampel dengan efek yang sama. Identifikasi frasa berfrekuensi tinggi dan akurat yang digunakan untuk mendeskripsikan efek. Ekstrak “deskripsi efek” generik.
    2. Salin dan tempel deskripsi efek standar ini ke semua sampel untuk efek tersebut.
    3. Pertahankan deskripsi “subjek” dan “latar belakang” unik untuk setiap sampel. Ganti hanya bagian “deskripsi efek” dengan templat terpadu.
  3. Tinjauan manual

    AI dapat mengalami halusinasi atau kesalahan deteksi. Sebagai langkah terakhir, lakukan pemeriksaan manual—misalnya, pastikan deskripsi entitas dan latar belakang sesuai dengan adegan aktual.

Evaluasi model menggunakan validation set

Tentukan validation set

Pekerjaan fine-tuning memerlukan training set, sedangkan validation set bersifat opsional. Anda dapat memilih agar sistem memisahkan secara otomatis atau mengunggah secara manual. Tentukan pilihan Anda sebagai berikut:

Metode 1: Tidak mengunggah validation set (sistem memisahkan secara otomatis)

Saat Anda membuat pekerjaan fine-tuning, jika Anda tidak mengunggah validation set terpisah—artinya parameter validation_file_ids tidak dikirim—sistem akan secara otomatis memisahkan sebagian training set untuk digunakan sebagai validation set berdasarkan dua hiperparameter berikut:

  • split: Proporsi data pelatihan yang dipisahkan. Misalnya, 0,9 berarti 90% untuk pelatihan dan 10% untuk validasi.
  • max_split_val_dataset_sample: Jumlah maksimum sampel untuk validation set hasil pemisahan otomatis.

Aturan pemisahan validation set: Sistem memilih nilai lebih kecil antara ukuran dataset × (1 - split) dan max_split_val_dataset_sample.

  • Contoh: Misalkan Anda hanya mengunggah training set dengan 100 sampel, split=0,9 (10% untuk validasi), dan max_split_val_dataset_sample=5.

    • Pemisahan teoretis: 100 × 10% = 10 sampel.
    • Pemisahan aktual: min(10, 5) = 5. Jadi, sistem menggunakan hanya 5 sampel untuk validation set.
Metode 2: Unggah validation set secara manual (menggunakan validation_file_ids)

Jika Anda lebih suka mengevaluasi checkpoint menggunakan data yang Anda siapkan sendiri daripada mengandalkan pemisahan acak sistem, unggah validation set kustom.

Catatan: Setelah Anda memilih unggah manual, sistem mengabaikan aturan pemisahan otomatis di atas dan hanya memvalidasi dengan data yang Anda unggah.

Langkah-langkah: Mengunggah set validasi secara manual

  1. Siapkan validation set: Kemas data validasi ke dalam file .zip terpisah. Lihat format validation set.
  2. Unggah validation set: Panggil API unggah dataset untuk mengunggah file .zip ini dan peroleh ID file khusus.
  3. Tentukan validation set saat membuat pekerjaan: Saat memanggil API buat pekerjaan fine-tuning, masukkan ID file tersebut ke parameter validation_file_ids.
{
    "model":"wan2.5-i2v-preview",
    "training_file_ids":[ "<training set file ID>" ],
    "validation_file_ids": [ "<custom validation set file ID>" ],
    ...
}

Pilih checkpoint terbaik untuk deployment

Selama pelatihan, sistem menyimpan “snapshot” berkala (checkpoint). Secara default, sistem mengeluarkan checkpoint terakhir sebagai model fine-tuned. Namun, checkpoint antara mungkin mengungguli versi akhir. Anda dapat memilih checkpoint terbaik untuk deployment.

Sistem menjalankan checkpoint pada validation set dan menghasilkan video pratinjau pada interval yang ditentukan oleh hiperparameter eval_epochs.

  • Evaluasi: Nilai dengan menonton video pratinjau secara langsung.
  • Kriteria pemilihan: Pilih checkpoint dengan kualitas visual terbaik dan tanpa distorsi gerakan.

Prosedur

Langkah 1: Lihat hasil pratinjau untuk checkpoint

Langkah 1.1 Daftar checkpoint yang divalidasi

API ini hanya mengembalikan checkpoint yang lolos validasi dan berhasil menghasilkan video pratinjau. Checkpoint yang gagal tidak tercantum.

Contoh permintaan
  • <ganti_dengan_id_pekerjaan_fine-tuning>: Ganti sepenuhnya dengan job_id dari API buat pekerjaan fine-tuning.
curl --location 'https://dashscope-intl.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'
Contoh respons

API ini mengembalikan daftar nama checkpoint yang lolos validasi.

{
    "request_id": "da1310f5-5a21-4e29-99d4-xxxxxx",
    "output": [
        {
            "checkpoint": "checkpoint-160"
        },
        ...
    ]
}
Langkah 1.2 Lihat hasil validasi untuk checkpoint

Pilih satu checkpoint dari daftar di atas (misalnya, “checkpoint-160”) dan lihat hasil videonya.

Contoh permintaan
  • <ganti_dengan_id_pekerjaan_fine-tuning>: Ganti sepenuhnya dengan job_id dari membuat pekerjaan fine-tuning.
  • <ganti_dengan_checkpoint_terpilih>: 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_selected_checkpoint>?page_no=1&page_size=10' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Contoh respons

URL video pratinjau adalah video_path. URL ini berlaku selama 24 jam. Unduh dan tinjau segera. Ulangi langkah ini untuk membandingkan beberapa checkpoint dan temukan yang terbaik.

{
    "request_id": "375b3ad0-d3fa-451f-b629-xxxxxxx",
    "output": {
        "page_no": 1,
        "page_size": 10,
        "total": 1,
        "list": [
            {
                "video_path": "https://finetune-result.oss-cn-wulanchabu.aliyuncs.com/xxx.mp4?Expires=xxxx",
                "prompt": "The video begins with a young man sitting in a cafe...",
                "first_frame_path": "https://finetune-result.oss-cn-wulanchabu.aliyuncs.com/xxx.jpeg"
            }
        ]
    }
}

Langkah 2: Ekspor checkpoint dan dapatkan nama model untuk deployment

Langkah 2.1 Ekspor model

Asumsikan “checkpoint-160” memberikan hasil terbaik. Sekarang ekspor model tersebut.

Contoh permintaan
  • <ganti_dengan_id_pekerjaan_fine_tuning>: Ganti sepenuhnya dengan job_id dari membuat pekerjaan fine-tuning.
  • <ganti_dengan_checkpoint_yang_diekspor>: Ganti sepenuhnya dengan nilai checkpoint, misalnya “checkpoint-160”.
  • <ganti_dengan_nama_model_yang_diekspor_untuk_tampilan_konsol>: Ganti sepenuhnya dengan nama model kustom untuk tampilan konsol, misalnya “wan2.5-checkpoint-160”. Nama ini harus unik secara global; nama duplikat tidak diizinkan. Untuk panduan parameter, lihat ekspor 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_name_for_console_display>' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Contoh respons

Parameter respons output=true berarti permintaan ekspor berhasil dibuat.

{
    "request_id": "0817d1ed-b6b6-4383-9650-xxxxx",
    "output": true
}
Langkah 2.2 Tanyakan nama model baru setelah deployment

Tanyakan status semua checkpoint untuk mengonfirmasi penyelesaian ekspor dan mendapatkan nama model unik (model_name) untuk deployment.

Contoh permintaan
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/fine-tunes/<replace_with_fine-tuning_job_id>/checkpoints' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Contoh respons

Dalam daftar yang dikembalikan, temukan checkpoint yang diekspor (misalnya, checkpoint-160). Saat status menjadi SUCCEEDED, ekspor berhasil. Field model_name adalah nama model baru untuk deployment dan pemanggilan.

{
    "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", // Field penting. Gunakan untuk deployment 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 mendapatkan model_name, ikuti langkah-langkah berikut:

  • Penerapan model: Di parameter input model_name, masukkan nilai spesifik yang diperoleh setelah ekspor.
  • Pemanggilan model: Ikuti dokumentasi API untuk memanggil model yang diterapkan.

Go live

Dalam produksi, jika model yang dilatih awal berkinerja buruk (misalnya, visual terdistorsi, efek lemah, atau gerakan tidak akurat), lakukan penyesuaian berdasarkan dimensi berikut:

1. Periksa data dan prompt
  • Konsistensi data: Konsistensi sangat penting. Periksa “sampel buruk” yang memiliki arah berlawanan atau gaya yang sangat berbeda.
  • Jumlah sampel: Tingkatkan jumlah data berkualitas tinggi menjadi 20+ sampel.
  • Prompt: Pastikan kata pemicu merupakan istilah yang tidak bermakna dan jarang digunakan (misalnya, s86b5p). Hindari kata umum (misalnya, running) yang dapat menyebabkan interferensi.
2. Sesuaikan hiperparameter:
  • n_epochs (epoch pelatihan)
    • Nilai default: 50. Gunakan nilai default kecuali diperlukan. Jika menyesuaikan, ikuti aturan: “Total langkah pelatihan ≥ 800”.

    • Rumus total langkah: steps = n_epochs × ceiling (ukuran training set / batch_size).

    • Rumus minimum n_epochs: n_epochs = 800 / ceiling (ukuran dataset / batch_size).

    • Contoh: Asumsikan training set berisi 5 sampel dan menggunakan model Wan2.5 (batch_size=4).

      • Langkah per epoch: 5 / 4 = 1,25, dibulatkan ke atas menjadi 2. Total epoch: n_epochs = 800 / 2 = 400. Ini adalah minimum yang direkomendasikan. Anda dapat menambahkannya sesuai kebutuhan.
  • batch_size (ukuran batch)
    • Ukuran batch menentukan jumlah sampel data yang dikirim ke model untuk pelatihan sekaligus.
    • Parameter ini merupakan konfigurasi per instans. Kami menyarankan menggunakan nilai default untuk setiap model dan hanya menyesuaikannya jika diperlukan.
    • wan2.7-i2v: Nilai yang direkomendasikan: 1.
    • wan2.5-i2v-preview: Nilai yang direkomendasikan: 4.
    • wan2.2-i2v-flash: Nilai yang direkomendasikan: 4.
    • wan2.2-kf2v-flash: Nilai yang direkomendasikan: 4.

    Jumlah instans aktual yang berjalan untuk pekerjaan pelatihan ditentukan oleh penjadwalan platform. Global Step yang ditampilkan di log pelatihan mungkin berbeda dari hasil perkiraan, tetapi hal ini tidak mengubah jumlah total data pelatihan atau memengaruhi kinerja akhir model.

  • learning_rate (tingkat pembelajaran): Gunakan nilai default (2e-5). Biasanya tidak perlu dimodifikasi.

Penagihan

  • Pelatihan model: Dikenai biaya.
    • Biaya = Total token pelatihan × Harga satuan. Lihat penagihan pelatihan model.
    • Setelah pelatihan, periksa total token yang dikonsumsi pada field usage dari API tanyakan status pekerjaan fine-tuning.
  • Penerapan model: Gratis.
  • Pemanggilan model: Dikenai biaya.
    • Ditagih sesuai harga pemanggilan standar model dasar fine-tuned. Lihat harga model.

Referensi API

API fine-tuning model untuk pembuatan video dan gambar

FAQ

T: Bagaimana volume data training set dan validation set dihitung?

J: Training set wajib, sedangkan validation set opsional. Metode perhitungannya adalah sebagai berikut:

  • Saat tidak ada validation set yang disediakan: Training set yang diunggah dianggap sebagai "ukuran total dataset". Sistem secara otomatis memisahkan sebagian data untuk validasi.

    • Ukuran validation set = min(ukuran total dataset × (1 − split), max_split_val_dataset_sample). Untuk contoh, lihat tentukan validation set.
    • Ukuran training set = ukuran total dataset − ukuran validation set.
  • Saat validation set diunggah secara manual: Sistem tidak lagi memisahkan validation set dari data pelatihan.

    • Ukuran training set = Volume data training set yang diunggah.
    • Ukuran validation set = Volume data validation set yang diunggah.

T: Bagaimana merancang kata pemicu yang baik?

J: Ikuti aturan berikut:

  • Gunakan kombinasi huruf yang tidak bermakna, seperti sksstyle atau a8z2_bbb.
  • Hindari kata bahasa Inggris umum (misalnya, beautiful, fire, dance) untuk mencegah polusi terhadap pemahaman asli model terhadap kata-kata tersebut.

T: Apakah fine-tuning dapat mengubah resolusi atau durasi video?

J: Tidak. Fine-tuning mempelajari "konten" dan "dinamika", bukan "spesifikasi". Format video output—termasuk resolusi, laju frame, dan durasi maksimum—tetap ditentukan oleh model dasar.