Source: https://ailoot.ai/models/ko/alibaba-happyhorse-1-1/
Canonical: https://ailoot.ai/models/ko/alibaba-happyhorse-1-1/
Language: ko

# Alibaba: HappyHorse 1.1

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

## [Alibaba: HappyHorse 1.1](https://ailoot.ai/models/ko/alibaba-happyhorse-1-1/)

Alibaba HappyHorse 1.1은 텍스트 기획, 첫 프레임 이미지 하나 또는 참조 이미지 최대 9개에서 소리 있는 짧은 영상을 생성합니다. 제작사 프로파일은 개선된 움직임, 피부 디테일과 클립 간 캐릭터 일관성을 강조합니다. 출력은 24fps의 3–15초 MP4이며 480p·720p·1080p 옵션이 있습니다.

- [**Ailoot Ultra · 동영상** `POST /v1/videos` `alibaba/happyhorse-1.1`](https://ailoot.ai/models/ko/alibaba-happyhorse-1-1/#method-0)

모델 소개

이 설명은 모델의 기능을 다룹니다. Ailoot에서 사용할 수 있는 입력, 출력 및 옵션은 아래에 선택한 메서드별로 표시됩니다.

Alibaba HappyHorse 1.1은 텍스트-비디오, 첫 프레임 이미지-비디오와 참조-비디오 프로파일에 별도 이름을 부여한 영상 생성 버전입니다. 제조사는 시각 디테일, 움직임, 클립 간 캐릭터 정체성, 글자 안정성과 시청각 동기화 개선을 강조합니다. 결과는 제품 숏, 인물 애니메이션이나 작은 캐릭터 장면에 유용한 소리 있는 짧은 영상입니다. 글로 쓴 콘셉트, 정확한 시작 이미지 또는 여러 시각 참조 중 장면의 기준이 될 자료에 따라 모드를 선택하세요.

텍스트-비디오에는 피사체, 장소, 동작, 구도, 카메라 이동과 소리 의도를 설명합니다. 짧은 동작 장면에서는 자전거를 탄 사람이 강변 카페 옆에 멈추고 카메라가 세워 둔 자전거 쪽으로 부드럽게 다가가도록 할 수 있습니다. 짧은 클립에 맞는 동작을 유지하고 마지막 순간을 설명하세요. 제작사의 현재 텍스트 가이드는 비중국어 최대 5,000자 또는 중국어 2,500자를 허용하고 초과분은 자릅니다. 반복 형용사 속에 묻히지 않도록 핵심 피사체·동작이 명확한 기획을 구성하세요.

첫 프레임 이미지-비디오는 정확히 이미지 하나를 시작으로 사용합니다. 정지 이미지에 피사체, 구도와 의도한 크롭을 준비한 뒤 움직일 대상이나 카메라 변화를 설명하세요. 문서상 이미지 형식은 JPEG/JPG, PNG, WEBP이며 최대 20MB, 두 변 최소 300픽셀, 화면비 1:2.5–2.5:1입니다. 출력은 원본 비율을 유지하며 선택 해상도 등급에 가깝게 맞춥니다. 따라서 세로 결과는 무관한 화면비 지시가 아니라 적합한 세로 구도에서 시작합니다.

참조-비디오는 이미지 1–9개를 받습니다. 프롬프트는 입력 순서의 \[Image 1\], \[Image 2\]와 이후 위치로 식별합니다. 장면 이미지가 캐릭터 원본으로 오인되지 않도록 각 참조 역할과 관련 물체·인물을 명시하세요. 참조 가이드는 최대 20MB의 JPEG/JPG, PNG, WEBP를 받으며 짧은 변 최소 400픽셀을 요구하고 720p 이상 선명한 참조를 권장합니다. 식별 디테일이 이미 사라진 심한 압축 참조는 피하세요.

참조가 여러 개인 장면에서는 한 이미지의 인물을 다른 이미지의 방에 배치하고 세 번째가 제공한 코트나 제품을 유지할 수 있습니다. 같은 기획에서 상호작용과 카메라를 설명하세요. 1.1 참조 프로파일은 피사체, 장면 스타일과 영화적 움직임의 안정성을 강조합니다. 실제 결과에서 의도한 정체성, 제품 표식과 공간 배치를 확인하세요. 여러 이미지는 기획에 더 많은 정보를 주지만 어떤 특징이 영상에 반영됐는지 여전히 검토해야 합니다.

제작사는 1.1 생성 모드에 480p·720p·1080p 출력, 3–15초 정수 길이와 24fps MP4를 명시합니다. API 응답은 H.264 인코딩을 설명합니다. 텍스트·참조 생성 형태에는 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9가 포함되고 첫 프레임 생성은 입력 이미지를 따릅니다. 사용처에 맞는 형태를 선택하고 이후 자막·레이아웃 요소의 공간을 남기세요. 의도한 표시 크기에서 반환 영상의 실제 구도를 확인합니다.

모델 제품군 출력에는 소리가 포함됩니다. 기획에서 연기나 분위기의 역할을 명확히 하고 모든 대사, 효과·배경 트랙을 화면과 함께 검토하세요. 긴 대본을 짧은 숏 하나에 압축하지 말고 동작·멈춤에 맞게 발화 자료를 짧게 유지합니다. 말이 있으면 입 움직임, 화자 배정과 실제 문구를 확인하세요. 프롬프트 언어를 받는다는 사실만으로 보장된 발음이나 별도 음성 참조 입력이 정의되지는 않습니다.

문서상 제작사 워크플로는 비동기입니다. 작업 식별자로 처리를 추적하고 성공 결과는 영상 위치를 제공합니다. 결과 링크와 작업 조회는 24시간 유효기간으로 문서화되어 있습니다. 완성 클립, 참조와 프롬프트를 수정 기록으로 보관하세요. 가이드는 시드와 워터마크 제어도 문서화합니다. 고정 시드는 비교에 도움이 되지만 제작사는 동일 결과를 보장하지 않는다고 명시하므로 한 설정이 모든 프레임을 고정한다고 가정하지 말고 반환 에셋을 판단하세요.

HappyHorse 1.0과 1.1은 별도 버전입니다. 1.1 출력 표는 1.0의 720p·1080p 옵션에 480p를 추가하며 1.1 모델 페이지는 디테일·움직임·일관성 업그레이드를 설명합니다. 별도 이름의 HappyHorse 1.0 영상 편집 프로파일에는 자체 입력·제한이 있으며 1.1에 묵시적으로 배정할 편집 모드가 아닙니다. 1.1 클립 전체의 정체성, 움직임, 구도, 글자와 소리를 검토하고 기획의 성공 부분을 유지하며 구체적으로 수정하세요.

**Ailoot Ultra · 동영상** `POST /v1/videos` `alibaba/happyhorse-1.1`

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

Alibaba /`alibaba/happyhorse-1.1`

### 시작하기

Alibaba HappyHorse 1.1은 텍스트 기획, 첫 프레임 이미지 하나 또는 참조 이미지 최대 9개에서 소리 있는 짧은 영상을 생성합니다. 제작사 프로파일은 개선된 움직임, 피부 디테일과 클립 간 캐릭터 일관성을 강조합니다. 출력은 24fps의 3–15초 MP4이며 480p·720p·1080p 옵션이 있습니다.

허용 입력

텍스트

결과

동영상

### Ailoot에서 사용 가능 · 입력 및 메서드

**Ailoot Ultra · 동영상** `POST /v1/videos`

입력

`text`

출력

`video`

출력 형식

mp4

출력 수

최대 4 출력s

| 필드 | 유형 | 요건 | 값과 한도 | 기본값 |
| --- | --- | --- | --- | --- |
| 필드`model` | 유형`string` | 요건필수 | 값과 한도 alibaba/happyhorse-1.1 | 기본값— |
| 필드`prompt` | 유형`string` | 요건필수 | 값과 한도 최소 길이: 1 최대 바이트 수: 10,000 단위: UTF8 바이트 | 기본값— |
| 필드`duration` | 유형`integer` | 요건필수 | 값과 한도 최솟값: 3 최댓값: 15 단위: 초 | 기본값— |
| 필드`resolution` | 유형`string` | 요건필수 | 값과 한도 720p | 기본값— |
| 필드`aspect_ratio` | 유형`string` | 요건필수 | 값과 한도 16:9 | 기본값— |

입력 자료 조합

**텍스트로 동영상 생성** · 필수: prompt

메서드 매개변수와 수명 주기

| 매개변수 | 명세 |
| --- | --- |
| 매개변수`content_type` | 명세application/json |
| 매개변수`required` | 명세model, prompt, duration, resolution, aspect\_ratio |
| 매개변수`other_options` | 명세false |
| 매개변수`resolution` | 명세720p |
| 매개변수`prompt_max_bytes` | 명세10000 |
| 매개변수`duration_integer_range` | 명세3, 15 |
| 매개변수`aspect_ratio` | 명세16:9 |
| 매개변수`generate_audio` | 명세반드시 생략해야 함(false로 설정하지 않음); AAC 포함 |
| 매개변수`material_types` | 명세text |
| 매개변수`additional_properties` | 명세false |

메서드 별칭: `/v1/videos/generations`, `/videos`, `/videos/generations`

수명 주기: `submit_once_poll_original`

`GET /v1/videos/{request_id}`

`GET /v1/videos/generations/{request_id}`

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

`GET /v1/videos/generations/{request_id}/content`

한 번 생성하고 반환된 ID를 저장하세요.

원래 상태를 폴링하세요. 완료된 모든 자산과 길이를 보존하세요.

### 요금

##### 최종 요금 계산 방식

표시된 요율은 생성 전 비용을 예상하는 데 사용됩니다. 최종 청구액은 최초 생성에 기록된 비용으로 계산됩니다. 측정된 출력 길이와 예상 수량은 최종 청구 수량이 아닙니다.

요금 정보는 요청 옵션을 추가하지 않습니다. 지원되는 매개변수는 선택한 메서드에 표시됩니다.

빠른 모드

미지정 빠른 모드를 선택한 경우

Flex 모드

미지정 flex 모드를 선택한 경우

최대 추론 수준

미지정 최대 추론 수준에 default 조정값을 적용하는 경우

#### 비교용 예상 요금

#### 설정별 가격

각 요금을 표시된 조건과 대조하세요. 서로 대체되는 설정 묶음마다 하나의 요금만 적용하세요.

| 설정 | 요금표 | 예측 수량 | 과금 단위 | 과금 조건 | 요금 |
| --- | --- | --- | --- | --- | --- |
| 설정기본 토큰 요금 | 요금표기본 요금 | 예측 수량— | 과금 단위— | 과금 조건— | 요금 입력 · 입력 토큰 · 비교 전용 추정치 **—** / 1K 토큰 출력 · 출력 토큰 · 비교 전용 추정치 **—** / 1K 토큰 입력 · 캐시 읽기 · 비교 전용 추정치 **—** / 1K 토큰 입력 · 캐시 쓰기 · 비교 전용 추정치 **—** / 1K 토큰 입력 · 캐시 쓰기, 1시간 · 비교 전용 추정치 **—** / 1K 토큰 |
| 설정동영상 요금 | 요금표— | 예측 수량— | 과금 단위동영상 초당 | 과금 조건resolution: 1080p | 요금 출력 · 동영상 가격 · 비교 전용 추정치 **$0.2556** 동영상 초당 |
| 설정동영상 요금 | 요금표— | 예측 수량— | 과금 단위동영상 초당 | 과금 조건resolution: 720p | 요금 출력 · 동영상 가격 · 비교 전용 추정치 **$0.1976** 동영상 초당 |
| 설정예상 생성 비용 | 요금표— | 예측 수량1회 생성 예상치 | 과금 단위— | 과금 조건— | 요금 출력 · 예상 생성 비용 · 비교 전용 추정치 **$0.5928** 생성 전 추정치 이 예상 금액은 추가 요금이나 생성 완료 시 적용되는 고정 요금이 아닙니다. |

Ailoot는 요청 전에 예상 금액을 미리 확보합니다. 결과를 받은 뒤 측정된 사용량을 기준으로 최종 요금을 정산합니다. 스트리밍 정산에는 최종 사용량 기록을 사용합니다. [금액 확보와 정산 방식 →](https://ailoot.ai/docs/ko/billing/reserve/)

#### 참조 요금 상세 정보

모델 수준의 참조 요금표는 메서드 선택, 견적 또는 요금을 변경하지 않습니다. 실제 과금에는 선택한 Ailoot 메서드 요금이 적용됩니다.

동영상 설정별 요금 참조

#### 설정별 가격

각 요금을 표시된 조건과 대조하세요. 서로 대체되는 설정 묶음마다 하나의 요금만 적용하세요.

| 설정 | 과금 조건 | 요금 |
| --- | --- | --- |
| 설정동영상 요금 | 과금 조건resolution: 720p | 요금 출력 · 동영상 가격 **$0.1976** 동영상 초당 표시된 구성의 공개 가격 참고값입니다. 최종 요금은 실제 청구된 구성을 따릅니다. |
| 설정동영상 요금 | 과금 조건resolution: 1080p | 요금 출력 · 동영상 가격 **$0.2556** 동영상 초당 표시된 구성의 공개 가격 참고값입니다. 최종 요금은 실제 청구된 구성을 따릅니다. |

### 요청 예제

#### Ailoot Ultra · 동영상

curl · 보관된 생성 요청 그대로

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "alibaba/happyhorse-1.1", "prompt": "A cat in a spacesuit walking on the Moon", "duration": 3, "resolution": "720p", "aspect_ratio": "16:9"}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
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
```

### 결과 수신 및 저장

#### Ailoot Ultra · 동영상

mp4

- `GET /v1/videos/{request_id}`
- `GET /v1/videos/generations/{request_id}`
- `GET /v1/videos/{request_id}/content`
- `GET /v1/videos/generations/{request_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에서 가져오세요.

완료된 data\[\]에는 소유한 모든 서명된 콘텐츠 URL이 포함됩니다. 반환된 각 URL을 가져오거나 index를 실제 출력 인덱스로 지정해 콘텐츠 엔드포인트를 사용하세요. 실패한 원래 작업은 charge\_pending\_check를 반환할 수 있습니다. 다시 생성하지 말고 해당 원래 작업을 확인하세요.

##### 원래 응답을 확인해야 할 경우

기존 원래 작업을 조회하세요. 전송 결과를 알 수 없는 요청을 절대로 다시 제출하지 마세요.

최대 출력 수: 4.

응답 필드

| 필드 | 유형 | 의미 |
| --- | --- | --- |
| 필드`id` | 유형string | 의미— |
| 필드`object` | 유형string | 의미— |
| 필드`model` | 유형string | 의미— |
| 필드`status` | 유형string | 의미— |
| 필드`data[]` | 유형signed content URL | 의미— |
| 필드`charge_pending_check` | 유형boolean | 의미— |
| 필드`error.code` | 유형string | 의미— |
| 필드`error.message` | 유형string | 의미— |
| 필드`operation_id` | 유형string | 의미HTTP503 result\_pending\_check 원래 상태/콘텐츠 응답: id는 동일한 원래 공개 동영상 ID입니다. |
| 필드`error.type` | 유형string | 의미HTTP503 result\_pending\_check에서 server\_error가 발생합니다. |

오류와 다음 단계

| 응답 | 조건 | 다음 단계 |
| --- | --- | --- |
| 응답400 · `invalid_request_error` | 조건동영상 프로필 파싱 전에 원시 요청 본문 읽기가 실패함 | 다음 단계반환된 응답을 보존하고 읽을 수 없는 요청 본문을 수정하세요. |
| 응답422 · `price_unavailable` | 조건정확한 동영상 프로필을 파싱하지 못하거나 완전히 파싱된 프로필에 사용 가능한 정확한 요금표가 없음 | 다음 단계응답을 보존하세요. 허용된 정확한 프로필 전체와 공개된 요금표를 사용하세요. 이 분기는 공급자에게 전송하기 전에 실행됩니다. |
| 응답409 · `video_not_ready` | 조건원래 결과 콘텐츠를 아직 사용할 수 없음 | 다음 단계원래 반환된 ID를 폴링하고 Retry-After를 준수하세요. |
| 응답`server_error` | 조건반환된 응답에 작업 또는 결과 확인이 필요하다고 표시되어 있습니다 | 다음 단계최초로 반환된 작업/태스크 ID, 요청 헤더와 응답을 보관하고, 지원되는 조회 방식으로 해당 최초 작업을 계속 조회하세요. 생성 요청을 다시 제출하지 마세요. |
| 응답503 · `result_pending_check` | 조건원래 상태/콘텐츠의 GET: 작업이 게시되지 않았고 원래 작업이 failed/cancelled/expired가 아니며, 로컬 상태가 unknown이거나 원래 작업 상태가 completed인 경우입니다. | 다음 단계원래 id와 operation\_id(동일한 공개 동영상 ID), 응답 및 헤더를 보존하세요. 원래 상태/콘텐츠만 조회하세요. 새 생성 요청을 절대로 제출하지 마세요. |

### 별칭

#### 모델 별칭

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

#### 메서드 경로 별칭

`/v1/videos/generations`, `/videos`, `/videos/generations`

#### 관련 호출용 ID

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

FAQ · Alibaba: HappyHorse 1.1

어떤 입력과 결과를 사용할 수 있나요?

`POST /v1/videos` · `alibaba/happyhorse-1.1`: `text` → `video`

요청은 어떤 필드를 사용하나요?

`POST /v1/videos` · `alibaba/happyhorse-1.1`: `model`, `prompt`, `duration`, `resolution`, `aspect_ratio`

어떤 제한이 적용되나요?

`POST /v1/videos` · `alibaba/happyhorse-1.1`: `duration.minimum`: `3`; `duration.maximum`: `15`

Claude Code, OpenCode, Hermes, 자체 앱에 Ailoot를 연결하세요.

## 회사와 그 프로젝트 포트폴리오

회사와 그 프로젝트 포트폴리오: 수백만 고객, 매월 수십억 규모의 매출.

## 할인받아 토큰을 구매하세요.

정기 작업에는 구독 할인, 토큰 구매에는 최대 50% 프로모션 코드.

구독

정기 요청에 맞는 할인 요금제를 선택하세요.

최대 50% 프로모션 코드

구매할 때 코드를 넣으면 진행 중 행사에 따라 가격을 다시 계산합니다.

이력의 지출

요청마다 모델, 토큰, 금액을 저장합니다.

[구독 선택](https://ailoot.ai/docs/ko/billing/subscriptions/) · [모델 가격 보기](https://ailoot.ai/models/ko/)

## 판매하는 제품에 API를 연결하세요.

Ailoot 공식 이용 조건과 라이선스 계약으로 SaaS, 앱, 봇에 사용하세요. 재판매에는 리셀러 라이선스를 요청하세요.

상업용 앱

서비스의 유료 기능에 텍스트, 이미지, 영상, 소리 생성을 넣으세요.

리셀러 라이선스

프로젝트 설명과 접근 구조를 보내 사용·재판매의 서면 조건을 요청하세요.

사이트의 문서

연결 전에 공식 이용 조건, 라이선스 계약, 데이터 처리 정책을 읽을 수 있습니다.

[리셀러 라이선스 요청](mailto:support@ailoot.ai) · [공식 이용 조건과 라이선스 계약](https://ailoot.ai/legal/offer?lang=ko)

## Ailoot · 회사와 그 프로젝트 포트폴리오





Ailoot는 축적된 운영 경험, 폭넓은 고객 기반, 안정적인 서비스, 지속적인 KPI 관리를 바탕으로 합니다.





회사와 그 프로젝트 포트폴리오: 수백만 고객, 매월 수십억 규모의 매출.





Ailoot는 이러한 운영 경험을 고객의 제품, 에이전트, 애플리케이션, 자동화에서 AI 기능을 이용할 수 있는 API 접근에 활용합니다.
