mô hình

happyhorse-1.1-i2v

Markdown · JSON

happyhorse-1.1-i2v

Mô hình tạo chuyển động từ ảnh: ảnh nguồn xác định khung hình đầu tiên, còn mô tả định hướng chuyển động tiếp theo. Tạo video ngắn với tùy chọn âm thanh đi kèm.

Về mô hình

Mô tả này trình bày khả năng của mô hình. Đầu vào, đầu ra và tùy chọn có trên Ailoot được liệt kê bên dưới cho phương thức đã chọn.

HappyHorse-1.1-I2V là mô hình của Alibaba mở đầu cảnh video bằng một ảnh có sẵn. Ảnh trở thành khung hình đầu tiên, còn văn bản có thể xác định diễn biến tiếp theo: chuyển động của nhân vật, thay đổi trong cảnh và hướng di chuyển của máy quay. Mô hình phù hợp để tạo chuyển động cho tranh minh họa, ảnh sản phẩm hoặc ý tưởng hình ảnh đã chuẩn bị trước.

Mô tả bằng văn bản là tùy chọn. Nếu không có mô tả, mô hình tự suy ra chuyển động có thể xảy ra từ nội dung ảnh ban đầu. Khi có mô tả cụ thể, ảnh nguồn xác định bố cục và diện mạo của các đối tượng, còn lời mô tả định hướng diễn biến của cảnh theo thời gian.

Từ khung hình đầu tiên đến chuyển động

Alibaba nhấn mạnh khả năng giữ diện mạo nhân vật, tính nhất quán hình ảnh, chuyển động mượt mà và sự kết hợp giữa hình ảnh với âm thanh. Những hướng phát triển được công bố còn có tính ổn định của chữ và bề mặt vật liệu. Các đặc điểm này phản ánh định hướng thiết kế của mô hình, không có nghĩa là từng điểm ảnh được giữ nguyên trong mọi khung hình được tạo.

Chế độ này sử dụng một ảnh mở đầu. Ảnh xác định cảnh ban đầu, thay vì đóng vai trò một tập hợp các mẫu độc lập để tạo bố cục mới. Khả năng chỉ định riêng khung hình kết thúc chưa được công bố cho phiên bản cụ thể này.

Các định dạng được chấp nhận là JPEG, JPG, PNG và WEBP. Mỗi chiều của ảnh đầu vào phải có ít nhất 300 pixel; tỷ lệ khung hình cho phép từ 1:2,5 đến 2,5:1, dung lượng tệp tối đa 20 MB. Tỷ lệ khung hình của video thành phẩm theo khung hình đầu tiên.

Thông số video

Thời lượng được chọn bằng số nguyên từ 3 đến 15 giây. Các mức độ phân giải gồm 480P, 720P và 1080P; định dạng đầu ra là MP4, tốc độ 24 khung hình mỗi giây. Mô hình hỗ trợ tạo âm thanh đi kèm với hình ảnh video.

Mô tả có thể dùng bất kỳ ngôn ngữ nào, với tối đa 5000 ký tự không phải tiếng Trung hoặc 2500 ký tự tiếng Trung. Phần vượt giới hạn bị cắt bỏ, vì vậy các hành động và đặc điểm chuyển động quan trọng cần được diễn đạt trong phạm vi này. Cùng một hạt giống ngẫu nhiên có thể tạo ra các video tương tự, nhưng không bảo đảm chúng trùng khớp từng khung hình.

Ailoot · Tạo video POST /v1/videos/generations happyhorse-1.1-i2v

happyhorse-1.1-i2v

Alibaba /happyhorse-1.1-i2v
ID mô hình
  • happyhorse-1.1-i2v
  • happyhorse-i2v
  • happyhorse-i2v-latest

Bắt đầu

Mô hình tạo chuyển động từ ảnh: ảnh nguồn xác định khung hình đầu tiên, còn mô tả định hướng chuyển động tiếp theo. Tạo video ngắn với tùy chọn âm thanh đi kèm.

Đầu vào được chấp nhận
Văn bản · Ảnh
Kết quả
Video

Có trên Ailoot · đầu vào & phương thức

Ailoot · Tạo video POST /v1/videos/generations
Đầu vào
text, image
Đầu ra
video
Định dạng đầu ra
mp4
TrườngLoạiYêu cầuGiá trị & giới hạnMặc định
TrườngmodelLoạistringYêu cầuBắt buộcGiá trị & giới hạn
happyhorse-1.1-i2v
Mặc định—
TrườngpromptLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạn
Độ dài tối thiểu: 1
Mặc định—
TrườngdurationLoạiintegerYêu cầuKhông bắt buộcGiá trị & giới hạn
Tối thiểu: 3
Tối đa: 15
Đơn vị: giây
Mặc định5
TrườngresolutionLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạn
480P, 720P, 1080P
Mặc định720P
TrườngratioLoạistringYêu cầuKhông hỗ trợGiá trị & giới hạnMặc định—
Trườngimage_urlsLoạihttps_url|data_image_url[]Yêu cầuBắt buộcGiá trị & giới hạn
Số mục tối thiểu: 1
Số mục tối đa: 1
Số byte tối đa sau giải mã: 20.971.520
Loại MIME: image/jpeg, image/png, image/webp
Mặc định—
Tổ hợp tư liệu đầu vào

first_frame_to_video · Bắt buộc: image_urls

Tham số phương thức và vòng đời
Tham sốHợp đồng
Tham sốcontent_typeHợp đồngapplication/json
Tham sốrequiredHợp đồngmodel, image_urls
Tham sốmaterial_typesHợp đồngtext, image
Tham sốoptionalHợp đồngduration, resolution, ratio, prompt
Tham sốduration_integer_rangeHợp đồng3, 15
Tham sốdefault_durationHợp đồng5
Tham sốresolutionHợp đồng480P, 720P, 1080P
Tham sốdefault_resolutionHợp đồng720P
Tham sốratioHợp đồng
Tham sốratio_must_omitHợp đồngtrue
Tham sốimage_urlsHợp đồng{"min_count":1,"max_count":1,"schemes":["https","dữ liệu ảnh raster base64"],"max_data_image_bytes":20971520}

Vòng đời: 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

Cấu trúc phương thức và ID là chính xác; khả năng của nhà cung cấp tách biệt với việc cho phép tiếp nhận yêu cầu.

Bảng giá

Mức phí phương thức Ailoot

Ailoot Tạo videoPOST /v1/videos/generations
Đầu ra
0,18 US$ mỗi giây ở 1080p
Đầu ra
0,07 US$ mỗi giây ở 480p
Đầu ra
0,14 US$ mỗi giây ở 720p

Ailoot tạm giữ một khoản ước tính trước yêu cầu. Sau khi có kết quả, phí cuối cùng được quyết toán theo mức sử dụng đo được. Việc quyết toán khi truyền luồng dùng bản ghi mức sử dụng cuối cùng. Cách hoạt động của cơ chế tạm giữ và quyết toán →

Ví dụ yêu cầu

Ailoot · Tạo video

Tham chiếu ảnh
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_URL:?Set the HTTPS URL of your actual first-frame image}"
export AILOOT_IMAGE_URL
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-1.1-i2v", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
u=os.environ["AILOOT_IMAGE_URL"]
z=urlsplit(u)
if z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Set the actual HTTPS image URL")
p["image_urls"]=[u]
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/generations \
  -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))
PY_RESULT

Nhận và lưu kết quả

Ailoot · Tạo video

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
Kiểm tra trạng thái tác vụ
GET trạng thái
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
    for x in r.get("data",[]):print(x)
PY_STATUS
Lưu tất cả tài nguyên đã hoàn tất
GET tất cả tài nguyên đã hoàn tất
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
    if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
    u=urljoin("https://api.ailoot.ai",x)
    z=urlsplit(u)
    if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
    urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
  curl --fail-with-body --silent --show-error "$asset_url" \
    -H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
  index=$((index + 1))
done < asset-urls.txt
Lượt đọc nội dung khác
GET nội dung
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
Lưu tất cả kết quả đã hoàn tất

Lưu mọi video đã hoàn tất hoặc tệp trả về; truy xuất từng URL tài nguyên thực tế được trả về.

Giữ lại mọi mục dữ liệu/chỉ số đầu ra được trả về. content_url chỉ là mục đầu tiên; truy xuất mọi đường dẫn nội dung/tài sản thực tế. GET nội dung không có index không trả về tất cả đầu ra.

Nếu cần kiểm tra phản hồi gốc

Đọc tác vụ gốc hiện có; tuyệt đối không gửi lại lần gửi chưa rõ kết quả.

Trường phản hồi
TrườngLoại
TrườngidLoạistring
TrườngobjectLoạistring
TrườngmodelLoạistring
TrườngstatusLoạistring
Trườngcontent_urlLoạisigned URL
Trườngdata[]Loạisigned URL
TrườngusageLoạiobject
Trườngresult_pending_checkLoạiboolean
Lỗi và bước tiếp theo
Phản hồiĐiều kiệnBước tiếp theo
Phản hồi400 · invalid_request_errorĐiều kiệnTrường bắt buộc, cách biểu diễn tài liệu hoặc giá trị tham số không hợp lệBước tiếp theoSửa các trường được chỉ ra trước khi gửi yêu cầu tạo mới.
Phản hồi409 · video_not_readyĐiều kiệnNội dung kết quả ban đầu chưa có sẵnBước tiếp theoThăm dò ID ban đầu được trả về và tuân thủ Retry-After.
Phản hồiserver_errorĐiều kiệnPhản hồi trả về cho biết thao tác hoặc kết quả cần được kiểm traBước tiếp theoGiữ lại ID thao tác/tác vụ gốc đã trả về, các header của yêu cầu và toàn bộ phản hồi; tiếp tục truy xuất thao tác gốc đó bằng các phương thức được hỗ trợ. Không gửi lại yêu cầu tạo.

Bí danh

Bí danh mô hình

Ailoot happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest

Bí danh đường dẫn phương thức

Dùng các đường dẫn phương thức hiển thị ở trên.

ID gọi liên quan

happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest

Ailoot · Tạo video POST /v1/videos/generations happyhorse-i2v

happyhorse-i2v

Alibaba /happyhorse-i2v
ID mô hình
  • happyhorse-1.1-i2v
  • happyhorse-i2v
  • happyhorse-i2v-latest

Bắt đầu

Mô hình tạo chuyển động từ ảnh: ảnh nguồn xác định khung hình đầu tiên, còn mô tả định hướng chuyển động tiếp theo. Tạo video ngắn với tùy chọn âm thanh đi kèm.

Đầu vào được chấp nhận
Văn bản · Ảnh
Kết quả
Video

Có trên Ailoot · đầu vào & phương thức

Ailoot · Tạo video POST /v1/videos/generations
Đầu vào
text, image
Đầu ra
video
Định dạng đầu ra
mp4
TrườngLoạiYêu cầuGiá trị & giới hạnMặc định
TrườngmodelLoạistringYêu cầuBắt buộcGiá trị & giới hạn
happyhorse-i2v
Mặc định—
TrườngpromptLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạn
Độ dài tối thiểu: 1
Mặc định—
TrườngdurationLoạiintegerYêu cầuKhông bắt buộcGiá trị & giới hạn
Tối thiểu: 3
Tối đa: 15
Đơn vị: giây
Mặc định5
TrườngresolutionLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạn
480P, 720P, 1080P
Mặc định720P
TrườngratioLoạistringYêu cầuKhông hỗ trợGiá trị & giới hạnMặc định—
Trườngimage_urlsLoạihttps_url|data_image_url[]Yêu cầuBắt buộcGiá trị & giới hạn
Số mục tối thiểu: 1
Số mục tối đa: 1
Số byte tối đa sau giải mã: 20.971.520
Loại MIME: image/jpeg, image/png, image/webp
Mặc định—
Tổ hợp tư liệu đầu vào

first_frame_to_video · Bắt buộc: image_urls

Tham số phương thức và vòng đời
Tham sốHợp đồng
Tham sốmaterial_typesHợp đồngtext, image
Tham sốrequiredHợp đồngnull
Tham sốoptional_controlsHợp đồngnull

Vòng đời: 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

Cấu trúc phương thức và ID là chính xác; khả năng của nhà cung cấp tách biệt với việc cho phép tiếp nhận yêu cầu.

Bảng giá

Mức phí phương thức Ailoot

Ailoot Tạo videoPOST /v1/videos/generations
Đầu ra
0,18 US$ mỗi giây ở 1080p
Đầu ra
0,07 US$ mỗi giây ở 480p
Đầu ra
0,14 US$ mỗi giây ở 720p

Ailoot tạm giữ một khoản ước tính trước yêu cầu. Sau khi có kết quả, phí cuối cùng được quyết toán theo mức sử dụng đo được. Việc quyết toán khi truyền luồng dùng bản ghi mức sử dụng cuối cùng. Cách hoạt động của cơ chế tạm giữ và quyết toán →

Ví dụ yêu cầu

Ailoot · Tạo video

Tham chiếu ảnh
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_URL:?Set the HTTPS URL of your actual first-frame image}"
export AILOOT_IMAGE_URL
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-i2v", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
u=os.environ["AILOOT_IMAGE_URL"]
z=urlsplit(u)
if z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Set the actual HTTPS image URL")
p["image_urls"]=[u]
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/generations \
  -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))
PY_RESULT

Nhận và lưu kết quả

Ailoot · Tạo video

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
Kiểm tra trạng thái tác vụ
GET trạng thái
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
    for x in r.get("data",[]):print(x)
PY_STATUS
Lưu tất cả tài nguyên đã hoàn tất
GET tất cả tài nguyên đã hoàn tất
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
    if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
    u=urljoin("https://api.ailoot.ai",x)
    z=urlsplit(u)
    if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
    urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
  curl --fail-with-body --silent --show-error "$asset_url" \
    -H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
  index=$((index + 1))
done < asset-urls.txt
Lượt đọc nội dung khác
GET nội dung
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
Lưu tất cả kết quả đã hoàn tất

Lưu mọi video đã hoàn tất hoặc tệp trả về; truy xuất từng URL tài nguyên thực tế được trả về.

Giữ lại mọi mục dữ liệu/chỉ số đầu ra được trả về. content_url chỉ là mục đầu tiên; truy xuất mọi đường dẫn nội dung/tài sản thực tế. GET nội dung không có index không trả về tất cả đầu ra.

Nếu cần kiểm tra phản hồi gốc

Đọc tác vụ gốc hiện có; tuyệt đối không gửi lại lần gửi chưa rõ kết quả.

Trường phản hồi
TrườngLoại
TrườngidLoạistring
TrườngobjectLoạistring
TrườngmodelLoạistring
TrườngstatusLoạistring
Trườngcontent_urlLoạisigned URL
Trườngdata[]Loạisigned URL
TrườngusageLoạiobject
Trườngresult_pending_checkLoạiboolean
Lỗi và bước tiếp theo
Phản hồiĐiều kiệnBước tiếp theo
Phản hồi400 · invalid_request_errorĐiều kiệnTrường bắt buộc, cách biểu diễn tài liệu hoặc giá trị tham số không hợp lệBước tiếp theoSửa các trường được chỉ ra trước khi gửi yêu cầu tạo mới.
Phản hồi409 · video_not_readyĐiều kiệnNội dung kết quả ban đầu chưa có sẵnBước tiếp theoThăm dò ID ban đầu được trả về và tuân thủ Retry-After.
Phản hồiserver_errorĐiều kiệnPhản hồi trả về cho biết thao tác hoặc kết quả cần được kiểm traBước tiếp theoGiữ lại ID thao tác/tác vụ gốc đã trả về, các header của yêu cầu và toàn bộ phản hồi; tiếp tục truy xuất thao tác gốc đó bằng các phương thức được hỗ trợ. Không gửi lại yêu cầu tạo.

Bí danh

Bí danh mô hình

Ailoot happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest

Bí danh đường dẫn phương thức

Dùng các đường dẫn phương thức hiển thị ở trên.

ID gọi liên quan

happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest

Ailoot · Tạo video POST /v1/videos/generations happyhorse-i2v-latest

happyhorse-i2v-latest

Alibaba /happyhorse-i2v-latest
ID mô hình
  • happyhorse-1.1-i2v
  • happyhorse-i2v
  • happyhorse-i2v-latest

Bắt đầu

Mô hình tạo chuyển động từ ảnh: ảnh nguồn xác định khung hình đầu tiên, còn mô tả định hướng chuyển động tiếp theo. Tạo video ngắn với tùy chọn âm thanh đi kèm.

Đầu vào được chấp nhận
Văn bản · Ảnh
Kết quả
Video

Có trên Ailoot · đầu vào & phương thức

Ailoot · Tạo video POST /v1/videos/generations
Đầu vào
text, image
Đầu ra
video
Định dạng đầu ra
mp4
TrườngLoạiYêu cầuGiá trị & giới hạnMặc định
TrườngmodelLoạistringYêu cầuBắt buộcGiá trị & giới hạn
happyhorse-i2v-latest
Mặc định—
TrườngpromptLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạn
Độ dài tối thiểu: 1
Mặc định—
TrườngdurationLoạiintegerYêu cầuKhông bắt buộcGiá trị & giới hạn
Tối thiểu: 3
Tối đa: 15
Đơn vị: giây
Mặc định5
TrườngresolutionLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạn
480P, 720P, 1080P
Mặc định720P
TrườngratioLoạistringYêu cầuKhông hỗ trợGiá trị & giới hạnMặc định—
Trườngimage_urlsLoạihttps_url|data_image_url[]Yêu cầuBắt buộcGiá trị & giới hạn
Số mục tối thiểu: 1
Số mục tối đa: 1
Số byte tối đa sau giải mã: 20.971.520
Loại MIME: image/jpeg, image/png, image/webp
Mặc định—
Tổ hợp tư liệu đầu vào

first_frame_to_video · Bắt buộc: image_urls

Tham số phương thức và vòng đời
Tham sốHợp đồng
Tham sốmaterial_typesHợp đồngtext, image
Tham sốrequiredHợp đồngnull
Tham sốoptional_controlsHợp đồngnull

Vòng đời: 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

Cấu trúc phương thức và ID là chính xác; khả năng của nhà cung cấp tách biệt với việc cho phép tiếp nhận yêu cầu.

Bảng giá

Mức phí phương thức Ailoot

Ailoot Tạo videoPOST /v1/videos/generations
Đầu ra
0,18 US$ mỗi giây ở 1080p
Đầu ra
0,07 US$ mỗi giây ở 480p
Đầu ra
0,14 US$ mỗi giây ở 720p

Ailoot tạm giữ một khoản ước tính trước yêu cầu. Sau khi có kết quả, phí cuối cùng được quyết toán theo mức sử dụng đo được. Việc quyết toán khi truyền luồng dùng bản ghi mức sử dụng cuối cùng. Cách hoạt động của cơ chế tạm giữ và quyết toán →

Ví dụ yêu cầu

Ailoot · Tạo video

Tham chiếu ảnh
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_URL:?Set the HTTPS URL of your actual first-frame image}"
export AILOOT_IMAGE_URL
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-i2v-latest", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
u=os.environ["AILOOT_IMAGE_URL"]
z=urlsplit(u)
if z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Set the actual HTTPS image URL")
p["image_urls"]=[u]
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/generations \
  -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))
PY_RESULT

Nhận và lưu kết quả

Ailoot · Tạo video

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
Kiểm tra trạng thái tác vụ
GET trạng thái
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
    for x in r.get("data",[]):print(x)
PY_STATUS
Lưu tất cả tài nguyên đã hoàn tất
GET tất cả tài nguyên đã hoàn tất
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
    if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
    u=urljoin("https://api.ailoot.ai",x)
    z=urlsplit(u)
    if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
    urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
  curl --fail-with-body --silent --show-error "$asset_url" \
    -H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
  index=$((index + 1))
done < asset-urls.txt
Lượt đọc nội dung khác
GET nội dung
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
Lưu tất cả kết quả đã hoàn tất

Lưu mọi video đã hoàn tất hoặc tệp trả về; truy xuất từng URL tài nguyên thực tế được trả về.

Giữ lại mọi mục dữ liệu/chỉ số đầu ra được trả về. content_url chỉ là mục đầu tiên; truy xuất mọi đường dẫn nội dung/tài sản thực tế. GET nội dung không có index không trả về tất cả đầu ra.

Nếu cần kiểm tra phản hồi gốc

Đọc tác vụ gốc hiện có; tuyệt đối không gửi lại lần gửi chưa rõ kết quả.

Trường phản hồi
TrườngLoại
TrườngidLoạistring
TrườngobjectLoạistring
TrườngmodelLoạistring
TrườngstatusLoạistring
Trườngcontent_urlLoạisigned URL
Trườngdata[]Loạisigned URL
TrườngusageLoạiobject
Trườngresult_pending_checkLoạiboolean
Lỗi và bước tiếp theo
Phản hồiĐiều kiệnBước tiếp theo
Phản hồi400 · invalid_request_errorĐiều kiệnTrường bắt buộc, cách biểu diễn tài liệu hoặc giá trị tham số không hợp lệBước tiếp theoSửa các trường được chỉ ra trước khi gửi yêu cầu tạo mới.
Phản hồi409 · video_not_readyĐiều kiệnNội dung kết quả ban đầu chưa có sẵnBước tiếp theoThăm dò ID ban đầu được trả về và tuân thủ Retry-After.
Phản hồiserver_errorĐiều kiệnPhản hồi trả về cho biết thao tác hoặc kết quả cần được kiểm traBước tiếp theoGiữ lại ID thao tác/tác vụ gốc đã trả về, các header của yêu cầu và toàn bộ phản hồi; tiếp tục truy xuất thao tác gốc đó bằng các phương thức được hỗ trợ. Không gửi lại yêu cầu tạo.

Bí danh

Bí danh mô hình

Ailoot happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest

Bí danh đường dẫn phương thức

Dùng các đường dẫn phương thức hiển thị ở trên.

ID gọi liên quan

happyhorse-1.1-i2v, happyhorse-i2v, happyhorse-i2v-latest

FAQ · happyhorse-1.1-i2v
Có những đầu vào và kết quả nào?

POST /v1/videos/generations · happyhorse-1.1-i2v: text, image → video

POST /v1/videos/generations · happyhorse-i2v: text, image → video

POST /v1/videos/generations · happyhorse-i2v-latest: text, image → video

Yêu cầu sử dụng những trường nào?

POST /v1/videos/generations · happyhorse-1.1-i2v: model, prompt, duration, resolution, image_urls

POST /v1/videos/generations · happyhorse-i2v: model, prompt, duration, resolution, image_urls

POST /v1/videos/generations · happyhorse-i2v-latest: model, prompt, duration, resolution, image_urls

Áp dụng những giới hạn nào?

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

POST /v1/videos/generations · happyhorse-i2v: duration.minimum: 3; duration.maximum: 15

POST /v1/videos/generations · happyhorse-i2v-latest: duration.minimum: 3; duration.maximum: 15

Xem thêm chi tiết

Kết nối Ailoot với Claude Code, OpenCode, Hermes hoặc ứng dụng của bạn.

Công ty và danh mục dự án của công ty

Công ty và danh mục dự án của công ty: hàng triệu khách hàng; doanh số hàng tỷ mỗi tháng.

Mua token với giá ưu đãi.

Ưu đãi thuê bao cho nhu cầu thường xuyên. Mã khuyến mãi giảm đến 50% khi mua token.

Thuê bao
Chọn gói ưu đãi cho các yêu cầu thường xuyên của bạn.
Mã giảm đến 50%
Nhập mã khi mua. Giá được tính lại theo chương trình đang áp dụng.
Chi phí trong lịch sử
Mô hình, token và số tiền được lưu cho mỗi yêu cầu.

Chọn gói thuê bao · Xem giá mô hình

Kết nối API vào sản phẩm bạn đang bán.

SaaS, ứng dụng và bot — theo đề nghị giao kết chính thức và thỏa thuận cấp phép Ailoot. Muốn bán lại, hãy yêu cầu giấy phép bán lại.

Ứng dụng thương mại
Tích hợp tạo văn bản, ảnh, video và âm thanh vào các tính năng trả phí của dịch vụ.
Giấy phép bán lại
Gửi mô tả dự án và cách cung cấp quyền truy cập. Yêu cầu điều khoản sử dụng và bán lại bằng văn bản.
Tài liệu trên website
Đề nghị giao kết, thỏa thuận cấp phép và chính sách xử lý dữ liệu có sẵn trước khi kết nối.

Yêu cầu giấy phép bán lại · Đề nghị giao kết và thỏa thuận cấp phép