
HappyHorse 1.1 API ガイド:EvoLink で AI 動画を生成する

EvoLink で HappyHorse 1.1 API を使う方法
EvoLink 経由で HappyHorse 1.1 を使う場合、実務上の流れは次のとおりです。
- 入力タイプに合う HappyHorse 1.1 model ID を選ぶ。
POST /v1/videos/generationsで動画生成タスクを作成する。- 返された task ID を保存する。
GET /v1/tasks/{task_id}でポーリングするか、callback_urlを設定する。- 生成された動画を、アプリが依存する前に保存または移動する。
クイック回答
HappyHorse 1.1 には EvoLink 上で 3 つのルートがあります。
| ユースケース | Model ID | 向いているケース |
|---|---|---|
| Text-to-video | happyhorse-1.1-text-to-video | prompt のみから始める場合 |
| Image-to-video | happyhorse-1.1-image-to-video | 1 枚の first-frame 画像がある場合 |
| Reference-to-video | happyhorse-1.1-reference-to-video | 1-9 枚の順序付き参照画像がある場合 |
callback_url、生成秒数ベースの課金です。HappyHorse 1.1 を古い HappyHorse 1.0 ルートと混同しないでください。現在の HappyHorse 1.1 の EvoLink 統合面は上記 3 ルートです。
確認済み情報
| 項目 | EvoLink 上の HappyHorse 1.1 |
|---|---|
| API availability | EvoLink で利用可能 |
| タスク作成 | POST /v1/videos/generations |
| タスク状態 | GET /v1/tasks/{task_id} |
| 配信方式 | async task 作成と状態取得 |
| コールバック | 作成リクエストで callback_url を利用可能 |
| 出力解像度 | 720p と 1080p |
| 動画長 | 3 から 15 秒の整数 |
| 結果リンク | 24 時間有効。完了後すぐ保存または移動する |
| 課金形態 | 生成秒数ベース。解像度と長さの影響を受ける |
| 価格ソース | HappyHorse 1.1 料金表 |
動画生成は同期 API call ではなく、async production job として設計するべきです。
正しいルートを選ぶ
よくある失敗は、入力 asset ではなくルート名だけで選ぶことです。まず、ワークフローが何を持っているかを見ます。
| 入力 asset | 推奨ルート | 理由 |
|---|---|---|
| prompt のみ | happyhorse-1.1-text-to-video | prompt-first 生成で aspect ratio を明示的に計画できる |
| 商品、人物、シーンなど 1 枚の画像 | happyhorse-1.1-image-to-video | 画像を first frame として使い、出力比率は元画像から決まる |
| 複数の人物、物体、スタイル参照 | happyhorse-1.1-reference-to-video | character1、character2 などで順序付き画像を参照できる |
アイデア検証は text-to-video、既存 asset のアニメーションは image-to-video、複数参照の一貫性が必要なら reference-to-video を使います。
事前準備
| 必要なもの | 準備内容 |
|---|---|
| EvoLink API key | EvoLink アカウントで API key を作成 |
| 公開画像 URL | image-to-video と reference-to-video に必要 |
| Model ID | 3 つの HappyHorse 1.1 ルートから選ぶ |
| 保存計画 | 完成動画をどこに保存するか決める |
| コールバックエンドポイント | 本番 queue では HTTPS callback を推奨 |
| Cost guardrails | duration、resolution、retry limit を事前に決める |
画像入力は公開 HTTP または HTTPS URL である必要があります。認証付き storage、intranet link、local file は本番入力に向きません。
基本 request flow
| Step | API action | アプリで保存するもの |
|---|---|---|
| Task 作成 | POST /v1/videos/generations | Task ID、model ID、user ID、duration、quality |
| Task 追跡 | GET /v1/tasks/{task_id} | status、progress、output link、usage |
| 完了処理 | polling または callback_url | 最終動画アセット、最終ステータス、課金メタデータ |
| 結果保存 | 自社 storage | 安定 URL、job history、audit trail |
model 値と route-specific input を渡すことです。Text-to-video の例
model と prompt です。curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <EVOLINK_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "happyhorse-1.1-text-to-video",
"prompt": "A cinematic product shot of a transparent electric scooter moving through a clean studio space, slow dolly camera, soft reflections",
"quality": "720p",
"aspect_ratio": "16:9",
"duration": 5,
"callback_url": "https://your-domain.com/webhooks/video-task-completed"
}'| Parameter | 設計メモ |
|---|---|
prompt | 主体、シーン、カメラ、動き、光、スタイルを書く |
quality | まず 720p、prompt が安定してから 1080p |
aspect_ratio | 配信先に合わせて 16:9、9:16、1:1 などを決める |
duration | テストは 3-5 秒から始める |
seed | 再現性が必要な反復時のみ固定する |
Image-to-video の例
model と image_urls です。curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <EVOLINK_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "happyhorse-1.1-image-to-video",
"image_urls": ["https://cdn.example.com/product-hero.png"],
"prompt": "Animate the product with a smooth camera orbit and subtle studio lighting movement",
"quality": "720p",
"duration": 5,
"callback_url": "https://your-domain.com/webhooks/video-task-completed"
}'| Rule | Requirement |
|---|---|
| 画像数 | first-frame 画像 1 枚のみ |
| 形式 | JPEG, JPG, PNG, WEBP |
| 最小サイズ | 幅と高さが 300 px 以上 |
| Aspect ratio | 元画像がサポート範囲内 |
| ファイルサイズ | 1 枚あたり 10MB 以下 |
| URL | 公開 HTTP または HTTPS |
aspect_ratio を前提にしないでください。Reference-to-video の例
model、prompt、image_urls です。curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <EVOLINK_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "happyhorse-1.1-reference-to-video",
"prompt": "character1 walks into the scene, picks up the object shown as character2, and places it on the table beside character3",
"image_urls": [
"https://cdn.example.com/person.png",
"https://cdn.example.com/object.png",
"https://cdn.example.com/scene.png"
],
"quality": "720p",
"aspect_ratio": "16:9",
"duration": 5,
"callback_url": "https://your-domain.com/webhooks/video-task-completed"
}'| Rule | Requirement |
|---|---|
| 画像数 | 1-9 枚の参照画像 |
| Prompt convention | character1、character2、character3 などを使う |
| 順序 | 1 つ目の URL が character1、2 つ目が character2 |
| 形式 | JPEG, JPG, PNG, WEBP |
| 推奨品質 | クリアな画像、短辺 400 px 以上、短辺/長辺比 0.4 以上 |
| ファイルサイズ | 1 枚あたり 10MB 以下 |
| URL | 公開 HTTP または HTTPS |
character1 / character2 を明示しないと、人物や物体が混同される可能性があります。ユーザーが見た順序と最終的な image_urls 配列を一緒に保存してください。Async status と callback_url
タスク作成後、アプリは task ID を受け取ります。すぐ保存して status を確認します。
curl --request GET \
--url https://api.evolink.ai/v1/tasks/<TASK_ID> \
--header 'Authorization: Bearer <EVOLINK_API_KEY>'Task response には status、progress、model、task information、result details、usage information が含まれる場合があります。

| 方法 | 向いているケース | トレードオフ |
|---|---|---|
| Polling | ローカルテスト、小さな管理画面 | シンプルだが queue load が増える |
callback_url | ユーザー向け生成を本番運用する場合 | きれいな本番フローだが HTTPS endpoint が必要 |
callback_url は HTTPS を使い、private IP を指さないようにします。handler は idempotent に設計してください。コスト計画
| Cost driver | 重要な理由 | 実用的な guardrail |
|---|---|---|
| Duration | 秒数が増えるほどコストが上がる | まず 3-5 秒でテスト |
| 解像度 | 高解像度は課金に影響する | prompt 品質は 720p で確認 |
| リトライ | 無条件リトライは支出を増やす | 一時的な失敗だけリトライ |
| ルート選択 | reference workflow は運用が複雑 | 1 枚で足りるなら image-to-video |
| バッチサイズ | batch はコストスパイクを隠しやすい | user/job 単位で上限を設定 |
本番チェックリスト
| 領域 | チェックリスト |
|---|---|
| モデルルーティング | product action を正しい HappyHorse 1.1 model ID に対応させる |
| 入力検証 | prompt length、画像数、public URL、format、size を検証 |
| キュー設計 | すべての video job を async job として扱う |
| コールバックセキュリティ | HTTPS、payload validation、idempotent handler |
| コスト管理 | duration、quality、account limit の default を設定 |
| アセット保存 | 24 時間の結果リンク期限内に自社 storage へ移動 |
| フォールバックモデル | 別の EvoLink video model を fallback として用意 |
| 監視 | failure rate、average completion time、retry rate、spend を追跡 |
EvoLink の統一 API gateway を使えば、HappyHorse、Seedance、Kling、Sora などの切り替えは新しい vendor integration ではなく model selection の問題になります。
Troubleshooting
| 症状 | 原因 | 対処 |
|---|---|---|
model_access_denied | API key が model にアクセスできない | account access を確認し、HappyHorse 1.1 ページの model ID を使う |
| Image-to-video request が失敗 | image_urls がない、または URL が public ではない | 公開画像 URL を 1 つ渡す |
| Reference output が混同する | prompt が character1 などを使っていない | prompt と image array の順序を合わせる |
| Aspect ratio が期待と違う | image-to-video で明示 control を期待している | 元画像の比率を調整する |
| コストが高い | duration、resolution、retry、batch が増えた | 短い 720p test と spend limit を使う |
| ユーザー request が timeout | 動画生成を同期処理している | task ID を保存し polling または callback を使う |
実装パターン
type HappyHorseRoute =
| 'text-to-video'
| 'image-to-video'
| 'reference-to-video'
const happyHorseModelIdByRoute: Record<HappyHorseRoute, string> = {
'text-to-video': 'happyhorse-1.1-text-to-video',
'image-to-video': 'happyhorse-1.1-image-to-video',
'reference-to-video': 'happyhorse-1.1-reference-to-video',
}Routing layer は product logic の後ろに置きます。UI は入力 asset を聞き、backend が model ID と検証済み request body に変換します。
他の EvoLink 動画モデルを使うべき場合
| 必要なもの | 検討するルート |
|---|---|
| video や audio など広い reference type | Seedance 2.0 |
| 繰り返し可能な short-form production | Kling 3.0 |
| 異なる creative style | EvoLink model catalog で他の route を比較 |
FAQ
HappyHorse 1.1 ではどの endpoint を使いますか?
POST /v1/videos/generations を使い、入力タイプに合う HappyHorse 1.1 model ID を渡します。HappyHorse 1.1 の model ID は何ですか?
happyhorse-1.1-text-to-video、happyhorse-1.1-image-to-video、happyhorse-1.1-reference-to-video です。prompt のみの場合はどれを使いますか?
happyhorse-1.1-text-to-video を使います。first-frame animation にはどれを使いますか?
happyhorse-1.1-image-to-video を使います。複数の参照画像にはどれを使いますか?
happyhorse-1.1-reference-to-video を使い、prompt で character1、character2 などを参照します。Image-to-video は aspect_ratio をサポートしますか?
いいえ。output ratio は元画像から決まります。明示的に比率を計画したい場合は text-to-video または reference-to-video を使います。
callback_url は使えますか?
はい。HTTPS を使い、callback handler を idempotent にしてください。
最新価格はどこで見ますか?
同じ EvoLink API key を使えますか?
はい。HappyHorse 1.1 は同じ EvoLink API key と課金システムを使います。
HappyHorse 1.1 は video-edit をサポートしますか?
現在の HappyHorse 1.1 ページと API リファレンスは text-to-video、image-to-video、reference-to-video を示しています。HappyHorse 1.0 の video-edit route を HappyHorse 1.1 として使わないでください。


