mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-05 01:38:44 +00:00
58 lines
1.4 KiB
Rust
58 lines
1.4 KiB
Rust
use fal::prelude::*;
|
|
use futures::StreamExt;
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
#[derive(Debug, Deserialize, Serialize, Default)]
|
|
pub struct File {
|
|
pub url: String,
|
|
pub content_type: String,
|
|
pub file_name: Option<String>,
|
|
pub file_size: Option<i64>,
|
|
pub width: Option<i64>,
|
|
pub height: Option<i64>,
|
|
}
|
|
|
|
#[derive(Debug, Deserialize, Serialize)]
|
|
pub struct FalMultiImageResponse {
|
|
pub images: Vec<File>,
|
|
}
|
|
|
|
#[fal::endpoint(endpoint = "fal-ai/flux/dev")]
|
|
fn fal_dev(prompt: String) -> FalMultiImageResponse {}
|
|
|
|
#[tokio::test]
|
|
async fn test_queue() {
|
|
let queue = fal_dev("a horse".to_owned()).queue().await.unwrap();
|
|
|
|
loop {
|
|
let status = queue.status(false).await.unwrap();
|
|
|
|
if status.status == Status::Completed {
|
|
break;
|
|
}
|
|
|
|
tokio::time::sleep(std::time::Duration::from_secs(1)).await;
|
|
}
|
|
|
|
let response = queue.response().await.unwrap();
|
|
|
|
assert!(response.images.len() > 0)
|
|
}
|
|
|
|
#[tokio::test]
|
|
async fn test_queue_status_stream() {
|
|
let queue = fal_dev("a horse".to_owned()).queue().await.unwrap();
|
|
|
|
while let Some(status) = queue.stream(false).await.unwrap().next().await {
|
|
let status = status.unwrap();
|
|
|
|
if status.status == Status::Completed {
|
|
break;
|
|
}
|
|
}
|
|
|
|
let response = queue.response().await.unwrap();
|
|
|
|
assert!(response.images.len() > 0)
|
|
}
|