#ai #openapi #api-key #async #text-image #api-bindings

stabilityai

基于 OpenAPI 规范的 stability.ai 库

1 个不稳定版本

0.1.0 2023 年 8 月 25 日

#26#text-image

MIT 许可证

58KB
1K SLoC

stabilityai

stability.ai 的 Rust 库

概述

stabilityai 是 stability.ai 的非官方 Rust 库

该库从环境变量 STABILITY_API_KEY 中读取 API 密钥

# On macOS/Linux
export STABILITY_API_KEY='sk-...'
# On Windows Powershell
$Env:STABILITY_API_KEY='sk-...'

文本到图像示例

use stabilityai::{
    error::StabilityAIError,
    types::{ClipGuidancePreset, Sampler, StylePreset, TextToImageRequestBodyArgs},
    Client,
};
use std::error::Error;

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    // create client, reads STABILITY_API_KEY environment variable for API key.
    let client = Client::new();

    let request = TextToImageRequestBodyArgs::default()
        .text_prompts(
            "A banner with ocean background having a cute \
            red cartoon crab on beach and boats in the ocean",
        )
        .samples(1)
        .steps(30_u32)
        .clip_guidance_preset(ClipGuidancePreset::FastBlue)
        .sampler(Sampler::KDpmpp2sAncestral)
        .width(1216_u16)
        .height(832_u16)
        .style_preset(StylePreset::ThreeDModel)
        .build()?;

    let artifacts = client
        .generate("stable-diffusion-xl-1024-v1-0")
        .text_to_image(request)
        .await?;

    // Create directory if doesn't exist and save images
    let paths = artifacts.save("./data").await?;

    paths
        .iter()
        .for_each(|path| println!("Image saved at {}", path.display()));

    Ok(())
}

贡献

感谢您抽出时间来贡献和改进项目,我将非常高兴有您的加入!

一个好的起点可能是现有的 开放问题

许可证

本项目采用 MIT 许可证

依赖关系

~7–21MB
~344K SLoC