FalClient
是一个强大且用户友好的 Swift 包,旨在将 fal 无服务器函数无缝集成到 Swift 项目中。 这个完全用 Swift 开发的库为开发者提供了简单的 API 来与 AI 模型交互,适用于 iOS 和 macOS 平台。
FalClient
库用作 fal 无服务器 Python 函数的客户端。 在使用此库之前,请确保已按照快速入门指南设置了无服务器函数。
这个 Swift 客户端库是基于 Swift 的网络标准(如 URLSession
)之上的一个轻量级层。 它确保可以轻松地集成到现有的 Swift 代码库中。 该库旨在解决 Swift 和 Apple 生态系统的细微差别,确保在不同的 Apple 平台上平稳运行。
注意: 请务必查看 fal-serverless 入门指南,以获取您的凭据并注册您的函数。
将 FalClient
作为 Swift Package Manager 中的依赖项添加。
设置客户端实例
import FalClient
let fal = FalClient.withCredentials(.keyPair("FAL_KEY_ID:FAL_KEY_SECRET"))
// You can also use a proxy to protect your credentials
// let fal = FalClient.withProxy("https://:3333/api/fal/proxy")
使用 fal.subscribe
将请求分派到模型 API
let result = try await fal.subscribe(to: "text-to-image",
input: [
"prompt": "a cute shih-tzu puppy",
"model_name": "stabilityai/stable-diffusion-xl-base-1.0",
"image_size": "square_hd"
]) { update in
print(update)
}
注释
text-to-image
替换为有效的模型 ID。 请查看 fal.ai/models 以获取所有可用的模型。async/await
进行异步编程。[String: Any]
,并且条目取决于 API 输出模式。Codable
进行类型化的输入和输出。该客户端支持实时模型 API。 请查看 FalRealtimeSampleApp 了解更多详细信息。
let connection = try fal.realtime.connect(
to: OptimizedLatentConsistency,
connectionKey: "PencilKitDemo",
throttleInterval: .milliseconds(128)
) { (result: Result<LcmResponse, Error>) in
if case let .success(data) = result,
let image = data.images.first {
let data = try? Data(contentsOf: URL(string: image.url)!)
DispatchQueue.main.async {
self.currentImage = data
}
}
}
try connection.send(LcmInput(
prompt: prompt,
imageUrl: "data:image/jpeg;base64,\(drawing.base64EncodedString())",
seed: 6_252_023,
syncMode: true
))
查看 Sources/Samples
文件夹,了解一些使用 FalClient
的示例应用程序。
使用 xed
打开它们可以快速开始使用
xed Sources/Samples/FalSampleApp
请参阅开放的功能请求,以获取建议的功能列表并加入讨论。
贡献是使开源社区成为一个学习、激励和创造的绝佳场所的原因。 您对 Swift 客户端版本所做的任何贡献都非常感谢。
在 MIT 许可证下分发。 有关更多信息,请参阅 LICENSE。