最近在找一些轻量级的多模态模型,看到了上海AI Lab开源的InternVL-U。这个模型主打一个”统一”——把理解、推理、生成、编辑四个功能塞进了一个4B参数的框架里。先记录一下对这个项目的整体印象和一些使用体验。
项目基本信息
- 开源地址: https://github.com/OpenGVLab/InternVL-U
- 参数规模: 4B (40亿)
- 发布机构: 上海人工智能实验室OpenGVLab团队
- 发布时间: 2026年3月6日
- License: MIT
核心特点
看到官方README提到了几个关键词:
1. 统一架构
以前做图像理解用LLaVA/Qwen2.5-VL这类多模态模型,做图像生成用Stable Diffusion,做图像编辑用InstructPix2Pix。现在InternVL-U试图用一套模型把这三件事都干了。这个思路和最近的GPT-4o、Claude 3.5这类闭源模型的方向一致——一个模型,多种能力。
2. 参数量控制
4B参数意味着什么?一张3090/4090显卡就能跑FP16推理。这对于个人开发者和小团队比较友好。不需要A100/H100就能本地部署测试。
3. 模块化设计
官方的说法是”unified contextual modeling with modality-specific modularity”。大概意思是说底层用一个统一的语言模型做理解,上面接了一个MMDiT架构的生成器做图像。设计和LLaVA、Qwen2.5-VL这些”视觉语言模型”的架构思路不太一样。
4. 配套工具
项目还放出了两个配套的东西:
- GenEditEvalKit: 图像生成和编辑的评测工具集
- TextEdit Benchmark: 文本编辑类任务的评测基准
这两个对做相关研究的人应该有用。
安装
环境要求比较常规:
# 克隆仓库
git clone https://github.com/OpenGVLab/InternVL-U.git
cd InternVL-U
# 安装依赖
pip install -r requirements.txt
requirements.txt里的主要依赖是PyTorch、transformers、accelerate这几个常规库。没有特别奇怪的依赖。
模型权重需要去Hugging Face下载:
配置
模型加载的主要配置如下:
from internvlu import InternVLUPipeline
import torch
pipeline = InternVLUPipeline.from_pretrained(
"/path/to/internvl-u-checkpoint",
torch_dtype=torch.bfloat16,
)
pipeline.to("cuda")
- 推荐使用bfloat16,精度和速度的平衡较好
- 显存占用方面,官方没有给出具体数字,但4B模型 + 生成图像的场景,16G显存应该够用
- 支持多卡,但官方demo主要是单卡
使用示例
官方README给出了几种使用场景的代码示例,这里整理一下:
1. 图像理解(问答)
from PIL import Image
from internvlu import InternVLUPipeline
prompt = "描述这张图片的内容"
image = Image.open("test.jpg").convert("RGB")
output = pipeline(
prompt=prompt,
image=image,
max_new_tokens=1024,
generation_mode="text",
)
这个模式下模型输出文字,用于图像问答、图像描述等任务。
2. 图像生成
prompt = "生成一张赛博朋克风格的城市夜景"
image = pipeline(
prompt=prompt,
generation_mode="image",
height=576,
width=1024,
generator=torch.Generator(device="cuda").manual_seed(42)
).images[0]
image.save("output.png")
generation_mode设为”image”时,模型直接生成图像。
3. 图像编辑
prompt = "把背景改成冬天雪景"
input_image = Image.open("original.jpg").convert("RGB")
output = pipeline(
prompt=prompt,
image=input_image,
generation_mode="image",
height=input_image.size[1],
width=input_image.size[0],
)
传入原图 + 文字指令,模型输出编辑后的图像。
4. 推理引导生成
这个是InternVL-U的一个特色功能。设置generation_mode=”text_image”时,模型会先输出一步推理(CoT),然后再生成图像。官方说这种方式在复杂场景下效果更好。
output = pipeline(
prompt="生成一个宇航员在火星上的场景",
generation_mode="text_image",
generator=torch.Generator(device="cuda").manual_seed(42)
)
# output.generate_output[0] 是推理文本
# output.images[0] 是生成的图像
5. 多图理解
images = [
[Image.open("img1.jpg").convert("RGB"),
Image.open("img2.jpg").convert("RGB")]
]
prompt = "比较这两张图片的差异"
output = pipeline(
prompt=prompt,
image=images,
generation_mode="text",
)
性能与局限
目前没有做完整的测评,这里记录一些官方数据和观察:
- 官方称在4B参数规模下,生成和编辑能力优于其他开源统一多模态模型
- 图像理解能力方面,保持了InternVL系列一贯的水平
- 局限方面:4B参数放在那里,生成质量肯定不如SDXL、Flux这些专门的文生图模型,也不如闭源的DALL-E 3
- 推理速度没有具体数据,生成一张图大概需要多久需要实际测试
与类似项目的对比
整理了一下目前主流的开源多模态模型:
| 模型 | 参数 | 能力 | 特点 |
|---|---|---|---|
| InternVL-U | 4B | 理解+生成+编辑 | 统一架构,轻量 |
| Qwen2.5-VL | 7B+ | 理解为主 | 阿里开源,文档完善 |
| LLaVA-1.6 | 13B+ | 理解为主 | 学术界影响力大 |
| InternVL3.5 | 9B+ | 理解为主 | 上海AI Lab出品,理解能力强 |
| OmniGen2 | – | 生成+编辑 | 侧重图像生成方向 |
对比来看:
- 如果只要图像理解,Qwen2.5-VL和InternVL3.5做得更成熟
- 如果想一个模型同时搞定理解和简单生成,InternVL-U是目前4B参数档位为数不多的选择
- 如果对生成质量要求高,还是得用专门的文生图模型
总结
InternVL-U的定位很清晰:用一个4B参数的小模型,实现”理解+生成+编辑”三位一体。适合的场景:
- 想在本地跑一个多功能的轻量模型
- 需要一个模型同时处理图像问答和简单图像生成
- 做多模态相关研究,需要baseline
- 对图像生成质量要求高(专业级)
- 需要处理复杂的图像编辑任务
- 超大图像理解任务
后续有空跑一下实际效果,看看生成质量和速度具体如何。

