HiAPI
博客

使用指南

使用 happyhorse-1.1 文生视频 API 制作短视频:端到端工作流

2026年11月3日
使用 happyhorse-1.1 文生视频 API 制作短视频:端到端工作流

短视频是一场数量游戏。TikTok、Reels 和 Shorts 都会奖励每天发布的账号,而最大的制作瓶颈通常是 B-roll:那些承载钩子、产品亮点或令人满足的循环的 3–8 秒竖屏片段。HappyHorse 1.1 文生视频 特别适合这一场景,因为它在同一次调用中生成原生音频——无需单独配乐或拟音——并且直接支持 9:16 竖屏输出,因此后期无需裁剪。

本指南是端到端工作流:为短视频调校的提示词模式、异步任务生命周期、一次运行渲染一周视频的批量生产脚本,以及各平台的成本计算。下面嵌入的每个片段都是用旁边所示完全相同请求生成的——音频开启,直接来自 API。

前置条件。 你需要一个 hiapi key(Authorization: Bearer sk-…)。如果你之前没有调用过 /v1/tasks,请先浏览 异步 API 创建 文档或 happyhorse-1.1 curl + Python 教程——本文基于该教程,聚焦短视频工作流。

为什么这个模型适合短视频

三个特性对这种格式很重要:

  • 原生音频。 环境音、拟音和一次性音效与视频一起生成。对于“莫名解压”和 B-roll 内容,声音就是内容——有真实音频的片段明显优于创作者用库存音乐填充的无声 AI 片段。
  • 一等公民的 9:16。 aspect_ratio 接受 9:16(以及 16:9、1:1、4:5、21:9、9:21 等),因此你可以原生渲染竖屏,而不是裁剪横屏母版并丢失构图。
  • 3–15 秒范围。 duration 接受 3 到 15 的任意整数——正好是短视频的区间。钩子是 3 秒,产品亮点是 4–6 秒,完整的微故事可容纳在 12–15 秒内。

输入模式刻意保持小巧。只有 prompt 是必填的;有用的参数是:

字段 值 短视频默认值
prompt 字符串(必填) 参见下方模式
aspect_ratio 16:9、9:16、3:4、4:3、4:5、5:4、1:1、9:21、21:9 9:16
resolution 720p、1080p 草稿用 720p,主推帖子用 1080p
duration 整数 3–15(秒) 3–5

有两件事它不接受,这样你就不会浪费一次请求去发现:没有 audio 开关(音频始终开启),也没有 seed。发送其中任何一个都会返回 400 验证错误。

三个真实片段,三种短视频类型

这些是主导短视频信息流的三种格式,每个都在一次 API 调用中生成。提示词遵循一个可重复的模式,你可以调整:格式标签 → 主体和动作 → 构图 → 光线 → 音频提示。

1. 生活方式 B-roll(咖啡馆经典)

{
  "model": "happyhorse-1.1/text-to-video",
  "input": {
    "prompt": "竖屏短视频测试:一位咖啡师在明亮的咖啡馆里拉花,手机风格的竖屏构图,牛奶蒸煮和咖啡馆交谈的自然音频。",
    "duration": 4,
    "resolution": "720p",
    "aspect_ratio": "9:16"
  }
}

注意提示词末尾的音频提示(“牛奶蒸煮和咖啡馆交谈”)。明确说出你想要的声音是使用这个模型时最有杠杆效应的技巧——不提示的话,它仍然会生成音频,但描述出来能得到可用的环境音轨。

2. 产品发布预告

{
  "model": "happyhorse-1.1/text-to-video",
  "input": {
    "prompt": "产品发布预告,竖屏 9:16:一只奶油色和焦橙色的厚底复古跑鞋在哑光黑色转盘上缓慢旋转,硬质轮廓光勾勒出它的剪影,细微灰尘颗粒在光束中飘动,深色影棚背景,上方留有充足空白空间用于标题叠加。冲击力强,电影感。原生音频:低沉的贝斯嗡嗡声,以及鞋子完成旋转时的一声柔和呼啸。",
    "duration": 3,
    "resolution": "720p",
    "aspect_ratio": "9:16"
  }
}

这里有两个短视频特有的技巧。第一,“上方留有充足空白空间用于标题叠加”——你将在剪辑器中在这个片段上放文字,所以要求模型留出负空间,而不是让你的字幕去争抢画面。第二,音频是设计出来的,不是环境音:一个低音嗡嗡声加上与动作节拍同步的一声呼啸,这正是产品预告片所使用的。

3. 莫名解压微距循环

{
  "model": "happyhorse-1.1/text-to-video",
  "input": {
    "prompt": "莫名解压微距,竖屏 9:16:一把锋利的调色刀干净地切过白色桌面上的一块淡薄荷色动力沙,切面在慢动作中碎裂,颗粒倾泻而下,柔和均匀的影棚光线,极端特写充满画面。原生音频:切割时干燥的颗粒嘎吱声,无音乐。",
    "duration": 3,
    "resolution": "720p",
    "aspect_ratio": "9:16"
  }
}

“无音乐”很重要:对于 ASMR 类内容,模型应将其音频预算花在拟音(颗粒嘎吱声)上,明确说明可以防止它添加通用配乐。

适用于短视频的提示词模式

从上述片段及其背后的运行中提炼:

  1. 以格式开头。 用“竖屏短视频”、“产品发布预告,竖屏 9:16”、“莫名解压微距”开头。模型会为你指定的画幅进行构图——手机风格构图与宽银幕电影镜头的观感不同。
  2. 一个主体,一个动作。 3–5 秒是一个节拍。“咖啡师拉花”可行;4 秒内讲三幕故事只会给你一团糊。如果你需要多个节拍,生成多个片段并将它们剪辑在一起——这也是真实短视频的剪辑方式。
  3. 用一句话编写音频脚本。 每个提示词以 原生音频:<你想要的 1–3 种声音> 结尾。环境底噪(“咖啡馆交谈”)、拟音(“干燥的颗粒嘎吱声”)或设计的一次性音效(“低沉的贝斯嗡嗡声和一声柔和呼啸”)都可行。
  4. 预留叠加空间。 如果片段要承载字幕或标题,要求“上方空白空间”或“顶部三分之一的干净负空间”。比后期重新构图更便宜。
  5. 以可循环状态结束。 信息流会自动循环。结束于开始之处的提示词(“鞋子完成旋转”)循环干净,并悄悄积累重复观看。

异步工作流:提交、轮询、下载

每次生成都是一个异步任务:POST /v1/tasks 立即返回一个 taskId,你轮询 GET /v1/tasks/:id 直到 status 为 success,然后下载 output[0].url。一个 4 秒 720p 片段通常渲染约 1–3 分钟。

curl -s -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "happyhorse-1.1/text-to-video",
    "input": {
      "prompt": "竖屏短视频测试:一位咖啡师在明亮的咖啡馆里拉花,手机风格的竖屏构图,牛奶蒸煮和咖啡馆交谈的自然音频。",
      "duration": 4,
      "resolution": "720p",
      "aspect_ratio": "9:16"
    }
  }'
# → {"code":200,"data":{"taskId":"tk-hiapi-…"},"message":"success"}

一条会让人吃亏的操作规则:输出 URL 会过期。 响应中的 output[0].url 带有 expireAt——任务成功后立即下载 mp4 并放入你自己的存储。不要把热链接 URL 写进 CMS 或调度工具。

批量生产:一次运行生成一周片段

当你并行提交时,任务 API 大放异彩。因为创建会立即返回,正确的量级模式是先提交所有任务,再轮询所有任务——五个片段大约在一个片段的实际耗时内渲染完成。

import os, time, requests

API = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"}

BATCH = [
    ("mon-coffee",  "竖屏短视频:手冲咖啡在慢动作中闷蒸,蒸汽卷曲,温暖的晨光。原生音频:水流声,柔和的咖啡馆环境音。", 4),
    ("tue-sneaker", "产品发布预告,竖屏 9:16:一只霓虹跑鞋溅入浅水,水滴在半空中冻结,深色背景。原生音频:一声深沉的溅水声。", 3),
    ("wed-sand",    "莫名解压微距,竖屏 9:16:一块薰衣草色动力沙被细线切开,切面碎裂。原生音频:干燥的颗粒嘎吱声,无音乐。", 3),
    ("thu-city",    "竖屏短视频:夜晚雨淋淋的霓虹街道,雨伞经过,倒影荡漾。原生音频:雨声和远处的车流声。", 5),
    ("fri-dessert", "竖屏短视频微距:一把勺子敲碎焦糖布丁的焦糖壳,下面的蛋奶馅屈服。原生音频:清脆的碎裂声,然后寂静。", 3),
]

def submit(prompt, duration):
    r = requests.post(API, headers=HEADERS, json={
        "model": "happyhorse-1.1/text-to-video",
        "input": {"prompt": prompt, "duration": duration,
                  "resolution": "720p", "aspect_ratio": "9:16"},
    }, timeout=60)
    return r.json()["data"]["taskId"]

# 1) 先提交所有任务
tasks = {key: submit(p, d) for key, p, d in BATCH}

# 2) 轮询直到全部终态
while tasks:
    time.sleep(10)
    for key, tid in list(tasks.items()):
        t = requests.get(f"{API}/{tid}", headers=HEADERS, timeout=30).json()["data"]
        if t["status"] == "success":
            url = t["output"][0]["url"]          # 会过期——立即下载
            open(f"{key}.mp4", "wb").write(requests.get(url, timeout=180).content)
            print(f"done: {key}.mp4")
            del tasks[key]
        elif t["status"] == "fail":
            print(f"FAILED {key}: {t.get('error')}")
            del tasks[key]

大规模运行这种脚本形态的生产笔记:

  • 失败时重新提交,而不是重新轮询。失败的任务是终态;用相同输入提交一个新任务(如果因内容原因失败两次,偶尔改写提示词)。
  • 维护清单。 随时将 {key, prompt, taskId, local_path} 写入 JSON 文件,重启时跳过 mp4 已存在的键。批处理作业会被中断;如果提前规划,可恢复性是免费的。
  • 注意并发限制。 如果你要提交几十个任务,将提交间隔一到两秒,而不是在同一瞬间发出 50 个。

成本是多少

计费按输出视频秒数计算(定价页面):720p 为 $0.16/秒,1080p 为 $0.21/秒,与宽高比无关。时长是唯一的成本杠杆,这使得短视频成为使用该模型最便宜的地方:

片段 规格 成本
钩子 / 解压循环 3秒 · 720p $0.48
标准 B-roll 节拍 4秒 · 720p $0.64
产品预告 5秒 · 720p $0.80
主推帖子 5秒 · 1080p $1.05
每日发布,每月 30 × 4秒草稿 720p ~$19.20

一个实用的两级流程:在 3秒/720p 下迭代提示词(每次尝试约半美元),只将胜出的重新渲染为 1080p 用于发布。提示词在分辨率之间干净地转移,因此你不是在重做创意工作——只是在知道片段值得后才为像素付费。

从 API 输出到已发布帖子

模型交给你一个带音频的成品竖屏片段;剩下的是包装:

  • 各平台时长: 3–5 秒片段在 TikTok 和 Reels 上作为循环效果很好;对于 Shorts,将两三个节拍拼接成 10–15 秒往往能更长时间留住观众。duration 最高 15 秒可在一次调用中覆盖完整微故事,如果你不想剪辑的话。
  • 文字叠加: 在剪辑器中添加字幕(CapCut、Premiere、ffmpeg drawtext)。这就是“留出空白空间”提示词技巧重要的原因。
  • 保留原生音频 作为基础层,即使你添加音乐——音乐床下的真实拟音比只有音乐更能体现制作价值。
  • 一致的系列: 短视频奖励格式重复。固定提示词骨架(构图、光线、音频风格),只改变主体——上述三个类型模板就是这样设计来复用的。

如果你的系列以品牌资产为核心——真实产品照片、吉祥物、面孔——将此工作流与 happyhorse-1.1 图生视频 配合使用:生成或拍摄一次关键帧,然后从它驱动运动,让主体在每个帖子中保持相同。

开始渲染

最快的路径:获取一个 key,复制本页的咖啡师请求,几分钟内你就会有第一个带音频的竖屏片段。happyhorse-1.1 文生视频模型页面 有实时参数参考和定价,快速开始 涵盖认证,如果这是你第一次调用 hiapi。渲染三个草稿,保留最好的一个,你就以不到一杯咖啡的价格得到了明天的帖子。

立即开始构建持久 AI 产物

获取 API 密钥,通过一个基于任务(task)的 API 调用图像、视频和音频模型。

阅读 API 文档