微软重磅开源 Lens: 重新思考基础文本到图像模型的训练效率


贡献者(按字母顺序排列):

Baining Guo , Chong Luo , Dong Chen †, Dongdong Chen , Fangyun Wei †, Ji Li , Jianmin Bao , Jiawei Zhang *, Jinjing Zhao *, Lei Shi , Qinhong Yang , Sirui Zhang *, Xiuyu Wu , Xuelu Feng , Yan Lu , Yanchen Dong , Yang Yue *, Yitong Wang , Yunuo Chen , Zhiyang Liang *, Ziyu Wan

微软 | *核心贡献者 | †项目负责人

Lens 是一个拥有 38亿参数 的基础文本到图像生成模型,专为 高效训练快速高分辨率生成 而设计。它结合了密集标注预训练、混合分辨率学习、GPT-OSS多层文本特征以及FLUX.2语义变分自编码器,在训练计算量远低于更大规模文生图模型的情况下,仍能达到具有竞争力的生成质量。

本代码库提供从Lens DiT检查点生成图像的最小推理代码。

亮点

  • 高效基础 --- 在包含8亿图文对(附带GPT-4.1长标注)的Lens-800M数据集上训练,最大化每批训练数据的信息密度。
  • 紧凑而强大 --- 48模块的MMDiT去噪器结合FLUX.2潜变量与串联的多层GPT-OSS特征,实现更强的提示跟随能力和多语言泛化性。
  • 灵活分辨率 --- 混合分辨率训练支持从1:22:1的宽高比及最高1440×1440分辨率的生成。
  • 微调变体 --- 强化学习调优提升视觉质量并抑制伪影;蒸馏版Lens-Turbo 支持极速4步生成。

效果展示

Sample 000 · 1440x1440

A generous portion of classic British fish and chips served on a sheet of white paper, golden crispy beer-battered cod fillet alongside thick-cut chips, a wedge of lemon, mushy peas in a small dish, malt vinegar bottle nearby, wooden pub table, overhead shot

Sample 001 · 1440x1440

The iconic Big Ben clock tower and the Houses of Parliament in London at golden hour, the River Thames reflecting warm amber light, Westminster Bridge in the foreground, a classic red double-decker bus crossing, dramatic clouds lit by sunset

Sample 002 · 1440x1440

La Tour Eiffel au crépuscule vue depuis le Trocadéro, la structure en fer illuminée de milliers de lumières dorées scintillantes, le ciel passant du bleu profond au violet, les fontaines du Trocadéro au premier plan avec des reflets dorés, silhouettes de promeneurs

Sample 003 · 1248x1664

A crystal dragon soaring through an aurora borealis sky, its entire body made of transparent faceted crystal refracting the green and purple aurora light into rainbow spectra, ice particles trailing from its wings, high fantasy digital art

Sample 004 · 1664x1248

Aerial view of Yuanyang rice terraces in Yunnan province at sunrise, thousands of cascading water-filled paddies reflecting golden and pink sky colors, morning mist weaving between terrace layers, lush green hillside with scattered palm trees, drone photography

Sample 005 · 1664x1248

A green iguana basking on a moss-covered fallen log in a tropical rainforest, every scale and spine rendered in sharp detail, dewdrops clinging to its skin, a blurred waterfall and lush tropical foliage in the background, National Geographic wildlife photography style

安装

测试环境: Python 3.12 · CUDA 12.6 · PyTorch 2.11.0+cu126 · TorchVision 0.26.0+cu126

bash 复制代码
conda create -n lens python=3.12 -y
conda activate lens

uv pip install torch==2.11.0+cu126 torchvision==0.26.0+cu126 \
    --index-url https://download.pytorch.org/whl/cu126
uv pip install -r requirements.txt

The default GPT-OSS encoder and FLUX.2 VAE are loaded from Hugging Face. Make sure your environment has access to any gated model repositories you use.

检查点

仓库 描述 步数 CFG
microsoft/Lens 默认版本。 经过强化学习优化视觉质量 20 5.0
microsoft/Lens-Turbo 从强化学习模型蒸馏而来,支持快速4步采样 4 1.0
microsoft/Lens-Base 监督式基础模型(无强化学习/无蒸馏) 50 5.0

通过将仓库ID传递给--repo_id(命令行)或LensPipeline.from_pretrained(...)(Python)来选择变体。

推理

重要提示: 从克隆的仓库根目录运行,确保from lens import LensPipeline能正确解析到本包------导入lens模块会将LensGptOssEncoder/LensTransformer2DModel注册到model_index.json引用的transformersdiffusers命名空间。

Python接口:

python 复制代码
import torch
from lens import LensPipeline

pipe = LensPipeline.from_pretrained(
    "microsoft/Lens", torch_dtype=torch.bfloat16
).to("cuda")

image = pipe(
    prompt="A cat holding a sign that says \"hello world\"",
    base_resolution=1440, aspect_ratio="1:1",
    num_inference_steps=20, guidance_scale=5.0,
    generator=torch.Generator("cuda").manual_seed(0),
).images[0]
image.save("lens.png")

为了以速度换取显存,请将 .to("cuda") 替换为 pipe.enable_model_cpu_offload()

命令行界面 --- 基本用法:

bash 复制代码
python inference.py \
    --repo_id "microsoft/Lens" \
    --prompt "A cinematic mountain lake at sunrise, soft mist, detailed reflections" \
    --base_resolution 1440 --aspect_ratio 1:1 \
    --steps 20 --cfg 5.0 --n 1 --seed 42 \
    --out ./outputs

批量生成 --- 用 | 分隔多个提示词

bash 复制代码
python inference.py \
    --repo_id "microsoft/Lens" \
    --steps 20 --cfg 5.0 \
    --prompt "a red fox in snow|a glass greenhouse at night"

A100 / V100(不支持MXFP4内核) --- 将GPT编码器反量化为bf16格式:

bash 复制代码
python inference.py \
    --repo_id "microsoft/Lens" \
    --steps 20 --cfg 5.0 \
    --prompt "a cat" \
    --disable_mxfp4 --offload

选项

参数 说明 默认值
--repo_id 组装Lens流程的HF仓库ID(或本地路径) microsoft/Lens
--base_resolution 10241440 1440
--aspect_ratio 1:2, 9:16, 2:3, 3:4, 1:1, 4:3, 3:2, 16:9, 2:1 1:1
--steps 去噪步数 20
--cfg 分类器自由引导尺度 5.0
--n 每个提示词生成的图像数量 1
--seed 随机种子(留空则为非确定性) ---
--out 输出目录 ./outputs
--dtype 计算数据类型:bfloat16, float16, float32 bfloat16
--disable_mxfp4 将GPT-OSS文本编码器反量化为--dtype(A100/V100需启用;Hopper+架构默认保留MXFP4以节省显存) ---
--offload 启用diffusers CPU卸载(text_encoder->transformer->vae)以降低峰值显存 ---
--reasoner 生成前使用加载的GPT-OSS编码器优化提示词 ---
--api_url / --api_key / --api_model 使用OpenAI兼容API优化提示词(优先级高于--reasoner ---

引用

bibtex 复制代码
@article{zhao2026lens,
  title   = {Lens: Rethinking Training Efficiency for Foundational Text-to-Image Models},
  author  = {Guo, Baining and Luo, Chong and Chen, Dong and Chen, Dongdong and Wei, Fangyun and Li, Ji and Bao, Jianmin and Zhang, Jiawei and Zhao, Jinjing and Shi, Lei and Yang, Qinhong and Zhang, Sirui and Wu, Xiuyu and Feng, Xuelu and Lu, Yan and Dong, Yanchen and Yue, Yang and Wang, Yitong and Chen, Yunuo and Liang, Zhiyang and Wan, Ziyu},
  journal = {arXiv preprint arXiv:2605.21573},
  year    = {2026}
}

许可

本项目采用MIT许可证

相关推荐
ZhengEnCi2 小时前
09c-斯坦福CS336作业二:系统与分布式训练
人工智能
阿里云大数据AI技术2 小时前
用 SQL 解锁多模态数据分析:Hologres 让图片、语音、视频变成结构化洞察
人工智能
阿里云大数据AI技术2 小时前
EMR Serverless StarRocks 湖仓多模态检索:One SQL on One Data,实现全文 + 标量 + 向量三路混合检索
人工智能
冬奇Lab4 小时前
Skill 系列(02):Skill 安全风险——三类攻击面的实战测试
人工智能·安全·开源
冬奇Lab4 小时前
每日一个开源项目(第138篇):OpenMontage - 把 AI 编程助手变成完整的视频制作团队
人工智能·开源·claude
米小虾4 小时前
智谱港股盘中市值突破万亿港元!GLM-5.2 开源引爆国产 AI 价值重估
人工智能·chatglm (智谱)
阿里云大数据AI技术4 小时前
义乌小商品城基于MaxFrame AI Function的亿级AI 数据产线提速之路
人工智能
甲维斯5 小时前
用AI还原《坦克大战》并3D化升级!
前端·人工智能·游戏开发
IT_陈寒6 小时前
SpringBoot自动配置坑了我一晚上,原来问题出在这
前端·人工智能·后端