--- pipeline_tag: image-text-to-text license: apache-2.0 base_model: OpenGVLab/InternVL3_5-8B-HF library_name: kerasformers language: - en tags: - keras - kerasformers - internvl - internvl3-5 - multimodal - vision - image-text-to-text - pytorch - jax - tf --- # Run InternVL3.5 with Keras 3: JAX, PyTorch, or TensorFlow [![GitHub](https://img.shields.io/badge/GitHub-KerasFormers-181717?logo=github)](https://github.com/IMvision12/KerasFormers) [![Docs](https://img.shields.io/badge/Docs-InternVL-1f6feb)](https://imvision12.github.io/KerasFormers/internvl/) [![HuggingFace](https://img.shields.io/badge/HuggingFace-InternVL-ffd21e?logo=huggingface&logoColor=black)](https://huggingface.co/collections/kerasformers/internvl-6a8277076dbb163f53241dbd) # kerasformers/internvl3.5-8b Pure-**Keras 3** conversion of [`OpenGVLab/InternVL3_5-8B-HF`](https://huggingface.co/OpenGVLab/InternVL3_5-8B-HF) for [kerasformers](https://github.com/IMvision12/KerasFormers). One implementation runs unmodified on **TensorFlow / Torch / JAX**. This is a **InternVL3.5** checkpoint, served as **image + text -> text** via `InternVLProcessor`; weights are stored in **bfloat16**. For model details, license, and usage terms, see the upstream [model card](https://huggingface.co/OpenGVLab/InternVL3_5-8B-HF). Paper: [InternVL3.5: Advancing Open-Source Multimodal Models in Versatility, Reasoning, and Efficiency (arXiv:2508.18265)](https://arxiv.org/abs/2508.18265) · [HF Papers](https://huggingface.co/papers/2508.18265) Paper: [Qwen3 Technical Report (arXiv:2505.09388)](https://arxiv.org/abs/2505.09388) · [HF Papers](https://huggingface.co/papers/2505.09388) Paper: [YaRN: Efficient Context Window Extension of Large Language Models (arXiv:2309.00071)](https://arxiv.org/abs/2309.00071) · [HF Papers](https://huggingface.co/papers/2309.00071) ## ✨ Quick start ```python import os os.environ["KERAS_BACKEND"] = "torch" # or "jax" / "tensorflow" from PIL import Image from kerasformers.models.internvl import InternVLConditionalGenerate, InternVLProcessor model = InternVLConditionalGenerate.from_weights("kerasformers/internvl3.5-8b") processor = InternVLProcessor.from_weights("kerasformers/internvl3.5-8b") inputs = processor(conversation=[ {"role": "user", "content": [ {"type": "image", "image": Image.open("photo.jpg")}, {"type": "text", "text": "Describe this image in one sentence."}, ]} ]) outputs = model.generate(**inputs, max_new_tokens=64) print(processor.decode(outputs[0])) ``` Load any InternVL variant the same way with `from_weights("kerasformers/")`. Browse them all in the [InternVL collection](https://huggingface.co/collections/kerasformers/internvl-6a8277076dbb163f53241dbd). ## Special Thanks A huge thank you to the OpenGVLab team for creating and releasing the InternVL models. License: `apache-2.0` (per the upstream model card).