#![deny(unsafe_code)]
#![deny(rust_2018_idioms)]
#![deny(missing_debug_implementations)]
#![deny(missing_docs)]
#![warn(clippy::all)]
#![warn(clippy::pedantic)]
#![allow(clippy::cast_possible_truncation)]
#![allow(clippy::cast_precision_loss)]
#![allow(clippy::cast_sign_loss)]
#![allow(clippy::cast_possible_wrap)]
#![allow(clippy::cast_lossless)]
#![allow(clippy::must_use_candidate)]
#![allow(clippy::doc_markdown)]
#![allow(clippy::needless_pass_by_value)]
#![allow(clippy::unnecessary_wraps)]
#![allow(clippy::uninlined_format_args)]
#![allow(clippy::many_single_char_names)]
#![allow(clippy::similar_names)]
#![allow(clippy::module_name_repetitions)]
#![allow(clippy::too_many_lines)]
#![allow(clippy::too_many_arguments)]
#![allow(clippy::items_after_statements)]
#![allow(clippy::redundant_else)]
#![allow(clippy::needless_range_loop)]
pub mod attention;
pub mod blocks;
pub mod clip_text_encoder;
pub mod config;
#[cfg(feature = "cuda")]
pub mod gpu;
pub mod pipeline;
pub mod resnet_block_time;
pub mod safetensors_loader;
pub mod scheduler;
pub mod time_embedding;
pub mod unet;
pub mod unet_config;
pub mod vae;
pub use attention::{Attention, BasicTransformerBlock, FeedForward, Transformer2DModel};
pub use blocks::{AttnBlock2D, Downsample2D, ResnetBlock2D, UNetMidBlock2D, UpDecoderBlock2D, Upsample2D};
pub use clip_text_encoder::{
ClipEncoder, ClipEncoderLayer, ClipMlp, ClipSelfAttention, ClipTextConfig, ClipTextEmbeddings,
ClipTextEncoder,
};
pub use config::VaeDecoderConfig;
pub use pipeline::{PipelineStepDump, StableDiffusionPipeline};
pub use resnet_block_time::ResnetBlock2DTime;
pub use safetensors_loader::{load_clip_text_encoder, load_unet, load_vae_decoder, DropReport};
pub use scheduler::{BetaSchedule, DDIMConfig, DDIMScheduler, PredictionType, TimestepSpacing};
pub use time_embedding::{TimestepEmbedding, Timesteps};
pub use unet::{
AnyDownBlock, AnyUpBlock, CrossAttnDownBlock2D, CrossAttnUpBlock2D, DownBlock2D, UNet2DConditionModel,
UNetMidBlock2DCrossAttn, UpBlock2D,
};
pub use unet_config::UNet2DConditionConfig;
pub use vae::{Decoder, VaeDecoder};