aha/models/lfm2vl/
config.rs1use candle_nn::Activation;
2
3use crate::models::lfm2::config::Lfm2Config;
4
5#[derive(Debug, Clone, PartialEq, serde::Deserialize)]
6pub struct Lfm2VLConfig {
7 pub do_image_splitting: bool,
8 pub downsample_factor: usize,
9 pub dtype: String,
10 pub encoder_patch_size: usize,
11 pub image_token_id: u32,
12 pub max_image_tokens: usize,
13 pub max_pixels_tolerance: f64,
14 pub max_tiles: usize,
15 pub min_image_tokens: usize,
16 pub min_tiles: usize,
17 pub model_type: String,
18 pub projector_bias: bool,
19 pub projector_hidden_act: Activation,
20 pub projector_hidden_size: usize,
21 pub projector_use_layernorm: Option<bool>,
22 pub text_config: Lfm2Config,
23 pub tile_size: usize,
24 pub use_image_special_tokens: bool,
25 pub use_thumbnail: bool,
26 pub vision_config: Lfm2VLVisionConfig,
27}
28
29#[derive(Debug, Clone, PartialEq, serde::Deserialize)]
30pub struct Lfm2VLVisionConfig {
31 pub attention_dropout: f64,
32 pub dtype: String,
33 pub hidden_act: Activation,
34 pub hidden_size: usize,
35 pub intermediate_size: usize,
36 pub layer_norm_eps: f64,
37 pub model_type: String,
38 pub num_attention_heads: usize,
39 pub num_channels: usize,
40 pub num_hidden_layers: usize,
41 pub num_patches: usize,
42 pub patch_size: usize,
43 pub vision_use_head: bool,
44}
45
46#[derive(Debug, Clone, PartialEq, serde::Deserialize)]
47pub struct Lfm2ImageConfig {
48 pub do_image_splitting: bool,
49 pub do_normalize: bool,
50 pub do_pad: bool,
51 pub do_rescale: bool,
52 pub do_resize: bool,
53 pub downsample_factor: usize,
54 pub encoder_patch_size: usize,
55 pub image_mean: Vec<f64>,
56 pub image_std: Vec<f64>,
57 pub max_image_tokens: usize,
58 pub max_num_patches: usize,
59 pub max_pixels_tolerance: f64,
60 pub max_tiles: usize,
61 pub min_image_tokens: usize,
62 pub min_tiles: usize,
63 pub resample: usize,
64 pub rescale_factor: f64,
65 pub size: Size,
66 pub tile_size: usize,
67 pub use_thumbnail: bool,
68}
69
70#[derive(Debug, Clone, PartialEq, serde::Deserialize)]
71pub struct Size {
72 pub height: usize,
73 pub width: usize,
74}
75
76#[derive(Debug, Clone, PartialEq, serde::Deserialize)]
77pub struct Lfm2ProcessorConfig {
78 pub image_processor: Lfm2ImageConfig,
79}