metrale_model_engine/model/trait_impl/
impl_vision.rs1use anyhow::Result;
10
11use crate::model::types::TransformerModel;
12use crate::traits::ModelVision;
13
14impl ModelVision for TransformerModel {
15 fn prepare_vision_embed(&self, images: &[metrale_model_layers::VisionItem]) -> Result<()> {
16 self.prepare_vision_embed_dispatch(images)
17 }
18
19 fn prepare_vision_embed_batched(
20 &self,
21 per_request: &[Vec<metrale_model_layers::VisionItem>],
22 ) -> Result<Vec<(usize, usize, usize, usize)>> {
23 self.prepare_vision_embed_batched_dispatch(per_request)
24 }
25
26 fn ep_sync_vision_embeds(&self, tokens: &[u32]) -> Result<()> {
27 TransformerModel::ep_sync_vision_embeds(self, tokens)
28 }
29
30 fn set_vision_slice_base(&self, row_base: usize, grid_base: usize, owned_images: usize) {
31 *self.vision_row_base.lock() = row_base;
32 *self.vision_grid_base.lock() = grid_base;
33 *self.vision_owned_images.lock() = owned_images;
34 }
35
36 fn tokens_contain_vision_pad(&self, tokens: &[u32]) -> bool {
37 self.tokens_have_vision_pad(tokens)
38 }
39}