stable_diffusion/
stable_diffusion.rs1use fal_rust::{
2 client::{ClientCredentials, FalClient},
3 utils::download_image,
4};
5use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Serialize, Deserialize)]
8struct ImageResult {
9 url: String,
10}
11
12#[derive(Debug, Serialize, Deserialize)]
13struct Output {
14 images: Vec<ImageResult>,
15}
16
17#[tokio::main]
18async fn main() {
19 let client = FalClient::new(ClientCredentials::from_env());
20
21 let res = client
22 .run(
23 "fal-ai/stable-cascade",
24 serde_json::json!({
25 "prompt": "A large waterfall in the middle of a volcano, surrounded by lush greenery and children's playground equipment.",
26 }),
27 )
28 .await
29 .unwrap();
30
31 let output: Output = res.json::<Output>().await.unwrap();
32
33 let url = output.images[0].url.clone();
34 let filename = url.split('/').last().unwrap();
35
36 download_image(&url, format!("{}/{}", "images", filename).as_str())
37 .await
38 .unwrap();
39}