画像から動画への生成において、プロンプトの最適化や公式ビデオエフェクトの呼び出しで、特定のアクション、エフェクト、またはスタイルに関するカスタム要件を満たせない場合は、モデルのファインチューニングを使用します。
適用範囲
適用リージョン:このドキュメントで説明されている機能は、シンガポールリージョンでのみ利用可能です。このリージョンで作成された API キーを使用する必要があります。
サポートされるファインチューニング方法:効率的な SFT-LoRA ファインチューニング。
ファインチューニングがサポートされるモデル:
画像から動画へ (先頭フレームベース):wan2.7-i2v、wan2.6-i2v、wan2.5-i2v-preview、wan2.2-i2v-flash。
画像から動画へ (先頭および最終フレームベース):wan2.2-kf2v-flash。
モデルのファインチューニング方法
画像から動画へ (先頭フレームベース)
ファインチューニングの目標:マネーレインエフェクト用の LoRA モデルをトレーニングする。
期待される結果:先頭フレームの画像を入力します。プロンプトは不要です。モデルはマネーレインエフェクト付きの動画を生成します。
入力された先頭フレームの画像
| 出力動画 (ファインチューニング前) プロンプトを使用しても、毎回一貫したマネーレインエフェクトを生成することはできません。動きは制御できません。 | 出力動画 (ファインチューニング後) ファインチューニング後のモデルは、プロンプトなしでトレーニングデータセットの特定のマネーレインエフェクトを再現します。 |
画像から動画へ (先頭および最終フレームベース)
ファインチューニングの目標:ファッション雑誌エフェクト用の LoRA モデルをトレーニングする。
期待される結果:先頭フレームの画像と最終フレームの画像を入力します。プロンプトは不要です。モデルはファッション雑誌エフェクト付きの動画を生成します。
入力された先頭フレームの画像
| 入力された最終フレームの画像
| 出力動画 (ファインチューニング前) プロンプトを使用しても、毎回一貫したファッション雑誌エフェクトを生成することはできません。動きは制御できません。 | 出力動画 (ファインチューニング後) ファインチューニング後のモデルは、プロンプトなしでトレーニングデータセットの特定のファッション雑誌エフェクトを再現します。 |
以下のコードを実行する前に、API キーと API ホストを取得し、API キーを設定してください。
ステップ 1: データセットのアップロード
ローカルのデータセット (.zip 形式) を Alibaba Cloud Model Studio にアップロードします。ファイル ID (id) を取得します。
サンプルのトレーニングデータセット:フォーマットの詳細については、トレーニングセットをご参照ください。
画像から動画へ (先頭フレームベース):wan-i2v-training-dataset.zip。
画像から動画へ (先頭および最終フレームベース):wan-kf2v-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-i2v-training-dataset.zip"' \
--form 'purpose="fine-tune"'レスポンスの例
id を保存します。これは、アップロードされたデータセットの一意の識別子です。
{
"id": "file-ft-b2416bacc4d742xxxx",
"object": "file",
"bytes": 73310369,
"filename": "wan-i2v-training-dataset.zip",
"purpose": "fine-tune",
"status": "processed",
"created_at": 1766127125
}ステップ 2: モデルのファインチューニング
ステップ 2.1 ファインチューニングジョブの作成
ステップ 1 で取得したファイル ID を使用してトレーニングを開始します。
ハイパーパラメーターの値はモデルによって異なります。ハイパーパラメーターの設定については、ハイパーパラメーターをご参照ください。その他のリクエスト例については、リクエストの例をご参照ください。
リクエストの例
<replace with training dataset file ID> を、前のステップで取得した id に完全に置き換えてください。
画像から動画へ (先頭フレームベース)
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": 400,
"batch_size": 1,
"learning_rate": 2e-5,
"split": 0.9,
"max_split_val_dataset_sample": 5,
"eval_epochs": 50,
"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": 400,
"batch_size": 4,
"learning_rate": 2e-5,
"split": 0.9,
"max_split_val_dataset_sample": 5,
"eval_epochs": 50,
"max_pixels": 262144,
"save_total_limit": 10,
"lora_rank": 32,
"lora_alpha": 32
}
}'レスポンスの例
output 内の以下の 3 つの主要なパラメーターを確認します:
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 内の <replace with fine-tuning job job_id> を 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'レスポンスの例
output フィールド内の以下の 2 つのパラメーターを確認します:
status:この値が SUCCEEDED になると、トレーニングは完了です。モデルをデプロイできます。usage:トレーニングに使用された合計トークン数。課金に使用されます。
{
...
"output": {
"job_id": "ft-202511111122-xxxx",
"status": "SUCCEEDED",
"usage": 432000,
...
}
}ステップ 3: ファインチューニング済みモデルのデプロイ
ステップ 3.1 モデルをオンラインサービスとしてデプロイ
ファインチューニングジョブのステータスが SUCCEEDED になった後、モデルをオンラインサービスとしてデプロイします。
リクエストの例
<replace with model name 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": "<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"
}'レスポンスの例
output 内の以下の 2 つのパラメーターを確認します:
deployed_model:デプロイされたモデルの名前。デプロイメントステータスの確認やモデルの呼び出しに使用します。status:デプロイメントステータス。ファインチューニング済みモデルをデプロイした後、初期ステータスは PENDING です。デプロイメントはまだ開始されていません。
{
...
"output": {
"deployed_model": "xxxx-ft-202511111122-xxxx",
"status": "PENDING",
...
}
}ステップ 3.2 デプロイメントステータスの確認
status が RUNNING になるまで、このエンドポイントをポーリングします。
このファインチューニング済みモデルのデプロイには約 5~10 分かかります。
リクエストの例
<replace with deployed_model> を、ステップ 3.1 で取得した deployed_model の値に完全に置き換えてください。
レスポンスの例
output フィールド内の以下の 2 つのパラメーターを確認します:
status:ステータスが RUNNING になると、モデルは正常にデプロイされています。呼び出しを開始できます。deployed_model:デプロイされたモデルの名前。
{
...
"output": {
"status": "RUNNING",
"deployed_model": "xxxx-ft-202511111122-xxxx",
...
}
}ステップ 4: モデルを呼び出して動画を生成
モデルのデプロイが成功した後 (デプロイの status が RUNNING のとき)、モデルの呼び出しを開始できます。
カスタムデータセットの構築
このガイドのサンプルデータセットを使用するだけでなく、ファインチューニング用に独自のデータセットを構築することもできます。
データセットにはトレーニングセット (必須) を含める必要があり、検証データセット (任意、トレーニングセットからの自動分割をサポート) を含めることもできます。すべてのファイルを .zip ファイルにパッケージ化します。ファイル名には英字、数字、アンダースコア、ハイフンのみを使用してください。
データセットのフォーマット
トレーニングセット:必須
画像から動画へ (先頭フレームベース)
トレーニングセットには、先頭フレームの画像、トレーニング動画、およびアノテーションファイル (data.jsonl) が含まれます。
サンプルトレーニングセット:wan-i2v-training-dataset.zip。
ZIP ディレクトリ構造:
wan-i2v-training-dataset.zip ├── data.jsonl # data.jsonl という名前にする必要があります。最大サイズ:20 MB。 ├── image_1.jpeg # 最大解像度:4096×4096。フォーマット:BMP、JPEG、PNG、WEBP。 ├── video_1.mp4 # 最大解像度:4096×4096。フォーマット:MP4、MOV。 ├── image_2.jpeg └── video_2.mp4アノテーションファイル (data.jsonl):各行が 1 つのトレーニングサンプルです。JSON オブジェクトである必要があります。構造:
{ "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" }
画像から動画へ (先頭および最終フレームベース)
トレーニングセットには、先頭フレームの画像、最終フレームの画像、トレーニング動画、およびアノテーションファイル (data.jsonl) が含まれます。
サンプルトレーニングセット:wan-kf2v-training-dataset.zip。
ZIP ディレクトリ構造:
wan-kf2v-training-dataset.zip ├── data.jsonl # data.jsonl という名前にする必要があります。最大サイズ:20 MB。 ├── image/ # 先頭フレームと最終フレームの画像。 │ ├── image_1_first.jpg # 最大解像度:4096×4096。フォーマット:BMP、JPEG、PNG、WEBP。 │ └── image_1_last.png └── video/ # トレーニング動画。 ├── video_1.mp4 # 最大解像度:4096×4096。フォーマット:MP4、MOV。 └── video_2.movアノテーションファイル (data.jsonl):各行が 1 つのトレーニングサンプルです。JSON オブジェクトである必要があります。構造:
{ "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" }
検証データセット:任意
画像から動画へ (先頭フレームベース)
検証データセットには、先頭フレームの画像とアノテーションファイル (data.jsonl) が含まれます。動画は不要です。各評価ポイントで、トレーニングジョブは自動的にモデルサービスを呼び出し、検証画像とプロンプトを使用してプレビュー動画を生成します。
サンプル検証データセット:wan-i2v-valid-dataset.zip。
ZIP ディレクトリ構造:
wan-i2v-valid-dataset.zip ├── data.jsonl # data.jsonl という名前にする必要があります。最大サイズ:20 MB。 ├── image_1.jpeg # 最大解像度:4096×4096。フォーマット:BMP、JPEG、PNG、WEBP。 └── image_2.jpegアノテーションファイル (data.jsonl):各行が 1 つの検証サンプルです。JSON オブジェクトである必要があります。構造:
{ "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" }
画像から動画へ (先頭および最終フレームベース)
検証データセットには、先頭フレームの画像、最終フレームの画像、およびアノテーションファイル (data.jsonl) が含まれます。動画は不要です。各評価ポイントで、トレーニングジョブは自動的にモデルサービスを呼び出し、検証画像とプロンプトを使用してプレビュー動画を生成します。
サンプル検証データセット:wan-kf2v-valid-dataset.zip。
ZIP ディレクトリ構造:
wan-kf2v-valid-dataset.zip ├── data.jsonl # data.jsonl という名前にする必要があります。最大サイズ:20 MB。 └── image/ # 先頭フレームと最終フレームの画像。 ├── image_1_first.jpg # 最大解像度:4096×4096。フォーマット:BMP、JPEG、PNG、WEBP。 └── image_1_last.jpgアノテーションファイル (data.jsonl):各行が 1 つの検証サンプルです。JSON オブジェクトである必要があります。構造:
{ "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", }
データ規模と制限
データ量:少なくとも 10 サンプルを提供してください。トレーニングデータが多いほど、結果は良くなります。安定したパフォーマンスのためには 20~100 サンプルを推奨します。
ZIP アーカイブ:API 経由でアップロードする場合、合計サイズは 1 GB 以下です。
トレーニング画像の要件:
フォーマット:BMP、JPEG、PNG、WEBP。
解像度 ≤ 4096×4096。
個々のファイルサイズにハードリミットはありません (システムが自動的に前処理します)。
トレーニング動画の要件:
フォーマット:MP4、MOV。
解像度 ≤ 4096×4096。
個々のファイルサイズにハードリミットはありません (システムが自動的に前処理します)。
動画ごとの持続時間:wan2.2 モデルでは 2~5 秒を推奨、wan2.5 モデルでは 2~10 秒を推奨、wan2.6 および wan2.7 モデルでは 2~10 秒を推奨。
データ収集とクリーニング
1. ファインチューニングのシナリオを定義する
Wanxiang は、以下のシナリオで画像から動画へのファインチューニングをサポートします:
固定のビデオエフェクト:カルーセルや魔法の衣装チェンジなど、特定の視覚的変化をモデルに教えます。
固定のキャラクターアクション:ダンスの動きや武術の技など、特定の身体の動きを再現するモデルの能力を向上させます。
固定のカメラモーション:プッシュ、プル、パン、チルト、オービットショットなど、複雑な撮影技術を再現します。
2. 生のアセットを収集する
AI 生成とフィルタリング:Wanxiang 基盤モデルを使用して動画をバッチ生成します。ターゲットエフェクトに最も一致する高品質なサンプルを手動で選択します。これが最も一般的な方法です。
実写撮影:インタラクティブなシーン (例:ハグ、握手) で高いリアリズムが必要な場合は、実際の映像を使用します。
3D ソフトウェアレンダリング:正確な制御が必要なエフェクトや抽象的なアニメーションには、3D ソフトウェア (例:Blender、Cinema 4D) を使用します。
3. データをクリーニングする
ディメンション | 肯定的な要件 | 否定的な例 |
一貫性 | コア機能は非常に均一でなければなりません。 例:「360 度回転」のトレーニングでは、すべての動画がほぼ同じ速度で時計回りに回転する必要があります。 | 方向が混在している。 データセットには時計回りと反時計回りの両方の回転が含まれています。モデルはどちらの方向を学習すればよいかわかりません。 |
多様性 | 主題やシーンの多様性が高いほど良いです。 さまざまな主題 (男性、女性、子供、動物、建物) や構図 (クローズアップ、ワイドショット、ハイアングル、ローアングル) をカバーします。解像度やアスペクト比も多様化させます。 | 単一のシーンまたは主題。 すべての動画が「白い壁の前で回転する赤い服の人」を示しています。モデルは「赤い服」と「白い壁」をエフェクトの一部として誤って学習する可能性があります。服が変わると失敗します。 |
バランス | データタイプはバランスが取れているべきです。 複数のスタイルが存在する場合、それらの数はほぼ等しくあるべきです。 | 深刻な不均衡。 90% が縦長の動画で、10% が横長の動画です。モデルは横長の動画でパフォーマンスが低下する可能性があります。 |
純粋性 | クリーンでクリアなビジュアル。 干渉のないオリジナルのアセットを使用します。 | 干渉要素。 動画には字幕、ロゴ、ウォーターマーク、明らかな黒枠、またはノイズが含まれています。モデルはウォーターマークをエフェクトの一部として学習する可能性があります。 |
持続時間 | アセットの持続時間 ≤ ターゲットの持続時間。 5 秒の動画が必要な場合、アセットを 4~5 秒にトリミングします。 | 長すぎるアセット。 5 秒の動画が必要なのに、モデルに 8 秒のアセットを与えます。これにより、アクションの学習が不完全になり、途切れ途切れの感じになります。 |
動画のアノテーション:動画のプロンプト作成
データセットのアノテーションファイル (data.jsonl) では、各動画に対応するプロンプトがあります。プロンプトは動画の内容を記述します。プロンプトの品質は、モデルが何を学習するかを直接決定します。
プロンプトの例 動画は、ツタで覆われたレンガの壁の前に立つ若い女性から始まります。彼女は長く滑らかな赤褐色の髪で、白いノースリーブのドレス、輝く銀のネックレスを身に着け、顔には笑顔を浮かべています。背景は、緑のツタで覆われたレンガの壁で、素朴で自然な雰囲気です。そして、s86b5p のマネーレインエフェクトが始まり、無数の巨大な米ドル紙幣 (ベージュの背景/濃い緑の模様) が豪雨のように降り注ぎ、彼女を密集して打ち、囲みます。紙幣は降り続け、彼女は腕を上に伸ばし、首を少し後ろに傾け、驚いた表情で、このワイルドなマネーレインに完全に没頭しています。 |
プロンプト作成の公式
プロンプト = [主題の記述] + [背景の記述] + [トリガーワード] + [モーションの記述]
プロンプトの要素 | 説明 | ガイダンス | 例 |
主題の記述 | フレーム内に存在する人物やオブジェクトを記述する | 必須 | 動画は若い女性から始まります... |
背景の記述 | 主題が位置する環境を記述する | 必須 | 背景は緑のツタで覆われたレンガの壁です... |
トリガーワード | 珍しく、意味のない単語 | 推奨 | s86b5p または m01aa |
モーションの記述 | エフェクト中の動的な変化を詳細に記述する | 推奨 | 無数の巨大な米ドル紙幣 (ベージュの背景/濃い緑の模様) が豪雨のように降り注ぎます... |
良いプロンプトの書き方
エフェクト記述の一貫性ルールに従う
同じエフェクトを含むすべてのサンプルについて、モーション記述部分をできるだけ一貫させるようにしてください。このルールは、トレーニングセットと検証セットの両方に適用します。
目的:モデルが
s86b5pの後に同じ固定の記述が続き、常にマネーレインが表示されるのを見ると、s86b5p = マネーレインの視覚効果であると学習します。例:主題が「若い女性」であれ「スーツの男性」であれ、マネーレインエフェクトのプロンプトは同じように終わります:「...そして s86b5p のマネーレインエフェクトが始まり、無数の米ドル紙幣が豪雨のように降り注ぎます...」
サンプルの種類
プロンプトの内容 (下線部分の一貫性に注意)
トレーニングサンプル 1
動画はレンガの壁の前に立つ若い女性から始まります... (環境記述は省略)... そして s86b5p のマネーレインエフェクトが始まり、無数の巨大な米ドル紙幣 (ベージュの背景/濃い緑の模様) が豪雨のように降り注ぎ、彼女を密集して打ち、囲みます。紙幣は降り続け、彼女は腕を上に伸ばし、首を少し後ろに傾け、驚いた表情で、このワイルドなマネーレインに完全に没頭しています。
トレーニングサンプル 2
動画は高級レストランにいるスーツの男性から始まります... (環境記述は省略)... そして s86b5p のマネーレインエフェクトが始まり、無数の巨大な米ドル紙幣 (ベージュの背景/濃い緑の模様) が豪雨のように降り注ぎ、彼を密集して打ち、囲みます。紙幣は降り続け、彼は腕を上に伸ばし、首を少し後ろに傾け、驚いた表情で、このワイルドなマネーレインに完全に没頭しています。
検証サンプル 1
動画は街並みの前に立つ幼い子供から始まります... (環境記述は省略)... そして s86b5p のマネーレインエフェクトが始まり、無数の巨大な米ドル紙幣 (ベージュの背景/濃い緑の模様) が豪雨のように降り注ぎ、彼を密集して打ち、囲みます。紙幣は降り続け、カメラがゆっくりとズームインする間、彼は腕を上に伸ばし、首を少し後ろに傾け、驚いた表情で、このワイルドなマネーレインに完全に没頭しています。
AI を使用してプロンプトを生成する
高品質なプロンプトを得るために、Qwen-VL などのマルチモーダル大規模言語モデルを利用します。
AI を使用して初期記述を生成する
自由形式のブレインストーミング (インスピレーションを見つける):エフェクトをどのように記述すればよいかわからない場合、AI に自由に探求させます。
「
動画の内容を詳細に記述してください」と送信し、モデルの出力を観察します。モデルがモーションの軌跡に使用する用語 (例:「豪雨のように降り注ぐ」、「カメラがゆっくりとズームインする」) に注目します。これらの用語は後の最適化に使用できます。
固定形式のプロンプト (出力を標準化する):大まかなアイデアが固まったら、固定形式を設計して、AI がテンプレートに一致するプロンプトを生成するように誘導します。
エフェクトテンプレートの抽出
同じエフェクトを持つサンプルでプロセスを複数回実行します。エフェクトを記述するために使用される高頻度で正確なフレーズを特定します。一般的な「エフェクト記述」を抽出します。
この標準化されたエフェクト記述を、そのエフェクトのすべてのサンプルにコピー&ペーストします。
各サンプルのユニークな「主題」と「背景」の記述は保持します。「エフェクト記述」部分のみを統一されたテンプレートに置き換えます。
手動レビュー
AI はハルシネーションを起こしたり、検出エラーを犯すことがあります。最終ステップとして、手動でチェックを行います。例えば、エンティティと背景の記述が実際のシーンと一致していることを確認します。
検証データセットを使用したモデルの評価
検証データセットの指定
ファインチューニングジョブにはトレーニングセットが必要です。検証データセットは任意です。システムに自動的に分割させるか、手動でアップロードするかを選択できます。以下のように指定します:
方法 1: 検証データセットをアップロードしない (システムが自動的に分割)
ファインチューニングジョブを作成する際に、別の検証データセットをアップロードしない場合、つまり validation_file_ids パラメーターを渡さない場合、システムは以下の 2 つのハイパーパラメーターに基づいて、トレーニングセットの一部を自動的に検証データセットとして使用します:
split:分割するトレーニングデータの割合。例えば、0.9 は 90% をトレーニングに、10% を検証に使用することを意味します。max_split_val_dataset_sample:自動分割される検証データセットの最大サンプル数。
検証データセットの分割ルール:システムは データセットサイズ × (1 - split) と max_split_val_dataset_sample の小さい方の値を選択します。
例:100 サンプルのトレーニングセットのみをアップロードし、split=0.9 (10% が検証用)、max_split_val_dataset_sample=5 とします。
理論上の分割:100 × 10% = 10 サンプル。
実際の分割:min(10, 5)=5。したがって、システムは検証データセットにわずか 5 サンプルしか使用しません。
方法 2: 検証データセットを手動でアップロードする (validation_file_ids を使用)
システムのランダムな分割に頼るのではなく、自分で準備したデータを使用してチェックポイントを評価したい場合は、カスタム検証データセットをアップロードします。
注意:手動アップロードを選択すると、システムは上記の自動分割ルールを無視し、アップロードしたデータのみで検証します。
デプロイメントに最適なチェックポイントの選択
トレーニング中、システムは定期的に「スナップショット」(チェックポイント) を保存します。デフォルトでは、システムは最終チェックポイントをファインチューニング済みモデルとして出力します。しかし、中間チェックポイントが最終バージョンを上回る場合があります。デプロイメントに最適なものを選択できます。
ハイパーパラメーター eval_epochs で定義された間隔で、システムは検証データセット上でチェックポイントを実行し、プレビュー動画を生成します。
評価:プレビュー動画を直接見て判断します。
選択基準:最高の視覚品質で、モーションの歪みがないチェックポイントを選択します。
手順
ステップ 1: チェックポイントのプレビュー結果の表示
ステップ 2: チェックポイントをエクスポートし、デプロイ用のモデル名を取得する
ステップ 3: モデルのデプロイと呼び出し
本番運用
本番環境で、最初にトレーニングされたモデルのパフォーマンスが低い場合 (例:視覚的な歪み、弱いエフェクト、不正確なモーション)、以下のディメンションに沿って調整します:
1. データとプロンプトの確認
データの一貫性:一貫性は非常に重要です。逆方向や大きく異なるスタイルの「不良サンプル」がないか確認してください。
サンプル数:高品質なデータを 20 サンプル以上に増やしてください。
プロンプト:トリガーワードが意味のない、珍しい用語 (例:s86b5p) であることを確認してください。干渉を引き起こす一般的な単語 (例:running) は避けてください。
2. ハイパーパラメーターの調整:詳細については、ハイパーパラメーターをご参照ください。
n_epochs (トレーニングエポック数)
デフォルト:400。必要な場合を除き、デフォルトを使用してください。調整する場合は、「合計トレーニングステップ数 ≥ 800」のルールに従ってください。
合計ステップ数の数式:
steps = n_epochs × ceiling (トレーニングセットサイズ / batch_size)。n_epochs の最小値の数式:
n_epochs = 800 / ceiling (データセットサイズ / batch_size)。例:5 サンプルのトレーニングセットを使用し、Wan2.5 モデル (batch_size=2) を使用するとします。
エポックごとのステップ数:5 / 2 = 2.5、切り上げて 3。合計エポック数:n_epochs = 800 / 3 ≈ 267。これが推奨される最小値です。必要に応じて増やすことができます。
learning_rate (学習率) と batch_size (バッチサイズ) にはデフォルト値を使用できます。これらの値は通常、変更する必要はありません。
課金
モデルトレーニング:課金対象。
コスト = 合計トレーニングトークン数 × 単価。モデルトレーニングの課金をご参照ください。
トレーニング後、ファインチューニングジョブのステータスクエリ API の
usageフィールドで消費された合計トークン数を確認します。
モデルのデプロイ:無料。
モデルの呼び出し:課金対象。
ファインチューニングされた基盤モデルの標準呼び出し価格に従って課金されます。モデルの価格設定をご参照ください。
API リファレンス
よくある質問
Q: トレーニングセットと検証セットのデータ量はどのように計算されますか?
A: トレーニングセットは必須で、検証セットは任意です。計算方法は以下の通りです:
検証セットが提供されていない場合:アップロードされたトレーニングセットが「合計データセットサイズ」となります。システムは自動的にデータの一部を検証用に分割します。
検証セットサイズ =
min(合計データセットサイズ × (1 − split), max_split_val_dataset_sample)。例については、検証データセットの指定をご参照ください。トレーニングセットサイズ =
合計データセットサイズ − 検証セットサイズ。
検証セットが手動でアップロードされた場合:システムはトレーニングデータから検証セットを分割しなくなります。
トレーニングセットサイズ = アップロードされたトレーニングセットのデータ量。
検証セットサイズ = アップロードされた検証セットのデータ量。
Q: 良いトリガーワードを設計するにはどうすればよいですか?
A: 以下のルールに従ってください:
意味のない文字の組み合わせを使用します。例:sksstyle、a8z2_bbb。
一般的な英単語 (例:beautiful、fire、dance) は避けてください。これにより、モデルがこれらの単語に対して元々持っている理解を汚染するのを防ぎます。
Q: ファインチューニングで動画の解像度や持続時間を変更できますか?
A: いいえ。ファインチューニングは「内容」と「ダイナミクス」を学習するものであり、「仕様」ではありません。出力動画のフォーマット (解像度、フレームレート、最大持続時間) は、依然として基盤モデルによって決定されます。


