pub struct ModelConfigBuilder { /* private fields */ }Expand description
Builder for ModelConfig.
Implementations§
Source§impl ModelConfigBuilder
impl ModelConfigBuilder
Sourcepub fn enable_mmap<VALUE: Into<bool>>(&mut self, value: VALUE) -> &mut Self
pub fn enable_mmap<VALUE: Into<bool>>(&mut self, value: VALUE) -> &mut Self
Whether to memory-map model (default: false)
Sourcepub fn max_vram<VALUE: Into<f32>>(&mut self, value: VALUE) -> &mut Self
pub fn max_vram<VALUE: Into<f32>>(&mut self, value: VALUE) -> &mut Self
Maximum VRAM budget in GiB for graph-cut segmented execution. 0 disables graph splitting; -1 auto-detects free VRAM minus 1 GiB
Sourcepub fn upscale_model<VALUE: Into<CLibPath>>(
&mut self,
value: VALUE,
) -> &mut Self
pub fn upscale_model<VALUE: Into<CLibPath>>( &mut self, value: VALUE, ) -> &mut Self
Path to esrgan model. Upscale images after generate, just RealESRGAN_x4plus_anime_6B supported by now
Sourcepub fn upscale_repeats<VALUE: Into<i32>>(&mut self, value: VALUE) -> &mut Self
pub fn upscale_repeats<VALUE: Into<i32>>(&mut self, value: VALUE) -> &mut Self
Run the ESRGAN upscaler this many times (default 1)
Sourcepub fn upscale_tile_size<VALUE: Into<i32>>(&mut self, value: VALUE) -> &mut Self
pub fn upscale_tile_size<VALUE: Into<i32>>(&mut self, value: VALUE) -> &mut Self
Tile size for ESRGAN upscaler (default 128)
Sourcepub fn diffusion_model<VALUE: Into<CLibPath>>(
&mut self,
value: VALUE,
) -> &mut Self
pub fn diffusion_model<VALUE: Into<CLibPath>>( &mut self, value: VALUE, ) -> &mut Self
Path to the standalone diffusion model
Sourcepub fn unconditional_diffusion_model<VALUE: Into<CLibPath>>(
&mut self,
value: VALUE,
) -> &mut Self
pub fn unconditional_diffusion_model<VALUE: Into<CLibPath>>( &mut self, value: VALUE, ) -> &mut Self
Path to the standalone unconditional diffusion model, currently used by Ideogram4 CFG
Sourcepub fn llm<VALUE: Into<CLibPath>>(&mut self, value: VALUE) -> &mut Self
pub fn llm<VALUE: Into<CLibPath>>(&mut self, value: VALUE) -> &mut Self
Path to the qwen2vl text encoder
Sourcepub fn llm_vision<VALUE: Into<CLibPath>>(&mut self, value: VALUE) -> &mut Self
pub fn llm_vision<VALUE: Into<CLibPath>>(&mut self, value: VALUE) -> &mut Self
Path to the qwen2vl vit
Sourcepub fn clip_l<VALUE: Into<CLibPath>>(&mut self, value: VALUE) -> &mut Self
pub fn clip_l<VALUE: Into<CLibPath>>(&mut self, value: VALUE) -> &mut Self
Path to the clip-l text encoder
Sourcepub fn clip_g<VALUE: Into<CLibPath>>(&mut self, value: VALUE) -> &mut Self
pub fn clip_g<VALUE: Into<CLibPath>>(&mut self, value: VALUE) -> &mut Self
Path to the clip-g text encoder
Sourcepub fn clip_vision<VALUE: Into<CLibPath>>(&mut self, value: VALUE) -> &mut Self
pub fn clip_vision<VALUE: Into<CLibPath>>(&mut self, value: VALUE) -> &mut Self
Path to the clip-vision encoder
Sourcepub fn t5xxl<VALUE: Into<CLibPath>>(&mut self, value: VALUE) -> &mut Self
pub fn t5xxl<VALUE: Into<CLibPath>>(&mut self, value: VALUE) -> &mut Self
Path to the t5xxl text encoder
Sourcepub fn vae_format<VALUE: Into<VaeFormat>>(&mut self, value: VALUE) -> &mut Self
pub fn vae_format<VALUE: Into<VaeFormat>>(&mut self, value: VALUE) -> &mut Self
should match the VAE latent layout used by the PiD checkpoint. This is important when using standalone VAE files because the PiD diffusion checkpoint alone does not identify the VAE format.
Sourcepub fn taesd<VALUE: Into<CLibPath>>(&mut self, value: VALUE) -> &mut Self
pub fn taesd<VALUE: Into<CLibPath>>(&mut self, value: VALUE) -> &mut Self
Path to taesd. Using Tiny AutoEncoder for fast decoding (low quality)
Sourcepub fn control_net<VALUE: Into<CLibPath>>(&mut self, value: VALUE) -> &mut Self
pub fn control_net<VALUE: Into<CLibPath>>(&mut self, value: VALUE) -> &mut Self
Path to control net model
Sourcepub fn photo_maker<VALUE: Into<CLibPath>>(&mut self, value: VALUE) -> &mut Self
pub fn photo_maker<VALUE: Into<CLibPath>>(&mut self, value: VALUE) -> &mut Self
Path to PHOTOMAKER model
Sourcepub fn pm_id_embed_path<VALUE: Into<CLibPath>>(
&mut self,
value: VALUE,
) -> &mut Self
pub fn pm_id_embed_path<VALUE: Into<CLibPath>>( &mut self, value: VALUE, ) -> &mut Self
Path to PHOTOMAKER v2 id embed
Sourcepub fn weight_type<VALUE: Into<WeightType>>(
&mut self,
value: VALUE,
) -> &mut Self
pub fn weight_type<VALUE: Into<WeightType>>( &mut self, value: VALUE, ) -> &mut Self
Weight type. If not specified, the default is the type of the weight file
Sourcepub fn high_noise_diffusion_model<VALUE: Into<CLibPath>>(
&mut self,
value: VALUE,
) -> &mut Self
pub fn high_noise_diffusion_model<VALUE: Into<CLibPath>>( &mut self, value: VALUE, ) -> &mut Self
Path to the standalone high noise diffusion model
Sourcepub fn vae_tiling<VALUE: Into<bool>>(&mut self, value: VALUE) -> &mut Self
pub fn vae_tiling<VALUE: Into<bool>>(&mut self, value: VALUE) -> &mut Self
Process vae in tiles to reduce memory usage (default: false)
Sourcepub fn vae_tile_size<VALUE: Into<(i32, i32)>>(
&mut self,
value: VALUE,
) -> &mut Self
pub fn vae_tile_size<VALUE: Into<(i32, i32)>>( &mut self, value: VALUE, ) -> &mut Self
Tile size for vae tiling (default: 32x32)
Sourcepub fn vae_relative_tile_size<VALUE: Into<(f32, f32)>>(
&mut self,
value: VALUE,
) -> &mut Self
pub fn vae_relative_tile_size<VALUE: Into<(f32, f32)>>( &mut self, value: VALUE, ) -> &mut Self
Relative tile size for vae tiling, in fraction of image size if < 1, in number of tiles per dim if >=1 (overrides vae_tile_size)
Sourcepub fn vae_tile_overlap<VALUE: Into<f32>>(&mut self, value: VALUE) -> &mut Self
pub fn vae_tile_overlap<VALUE: Into<f32>>(&mut self, value: VALUE) -> &mut Self
Tile overlap for vae tiling, in fraction of tile size (default: 0.5)
Sourcepub fn rng<VALUE: Into<RngFunction>>(&mut self, value: VALUE) -> &mut Self
pub fn rng<VALUE: Into<RngFunction>>(&mut self, value: VALUE) -> &mut Self
RNG (default: CUDA)
Sourcepub fn sampler_rng_type<VALUE: Into<RngFunction>>(
&mut self,
value: VALUE,
) -> &mut Self
pub fn sampler_rng_type<VALUE: Into<RngFunction>>( &mut self, value: VALUE, ) -> &mut Self
Sampler RNG. If RngFunction::RNG_TYPE_COUNT is used will default to rng value. (default: RngFunction::RNG_TYPE_COUNT)“,
Sourcepub fn scheduler<VALUE: Into<Scheduler>>(&mut self, value: VALUE) -> &mut Self
pub fn scheduler<VALUE: Into<Scheduler>>(&mut self, value: VALUE) -> &mut Self
Denoiser sigma schedule (default: Scheduler::SCHEDULER_COUNT). Will default to Scheduler::EXPONENTIAL_SCHEDULER if a denoiser is already instantiated. Otherwise, Scheduler::DISCRETE_SCHEDULER is used.
Sourcepub fn sigmas<VALUE: Into<Vec<f32>>>(&mut self, value: VALUE) -> &mut Self
pub fn sigmas<VALUE: Into<Vec<f32>>>(&mut self, value: VALUE) -> &mut Self
Custom sigma values for the sampler
Sourcepub fn prediction<VALUE: Into<Prediction>>(&mut self, value: VALUE) -> &mut Self
pub fn prediction<VALUE: Into<Prediction>>(&mut self, value: VALUE) -> &mut Self
Prediction type override (default: PREDICTION_COUNT)
Sourcepub fn diffusion_flash_attention<VALUE: Into<bool>>(
&mut self,
value: VALUE,
) -> &mut Self
pub fn diffusion_flash_attention<VALUE: Into<bool>>( &mut self, value: VALUE, ) -> &mut Self
Use flash attention to reduce memory usage (model only). For most backends, it slows things down, but for cuda it generally speeds it up too. At the moment, it is only supported for some models and some backends (like cpu, cuda/rocm, metal).
Sourcepub fn flash_attention<VALUE: Into<bool>>(&mut self, value: VALUE) -> &mut Self
pub fn flash_attention<VALUE: Into<bool>>(&mut self, value: VALUE) -> &mut Self
Use flash attention to reduce memory usage. For most backends, it slows things down, but for cuda it generally speeds it up too. At the moment, it is only supported for some models and some backends (like cpu, cuda/rocm, metal).
Sourcepub fn chroma_disable_dit_mask<VALUE: Into<bool>>(
&mut self,
value: VALUE,
) -> &mut Self
pub fn chroma_disable_dit_mask<VALUE: Into<bool>>( &mut self, value: VALUE, ) -> &mut Self
Disable dit mask for chroma
Sourcepub fn chroma_enable_t5_mask<VALUE: Into<bool>>(
&mut self,
value: VALUE,
) -> &mut Self
pub fn chroma_enable_t5_mask<VALUE: Into<bool>>( &mut self, value: VALUE, ) -> &mut Self
Enable t5 mask for chroma
Sourcepub fn chroma_t5_mask_pad<VALUE: Into<i32>>(
&mut self,
value: VALUE,
) -> &mut Self
pub fn chroma_t5_mask_pad<VALUE: Into<i32>>( &mut self, value: VALUE, ) -> &mut Self
t5 mask pad size of chroma
Sourcepub fn use_qwen_image_zero_cond_true<VALUE: Into<bool>>(
&mut self,
value: VALUE,
) -> &mut Self
pub fn use_qwen_image_zero_cond_true<VALUE: Into<bool>>( &mut self, value: VALUE, ) -> &mut Self
Use qwen image zero cond true optimization
Sourcepub fn diffusion_conv_direct<VALUE: Into<bool>>(
&mut self,
value: VALUE,
) -> &mut Self
pub fn diffusion_conv_direct<VALUE: Into<bool>>( &mut self, value: VALUE, ) -> &mut Self
Use Conv2d direct in the diffusion model This might crash if it is not supported by the backend.
Sourcepub fn vae_conv_direct<VALUE: Into<bool>>(&mut self, value: VALUE) -> &mut Self
pub fn vae_conv_direct<VALUE: Into<bool>>(&mut self, value: VALUE) -> &mut Self
Use Conv2d direct in the vae model (should improve the performance) This might crash if it is not supported by the backend.
Sourcepub fn force_sdxl_vae_conv_scale<VALUE: Into<bool>>(
&mut self,
value: VALUE,
) -> &mut Self
pub fn force_sdxl_vae_conv_scale<VALUE: Into<bool>>( &mut self, value: VALUE, ) -> &mut Self
Force use of conv scale on sdxl vae
Sourcepub fn flow_shift<VALUE: Into<f32>>(&mut self, value: VALUE) -> &mut Self
pub fn flow_shift<VALUE: Into<f32>>(&mut self, value: VALUE) -> &mut Self
Shift value for Flow models like SD3.x or WAN (default: auto)
Sourcepub fn timestep_shift<VALUE: Into<i32>>(&mut self, value: VALUE) -> &mut Self
pub fn timestep_shift<VALUE: Into<i32>>(&mut self, value: VALUE) -> &mut Self
Shift timestep for NitroFusion models, default: 0, recommended N for NitroSD-Realism around 250 and 500 for NitroSD-Vibrant
Sourcepub fn taesd_preview_only<VALUE: Into<bool>>(
&mut self,
value: VALUE,
) -> &mut Self
pub fn taesd_preview_only<VALUE: Into<bool>>( &mut self, value: VALUE, ) -> &mut Self
Prevents usage of taesd for decoding the final image
Sourcepub fn lora_apply_mode<VALUE: Into<LoraModeType>>(
&mut self,
value: VALUE,
) -> &mut Self
pub fn lora_apply_mode<VALUE: Into<LoraModeType>>( &mut self, value: VALUE, ) -> &mut Self
In auto mode, if the model weights contain any quantized parameters, the at_runtime mode will be used; otherwise, immediately will be used.The immediate mode may have precision and compatibility issues with quantized parameters, but it usually offers faster inference speed and, in some cases, lower memory usage. The at_runtime mode, on the other hand, is exactly the opposite
Sourcepub fn circular<VALUE: Into<bool>>(&mut self, value: VALUE) -> &mut Self
pub fn circular<VALUE: Into<bool>>(&mut self, value: VALUE) -> &mut Self
Enable circular padding for convolutions
Sourcepub fn circular_x<VALUE: Into<bool>>(&mut self, value: VALUE) -> &mut Self
pub fn circular_x<VALUE: Into<bool>>(&mut self, value: VALUE) -> &mut Self
Enable circular RoPE wrapping on x-axis (width) only
Sourcepub fn circular_y<VALUE: Into<bool>>(&mut self, value: VALUE) -> &mut Self
pub fn circular_y<VALUE: Into<bool>>(&mut self, value: VALUE) -> &mut Self
Enable circular RoPE wrapping on y-axis (height) only
Sourcepub fn extra_sample_params<VALUE: Into<CLibString>>(
&mut self,
value: VALUE,
) -> &mut Self
pub fn extra_sample_params<VALUE: Into<CLibString>>( &mut self, value: VALUE, ) -> &mut Self
Extra parameters for sampling, currently used for SDXL sample params, in json string format
Sourcepub fn embeddings_connectors<VALUE: Into<CLibPath>>(
&mut self,
value: VALUE,
) -> &mut Self
pub fn embeddings_connectors<VALUE: Into<CLibPath>>( &mut self, value: VALUE, ) -> &mut Self
Path to LTXAV embeddings connectors
Sourcepub fn audio_vae<VALUE: Into<CLibPath>>(&mut self, value: VALUE) -> &mut Self
pub fn audio_vae<VALUE: Into<CLibPath>>(&mut self, value: VALUE) -> &mut Self
Path to standalone LTX audio vae model
Sourcepub fn vae_temporal_tiling<VALUE: Into<bool>>(
&mut self,
value: VALUE,
) -> &mut Self
pub fn vae_temporal_tiling<VALUE: Into<bool>>( &mut self, value: VALUE, ) -> &mut Self
Enable temporal tiling for LTX video VAE decode
Sourcepub fn stream_layers<VALUE: Into<bool>>(&mut self, value: VALUE) -> &mut Self
pub fn stream_layers<VALUE: Into<bool>>(&mut self, value: VALUE) -> &mut Self
Enable residency+prefetch streaming on top of ModelConfig::max_vram (no effect without ModelConfig::max_vram; defaults to false)
Sourcepub fn build(&self) -> Result<ModelConfig, ConfigBuilderError>
pub fn build(&self) -> Result<ModelConfig, ConfigBuilderError>
Source§impl ModelConfigBuilder
impl ModelConfigBuilder
pub fn embeddings(&mut self, embeddings_dir: &Path) -> &mut Self
pub fn lora_models( &mut self, lora_model_dir: &Path, specs: Vec<LoraSpec>, ) -> &mut Self
pub fn n_threads(&mut self, value: i32) -> &mut Self
pub fn hires_params( &mut self, upscaler: Upscaler, params: HiresParams, custom_model: Option<&Path>, ) -> &mut Self
pub fn backend( &mut self, backend_map: HashMap<Module, BackendDevice>, ) -> &mut Self
pub fn params_backend( &mut self, backend_map: HashMap<Module, BackendDevice>, ) -> &mut Self
pub fn extra_tiling_args( &mut self, extra_tiling_args_map: HashMap<String, String>, ) -> &mut Self
Trait Implementations§
Source§impl Clone for ModelConfigBuilder
impl Clone for ModelConfigBuilder
Source§fn clone(&self) -> ModelConfigBuilder
fn clone(&self) -> ModelConfigBuilder
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Default for ModelConfigBuilder
impl Default for ModelConfigBuilder
Source§impl From<&ModelConfig> for ModelConfigBuilder
impl From<&ModelConfig> for ModelConfigBuilder
Source§fn from(value: &ModelConfig) -> Self
fn from(value: &ModelConfig) -> Self
Auto Trait Implementations§
impl !Send for ModelConfigBuilder
impl !Sync for ModelConfigBuilder
impl Freeze for ModelConfigBuilder
impl RefUnwindSafe for ModelConfigBuilder
impl Unpin for ModelConfigBuilder
impl UnsafeUnpin for ModelConfigBuilder
impl UnwindSafe for ModelConfigBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().