fal.ai Swift 客户端

Swift Build License

关于项目

FalClient 是一个强大且用户友好的 Swift 包,旨在将 fal 无服务器函数无缝集成到 Swift 项目中。 这个完全用 Swift 开发的库为开发者提供了简单的 API 来与 AI 模型交互,适用于 iOS 和 macOS 平台。

入门指南

FalClient 库用作 fal 无服务器 Python 函数的客户端。 在使用此库之前,请确保已按照快速入门指南设置了无服务器函数。

客户端库

这个 Swift 客户端库是基于 Swift 的网络标准(如 URLSession)之上的一个轻量级层。 它确保可以轻松地集成到现有的 Swift 代码库中。 该库旨在解决 Swift 和 Apple 生态系统的细微差别,确保在不同的 Apple 平台上平稳运行。

注意: 请务必查看 fal-serverless 入门指南,以获取您的凭据并注册您的函数。

  1. FalClient 作为 Swift Package Manager 中的依赖项添加。

  2. 设置客户端实例

    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")
  3. 使用 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)
        }

注释

实时

该客户端支持实时模型 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