開発者ドキュメント画像入力

画像入力

H3 動画タスク API · /api/v3

1 回のリクエストで画像を送信

主要 API で使用する項目: content[].image_url.url。公開画像 URL または完全な Base64 data URL を指定します。ローカルファイルは SDK で読み込み・エンコードし、プロンプトと同じリクエストで送信します。

入力指定方法
画像 URLhttps://YOUR_IMAGE_HOST/first-frame.jpg
Base64data:image/jpeg;base64,BASE64_DATA
ローカル画像ローカルファイルのサンプルに切り替えると、Python が first-frame.jpg を読み込みます。

画像から動画を生成するサンプル

画像入力
Python · 作成と自動ポーリング
import os, time, uuid
from volcenginesdkarkruntime import Ark

client = Ark(
    api_key=os.environ["ARK_API_KEY"],
    base_url="https://fablun.com/api/v3",
)

request_key = str(uuid.uuid4())  # 新しいタスクでのみ生成し、通信の再試行では保存済みの値を再利用します。
print("Idempotency-Key:", request_key)
task = client.content_generation.tasks.create(
    model="h3-pro",
    content=[
        {"type":"text","text":"人物が自然にカメラへ顔を向け、そよ風が髪を揺らす。カメラがゆっくり近づく。"},
        {"type":"image_url","image_url":{"url":"https://YOUR_IMAGE_HOST/first-frame.jpg"},"role":"first_frame"}
    ],
    resolution="480p", duration=5, ratio="16:9",
    
    extra_headers={"Idempotency-Key": request_key},
)
print("task_id:", task.id)  # ID を保存し、通信が中断した場合は同じタスクの確認を再開します。

deadline = time.monotonic() + 1800
while time.monotonic() < deadline:
    result = client.content_generation.tasks.get(task_id=task.id)
    if result.status == "succeeded":
        print(result.content.video_url)
        break
    if result.status in ("failed", "expired", "cancelled"):
        raise RuntimeError(result.error or result.status)
    time.sleep(2)
else:
    raise TimeoutError(f"待機時間を超えました。同じタスクを引き続き確認してください:{task.id}")

「画像から動画」に切り替え、URL、Base64、ローカルファイルから選択します。

画像の要件

単一フレームの PNG、JPEG、WebP に対応し、元ファイルは最大 8 MiB です。一辺 32~8192 ピクセル、総画素数は 16 × 1024² 以下です。公開 HTTP(S) URL はポート 80 または 443 を使用します。開始フレームは 1 枚のみ対応します。

開始・終了フレーム

H3 Pro の 5 秒動画で開始・終了フレームに対応。480p / 720p、1:1・3:4・4:3・16:9・9:16 が利用できます。各 role は 1 枚、last_frame には first_frame が必要です。動画 1 件として課金し、キャンセル・審査・コールバックは通常のタスクと同じです。出力用 return_last_frame は未対応です。

{
  "model": "h3-pro",
  "content": [
    {
      "type": "text",
      "text": "A red ball rolls from left to right."
    },
    {
      "type": "image_url",
      "image_url": {
        "url": "https://YOUR_IMAGE_HOST/first-frame.jpg"
      },
      "role": "first_frame"
    },
    {
      "type": "image_url",
      "image_url": {
        "url": "https://YOUR_IMAGE_HOST/last-frame.jpg"
      },
      "role": "last_frame"
    }
  ],
  "resolution": "720p",
  "duration": 5,
  "ratio": "16:9",
  "generate_audio": true
}

動画圧縮(任意)

compress: boolean、既定値 false。true で北京の CPU 配信処理にて圧縮します。解像度、フレームレート、音声は維持します。追加生成料金はありません。5% 未満の削減またはエンコード失敗時は元動画を返し、compression.applied / reason で確認できます。通常の審査、有効期限、署名付きコールバックが適用されます。

{
  "model": "h3-pro",
  "content": [
    {
      "type": "text",
      "text": "A cat walks through a garden."
    }
  ],
  "resolution": "720p",
  "compress": true
}