Source: https://ailoot.ai/models/zh-hant-tw/alibaba-happyhorse-1-0/
Canonical: https://ailoot.ai/models/zh-hant-tw/alibaba-happyhorse-1-0/
Language: zh-hant-tw

# Alibaba: HappyHorse 1.0

[Markdown](https://ailoot.ai/models/zh-hant-tw/alibaba-happyhorse-1-0/index.md) · [JSON](https://ailoot.ai/models/zh-hant-tw/alibaba-happyhorse-1-0/facts.json)

## [Alibaba: HappyHorse 1.0](https://ailoot.ai/models/zh-hant-tw/alibaba-happyhorse-1-0/)

Alibaba HappyHorse 1.0 可根據文字、首張圖片或最多九張參考圖片建立有聲短片。生成模式輸出 3–15 秒、24 fps 的 MP4，解析度為 720p 或 1080p。另行命名的 1.0 影片編輯規格可修改提供的影像，支援選用視覺參考，並有自己的限制。

- [**Ailoot Ultra · 影片** `POST /v1/videos` `alibaba/happyhorse-1.0`](https://ailoot.ai/models/zh-hant-tw/alibaba-happyhorse-1-0/#method-0)

關於模型

此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項，依所選方法列於下方。

Alibaba HappyHorse 1.0 是影片創作版本，提供具名的文字轉影片、首格圖片轉影片與參考轉影片規格。原廠將符合物理的可信動作、語意理解與影音同步列為創作重點。參考規格最多可用九張圖片引導主體與場景。實用素材是附帶聲音的短片：新場景、由準備好的開場靜態圖片生成的動畫，或參考引導的角色及產品鏡頭。

文字場景需定義主體、場景、動作與攝影機，並交代預期聲音。桌面場景可呈現小型模型帆船在淺水盤中移動，攝影機以桌面高度跟隨。檢查時便能確認船身形狀、場景尺度、水流動態，以及動作與聲音的關係。集中動作比關鍵時刻不明確的密集事件序列更容易評估。

首格生成應使用主體及構圖已符合預期開場的靜態圖片。描述接續動作及攝影機路徑。原廠確切的 1.0 圖片規格接受文字與圖片輸入，生成矩陣則將其識別為首格圖片轉影片。生成鏡頭前，請準備裁切及可見產品或角色細節。檢查這些細節在動作中是否保持可辨識，不要只判斷開場影格。

參考轉影片將視覺來源中的人物、產品、風格或場景，組合成新描述的場景。確切的 1.0 參考模型頁面記載最多九張圖片。請在簡述中分配用途，並描述主體在場景中如何行動。產品展示可以區分物品參考與周圍地點或視覺風格。原廠強調的穩定性是檢查目標：整段短片都應將主體、標記及位置與實際參考比較。

1.0 系列也有另行命名的影片編輯規格，用於現有影像的風格變更、局部或較大範圍修訂。該規格接受恰好一段來源影片及零至五張參考圖片，不同於九圖參考生成安排。請交代應改變及保留什麼，例如更換服裝但保留人物、動作與背景。編輯結果需與完整來源短片比較，不只檢查顯示預期替換的單一影格。

確切的 1.0 編輯指南接受 MP4 或 MOV 來源影像，建議 H.264，允許來源長度三至六十秒。文件列出上限 100 MB、短邊至少 360 像素、長邊不超過 4,096 像素、比例介於 1:2.5 與 2.5:1，以及輸入影格率 8–60 fps。編輯輸出限於三至十五秒：十五秒以內來源保留片長，較長來源只使用前十五秒。若重要動作發生在來源較後段，請先裁出所需段落再準備編輯。

編輯規格的選用參考圖片另有 20 MB 上限，格式須為 JPEG／JPG、PNG 或 WEBP，兩邊尺寸都至少 300 像素，並符合相同的文件比例範圍。指南也區分自動音訊處理與保留原始音訊。請準備能識別預期變更的參考，並選擇來源聲音應如何與變更配合。這些是特定的 1.0 編輯規格控制，與新場景生成模式分開。

1.0 生成模式的原廠確切矩陣列出 720p 或 1080p、三至十五秒、24 fps MP4 及音訊。編輯規格也在十五秒限制內輸出 720p 或 1080p。文件工作流程先回傳處理識別碼，成功後提供完成影片位置；結果位置有效期為二十四小時。準備正式剪輯時，請保存實際短片、提示詞與參考，並一併檢查回傳構圖、片長及聲音。

HappyHorse 1.1 增加 480p 生成選項，以及明列的視覺細節、動作與跨短片一致性改善。這些較新版本的生成宣稱，不能視為特定 1.0 版本的能力保證。實用的 1.0 準備應遵循所選模式及實際來源素材。檢查身分、接觸、物件幾何、文字與聲音，再具體提出下一次修正。編輯短片也需確認，指定變更以外的重要原始細節仍適合預期場景。

**Ailoot Ultra · 影片** `POST /v1/videos` `alibaba/happyhorse-1.0`

[`alibaba/happyhorse-1.0`](https://ailoot.ai/models/zh-hant-tw/#m=alibaba%2Fhappyhorse-1.0&route=Ultra&caller=alibaba%2Fhappyhorse-1.0&fmt=videos)

Alibaba /`alibaba/happyhorse-1.0`

### 入門

Alibaba HappyHorse 1.0 可根據文字、首張圖片或最多九張參考圖片建立有聲短片。生成模式輸出 3–15 秒、24 fps 的 MP4，解析度為 720p 或 1080p。另行命名的 1.0 影片編輯規格可修改提供的影像，支援選用視覺參考，並有自己的限制。

接受的輸入

文字 · 圖片

結果

影片

### Ailoot 可用 · 輸入與方法

**Ailoot Ultra · 影片** `POST /v1/videos`

輸入

`text`, `image`

輸出

`video`

輸出格式

原始 MP4 位元組；不進行正規化或轉碼

| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
| --- | --- | --- | --- | --- |
| 欄位`model` | 類型`string` | 要求必填 | 值與限制 alibaba/happyhorse-1.0 | 預設值— |
| 欄位`prompt` | 類型`string` | 要求必填 | 值與限制 | 預設值— |
| 欄位`duration` | 類型`integer` | 要求必填 | 值與限制 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 最小值: 1 最大值: 600 | 預設值— |
| 欄位`resolution` | 類型`string` | 要求選填 | 值與限制 720p, 1080p | 預設值— |
| 欄位`aspect_ratio` | 類型`string` | 要求選填 | 值與限制 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 9:21 | 預設值— |
| 欄位`generate_audio` | 類型`boolean` | 要求選填 | 值與限制 false | 預設值— |
| 欄位`frame_images` | 類型`array` | 要求選填 | 值與限制 項目數下限: 1 項目數上限: 1 輸入內容: 影格物件陣列。每個物件包含 type=image\_url、內含 url 的 image\_url，以及 frame\_type。請使用 HTTPS 圖片 URL，並將 frame\_type 設為 first\_frame。每種影格角色最多只能出現一次。 確切鍵名: type, image\_url, frame\_type 條件: 這些鍵描述每個影格物件；image\_url 僅包含 url。僅含文字的請求請省略 frame\_images。 | 預設值— |
| 欄位`input_references` | 類型`array` | 要求選填 | 值與限制 | 預設值— |
| 欄位`size` | 類型`string` | 要求選填 | 值與限制 1280x720, 720x1280, 720x720, 960x720, 720x960, 1680x720, 720x1680, 1920x1080, 1080x1920, 1080x1080, 1440x1080, 1080x1440, 2520x1080, 1080x2520 模式: ^\[1-9\]\[0-9\]\*x\[1-9\]\[0-9\]\*$ | 預設值— |
| 欄位`seed` | 類型`integer` | 要求選填 | 值與限制 最小值: -9,223,372,036,854,775,808 最大值: 9,223,372,036,854,775,807 | 預設值— |
| 欄位`callback_url` | 類型`string` | 要求選填 | 值與限制 模式: ^https:// | 預設值— |
| 欄位`session_id` | 類型`string` | 要求選填 | 值與限制 | 預設值— |
| 欄位`trace` | 類型`object` | 要求選填 | 值與限制 | 預設值— |
| 欄位`user` | 類型`string` | 要求選填 | 值與限制 | 預設值— |

輸入素材組合

**文字生成影片** · 文字提示詞。 · 必填： model, prompt, duration

`請以文字提供 prompt，並以整數秒提供 duration。請選擇支援的解析度，並指定長寬比或使用列出的大小。`

`model`: 類型： string · alibaba/happyhorse-1.0

`prompt`: 類型： string · UTF-8 位元組數上限: 10,000 · 必須包含非空白字元: 是

**圖片生成影片** · 文字提示詞與首格圖片。 · 必填： model, prompt, duration, frame\_images

`frame_images 是陣列。每個影格物件包含 type、image_url 與 frame_type；image_url 內含 url。請將 type 設為 image_url，並使用 first_frame。每種影格角色最多只能出現一次。請為每個影格提供公開的 HTTPS 圖片 URL。請選擇支援的解析度，並指定長寬比或使用列出的大小。`

確切鍵名： type, image\_url, frame\_type

`model`: 類型： string · alibaba/happyhorse-1.0

`prompt`: 類型： string · UTF-8 位元組數上限: 10,000 · 必須包含非空白字元: 是

**Reference to video** · 文字提示詞與支援的圖片參考資料。 · 必填： model, prompt, duration, input\_references

`input_references 是物件陣列。請將 type 設為 image_url，並使用相應且內含 url 的欄位。請使用公開的 HTTPS URL。省略 frame_images 即可選擇參考資料模式。請選擇支援的解析度，並指定長寬比或使用列出的大小。`

`model`: 類型： string · alibaba/happyhorse-1.0

`prompt`: 類型： string · UTF-8 位元組數上限: 10,000 · 必須包含非空白字元: 是

方法參數與生命週期

| 參數 | 規格 |
| --- | --- |
| 參數`content_type` | 規格application/json |
| 參數`required` | 規格model, prompt, duration |
| 參數`material_types` | 規格text, image |
| 參數`additional_properties` | 規格false |
| 參數`optional_controls` | 規格resolution, aspect\_ratio, generate\_audio, frame\_images, input\_references, size, seed, callback\_url, session\_id, trace, user |

生命週期： `submit_once_poll_original`

`GET /v1/videos/{public_id}`

`GET /v1/videos/{public_id}/content`

### 方案

##### 最終費用的計算方式

顯示的費率用於在生成前估算費用。最終費用依原始生成作業記錄的成本計算。實測的輸出時間長度與預估數量並非最終計費數量。

費率資訊不會增加請求選項。支援的參數列於所選方法中。

快速模式

未指定 選取快速模式時

flex 模式

未指定 選取 flex 模式時

最高推理強度

未指定 最高推理強度採用 default 調整值時

#### 供比較的預估費率

#### 各設定的價格

請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。

| 設定 | 費率表 | 預估數量 | 計費單位 | 計費條件 | 費用 |
| --- | --- | --- | --- | --- | --- |
| 設定基礎 token 費率 | 費率表基本費率 | 預估數量— | 計費單位— | 計費條件— | 費用 輸入 · 輸入 Token · 僅供比較的估算 **—** / 1K Token 輸出 · 輸出 Token · 僅供比較的估算 **—** / 1K Token 輸入 · 讀取快取 · 僅供比較的估算 **—** / 1K Token 輸入 · 寫入快取 · 僅供比較的估算 **—** / 1K Token 輸入 · 寫入快取，1 小時 · 僅供比較的估算 **—** / 1K Token |
| 設定影片價格 | 費率表— | 預估數量— | 計費單位每秒影片 | 計費條件resolution: 1080p | 費用 輸出 · 影片價格 · 僅供比較的估算 **$0.3388** 每秒影片 |
| 設定影片價格 | 費率表— | 預估數量— | 計費單位每秒影片 | 計費條件resolution: 720p | 費用 輸出 · 影片價格 · 僅供比較的估算 **$0.1976** 每秒影片 |
| 設定預估生成費用 | 費率表— | 預估數量單次生成估算值 | 計費單位— | 計費條件— | 費用 輸出 · 預估生成費用 · 僅供比較的估算 **$0.5928** 生成前估算 此估算並非額外費用，也不是本次生成完成後的固定費率。 |

Ailoot 會在請求前預留估算金額。取得結果後，依實測用量結算最終費用。串流結算採用最終用量紀錄。[預留金額與結算的運作方式 →](https://ailoot.ai/docs/zh-hant-tw/billing/reserve/)

#### 參考費率詳情

模型層級的參考費率表不會變更方法選擇、報價或費用。實際計費採用所選 Ailoot 方法的費率。

影片設定的價格參考

#### 各設定的價格

請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。

| 設定 | 計費條件 | 費用 |
| --- | --- | --- |
| 設定影片價格 | 計費條件resolution: 720p | 費用 輸出 · 影片價格 **$0.1976** 每秒影片 所示設定的公開價格參考。最終費用依實際計費設定計算。 |
| 設定影片價格 | 計費條件resolution: 1080p | 費用 輸出 · 影片價格 **$0.3388** 每秒影片 所示設定的公開價格參考。最終費用依實際計費設定計算。 |

### 請求範例

#### Ailoot Ultra · 影片

curl · 建立影片

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
from pathlib import Path
Path('request.json').write_text('{"aspect_ratio":"16:9","duration":3,"model":"alibaba/happyhorse-1.0","prompt":"A serene mountain landscape at sunset","resolution":"720p"}', encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('result.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
```

### 接收並儲存結果

#### Ailoot Ultra · 影片

自有內容的簽署 URL

- `GET /v1/videos/{public_id}`
- `GET /v1/videos/{public_id}/content`

##### 查看工作狀態

GET · 取得原始作業狀態

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_STATUS_URL'
import json
from pathlib import Path
from urllib.parse import quote
r=json.loads(Path('result.json').read_text())
if not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')
Path('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))
PY_STATUS_URL
curl --fail-with-body --silent --show-error "$(cat status-url.txt)" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('status.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
```

其他內容讀取方式

儲存所有已完成且屬於自己的輸出

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path('status.json').read_text())
if r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')
if not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')
urls=[]
for i,u in enumerate(r.get('data',[])):
    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')
    urls.append((str(i),u))
for label,path in urls:
    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)
    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')
    target=Path('owned-'+label+'.bin')
    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)
print('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')
PY_ASSETS
```

##### 保留所有已完成的結果

請儲存每部已完成的影片或傳回的檔案，並從實際傳回的每個素材 URL 取得素材。

請保留每個實際的自有輸出，以及回傳的實測中繼資料。

##### 需要檢查原始回應時

503 result\_pending\_check + 原始 id + X-Should-Retry:false；切勿重送原始請求

回應欄位

| 欄位 | 類型 | 含義 |
| --- | --- | --- |
| 欄位`index` | 類型integer | 含義此影片在輸出清單中的位置，索引從零開始。 |
| 欄位`content_url` | 類型string | 含義此已完成影片的簽署 HTTPS 下載 URL。 |
| 欄位`sha256` | 類型string \| null | 含義原始影片位元組的 SHA-256 摘要；無法取得時為 null。 |
| 欄位`size_bytes` | 類型integer \| null | 含義原始影片檔案大小，以位元組為單位；無法取得時為 null。 |
| 欄位`duration_ms` | 類型integer \| null | 含義實測的影片長度，以毫秒為單位；無法取得時為 null。 |
| 欄位`width` | 類型integer \| null | 含義影片寬度，以像素為單位；無法取得時為 null。 |
| 欄位`height` | 類型integer \| null | 含義影片高度，以像素為單位；無法取得時為 null。 |
| 欄位`video_codec` | 類型string \| null | 含義影片編碼識別碼；未記錄時為 null。 |
| 欄位`has_audio` | 類型boolean \| null | 含義影片是否包含音軌；未測量時為 null。 |
| 欄位`audio_codec` | 類型string \| null | 含義音訊編碼識別碼；未記錄識別碼時為 null。 |

錯誤與後續步驟

| 回應 | 條件 | 下一步 |
| --- | --- | --- |
| 回應404 · `not_found_error` | 條件無法存取影片，或找不到此影片 ID。 | 下一步請確認影片存取權限。若影片已存在，請使用其原始公開 ID 與相同的 API 金鑰。 |
| 回應401 · `authentication_error` | 條件API 金鑰與已驗證的帳號不符。 | 下一步提交前，請先確認 API 金鑰與帳號存取權限。 |
| 回應400 · `invalid_request_error` | 條件無法讀取請求，或下載索引無效。 | 下一步請修正請求本文。若要下載，請選擇原始工作回傳的輸出索引。 |
| 回應422 · `price_unavailable` | 條件所選影片設定無法定價。 | 下一步請選擇支援的影片設定，填妥其必要選項，再提交修正後的請求。 |
| 回應422 · `invalid_request_error` | 條件影片輸入或原始延續工作無效。 | 下一步請使用有效的 HTTPS 輸入。若要延續影片，請使用已完成原始影片的公開影片 ID，以及相同的 API 金鑰。 |
| 回應402 · `billing_error` | 條件可用餘額或限制不允許預留額度。 | 下一步傳送新的請求前，請先確認可用餘額與限制。 |
| 回應503 · `server_error` | 條件影片驗證、儲存系統或服務存取暫時無法使用。 | 下一步請等待服務恢復可用。若已有影片 ID，請查詢該原始工作，切勿另行建立生成工作。 |
| 回應503 · `result_pending_check` | 條件原始影片結果與費用需要查核。 | 下一步請保留回傳的影片 ID，並查詢該工作。查詢期間切勿傳送替代的生成請求。 |
| 回應503 · `owned_result_unavailable` | 條件現有影片暫時無法下載。 | 下一步請稍後查詢同一影片工作，並下載其現有輸出。新的生成請求會建立獨立操作。 |
| 回應409 · `video_not_ready` | 條件影片內容尚未發布。 | 下一步請查詢原始工作狀態。回報 completed 後再下載；若回報 failed，請依其費用查核通知處理。 |

### 別名

#### 模型別名

**Ailoot Ultra** [`alibaba/happyhorse-1.0`](https://ailoot.ai/models/zh-hant-tw/#m=alibaba%2Fhappyhorse-1.0&route=Ultra&caller=alibaba%2Fhappyhorse-1.0&fmt=videos)

#### 方法路徑別名

請使用上方列出的 API 方法路徑。

#### 相關呼叫用 ID

[`alibaba/happyhorse-1.0`](https://ailoot.ai/models/zh-hant-tw/#m=alibaba%2Fhappyhorse-1.0&route=Ultra&caller=alibaba%2Fhappyhorse-1.0&fmt=videos)

FAQ · Alibaba: HappyHorse 1.0

可以使用哪些輸入與結果？

`POST /v1/videos` · `alibaba/happyhorse-1.0`: `text`, `image` → `video`

請求使用哪些欄位？

`POST /v1/videos` · `alibaba/happyhorse-1.0`: `model`, `prompt`, `duration`, `resolution`, `aspect_ratio`, `generate_audio`, `frame_images`, `input_references`, `size`, `seed`, `callback_url`, `session_id`, `trace`, `user`

適用哪些限制？

`POST /v1/videos` · `alibaba/happyhorse-1.0`: `duration.minimum`: `1`; `duration.maximum`: `600`; `frame_images.max_items`: `1`; `frame_images.min_items`: `1`; `seed.minimum`: `-9223372036854775808`; `seed.maximum`: `9223372036854775807`

將 Ailoot 串接 Claude Code、OpenCode、Hermes 或自己的應用程式。

## 公司及其專案組合

公司及其專案組合：數百萬客戶，每月銷售額達數十億。

## 優惠購買 token。

訂閱優惠適合持續工作，折扣碼購買 token 最高可折 50%。

訂閱

為定期請求選擇優惠方案。

最高 50% 折扣碼

購買時輸入代碼，價格依活動重算。

歷史中的費用

每次請求保存模型、token 與金額。

[選擇訂閱](https://ailoot.ai/docs/zh-hant-tw/billing/subscriptions/) · [查看模型價格](https://ailoot.ai/models/zh-hant-tw/)

## 將 API 加入 你銷售的產品。

依 Ailoot 正式服務條款與授權合約串接 SaaS、應用程式與機器人；轉售請申請經銷授權。

商用應用程式

在付費功能加入文字、圖片、影片與聲音生成。

經銷授權

提供專案說明與存取方式，要求書面使用和轉售條件。

網站文件

串接前可閱讀正式服務條款、授權合約與資料處理政策。

[申請經銷授權](mailto:support@ailoot.ai) · [正式服務條款與授權合約](https://ailoot.ai/legal/offer?lang=zh-hant-tw)

## Ailoot · 公司及其專案組合





Ailoot以累積的營運經驗、廣大的客戶群、穩定的服務及持續的KPI管理為基礎。





公司及其專案組合：數百萬客戶，每月銷售額達數十億。





Ailoot將這些營運經驗用於API存取，讓客戶的產品、代理、應用程式及自動化流程使用AI功能。
