#[allow(unused_imports)]
use crate::prelude::*;
#[allow(unused_imports)]
use serde::{Deserialize, Serialize};
#[allow(unused_imports)]
use std::collections::HashMap;
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct HTTPValidationError {
#[serde(skip_serializing_if = "Option::is_none")]
pub detail: Option<Vec<Option<ValidationError>>>,
}
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct Image {
#[serde(skip_serializing_if = "Option::is_none")]
pub content_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub file_data: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub file_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub file_size: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub height: Option<i64>,
pub url: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub width: Option<i64>,
}
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct ImageProcessingInput {
#[serde(skip_serializing_if = "Option::is_none")]
pub blue_direction: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub blue_shift: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub blur_radius: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub blur_sigma: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub blur_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub brightness: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cas_amount: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub contrast: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub desaturate_factor: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub desaturate_method: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dissolve_factor: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dissolve_image_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dodge_burn_intensity: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dodge_burn_mode: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_blur: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_chromatic: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_color_correction: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_desaturate: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_dissolve: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_dodge_burn: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_glow: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_grain: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_parabolize: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_sharpen: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_solarize: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_tint: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_vignette: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub gamma: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub glow_intensity: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub glow_radius: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub grain_intensity: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub grain_scale: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub grain_style: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub green_direction: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub green_shift: Option<i64>,
pub image_url: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub noise_radius: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub parabolize_coeff: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub preserve_edges: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub red_direction: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub red_shift: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub saturation: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sharpen_alpha: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sharpen_mode: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sharpen_radius: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub smart_sharpen_ratio: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub smart_sharpen_strength: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub solarize_threshold: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub temperature: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tint_mode: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tint_strength: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub vertex_x: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub vertex_y: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub vignette_strength: Option<f64>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ProcessedOutput {
pub images: Vec<Image>,
}
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct ValidationError {
pub loc: Vec<serde_json::Value>,
pub msg: String,
#[serde(rename = "type")]
pub ty: String,
}
pub fn post_processing(
params: ImageProcessingInput,
) -> FalRequest<ImageProcessingInput, ProcessedOutput> {
FalRequest::new("fal-ai/post-processing", params)
}