实战 SOP
实战 SOP

零成本搭 AI 多模态工作流 SOP:免费 API+国产+本地三件套

2026 年用 Agnes 免费 API(OpenAI 兼容,一个 key 覆盖文本/图片/视频)+国产模型(DeepSeek/Qwen/即梦/Kling)+本地模型(Wan2.1/Hunyuan/CogVideo)三层叠加,搭出零成本多模态管线。给五步流程、可跑 Python 代码(含视频异步轮询与本地兜底)和五个踩坑。

发布于 2026年8月10日8 分钟阅读
<!-- zero-cost-ai-multimodal-workflow-sop | sop | 零成本搭一套 AI 多模态工作流 SOP:免费 API + 国产模型 + 本地模型 -->

2026 年搭一套能出文本、图片、视频的 AI 工作流,不再必须给 OpenAI 交月费。三件事凑到一起改变了成本结构:一是出现了 OpenAI 兼容、带免费额度的多模态 API(Agnes 一个 key 能调文本、图片、视频);二是国产模型 API 矩阵成熟(DeepSeek、通义 Qwen、即梦、豆包、Kling 覆盖文本到音视频);三是开源视频模型够用(Wan2.1、Hunyuan、CogVideo 本地能跑)。三条腿走路,任何一条断档另两条兜得住--这才是「零成本」能落地的根,而不是赌某家永远免费。

这篇 SOP 给一条可复制的流程:盘点需求 -> 统一接入 -> 搭最小管线 -> 本地兜底 -> 成本控制,五步。代码基于 Agnes 官方文档、OpenMontage 的 PROVIDERS.md(国产/本地模型清单)及各国产模型官方文档整理,截至 2026-08-10;API 形态以官方为准,免费额度随时变动以平台公告为准。与同批的 Agnes 5 模型横评(选哪个 Agnes 模型)、OpenMontage 国内替代方案(本 SOP 的模型映射可直接复用其 PROVIDERS 清单)、Hy3 免费窗口热点(文本模型又一免费选项,8/31 前免费)互补,建议对照读。


一、为什么 2026 能零成本:三件套各管一段

「零成本」不是白嫖某一个 API,而是三层叠加把单点依赖压到零:

  • 免费 API 层:Agnes 这类 OpenAI 兼容多模态网关,一个 key 覆盖文本/图片/视频,带 RPM 与配额。优点是接入成本极低(换 base_url 即可),缺点是额度有限、随时可能调整。详见本批 Agnes 横评
  • 国产模型层:DeepSeek(文本/编码)、通义 Qwen(DashScope,图片+TTS+ASR)、即梦 Jimeng(字节,视频)、豆包 Doubao Speech(TTS)、Kling(快手,视频)。按量计费但单价低,作为免费额度耗尽后的第一替代;Hy3 在 8/31 前有免费窗口,可临时当文本主力。
  • 本地模型层:Wan2.1(阿里,视频)、Hunyuan(腾讯,视频)、CogVideo(智谱,视频)、WhisperX(字幕)。零 API 成本,吃显存,是配额彻底用完时的兜底。

三层不是「选一层」,是「免费层打满 -> 切国产按量 -> 切本地」的降级链。任何一层单独都不够稳,叠起来才稳。


二、需求 -> 模型映射表

动手前先把要做的模态列清,按「免费优先 -> 国产次之 -> 本地兜底」排好。这张表与 OpenMontage 的 PROVIDERS.md 清单对齐,可直接复用:

模态首选免费国产替代(按量)本地兜底(零成本)
文本/编码Agnes agnes-2.5-flashDeepSeek / Qwen-Max / Hy3(免费窗口内)Qwen 本地 / llama.cpp
文生图Agnes agnes-image-2.1-flashQwen-Image (DashScope) / 即梦SD / Flux 本地
图/文生视频Agnes agnes-video-v2.0即梦 Jimeng / KlingWan2.1 / Hunyuan / CogVideo
TTS 语音Agnes(若提供)豆包 Doubao Speech / Qwen TTSedge-tts / XTTS 本地
字幕--WhisperX 本地

用法:每一行挑一个当主力,另两个当 fallback,在编排脚本里按配额状态自动切。


三、SOP 五步流程

Step 1 盘点需求与模型组合:列出你要的模态,照第二节映射表给每个模态定「主力 + 两个 fallback」。要点是别只定主力--免费额度一定会耗尽,没有 fallback 的管线第一次撞配额就停摆。

Step 2 统一接入:OpenAI 兼容是钥匙。Agnes 一个 key + 一个 base_url 同时搞定文本和图片(直接用 openai SDK),省掉三套 SDK 的心智负担。国产非兼容的(如 DashScope)走原生 SDK,但要在底外包一层统一接口(同一个 generate_text(prompt) / generate_image(prompt) 签名),后面换模型只改实现。

Step 3 搭最小管线:先跑通「文本 -> 图片 -> 视频」一条链,别一上来堆五个模态。能跑通这一条,加 TTS、加字幕都是接线,不是重写。第四节给可跑代码。

Step 4 本地兜底:在管线的视频环节加一个开关 VIDEO_GEN_LOCAL_MODEL=wan2.1-14b,配额耗尽自动走本地出片。第五节给配置。

Step 5 成本控制:缓存重复请求的结果、错峰跑视频、多 key 轮换(注意别撞 ToS)、视频任务异步串行不要并发刷。监控每个 endpoint 的用量,超免费档立刻切降级链下一层。


四、最小可跑管线:文本 -> 图片 -> 视频

下面这段 Python 跑通三步:agnes-2.5-flash 生成分镜 -> agnes-image-2.1-flash 出图 -> agnes-video-v2.0 图生视频(异步轮询)。文本和图片走 openai SDK(兼容),视频是任务型异步端点用 requests 直连。

python
import os, time, requests
from openai import OpenAI

AGNES_KEY = os.getenv("AGNES_API_KEY", "ag-xxxxxxxx")  # 脱敏,勿硬编码
BASE = "https://apihub.agnes-ai.com/v1"

# 文本 + 图片走 OpenAI 兼容 SDK,换 base_url 即可
client = OpenAI(api_key=AGNES_KEY, base_url=BASE)

# Step 1 文本:生成 15 秒视频分镜(走免费档 20 RPM)
script = client.chat.completions.create(
    model="agnes-2.5-flash",
    messages=[{"role": "user",
               "content": "写一条 15 秒产品视频分镜,输出三句画面描述,每句一行。"}],
)
shots = script.choices[0].message.content
first_shot = shots.splitlines()[0]
print("分镜:", shots)

# Step 2 图片:文生图(走图片 RPM 配额)
img = client.images.generate(
    model="agnes-image-2.1-flash",
    prompt=first_shot,
    n=1,
    size="1280x720",
)
image_url = img.data[0].url
print("首图:", image_url)

# Step 3 视频:图生视频,异步任务(走视频配额)
# 视频是任务型端点,不在 openai SDK 内,用 requests 直连 Agnes
headers = {"Authorization": f"Bearer {AGNES_KEY}"}
create = requests.post(f"{BASE}/videos/generations", headers=headers, json={
    "model": "agnes-video-v2.0",
    "image": image_url,
    "prompt": shots,
}, timeout=30).json()
task_id = create["id"]

# 关键:视频是异步任务,必须轮询,不轮询拿不到结果
for _ in range(60):  # 最多等 10 分钟
    st = requests.get(f"{BASE}/videos/generations/{task_id}",
                      headers=headers, timeout=30).json()
    if st["status"] == "succeeded":
        print("视频地址:", st["video"]["url"])
        break
    if st["status"] == "failed":
        raise RuntimeError("视频生成失败:" + st.get("error", "unknown"))
    time.sleep(10)

每步免费额度:文本 20 RPM、图片按图片 RPM 配额、视频按任务配额,三条都以平台公告为准。配额耗尽时把 Step 3 换成下一节的本地兜底即可,前两步不动。


五、本地模型兜底配置

视频配额最先耗尽,本地兜底主要兜视频。设环境变量 VIDEO_GEN_LOCAL_MODEL,配额不足时脚本自动切本地 Wan2.1 出片,零 API 成本:

python
# 本地兜底:Wan2.1 离线出视频,零 API 成本
# 环境:pip install diffusers torch accelerate
# 选型:显存 24GB+ 用 14b,8GB 左右用 1.3b,量力而行
import os, torch
from diffusers import WanPipeline

model_id = os.getenv("VIDEO_GEN_LOCAL_MODEL", "Wan-AI/Wan2.1-T2V-14B-Diffusers")
pipe = WanPipeline.from_pretrained(model_id, torch_dtype=torch.bfloat16).to("cuda")

video = pipe(
    prompt=first_shot,          # 复用上面的分镜描述
    num_frames=49, height=720, width=1280,
    num_inference_steps=30,
).frames[0]
# 导出 mp4 用 imageio / opencv,此处省略

选型纪律:显存够(24GB+)选 14b 出片质量好;不够就选 1.3b,质量降一档但能跑。Hunyuan、CogVideo 是同类替代,接口类似。本地兜底不参与 RPM 限制,慢但稳,是免费层断档后的最后一道防线。


六、五个踩坑

坑 1:把免费 API 当生产 免费额度一超就停,没有 fallback 当场断线。修法:每个模态都按第二节备好国产/本地 fallback,编排脚本检测到 429 或配额错误自动降级,别让管线单点依赖免费层。

坑 2:视频不轮询,拿不到结果 视频是异步任务,创建接口只返回 task_id,状态和结果要去查询接口取。不轮询直接用创建返回值,拿到的是个 id 不是视频。修法:像第四节那样循环 GET /videos/generations/{id},设最大等待轮数和失败分支。

坑 3:假设国产模型都能 drop-in 国产模型 API 形态不统一。DashScope 不是 OpenAI 兼容,参数名、返回结构都不同;即梦、Kling 各有各的签名。修法:非兼容的走原生 SDK,但外包一层统一接口(generate_image(prompt)->url),换模型只改实现,管线代码不动。

坑 4:本地模型硬上 14b 爆显存 14b 要 24GB+ 显存,硬上会 OOM 或极慢。修法:先查自己显卡显存,8-12GB 选 1.3b,16GB 选 5b,24GB+ 再上 14b。用 nvidia-smi 看实际占用,留余量给系统。

坑 5:多 key 轮换撞 ToS 为绕免费额度开多号并发刷视频配额,可能违反平台服务条款被封。修法:单号串行跑视频(视频本来就异步慢,并发没意义),多 key 只用于跨项目隔离用量,别在一个号上并发刷。


七、常见问题

Q1:Agnes 的免费额度到底够不够用? 够做原型和小批量生产,不够规模化。文本 20 RPM 能撑个人级日常调用,图片按 RPM 配额够出几十张,视频配额最少、最易耗尽。判断标准:跑通管线后看一周实际用量,超免费档 70% 就该把视频环节切本地或国产按量。额度随时变动,以平台为准。

Q2:不用 Agnes 能搭这套吗? 能。Agnes 的价值是一个 key 全模态 + OpenAI 兼容省接入成本。你也可以全用国产:DeepSeek 文本 + Qwen-Image 图片 + 即梦视频,按量计费但单价低。或全本地:Qwen 本地 + Flux + Wan2.1,零 API 成本但吃显卡。Agnes 只是「免费优先」层最省事的选择,不是必需。

Q3:本地模型出视频要多久? 14b 在 24GB 显卡上出 5 秒 720p 视频大约几分钟到十几分钟(取决于步数),比 API 慢但零成本。1.3b 快很多但质量低。如果时间敏感,优先用 API(免费或按量),本地只作兜底。

Q4:n8n 和 Python 脚本选哪个编排? 原型和单条管线用 Python 脚本最直接(本文代码即如此)。需要可视化、定时触发、多分支和人在回路审批,用 n8n。两者不冲突:n8n 可调用你封装好的 Python 接口,复杂逻辑在 Python 里,调度在 n8n 里。

Q5:这套和 OpenMontage 是什么关系? 互补。OpenMontage 是一套开源编排框架,PROVIDERS.md 里整理了国产/本地模型清单(本 SOP 第二节映射表即对齐它)。本 SOP 的流程可以手工用 Python 跑,也可以套进 OpenMontage 用它现成的 provider 适配层,省掉自己写统一接口的活。详见本批 OpenMontage 国内替代方案


可复用编排模板

text
# 多模态工作流编排模板(伪代码)
PIPELINE:
  1. text_gen(prompt) -> script          # Agnes agnes-2.5-flash,免费优先
  2. image_gen(script.first_shot) -> img  # Agnes agnes-image-2.1-flash
  3. video_gen(img, script) -> video      # Agnes agnes-video-v2.0,配额耗尽切本地 Wan2.1
  4. (可选) tts(script) -> audio          # 豆包 Doubao Speech / Qwen TTS
  5. (可选) asr(audio) -> subtitle        # WhisperX 本地

FALLBACK_RULE:
  每步失败或 429 -> 按映射表降级:免费 -> 国产按量 -> 本地
  视频步优先切本地(成本敏感),文本/图片优先切国产按量(质量敏感)

COST_RULE:
  缓存相同 prompt 的结果;视频异步串行不并发;监控各 endpoint 用量

参考来源

本文由 AI 辅助生成,经人工审核编辑。最后更新:2026-08-10

常见问题

Agnes 的免费额度到底够不够用?
够做原型和小批量生产,不够规模化。文本 20 RPM 撑个人日常,图片够出几十张,视频配额最少最易耗尽。跑通后看一周用量,超免费档 70% 就把视频切本地或国产按量;额度随时变动以平台为准。
不用 Agnes 能搭这套吗?
能。Agnes 价值是一个 key 全模态 + OpenAI 兼容省接入成本。可全用国产(DeepSeek+Qwen-Image+即梦,按量但便宜)或全本地(Qwen 本地+Flux+Wan2.1,零 API 成本但吃显卡)。Agnes 只是免费优先层最省事的选择,不是必需。
本地模型出视频要多久?
14b 在 24GB 显卡上出 5 秒 720p 约几分钟到十几分钟,比 API 慢但零成本;1.3b 快但质量低。时间敏感优先用 API,本地只作兜底。
n8n 和 Python 脚本选哪个编排?
原型和单条管线用 Python 最直接;需要可视化、定时触发、多分支、人在回路审批用 n8n。两者不冲突:n8n 调用封装好的 Python 接口,复杂逻辑在 Python,调度在 n8n。
这套和 OpenMontage 是什么关系?
互补。OpenMontage 是开源编排框架,PROVIDERS.md 整理了国产/本地模型清单(本 SOP 映射表对齐它)。流程可手工 Python 跑,也可套进 OpenMontage 用现成 provider 适配层省掉自己写统一接口。

相关文章

实战 SOP

LLaDA-Image 本地部署 SOP:五步跑通 6B 生图模型

把蚂蚁开源 6B 生图模型 LLaDA-Image 跑起来的五步 SOP:①环境准备(依赖与国内镜像加速下载);②四档权重怎么选(Base 50 步 / Turbo 4 步 × BF16 / FP8,国内走 ModelScope);③跑通第一张图(Base 与 Turbo 最小可用命令);④进阶(参考图编辑、文字渲染、ComfyUI 接入、显存不足时的降级策略);⑤生产化(批量队列、并发容量规划、成本监控、结果入库与故障降级)。含 6 条踩坑与 10 项上线自检清单,命令逐字取自官方 README;仓库 license 为 null,商用前须确权。

2026年9月9日11 分钟阅读
实战 SOP

自建 OpenMAIC 课堂 SOP:从取码到接 Agent 工作台

从零把 OpenMAIC 跑起来的完整 SOP:①零部署路线(open.maic.chat 取访问码即用);②本地标准部署(pnpm >= 10,clone → pnpm install → .env → pnpm dev);③生产化(pnpm build && pnpm start、Vercel 一键、docker compose up --build);④进阶(Postgres 持久化 profile、ACCESS_CODE 访问码、MP4 导出 profile、Lemonade/FunASR 本地化);⑤接进 agent 工作台(clawhub install openmaic 或导入 skills/openmaic/,从飞书/Slack 发消息生成课堂)。含 6 条踩坑与 10 项上线自检清单,全部命令逐字取自官方 README。

2026年9月8日11 分钟阅读