mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-06 10:11:31 +00:00
add params
This commit is contained in:
1 parent
15235b63d8
commit
b2c15b78dc
3 files changed
+54
-3
No files matched your search
+29
@@ -11,8 +11,37 @@ pub struct GenerateFlux1DevTextToImageRequest {
|
||||
|
||||
/// Text prompt to generate the image from.
|
||||
pub prompt: Option<String>,
|
||||
|
||||
/// Aspect ratio of the output images.
|
||||
pub aspect_ratio: Option<GenerateFlux1DevTextToImageAspectRatio>,
|
||||
|
||||
/// Number of images to generate. Default is one.
|
||||
pub num_images: Option<GenerateFlux1DevTextToImageNumImages>,
|
||||
}
|
||||
|
||||
|
||||
#[derive(Copy, Clone, Debug, Serialize, Deserialize, ToSchema)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum GenerateFlux1DevTextToImageAspectRatio {
|
||||
Square, // 1:1
|
||||
SquareHd, // 1:1
|
||||
LandscapeFourByThree, // 4:3
|
||||
LandscapeSixteenByNine, // 16:9
|
||||
PortraitThreeByFour, // 3:4
|
||||
PortraitNineBySixteen, // 9:16
|
||||
//Custom { width: u32, height: u32 }, // TODO
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, Serialize, Deserialize, ToSchema)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum GenerateFlux1DevTextToImageNumImages {
|
||||
One, // Default
|
||||
Two,
|
||||
Three,
|
||||
Four,
|
||||
}
|
||||
|
||||
|
||||
#[derive(Serialize, Deserialize, ToSchema)]
|
||||
pub struct GenerateFlux1DevTextToImageResponse {
|
||||
pub success: bool,
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
use utoipa::OpenApi;
|
||||
|
||||
use artcraft_api_defs::generate::image::generate_flux_1_dev_text_to_image::GenerateFlux1DevTextToImageAspectRatio;
|
||||
use artcraft_api_defs::generate::image::generate_flux_1_dev_text_to_image::GenerateFlux1DevTextToImageNumImages;
|
||||
use artcraft_api_defs::generate::image::generate_flux_1_dev_text_to_image::GenerateFlux1DevTextToImageRequest;
|
||||
use artcraft_api_defs::generate::image::generate_flux_1_dev_text_to_image::GenerateFlux1DevTextToImageResponse;
|
||||
use artcraft_api_defs::generate::image::generate_flux_pro_11_ultra_text_to_image::GenerateFluxPro11UltraTextToImageRequest;
|
||||
@@ -463,6 +465,8 @@ use crate::http_server::web_utils::response_success_helpers::*;
|
||||
FeaturedMediaFile,
|
||||
FeaturedModelWeightForList,
|
||||
FundamentalFrequencyMethod,
|
||||
GenerateFlux1DevTextToImageAspectRatio,
|
||||
GenerateFlux1DevTextToImageNumImages,
|
||||
GenerateFlux1DevTextToImageRequest,
|
||||
GenerateFlux1DevTextToImageResponse,
|
||||
GenerateFluxPro11UltraTextToImageRequest,
|
||||
|
||||
+21
-3
@@ -16,7 +16,7 @@ use actix_web::http::StatusCode;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::web::Path;
|
||||
use actix_web::{web, HttpRequest, HttpResponse};
|
||||
use artcraft_api_defs::generate::image::generate_flux_1_dev_text_to_image::{GenerateFlux1DevTextToImageRequest, GenerateFlux1DevTextToImageResponse};
|
||||
use artcraft_api_defs::generate::image::generate_flux_1_dev_text_to_image::{GenerateFlux1DevTextToImageAspectRatio, GenerateFlux1DevTextToImageNumImages, GenerateFlux1DevTextToImageRequest, GenerateFlux1DevTextToImageResponse};
|
||||
use bucket_paths::legacy::typified_paths::public::media_files::bucket_file_path::MediaFileBucketPath;
|
||||
use enums::common::visibility::Visibility;
|
||||
use fal_client::requests::webhook::image::enqueue_flux_1_dev_text_to_image_webhook::enqueue_flux_1_dev_text_to_image_webhook;
|
||||
@@ -87,13 +87,31 @@ pub async fn generate_flux_1_dev_text_to_image_handler(
|
||||
const IS_MOD : bool = false;
|
||||
|
||||
info!("Fal webhook URL: {}", server_state.fal.webhook_url);
|
||||
|
||||
let aspect_ratio = match request.aspect_ratio {
|
||||
Some(GenerateFlux1DevTextToImageAspectRatio::Square) => Flux1DevAspectRatio::Square,
|
||||
Some(GenerateFlux1DevTextToImageAspectRatio::SquareHd) => Flux1DevAspectRatio::SquareHd,
|
||||
Some(GenerateFlux1DevTextToImageAspectRatio::LandscapeFourByThree) => Flux1DevAspectRatio::LandscapeFourByThree,
|
||||
Some(GenerateFlux1DevTextToImageAspectRatio::LandscapeSixteenByNine) => Flux1DevAspectRatio::LandscapeSixteenByNine,
|
||||
Some(GenerateFlux1DevTextToImageAspectRatio::PortraitThreeByFour) => Flux1DevAspectRatio::PortraitThreeByFour,
|
||||
Some(GenerateFlux1DevTextToImageAspectRatio::PortraitNineBySixteen) => Flux1DevAspectRatio::PortraitNineBySixteen,
|
||||
None => Flux1DevAspectRatio::LandscapeSixteenByNine, // Default
|
||||
};
|
||||
|
||||
let num_images = match request.num_images {
|
||||
Some(GenerateFlux1DevTextToImageNumImages::One) => Flux1DevNumImages::One,
|
||||
Some(GenerateFlux1DevTextToImageNumImages::Two) => Flux1DevNumImages::Two,
|
||||
Some(GenerateFlux1DevTextToImageNumImages::Three) => Flux1DevNumImages::Three,
|
||||
Some(GenerateFlux1DevTextToImageNumImages::Four) => Flux1DevNumImages::Four,
|
||||
None => Flux1DevNumImages::One, // Default
|
||||
};
|
||||
|
||||
let args = Flux1DevArgs {
|
||||
prompt: request.prompt.as_deref().unwrap_or(""),
|
||||
webhook_url: &server_state.fal.webhook_url,
|
||||
api_key: &server_state.fal.api_key,
|
||||
aspect_ratio: Flux1DevAspectRatio::LandscapeSixteenByNine,
|
||||
num_images: Flux1DevNumImages::One,
|
||||
aspect_ratio,
|
||||
num_images,
|
||||
};
|
||||
|
||||
let fal_result = enqueue_flux_1_dev_text_to_image_webhook(args)
|
||||
|
||||
Reference in new issue
Block a user