@apicity/ fal (英语)
Fal平台API提供商,用于模型管理,定价,使用和分析.
运行时间依赖性 :
zod@^4.6.6- 请求在每一个 POST 端点上附加计划.schema
安装
npm install @apicity/fal
# or
pnpm add @apicity/fal
快速启动
import { createFal } from "@apicity/fal";
const fal = createFal({ apiKey: process.env.FAL_API_KEY! });
真实世界的例子: 上传一幅肖像, 制作一幅 Grok 图像
fal 的签名流量是上传- 即时, 重用- 任何地方 —— 将字节数降入
fal的CDN通过一个预先签名的PUT,然后线入结果
https://*.fal.media/ URL通过任何模型端点. 两步
下面的片段组合
tests/integration/fal-storage-upload-initiate.test.ts
(POST启动 ~ PUT 字节)
tests/integration/fal-xai-grok-imagine-video.test.ts
(图像到视频生成),所以每个 URL,字节计数,和资产 ID
下面来自真实记录的HAR.
import { readFile } from "node:fs/promises";
import { createFal } from "@apicity/fal";
const fal = createFal({ apiKey: process.env.FAL_API_KEY! });
// 1. Reserve a signed upload slot. `initiate` returns two URLs: a
// permanent `file_url` you'll feed to downstream models, and a
// presigned `upload_url` you PUT the bytes to. Both point at the
// same fal CDN — no third-party hosting needed.
const slot = await fal.storage.upload.initiate({
file_name: "man.jpg",
content_type: "image/jpeg",
});
console.log(slot.file_url);
// → "https://v3b.fal.media/files/b/0a96d564/QR9a1l-E0UuoR6zOHUMlX_man.jpg"
// (the `cat1.jpg` recording shows the same URL shape with a
// cat1 suffix; the suffix tracks `file_name` you passed in.)
// 2. PUT the bytes to the presigned URL. fal storage is plain HTTP —
// no SDK call needed, just `fetch` with a matching Content-Type.
// The signature on `upload_url` expires after a short window;
// upload promptly. The resulting `file_url` is durable and
// fetchable by every fal model endpoint.
const bytes = await readFile("./man.jpg");
const put = await fetch(slot.upload_url, {
method: "PUT",
headers: { "Content-Type": "image/jpeg" },
body: bytes,
});
if (!put.ok) throw new Error(`upload failed: ${put.status}`);
// 3. Hand the now-permanent `file_url` to xAI's Grok Imagine image-to-
// video model. fal returns the MP4 on the same fal CDN. `duration`
// runs from 1 to 15 seconds, and `resolution` is "480p" or "720p".
const result = await fal.run.xai.grokImagineVideo.imageToVideo({
prompt: "the man waves at the camera as the wind blows his hair",
image_url: slot.file_url,
aspect_ratio: "16:9",
resolution: "720p",
duration: 6,
});
console.log(result.video.url);
// → "https://v3b.fal.media/files/b/0a96be18/bMSvmG4X4YNIsdUfc_MgD_6Ypo1qmx.mp4"
console.log(result.video.file_size);
// → 3110943 // ~3 MB MP4 for a 6-second 720p clip
页:1
- 记录的Grok 想象HAR 将图像缩入
data:image/jpeg;base64,…URL — fal 接受两个内置数据 URL 和任何https://URL可以达到. 通过 Fal 存储上传 首先将请求体保持微小(350 KB → < 1 KB),并允许您再使用 该资产跨越多个模式调用而无需重新编码. - 包裹再出口一次
uploadFile(provider, { data, filename, contentType })连接启动时 PUT 的助手 跳舞并返回file_url直接 - 不使用时使用 需要颗粒控制生命周期或签名的 URL . - 每一个 POST 端点都会暴露一个 Zod 计划:呼叫
fal.run.xai.grokImagineVideo.imageToVideo.schema.safeParse(input)改为 验证有效载荷后再进行推断. - WAN 2.7的参考到视频验证生成的有效期为2-10
秒数.
duration: 0仍然仅限于源代码编辑-视频 表示保持原始剪辑长度. - 长跑电话接受
AbortSignal第二个论点和 以包件的中件作曲,例如:.withRetry(fal.run.xai.grokImagineVideo.imageToVideo, { retries: 3 })从@apicity/fal以排出瞬态队列 / 429s. - 丢出错误
FalError与status, (中文(简体) ),type, (中文(简体) ),request_id,则 解析body附 件:try { ... } catch (e) { if (e instanceof FalError) console.error(e.status, e.body); }。 。 。 .
API 参考
283个端点横跨55个组. 每个方法都映射出上游的 URL 路径 .
阿利巴巴语
POST fal.alibaba.happyHorse.imageToVideo
POST https://fal.run/alibaba/happy-horse/image-to-video
成本等级 : prohibitive
const res = await fal.run.alibaba.happyHorse.imageToVideo({ /* ... */ });
POST fal.alibaba.happyHorse.referenceToVideo
POST https://fal.run/alibaba/happy-horse/reference-to-video
成本等级 : prohibitive
const res = await fal.run.alibaba.happyHorse.referenceToVideo({ /* ... */ });
POST fal.alibaba.happyHorse.textToVideo
POST https://fal.run/alibaba/happy-horse/text-to-video
成本等级 : prohibitive
const res = await fal.run.alibaba.happyHorse.textToVideo({ /* ... */ });
POST fal.alibaba.happyHorse.v1p1.imageToVideo
POST https://fal.run/alibaba/happy-horse/v1.1/image-to-video
成本等级 : prohibitive
const res = await fal.run.alibaba.happyHorse.v1p1.imageToVideo({ /* ... */ });
POST fal.alibaba.happyHorse.v1p1.referenceToVideo
POST https://fal.run/alibaba/happy-horse/v1.1/reference-to-video
成本等级 : prohibitive
const res = await fal.run.alibaba.happyHorse.v1p1.referenceToVideo({ /* ... */ });
POST fal.alibaba.happyHorse.v1p1.textToVideo
POST https://fal.run/alibaba/happy-horse/v1.1/text-to-video
成本等级 : prohibitive
const res = await fal.run.alibaba.happyHorse.v1p1.textToVideo({ /* ... */ });
POST fal.alibaba.happyHorse.videoEdit
POST https://fal.run/alibaba/happy-horse/video-edit
成本等级 : prohibitive
const res = await fal.run.alibaba.happyHorse.videoEdit({ /* ... */ });
POST fal.alibaba.qwenAudio3Tts
POST https://fal.run/alibaba/qwen-audio-3-tts
成本等级 : prohibitive
const res = await fal.run.alibaba.qwenAudio3Tts({ /* ... */ });
POST fal.alibaba.qwenImage3.edit
POST https://fal.run/alibaba/qwen-image-3/edit
成本等级 : prohibitive
const res = await fal.run.alibaba.qwenImage3.edit({ /* ... */ });
POST fal.alibaba.qwenImage3.textToImage
POST https://fal.run/alibaba/qwen-image-3/text-to-image
成本等级 : prohibitive
const res = await fal.run.alibaba.qwenImage3.textToImage({ /* ... */ });
POST fal.alibaba.wan3p0.imageToVideo
POST https://fal.run/alibaba/wan-3.0/image-to-video
成本等级 : prohibitive
const res = await fal.run.alibaba.wan3p0.imageToVideo({ /* ... */ });
POST fal.alibaba.wan3p0.referenceToVideo
POST https://fal.run/alibaba/wan-3.0/reference-to-video
成本等级 : prohibitive
const res = await fal.run.alibaba.wan3p0.referenceToVideo({ /* ... */ });
POST fal.alibaba.wan3p0.textToVideo
POST https://fal.run/alibaba/wan-3.0/text-to-video
成本等级 : prohibitive
const res = await fal.run.alibaba.wan3p0.textToVideo({ /* ... */ });
POST fal.alibaba.wan3p0Prime.imageToVideo
POST https://fal.run/alibaba/wan-3.0-prime/image-to-video
成本等级 : prohibitive
const res = await fal.run.alibaba.wan3p0Prime.imageToVideo({ /* ... */ });
POST fal.alibaba.wan3p0Prime.referenceToVideo
POST https://fal.run/alibaba/wan-3.0-prime/reference-to-video
成本等级 : prohibitive
const res = await fal.run.alibaba.wan3p0Prime.referenceToVideo({ /* ... */ });
POST fal.alibaba.wan3p0Prime.textToVideo
POST https://fal.run/alibaba/wan-3.0-prime/text-to-video
成本等级 : prohibitive
const res = await fal.run.alibaba.wan3p0Prime.textToVideo({ /* ... */ });
黑林地块
POST fal.blackforestlabs.flux3.draftEnhance
POST https://fal.run/blackforestlabs/flux-3/draft-enhance
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3.draftEnhance({ /* ... */ });
POST fal.blackforestlabs.flux3.editImage
POST https://fal.run/blackforestlabs/flux-3/edit-image
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3.editImage({ /* ... */ });
POST fal.blackforestlabs.flux3.editVideo
POST https://fal.run/blackforestlabs/flux-3/edit-video
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3.editVideo({ /* ... */ });
POST fal.blackforestlabs.flux3.extendVideo
POST https://fal.run/blackforestlabs/flux-3/extend-video
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3.extendVideo({ /* ... */ });
POST fal.blackforestlabs.flux3.extendVideo.draft
POST https://fal.run/blackforestlabs/flux-3/extend-video/draft
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3.extendVideo.draft({ /* ... */ });
POST fal.blackforestlabs.flux3.firstLastFrameToVideo
POST https://fal.run/blackforestlabs/flux-3/first-last-frame-to-video
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3.firstLastFrameToVideo({ /* ... */ });
POST fal.blackforestlabs.flux3.firstLastFrameToVideo.draft
POST https://fal.run/blackforestlabs/flux-3/first-last-frame-to-video/draft
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3.firstLastFrameToVideo.draft({ /* ... */ });
POST fal.blackforestlabs.flux3.imageToVideo
POST https://fal.run/blackforestlabs/flux-3/image-to-video
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3.imageToVideo({ /* ... */ });
POST fal.blackforestlabs.flux3.imageToVideo.draft
POST https://fal.run/blackforestlabs/flux-3/image-to-video/draft
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3.imageToVideo.draft({ /* ... */ });
POST fal.blackforestlabs.flux3.keyframesToVideo
POST https://fal.run/blackforestlabs/flux-3/keyframes-to-video
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3.keyframesToVideo({ /* ... */ });
POST fal.blackforestlabs.flux3.keyframesToVideo.draft
POST https://fal.run/blackforestlabs/flux-3/keyframes-to-video/draft
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3.keyframesToVideo.draft({ /* ... */ });
POST fal.blackforestlabs.flux3.klein.base.editImage.lora
POST https://fal.run/blackforestlabs/flux-3/klein/base/edit-image/lora
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3.klein.base.editImage.lora({ /* ... */ });
POST fal.blackforestlabs.flux3.klein.base.textToImage.lora
POST https://fal.run/blackforestlabs/flux-3/klein/base/text-to-image/lora
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3.klein.base.textToImage.lora({ /* ... */ });
POST fal.blackforestlabs.flux3.klein.base.trainer
POST https://fal.run/blackforestlabs/flux-3/klein/base/trainer
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3.klein.base.trainer({ /* ... */ });
POST fal.blackforestlabs.flux3.klein.base.trainer.edit
POST https://fal.run/blackforestlabs/flux-3/klein/base/trainer/edit
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3.klein.base.trainer.edit({ /* ... */ });
POST fal.blackforestlabs.flux3.klein.editImage
POST https://fal.run/blackforestlabs/flux-3/klein/edit-image
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3.klein.editImage({ /* ... */ });
POST fal.blackforestlabs.flux3.klein.editImage.lora
POST https://fal.run/blackforestlabs/flux-3/klein/edit-image/lora
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3.klein.editImage.lora({ /* ... */ });
POST fal.blackforestlabs.flux3.klein.textToImage
POST https://fal.run/blackforestlabs/flux-3/klein/text-to-image
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3.klein.textToImage({ /* ... */ });
POST fal.blackforestlabs.flux3.klein.textToImage.lora
POST https://fal.run/blackforestlabs/flux-3/klein/text-to-image/lora
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3.klein.textToImage.lora({ /* ... */ });
POST fal.blackforestlabs.flux3.textToImage
POST https://fal.run/blackforestlabs/flux-3/text-to-image
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3.textToImage({ /* ... */ });
POST fal.blackforestlabs.flux3.textToVideo
POST https://fal.run/blackforestlabs/flux-3/text-to-video
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3.textToVideo({ /* ... */ });
POST fal.blackforestlabs.flux3.textToVideo.draft
POST https://fal.run/blackforestlabs/flux-3/text-to-video/draft
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3.textToVideo.draft({ /* ... */ });
POST fal.blackforestlabs.flux3Max.imageToVideo
POST https://fal.run/blackforestlabs/flux-3-max/image-to-video
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3Max.imageToVideo({ /* ... */ });
POST fal.blackforestlabs.flux3Max.keyframesToVideo
POST https://fal.run/blackforestlabs/flux-3-max/keyframes-to-video
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3Max.keyframesToVideo({ /* ... */ });
POST fal.blackforestlabs.flux3Max.textToVideo
POST https://fal.run/blackforestlabs/flux-3-max/text-to-video
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.flux3Max.textToVideo({ /* ... */ });
POST fal.blackforestlabs.fluxVideoUpscale
POST https://fal.run/blackforestlabs/flux-video-upscale
成本等级 : prohibitive
const res = await fal.run.blackforestlabs.fluxVideoUpscale({ /* ... */ });
布里亚
POST fal.bria.fibo2.edit
POST https://fal.run/bria/fibo-2/edit
成本等级 : prohibitive
const res = await fal.run.bria.fibo2.edit({ /* ... */ });
POST fal.bria.fibo2.generate
POST https://fal.run/bria/fibo-2/generate
成本等级 : prohibitive
const res = await fal.run.bria.fibo2.generate({ /* ... */ });
POST fal.bria.fiboEdit1p5.edit
POST https://fal.run/bria/fibo-edit-1.5/edit
成本等级 : prohibitive
const res = await fal.run.bria.fiboEdit1p5.edit({ /* ... */ });
POST fal.bria.fiboEdit1p5.expand
POST https://fal.run/bria/fibo-edit-1.5/expand
成本等级 : prohibitive
const res = await fal.run.bria.fiboEdit1p5.expand({ /* ... */ });
POST fal.bria.fiboEdit1p5.productHolding
POST https://fal.run/bria/fibo-edit-1.5/product-holding
成本等级 : prohibitive
const res = await fal.run.bria.fiboEdit1p5.productHolding({ /* ... */ });
POST fal.bria.fiboEdit1p5.virtualTryOn
POST https://fal.run/bria/fibo-edit-1.5/virtual-try-on
成本等级 : prohibitive
const res = await fal.run.bria.fiboEdit1p5.virtualTryOn({ /* ... */ });
POST fal.bria.fiboGen1p5.textToImage
POST https://fal.run/bria/fibo-gen-1.5/text-to-image
成本等级 : prohibitive
const res = await fal.run.bria.fiboGen1p5.textToImage({ /* ... */ });
POST fal.bria.guidedRemoveBackground
POST https://fal.run/bria/guided-remove-background
成本等级 : prohibitive
const res = await fal.run.bria.guidedRemoveBackground({ /* ... */ });
字节
POST fal.bytedance.seedSpeech.tts.v2
POST https://fal.run/fal-ai/bytedance/seed-speech/tts/v2
成本等级 : prohibitive
const res = await fal.run.bytedance.seedSpeech.tts.v2({ /* ... */ });
POST fal.bytedance.seedance2p0.fast.imageToVideo
POST https://fal.run/bytedance/seedance-2.0/fast/image-to-video
成本等级 : prohibitive
const res = await fal.run.bytedance.seedance2p0.fast.imageToVideo({ /* ... */ });
POST fal.bytedance.seedance2p0.fast.referenceToVideo
POST https://fal.run/bytedance/seedance-2.0/fast/reference-to-video
成本等级 : prohibitive
const res = await fal.run.bytedance.seedance2p0.fast.referenceToVideo({ /* ... */ });
POST fal.bytedance.seedance2p0.fast.textToVideo
POST https://fal.run/bytedance/seedance-2.0/fast/text-to-video
成本等级 : prohibitive
const res = await fal.run.bytedance.seedance2p0.fast.textToVideo({ /* ... */ });
POST fal.bytedance.seedance2p0.imageToVideo
POST https://fal.run/bytedance/seedance-2.0/image-to-video
成本等级 : prohibitive
const res = await fal.run.bytedance.seedance2p0.imageToVideo({ /* ... */ });
POST fal.bytedance.seedance2p0.referenceToVideo
POST https://fal.run/bytedance/seedance-2.0/reference-to-video
成本等级 : prohibitive
const res = await fal.run.bytedance.seedance2p0.referenceToVideo({ /* ... */ });
POST fal.bytedance.seedance2p0.textToVideo
POST https://fal.run/bytedance/seedance-2.0/text-to-video
成本等级 : prohibitive
const res = await fal.run.bytedance.seedance2p0.textToVideo({ /* ... */ });
POST fal.bytedance.seedance2p0.us.imageToVideo
POST https://fal.run/bytedance/seedance-2.0/us/image-to-video
成本等级 : prohibitive
const res = await fal.run.bytedance.seedance2p0.us.imageToVideo({ /* ... */ });
POST fal.bytedance.seedance2p0.us.referenceToVideo
POST https://fal.run/bytedance/seedance-2.0/us/reference-to-video
成本等级 : prohibitive
const res = await fal.run.bytedance.seedance2p0.us.referenceToVideo({ /* ... */ });
POST fal.bytedance.seedance2p0.us.textToVideo
POST https://fal.run/bytedance/seedance-2.0/us/text-to-video
成本等级 : prohibitive
const res = await fal.run.bytedance.seedance2p0.us.textToVideo({ /* ... */ });
POST fal.bytedance.seedance2p5.draft.complete
POST https://fal.run/bytedance/seedance-2.5/draft/complete
成本等级 : prohibitive
const res = await fal.run.bytedance.seedance2p5.draft.complete({ /* ... */ });
POST fal.bytedance.seedance2p5.imageToVideo
POST https://fal.run/bytedance/seedance-2.5/image-to-video
成本等级 : prohibitive
const res = await fal.run.bytedance.seedance2p5.imageToVideo({ /* ... */ });
POST fal.bytedance.seedance2p5.referenceToVideo
POST https://fal.run/bytedance/seedance-2.5/reference-to-video
成本等级 : prohibitive
const res = await fal.run.bytedance.seedance2p5.referenceToVideo({ /* ... */ });
POST fal.bytedance.seedance2p5.textToVideo
POST https://fal.run/bytedance/seedance-2.5/text-to-video
成本等级 : prohibitive
const res = await fal.run.bytedance.seedance2p5.textToVideo({ /* ... */ });
POST fal.bytedance.seedance2p5.us.draft.complete
POST https://fal.run/bytedance/seedance-2.5/us/draft/complete
成本等级 : prohibitive
const res = await fal.run.bytedance.seedance2p5.us.draft.complete({ /* ... */ });
POST fal.bytedance.seedance2p5.us.imageToVideo
POST https://fal.run/bytedance/seedance-2.5/us/image-to-video
成本等级 : prohibitive
const res = await fal.run.bytedance.seedance2p5.us.imageToVideo({ /* ... */ });
POST fal.bytedance.seedance2p5.us.referenceToVideo
POST https://fal.run/bytedance/seedance-2.5/us/reference-to-video
成本等级 : prohibitive
const res = await fal.run.bytedance.seedance2p5.us.referenceToVideo({ /* ... */ });
POST fal.bytedance.seedance2p5.us.textToVideo
POST https://fal.run/bytedance/seedance-2.5/us/text-to-video
成本等级 : prohibitive
const res = await fal.run.bytedance.seedance2p5.us.textToVideo({ /* ... */ });
POST fal.bytedance.seedream.v5.flash.edit
POST https://fal.run/bytedance/seedream/v5/flash/edit
成本等级 : prohibitive
const res = await fal.run.bytedance.seedream.v5.flash.edit({ /* ... */ });
POST fal.bytedance.seedream.v5.flash.layerize
POST https://fal.run/bytedance/seedream/v5/flash/layerize
成本等级 : prohibitive
const res = await fal.run.bytedance.seedream.v5.flash.layerize({ /* ... */ });
POST fal.bytedance.seedream.v5.flash.textToImage
POST https://fal.run/bytedance/seedream/v5/flash/text-to-image
成本等级 : prohibitive
const res = await fal.run.bytedance.seedream.v5.flash.textToImage({ /* ... */ });
POST fal.bytedance.seedream.v5.lite.edit
POST https://fal.run/fal-ai/bytedance/seedream/v5/lite/edit
成本等级 : prohibitive
const res = await fal.run.bytedance.seedream.v5.lite.edit({ /* ... */ });
POST fal.bytedance.seedream.v5.lite.textToImage
POST https://fal.run/fal-ai/bytedance/seedream/v5/lite/text-to-image
成本等级 : prohibitive
const res = await fal.run.bytedance.seedream.v5.lite.textToImage({ /* ... */ });
POST fal.bytedance.seedream.v5.pro.edit
POST https://fal.run/bytedance/seedream/v5/pro/edit
成本等级 : prohibitive
const res = await fal.run.bytedance.seedream.v5.pro.edit({ /* ... */ });
POST fal.bytedance.seedream.v5.pro.layerize
POST https://fal.run/bytedance/seedream/v5/pro/layerize
成本等级 : prohibitive
const res = await fal.run.bytedance.seedream.v5.pro.layerize({ /* ... */ });
POST fal.bytedance.seedream.v5.pro.textToImage
POST https://fal.run/bytedance/seedream/v5/pro/text-to-image
成本等级 : prohibitive
const res = await fal.run.bytedance.seedream.v5.pro.textToImage({ /* ... */ });
凝结
POST fal.creatify.boreal
POST https://fal.run/creatify/boreal
成本等级 : prohibitive
const res = await fal.run.creatify.boreal({ /* ... */ });
十一块
POST fal.elevenlabs.music.v2p5
POST https://fal.run/elevenlabs/music/v2.5
成本等级 : prohibitive
const res = await fal.run.elevenlabs.music.v2p5({ /* ... */ });
POST fal.elevenlabs.tts.elevenV4
POST https://fal.run/elevenlabs/tts/eleven-v4
成本等级 : prohibitive
const res = await fal.run.elevenlabs.tts.elevenV4({ /* ... */ });
POST fal.elevenlabs.tts.elevenV4Turbo
POST https://fal.run/elevenlabs/tts/eleven-v4-turbo
成本等级 : prohibitive
const res = await fal.run.elevenlabs.tts.elevenV4Turbo({ /* ... */ });
法尔艾
POST fal.falAi.elevenlabs.speechToText.scribeV2
POST https://fal.run/fal-ai/elevenlabs/speech-to-text/scribe-v2
成本等级 : prohibitive
const res = await fal.run.falAi.elevenlabs.speechToText.scribeV2({ /* ... */ });
通量2Flex
POST fal.flux2Flex
POST https://fal.run/fal-ai/flux-2-flex
成本等级 : prohibitive
const res = await fal.run.flux2Flex({ /* ... */ });
通量3 动作
POST fal.flux3Action.so101
POST https://fal.run/fal-ai/flux-3-action/so101
成本等级 : prohibitive
const res = await fal.run.flux3Action.so101({ /* ... */ });
格米尼欧姆尼花
POST fal.geminiOmniFlash
POST https://fal.run/google/gemini-omni-flash
成本等级 : prohibitive
const res = await fal.run.geminiOmniFlash({ /* ... */ });
POST fal.geminiOmniFlash.edit
POST https://fal.run/google/gemini-omni-flash/edit
成本等级 : prohibitive
const res = await fal.run.geminiOmniFlash.edit({ /* ... */ });
POST fal.geminiOmniFlash.imageToVideo
POST https://fal.run/google/gemini-omni-flash/image-to-video
成本等级 : prohibitive
const res = await fal.run.geminiOmniFlash.imageToVideo({ /* ... */ });
POST fal.geminiOmniFlash.referenceToVideo
POST https://fal.run/google/gemini-omni-flash/reference-to-video
成本等级 : prohibitive
const res = await fal.run.geminiOmniFlash.referenceToVideo({ /* ... */ });
POST fal.geminiOmniFlash.v1p1.edit
POST https://fal.run/google/gemini-omni-flash/v1.1/edit
成本等级 : prohibitive
const res = await fal.run.geminiOmniFlash.v1p1.edit({ /* ... */ });
POST fal.geminiOmniFlash.v1p1.imageToVideo
POST https://fal.run/google/gemini-omni-flash/v1.1/image-to-video
成本等级 : prohibitive
const res = await fal.run.geminiOmniFlash.v1p1.imageToVideo({ /* ... */ });
POST fal.geminiOmniFlash.v1p1.referenceToVideo
POST https://fal.run/google/gemini-omni-flash/v1.1/reference-to-video
成本等级 : prohibitive
const res = await fal.run.geminiOmniFlash.v1p1.referenceToVideo({ /* ... */ });
POST fal.geminiOmniFlash.v1p1.textToVideo
POST https://fal.run/google/gemini-omni-flash/v1.1/text-to-video
成本等级 : prohibitive
const res = await fal.run.geminiOmniFlash.v1p1.textToVideo({ /* ... */ });
谷歌
POST fal.google.gemini3p8FlashLiteTts
POST https://fal.run/google/gemini-3.8-flash-lite-tts
成本等级 : prohibitive
const res = await fal.run.google.gemini3p8FlashLiteTts({ /* ... */ });
POST fal.google.gemini3p8FlashTts
POST https://fal.run/google/gemini-3.8-flash-tts
成本等级 : prohibitive
const res = await fal.run.google.gemini3p8FlashTts({ /* ... */ });
POST fal.google.lyria3p5
POST https://fal.run/google/lyria-3.5
成本等级 : prohibitive
const res = await fal.run.google.lyria3p5({ /* ... */ });
图像1p5
POST fal.gptImage1p5
POST https://fal.run/fal-ai/gpt-image-1.5
成本等级 : prohibitive
const res = await fal.run.gptImage1p5({ /* ... */ });
POST fal.gptImage1p5.edit
POST https://fal.run/fal-ai/gpt-image-1.5/edit
成本等级 : prohibitive
const res = await fal.run.gptImage1p5.edit({ /* ... */ });
顿
POST fal.heygen.avatar3.digitalTwin
POST https://fal.run/fal-ai/heygen/avatar3/digital-twin
成本等级 : prohibitive
const res = await fal.run.heygen.avatar3.digitalTwin({ /* ... */ });
POST fal.heygen.avatar4.digitalTwin
POST https://fal.run/fal-ai/heygen/avatar4/digital-twin
成本等级 : prohibitive
const res = await fal.run.heygen.avatar4.digitalTwin({ /* ... */ });
POST fal.heygen.avatar4.imageToVideo
POST https://fal.run/fal-ai/heygen/avatar4/image-to-video
成本等级 : prohibitive
const res = await fal.run.heygen.avatar4.imageToVideo({ /* ... */ });
POST fal.heygen.avatar5.digitalTwin
POST https://fal.run/fal-ai/heygen/avatar5/digital-twin
成本等级 : prohibitive
const res = await fal.run.heygen.avatar5.digitalTwin({ /* ... */ });
POST fal.heygen.heygenVideo.imageToVideo
POST https://fal.run/heygen/heygen-video/image-to-video
成本等级 : prohibitive
const res = await fal.run.heygen.heygenVideo.imageToVideo({ /* ... */ });
POST fal.heygen.heygenVideo.referenceToVideo
POST https://fal.run/heygen/heygen-video/reference-to-video
成本等级 : prohibitive
const res = await fal.run.heygen.heygenVideo.referenceToVideo({ /* ... */ });
POST fal.heygen.heygenVideo.textToVideo
POST https://fal.run/heygen/heygen-video/text-to-video
成本等级 : prohibitive
const res = await fal.run.heygen.heygenVideo.textToVideo({ /* ... */ });
POST fal.heygen.heygenVoice
POST https://fal.run/heygen/heygen-voice
成本等级 : prohibitive
const res = await fal.run.heygen.heygenVoice({ /* ... */ });
POST fal.heygen.heygenVoice.turbo
POST https://fal.run/heygen/heygen-voice/turbo
成本等级 : prohibitive
const res = await fal.run.heygen.heygenVoice.turbo({ /* ... */ });
POST fal.heygen.v2.translate.precision
POST https://fal.run/fal-ai/heygen/v2/translate/precision
成本等级 : prohibitive
const res = await fal.run.heygen.v2.translate.precision({ /* ... */ });
POST fal.heygen.v2.translate.speed
POST https://fal.run/fal-ai/heygen/v2/translate/speed
成本等级 : prohibitive
const res = await fal.run.heygen.v2.translate.speed({ /* ... */ });
POST fal.heygen.v2.videoAgent
POST https://fal.run/fal-ai/heygen/v2/video-agent
成本等级 : prohibitive
const res = await fal.run.heygen.v2.videoAgent({ /* ... */ });
POST fal.heygen.v3.fillerWordRemoval
POST https://fal.run/fal-ai/heygen/v3/filler-word-removal
成本等级 : prohibitive
const res = await fal.run.heygen.v3.fillerWordRemoval({ /* ... */ });
POST fal.heygen.v3.lipsync.precision
POST https://fal.run/fal-ai/heygen/v3/lipsync/precision
成本等级 : prohibitive
const res = await fal.run.heygen.v3.lipsync.precision({ /* ... */ });
POST fal.heygen.v3.lipsync.speed
POST https://fal.run/fal-ai/heygen/v3/lipsync/speed
成本等级 : prohibitive
const res = await fal.run.heygen.v3.lipsync.speed({ /* ... */ });
POST fal.heygen.v3.videoAgent
POST https://fal.run/fal-ai/heygen/v3/video-agent
成本等级 : prohibitive
const res = await fal.run.heygen.v3.videoAgent({ /* ... */ });
hun
POST fal.hunyuan.v3.instructEdit
POST https://fal.run/fal-ai/hunyuan-image/v3/instruct/edit
成本等级 : prohibitive
const res = await fal.run.hunyuan.v3.instructEdit({ /* ... */ });
象形图
POST fal.ideogram.v4p5
POST https://fal.run/ideogram/v4.5
成本等级 : prohibitive
const res = await fal.run.ideogram.v4p5({ /* ... */ });
POST fal.ideogram.v4p5.edit
POST https://fal.run/ideogram/v4.5/edit
成本等级 : prohibitive
const res = await fal.run.ideogram.v4p5.edit({ /* ... */ });
POST fal.ideogram.vector.imageToVector
POST https://fal.run/ideogram/vector/image-to-vector
成本等级 : prohibitive
const res = await fal.run.ideogram.vector.imageToVector({ /* ... */ });
POST fal.ideogram.vector.textToVector
POST https://fal.run/ideogram/vector/text-to-vector
成本等级 : prohibitive
const res = await fal.run.ideogram.vector.textToVector({ /* ... */ });
坎丁斯基6号 字节
POST fal.kandinsky6Lite.imageToVideo
POST https://fal.run/fal-ai/kandinsky6-lite/image-to-video
成本等级 : prohibitive
const res = await fal.run.kandinsky6Lite.imageToVideo({ /* ... */ });
POST fal.kandinsky6Lite.textToVideo
POST https://fal.run/fal-ai/kandinsky6-lite/text-to-video
成本等级 : prohibitive
const res = await fal.run.kandinsky6Lite.textToVideo({ /* ... */ });
汉地斯基6Pro
POST fal.kandinsky6Pro.imageToVideo
POST https://fal.run/fal-ai/kandinsky6-pro/image-to-video
成本等级 : prohibitive
const res = await fal.run.kandinsky6Pro.imageToVideo({ /* ... */ });
POST fal.kandinsky6Pro.textToVideo
POST https://fal.run/fal-ai/kandinsky6-pro/text-to-video
成本等级 : prohibitive
const res = await fal.run.kandinsky6Pro.textToVideo({ /* ... */ });
宽丁斯基6Vsr
POST fal.kandinsky6Vsr
POST https://fal.run/fal-ai/kandinsky6-vsr
成本等级 : prohibitive
const res = await fal.run.kandinsky6Vsr({ /* ... */ });
POST fal.kandinsky6Vsr.lite
POST https://fal.run/fal-ai/kandinsky6-vsr/lite
成本等级 : prohibitive
const res = await fal.run.kandinsky6Vsr.lite({ /* ... */ });
摇摆
POST fal.kling.v4.imageToVideo
POST https://fal.run/kling/v4/image-to-video
成本等级 : prohibitive
const res = await fal.run.kling.v4.imageToVideo({ /* ... */ });
POST fal.kling.v4.referenceToVideo
POST https://fal.run/kling/v4/reference-to-video
成本等级 : prohibitive
const res = await fal.run.kling.v4.referenceToVideo({ /* ... */ });
POST fal.kling.v4.textToVideo
POST https://fal.run/kling/v4/text-to-video
成本等级 : prohibitive
const res = await fal.run.kling.v4.textToVideo({ /* ... */ });
POST fal.kling.v4.videoToVideo.edit
POST https://fal.run/kling/v4/video-to-video/edit
成本等级 : prohibitive
const res = await fal.run.kling.v4.videoToVideo.edit({ /* ... */ });
克林视频
POST fal.klingVideo.o3.pro.imageToVideo
POST https://fal.run/fal-ai/kling-video/o3/pro/image-to-video
成本等级 : prohibitive
const res = await fal.run.klingVideo.o3.pro.imageToVideo({ /* ... */ });
POST fal.klingVideo.o3.pro.referenceToVideo
POST https://fal.run/fal-ai/kling-video/o3/pro/reference-to-video
成本等级 : prohibitive
const res = await fal.run.klingVideo.o3.pro.referenceToVideo({ /* ... */ });
POST fal.klingVideo.o3.pro.textToVideo
POST https://fal.run/fal-ai/kling-video/o3/pro/text-to-video
成本等级 : prohibitive
const res = await fal.run.klingVideo.o3.pro.textToVideo({ /* ... */ });
POST fal.klingVideo.o3.pro.videoToVideo.edit
POST https://fal.run/fal-ai/kling-video/o3/pro/video-to-video/edit
成本等级 : prohibitive
const res = await fal.run.klingVideo.o3.pro.videoToVideo.edit({ /* ... */ });
POST fal.klingVideo.o3.pro.videoToVideo.reference
POST https://fal.run/fal-ai/kling-video/o3/pro/video-to-video/reference
成本等级 : prohibitive
const res = await fal.run.klingVideo.o3.pro.videoToVideo.reference({ /* ... */ });
POST fal.klingVideo.o3.standard.imageToVideo
POST https://fal.run/fal-ai/kling-video/o3/standard/image-to-video
成本等级 : prohibitive
const res = await fal.run.klingVideo.o3.standard.imageToVideo({ /* ... */ });
POST fal.klingVideo.o3p4k.imageToVideo
POST https://fal.run/fal-ai/kling-video/o3/4k/image-to-video
成本等级 : prohibitive
const res = await fal.run.klingVideo.o3p4k.imageToVideo({ /* ... */ });
苏