aliyun-video-style-repaint について
Alibaba Cloud DashScope の非同期動画生成 API で、入力動画をプリセットのアートスタイルに変換するスキルです。8 種類のスタイルを選べ、フレームレート、解像度、超解像を設定できます。
主な機能
- 018 種類のプリセットスタイル
- 02出力フレームレートと解像度の設定
- 03表情最適化と超解像のオプション
- 04非同期ジョブの送信と結果のポーリング
活用シーン
- 01動画を漫画風やイラスト風に変換
- 02短い動画に中国水墨画風を適用
- 03フレームレートと出力解像度を調整
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ cinience/ alicloud-skills --skill aliyun-video-style-repaintインストール後、Claude Code で/aliyun-video-style-repaintを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api_reference.mdsources.mdscripts/repaint_video.py詳細
動画スタイルのリペイント
検証
mkdir -p output/aliyun-video-style-repaint
python -m py_compile skills/ai/video/aliyun-video-style-repaint/scripts/repaint_video.py && echo "py_compile_ok" > output/aliyun-video-style-repaint/validate.txt
合格基準:コマンドが終了コード 0 で終了し、output/aliyun-video-style-repaint/validate.txt が生成されること。
出力とエビデンス
- タスク ID、ポーリング応答、最終的な動画 URL を
output/aliyun-video-style-repaint/に保存します。 - トラブルシューティング用に、エンドツーエンドの実行ログを少なくとも 1 つ保持します。
前提条件
- SDK をインストールします(venv の使用を推奨します)。
python3 -m venv .venv
. .venv/bin/activate
python -m pip install requests
- 環境に
DASHSCOPE_API_KEYを設定するか、~/.alibabacloud/credentialsにdashscope_api_keyを追加します。 - この API は北京リージョンでのみ利用できます。北京リージョンの API Key を使用する必要があります。
重要なモデル名
video-style-transform-- 8 種類のプリセットされたアートスタイルに対応します
対応スタイル
| スタイル ID | 名前(英語) | 名前(中国語) |
|---|---|---|
| 0 | 日本の漫画 | 日式漫画 |
| 1 | アメリカンコミック | 美式漫画 |
| 2 | 爽やかな漫画 | 清新漫画 |
| 3 | 3D カートゥーン | 3D 卡通 |
| 4 | 中国風カートゥーン | 国风卡通 |
| 5 | ペーパーアート | 纸艺风格 |
| 6 | シンプルなイラスト | 简易插画 |
| 7 | 中国風水墨画 | 国风水墨 |
API エンドポイント(非同期のみ)
POST https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
必須ヘッダー:
Authorization: Bearer $DASHSCOPE_API_KEYContent-Type: application/jsonX-DashScope-Async: enable
正規化インターフェース
リクエスト
video_url(string、必須)-- 入力動画の公開 HTTP/HTTPS URLstyle(integer、任意)-- スタイル ID 0~7(デフォルト:0、日本の漫画)video_fps(integer、任意)-- 出力フレームレート、範囲 [15, 25](デフォルト:15)animate_emotion(boolean、任意)-- 顔の表情の最適化(デフォルト:true)min_len(integer、任意)-- 出力の短辺のピクセル数。720 または 540(デフォルト:720)use_SR(boolean、任意)-- 超解像度補正(デフォルト:false)
動画入力の制限
- 形式:MP4、AVI、MKV、MOV、FLV、TS、MPG、MXF
- 解像度:各辺 [256, 4096] ピクセル、アスペクト比は最大 1.8:1
- 長さ:最大 30 秒
- 最大サイズ:100MB
- URL:非 ASCII 文字を含む場合は URL エンコードが必要です
レスポンス(タスク作成)
output.task_id(string)-- ポーリングに使用します。有効期間は 24 時間ですoutput.task_status(string)-- PENDING | RUNNING | SUSPENDED | SUCCEEDED | FAILEDrequest_id(string)
レスポンス(タスク結果)
output.output_video_url(string)-- 結果動画の URLoutput.task_status(string)-- 最終ステータスoutput.submit_time(string)-- タスクの送信時刻output.scheduled_time(string)-- タスクの実行開始時刻output.end_time(string)-- タスクの完了時刻usage.duration(integer)-- 動画の長さ(秒)usage.SR(integer)-- 使用した解像度
クイックスタート(Python + HTTP)
import os
import json
import time
import requests
API_KEY = os.getenv("DASHSCOPE_API_KEY")
BASE_URL = "https://dashscope.aliyuncs.com/api/v1"
def create_style_repaint_task(video_url: str, style: int = 0) -> str:
"""Create a video style repaint task and return task_id."""
payload = {
"model": "video-style-transform",
"input": {
"video_url": video_url,
},
"parameters": {
"style": style,
"video_fps": 15,
},
}
resp = requests.post(
f"{BASE_URL}/services/aigc/video-generation/video-synthesis",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
"X-DashScope-Async": "enable",
},
json=payload,
)
resp.raise_for_status()
data = resp.json()
return data["output"]["task_id"]
def poll_task(task_id: str, interval: int = 15) -> dict:
"""Poll until task completes. Returns final response."""
while True:
resp = requests.get(
f"{BASE_URL}/tasks/{task_id}",
headers={"Authorization": f"Bearer {API_KEY}"},
)
resp.raise_for_status()
data = resp.json()
status = data["output"]["task_status"]
if status in ("SUCCEEDED", "FAILED", "CANCELED", "SUSPENDED"):
return data
time.sleep(interval)
エラー処理
| エラー | 考えられる原因 | 対処方法 |
|---|---|---|
| 401/403 | DASHSCOPE_API_KEY が未設定、または無効 | 環境変数または認証情報ファイルを確認します |
400 InvalidParameter | 対応していない動画形式、不適切な寸法、無効なスタイル | パラメーターを検証します |
| "does not support synchronous calls" | X-DashScope-Async: enable ヘッダーが不足 | 必須ヘッダーを追加します |
| 429 | レート制限またはクォータ | バックオフして再試行します |
出力先
- デフォルトの出力先:
output/aliyun-video-style-repaint/videos/ OUTPUT_DIRでベースディレクトリを上書きできます。
避けるべきパターン
video-style-transform以外のモデル名は使用しないでください。- この API を同期的に呼び出さないでください。非同期ヘッダーが必須です。
- 範囲 0~7 以外のスタイル ID は使用しないでください。
- 動画 URL は 24 時間後に有効期限が切れます。すぐにダウンロードして保存してください。
- シンガポールのエンドポイントは使用しないでください。この API は北京リージョンでのみ利用できます。
ワークフロー
- ユーザーの意図を確認し、8 種類のプリセットから希望するアートスタイルを選択します。
- 有効な形式と寸法の動画 URL を用意します。
- パラメーター(スタイル、fps、解像度、超解像度)を設定します。
- 非同期タスクを作成し、結果をポーリングします。
- URL の有効期限が切れる前に、変換後の動画をダウンロードして保存します。
参考資料
- HTTP API の詳細については、
references/api_reference.mdを参照してください。 - ソースリンクについては、
references/sources.mdを参照してください。
コメント
Markdown 対応