Skip to content

Conversation

@ankke
Copy link
Contributor

@ankke ankke commented Aug 18, 2025

Add support for LFM2-VL models.

LFM2‑VL is Liquid AI's first series of multimodal models, designed to process text and images with variable resolutions. Built on the LFM2 backbone, it is optimized for low-latency and edge AI applications.

Checkpoints available here.

Copy link
Member

@zucchini-nlp zucchini-nlp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yay happy to see a VLM release from LiquidAI! I left a few comments to refine and clean up the PR. Would be nice to use modular because the model arch is very similar to existing VLMs and it makes review process easier//faster

Comment on lines 224 to 231
def _smart_resize(
self,
image: Image.Image,
downsample_factor: int,
min_image_tokens: int,
max_image_tokens: int,
encoder_patch_size: int,
) -> Image.Image:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe we can use modular and copy LfmV2ImageProcessor from Qwen-VL with minor changes, since that looks to be the closest processor

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm afraid there will be many changes to the Qwen-VL implementation as we treat images up to 512x512 pixels differently from larges ones

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oke, maybe qwen-vl isn't much close to LFM-VL. It is nice to try to copy from similar processors if any, but we can make a separate class if there isn't any similar processor

In second case, we don't need modular and it is easier to just keep it as is in processing_xxx.py

return list(dict.fromkeys(image_processor_input_names + tokenizer_input_names))


__all__ = ["Lfm2VlProcessor"]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

would be nice if you can add a few helpers here to make the model vLLM compatible ootb? We have a doc page on which helpers are needed here

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

given that our backbone is a hybrid model and we're not sure if this functionality is supported, could we postpone vLLM integration until next update?

@ankke
Copy link
Contributor Author

ankke commented Aug 20, 2025

@zucchini-nlp thank you for the review! sorry, the PR was still a draft and wasn't quite ready. I have addressed most of your comments. Some model and processor tests are failing, due to failing language backbone tests and some kwargs merging tests, that I'm not sure how to resolve

@zucchini-nlp
Copy link
Member

Ah yeah, just wanted to do a preliminary review for general format. No worries, ping me when you need another review :)

The tests seem to be failing due to typing torch.Tensor | None, you can change it to Optional[torch.Tensor] instead.

@github-actions
Copy link
Contributor

[For maintainers] Suggested jobs to run (before merge)

run-slow: auto, lfm2_vl

@ankke ankke marked this pull request as ready for review August 27, 2025 07:50
@ankke
Copy link
Contributor Author

ankke commented Aug 27, 2025

@zucchini-nlp Hi, let me know if any more changes are required. I'd appreciate your help with resolving some of the failing CI.

  • check_code_quality and check_repository_consistency I tried running make fix-copies but the command failed
  • tests_torch: I am not exactly sure why that test fails. It seems to be using some other model's forward method
  • I am aware that some tests on the modeling file are also failing (I suspect due to some failing tests on the language backbone)
  • some "kwargs" tests are failing in Lfm2VlProcessorTest

@ankke
Copy link
Contributor Author

ankke commented Sep 19, 2025

merged in #40624

@ankke ankke closed this Sep 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants