curl --request POST \
--url https://api.sinancode.com/v1/generate/bailian/wan2-image-to-video \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"image_url": "https://media.sinancode.com/uploads/20251217/a6aa177e82d58f6738109807a0548605.webp",
"audio": true,
"audio_url": "<string>",
"model": "wan2.6-i2v",
"negative_prompt": "<string>",
"prompt": "<string>",
"prompt_extend": true,
"seed": 1073741823,
"template": "<string>",
"watermark": true
}
'import requests
url = "https://api.sinancode.com/v1/generate/bailian/wan2-image-to-video"
payload = {
"image_url": "https://media.sinancode.com/uploads/20251217/a6aa177e82d58f6738109807a0548605.webp",
"audio": True,
"audio_url": "<string>",
"model": "wan2.6-i2v",
"negative_prompt": "<string>",
"prompt": "<string>",
"prompt_extend": True,
"seed": 1073741823,
"template": "<string>",
"watermark": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
image_url: 'https://media.sinancode.com/uploads/20251217/a6aa177e82d58f6738109807a0548605.webp',
audio: true,
audio_url: '<string>',
model: 'wan2.6-i2v',
negative_prompt: '<string>',
prompt: '<string>',
prompt_extend: true,
seed: 1073741823,
template: '<string>',
watermark: true
})
};
fetch('https://api.sinancode.com/v1/generate/bailian/wan2-image-to-video', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sinancode.com/v1/generate/bailian/wan2-image-to-video",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'image_url' => 'https://media.sinancode.com/uploads/20251217/a6aa177e82d58f6738109807a0548605.webp',
'audio' => true,
'audio_url' => '<string>',
'model' => 'wan2.6-i2v',
'negative_prompt' => '<string>',
'prompt' => '<string>',
'prompt_extend' => true,
'seed' => 1073741823,
'template' => '<string>',
'watermark' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sinancode.com/v1/generate/bailian/wan2-image-to-video"
payload := strings.NewReader("{\n \"image_url\": \"https://media.sinancode.com/uploads/20251217/a6aa177e82d58f6738109807a0548605.webp\",\n \"audio\": true,\n \"audio_url\": \"<string>\",\n \"model\": \"wan2.6-i2v\",\n \"negative_prompt\": \"<string>\",\n \"prompt\": \"<string>\",\n \"prompt_extend\": true,\n \"seed\": 1073741823,\n \"template\": \"<string>\",\n \"watermark\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sinancode.com/v1/generate/bailian/wan2-image-to-video")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"image_url\": \"https://media.sinancode.com/uploads/20251217/a6aa177e82d58f6738109807a0548605.webp\",\n \"audio\": true,\n \"audio_url\": \"<string>\",\n \"model\": \"wan2.6-i2v\",\n \"negative_prompt\": \"<string>\",\n \"prompt\": \"<string>\",\n \"prompt_extend\": true,\n \"seed\": 1073741823,\n \"template\": \"<string>\",\n \"watermark\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sinancode.com/v1/generate/bailian/wan2-image-to-video")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"image_url\": \"https://media.sinancode.com/uploads/20251217/a6aa177e82d58f6738109807a0548605.webp\",\n \"audio\": true,\n \"audio_url\": \"<string>\",\n \"model\": \"wan2.6-i2v\",\n \"negative_prompt\": \"<string>\",\n \"prompt\": \"<string>\",\n \"prompt_extend\": true,\n \"seed\": 1073741823,\n \"template\": \"<string>\",\n \"watermark\": true\n}"
response = http.request(request)
puts response.read_body{
"task_id": "01234567-89ab-cdef-0123-456789abcdef"
}{
"error_code": "<string>",
"message": "<string>"
}{
"error_code": "<string>",
"message": "<string>"
}{
"error_code": "<string>",
"message": "<string>"
}{
"error_code": "<string>",
"message": "<string>"
}Wan2 画像から動画
通義萬相 Wan2.6 画像から動画生成モデル(wan2.6-i2v)を使用して、先頭フレーム画像とテキストプロンプトから滑らかな動画を生成します。自動音声合成、カスタムオーディオ、マルチショットナラティブをサポート
curl --request POST \
--url https://api.sinancode.com/v1/generate/bailian/wan2-image-to-video \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"image_url": "https://media.sinancode.com/uploads/20251217/a6aa177e82d58f6738109807a0548605.webp",
"audio": true,
"audio_url": "<string>",
"model": "wan2.6-i2v",
"negative_prompt": "<string>",
"prompt": "<string>",
"prompt_extend": true,
"seed": 1073741823,
"template": "<string>",
"watermark": true
}
'import requests
url = "https://api.sinancode.com/v1/generate/bailian/wan2-image-to-video"
payload = {
"image_url": "https://media.sinancode.com/uploads/20251217/a6aa177e82d58f6738109807a0548605.webp",
"audio": True,
"audio_url": "<string>",
"model": "wan2.6-i2v",
"negative_prompt": "<string>",
"prompt": "<string>",
"prompt_extend": True,
"seed": 1073741823,
"template": "<string>",
"watermark": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
image_url: 'https://media.sinancode.com/uploads/20251217/a6aa177e82d58f6738109807a0548605.webp',
audio: true,
audio_url: '<string>',
model: 'wan2.6-i2v',
negative_prompt: '<string>',
prompt: '<string>',
prompt_extend: true,
seed: 1073741823,
template: '<string>',
watermark: true
})
};
fetch('https://api.sinancode.com/v1/generate/bailian/wan2-image-to-video', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sinancode.com/v1/generate/bailian/wan2-image-to-video",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'image_url' => 'https://media.sinancode.com/uploads/20251217/a6aa177e82d58f6738109807a0548605.webp',
'audio' => true,
'audio_url' => '<string>',
'model' => 'wan2.6-i2v',
'negative_prompt' => '<string>',
'prompt' => '<string>',
'prompt_extend' => true,
'seed' => 1073741823,
'template' => '<string>',
'watermark' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sinancode.com/v1/generate/bailian/wan2-image-to-video"
payload := strings.NewReader("{\n \"image_url\": \"https://media.sinancode.com/uploads/20251217/a6aa177e82d58f6738109807a0548605.webp\",\n \"audio\": true,\n \"audio_url\": \"<string>\",\n \"model\": \"wan2.6-i2v\",\n \"negative_prompt\": \"<string>\",\n \"prompt\": \"<string>\",\n \"prompt_extend\": true,\n \"seed\": 1073741823,\n \"template\": \"<string>\",\n \"watermark\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sinancode.com/v1/generate/bailian/wan2-image-to-video")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"image_url\": \"https://media.sinancode.com/uploads/20251217/a6aa177e82d58f6738109807a0548605.webp\",\n \"audio\": true,\n \"audio_url\": \"<string>\",\n \"model\": \"wan2.6-i2v\",\n \"negative_prompt\": \"<string>\",\n \"prompt\": \"<string>\",\n \"prompt_extend\": true,\n \"seed\": 1073741823,\n \"template\": \"<string>\",\n \"watermark\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sinancode.com/v1/generate/bailian/wan2-image-to-video")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"image_url\": \"https://media.sinancode.com/uploads/20251217/a6aa177e82d58f6738109807a0548605.webp\",\n \"audio\": true,\n \"audio_url\": \"<string>\",\n \"model\": \"wan2.6-i2v\",\n \"negative_prompt\": \"<string>\",\n \"prompt\": \"<string>\",\n \"prompt_extend\": true,\n \"seed\": 1073741823,\n \"template\": \"<string>\",\n \"watermark\": true\n}"
response = http.request(request)
puts response.read_body{
"task_id": "01234567-89ab-cdef-0123-456789abcdef"
}{
"error_code": "<string>",
"message": "<string>"
}{
"error_code": "<string>",
"message": "<string>"
}{
"error_code": "<string>",
"message": "<string>"
}{
"error_code": "<string>",
"message": "<string>"
}- 最初のフレーム駆動 - 最初のフレーム画像から一貫性のあるダイナミック動画を生成
- スマートオーディオ - 自動音声生成またはカスタムオーディオ同期をサポート
- マルチ解像度 - 720P、1080P HD出力をサポート
- 柔軟な長さ - 5/10/15秒の動画生成をサポート
- マルチショットモード - 主体一貫性を保ちながらシングルショットとマルチショットモードをサポート
承認
API Tokenを使用して認証を行ってください
ボディ
タスクパラメータ
先頭フレーム画像 URL(必須) 公衆インターネット URL(HTTP/HTTPS)または Base64 エンコードをサポート 画像形式:JPEG、JPG、PNG(透明チャンネル非対応)、BMP、WEBP 画像解像度:幅と高さの範囲は[360, 2000]ピクセル ファイルサイズ:10MB以下
"https://media.sinancode.com/uploads/20251217/a6aa177e82d58f6738109807a0548605.webp"
オーディオを追加するかどうか(オプション、デフォルト true) audio_url が空の場合に有効 true:ビデオに自動でオーディオを追加 false:オーディオを追加せず、無音ビデオを出力
オーディオファイル URL(オプション、wan2.5-i2v-preview のみサポート) モデルはこのオーディオを使用してビデオを生成し、音と映像を同期させます 形式:wav、mp3、長さ:3~30秒、ファイルサイズ:15MB以下
ビデオの長さ(オプション、デフォルト 5 秒) wan2.6-i2v:選択可能な値は 5、10、15
5, 10, 15 モデル名(オプション、空欄推奨) 空欄の場合は最新バージョンのモデルを使用し、今後のモデルアップグレードは自動的に適用されます 現在のデフォルト:wan2.6-i2v
wan2.6-i2v ネガティブプロンプト(オプション、最大 500 文字) ビデオ映像に含めてほしくない内容を記述するために使用します
500テキストプロンプト(オプション、最大 2000 文字) 生成される画像に含めてほしい要素や視覚的特徴を記述するために使用します ビデオエフェクトパラメータ(template)を使用する場合、promptパラメータは無効です
2000プロンプトのインテリジェントリライトを有効化するかどうか(オプション、デフォルト true) 有効にすると、大規模言語モデルを使用して入力プロンプトをインテリジェントにリライトします
解像度レベル(オプション、デフォルト 1080P) wan2.6-i2v:選択可能な値 720P、1080P(480Pは非対応)
720P, 1080P ランダムシード(オプション、範囲 0-2147483647)
0 <= x <= 2147483647ショットタイプ(オプション、デフォルト single、wan2.6-i2v のみサポート) prompt_extend=true の場合のみ有効 single:シングルショットビデオ multi:マルチショットビデオ(複数のショット切り替えをサポートし、被写体の一貫性を維持)
single, multi ビデオエフェクトテンプレート名(オプション) エフェクトを使用する場合、prompt パラメータは無効です モデルによってサポートするエフェクトテンプレートが異なります
ウォーターマークを追加するかどうか(オプション、デフォルト false) ウォーターマークはビデオの右下に表示され、テキストは固定で「AI生成」です
レスポンス
OK
タスクID
"01234567-89ab-cdef-0123-456789abcdef"