Project Icon

Lumina-mGPT

多模态AI模型实现文本到图像的灵活生成

Lumina-mGPT是一个多模态自回归模型系列,适用于多种视觉和语言任务。这个开源项目特别擅长将文本描述转化为逼真图像,提供7B和34B两种参数规模的模型,以及多种图像分辨率选项。除图像生成外,Lumina-mGPT还支持图像理解和全能型任务,为AI研究和应用开发提供了灵活的工具。

Lumina-mGPT

一系列能够执行各种视觉和语言任务的多模态自回归模型,特别擅长根据文本描述生成灵活的逼真图像。👋 加入我们的微信

Lumina-mGPT 

Static Badge  Static Badge 

📰 新闻

  • [2024-08-11] 🎉🎉🎉 训练代码和文档已发布!🎉🎉🎉

  • [2024-07-08] 🎉🎉🎉 Lumina-mGPT 已发布!🎉🎉🎉

⚙️ 安装

详细说明请参见 INSTALL.md

请注意,Lumina-mGPT 的实现heavily依赖于xllmx模块,该模块由LLaMA2-Accessory演变而来,用于支持以LLM为中心的多模态任务。在继续之前,请确保它已正确安装为Python包。

⛽ 训练

请参见 lumina_mgpt/TRAIN.md

📽️ 推理

[!注意]

在使用Lumina-mGPT模型之前,请运行

# bash
cd lumina_mgpt

进入Lumina-mGPT实现的目录。

准备工作

由于目前transformers中的Chameleon实现不包含VQ-VAE解码器,请手动下载Meta提供的原始VQ-VAE权重,并将它们放在以下目录中:

Lumina-mGPT
- lumina_mgpt/
    - ckpts/
        - chameleon/
            - tokenizer/
                - text_tokenizer.json
                - vqgan.yaml
                - vqgan.ckpt
- xllmx/
- ...

本地Gradio演示

我们准备了三个不同的Gradio演示,每个演示都展示了独特的功能,以帮助您快速熟悉Lumina-mGPT模型的能力。

1. demos/demo_image_generation.py

这个演示专门用于图像生成任务,您可以输入文本描述并生成相应的图像。 要启动这个演示,请运行:

# 注意将`--target_size`参数设置为与检查点一致
python -u demos/demo_image_generation.py \
--pretrained_path Alpha-VLLM/Lumina-mGPT-7B-768 \
--target_size 768

2. demos/demo_image2image.py

这个演示是为使用Omni-SFT训练的模型设计的。您可以使用此演示方便地在多个下游任务之间切换。

# 注意将`--target_size`参数设置为与检查点一致
python -u demos/demo_image2image.py \
--pretrained_path Alpha-VLLM/Lumina-mGPT-7B-768-Omni \
--target_size 768

3. demos/demo_freeform.py

这是一个对输入格式限制最少的强大演示。它支持灵活的交互,适合深入探索。

# 注意将`--target_size`参数设置为与检查点一致
python -u demos/demo_freeform.py \
--pretrained_path Alpha-VLLM/Lumina-mGPT-7B-768-Omni \
--target_size 768

简单推理

Lumina-mGPT推理的最简单代码:

from inference_solver import FlexARInferenceSolver
from PIL import Image

# ******************** 图像生成 ********************
inference_solver = FlexARInferenceSolver(
    model_path="Alpha-VLLM/Lumina-mGPT-7B-768",
    precision="bf16",
    target_size=768,
)
q1 = f"根据以下提示生成一张768x768的图像:\n"
     f"一只狗在玩水,背景是瀑布的图像。"

# generated: 元组,包含(生成的响应, 生成的图像列表)
generated = inference_solver.generate(
    images=[],
    qas=[[q1, None]],
    max_gen_len=8192,
    temperature=1.0,
    logits_processor=inference_solver.create_logits_processor(cfg=4.0, image_top_k=2000),
)

a1, new_image = generated[0], generated[1][0]


# ******************* 图像理解 ******************
inference_solver = FlexARInferenceSolver(
    model_path="Alpha-VLLM/Lumina-mGPT-7B-512",
    precision="bf16",
    target_size=512,
)

# "<|image|>"符号在输入LLM之前会被替换为图像token序列
q1 = "详细描述这张图像。<|image|>"

images = [Image.open("image.png")]
qas = [[q1, None]]

# `len(images)`应等于qas中"<|image|>"出现的次数
generated = inference_solver.generate(
    images=images,
    qas=qas,
    max_gen_len=8192,
    temperature=1.0,
    logits_processor=inference_solver.create_logits_processor(cfg=4.0, image_top_k=2000),
)

a1 = generated[0]
# generated[1],即新生成的图像列表,在这种情况下通常应该是空的。


# ********************* 全能模式 *********************
inference_solver = FlexARInferenceSolver(
    model_path="Alpha-VLLM/Lumina-mGPT-7B-768-Omni",
    precision="bf16",
    target_size=768,
)

# 示例:深度估计
# 更多说明请参见demos/demo_image2image.py
q1 = "深度估计。<|image|>"
images = [Image.open("image.png")]
qas = [[q1, None]]

generated = inference_solver.generate(
    images=images,
    qas=qas,
    max_gen_len=8192,
    temperature=1.0,
    logits_processor=inference_solver.create_logits_processor(cfg=1.0, image_top_k=200),
)

a1 = generated[0]
new_image = generated[1][0]

🤗 检查点

配置

7B模型

34B模型

模型大小Huggingface
FP-SFT@51234BAlpha-VLLM/Lumina-mGPT-34B-512

更多检查点即将推出。

📑 开源计划

  • 推理代码
  • 训练代码

🔥 招聘信息

我们正在上海人工智能实验室的通用视觉组招聘实习生、博士后和全职研究人员,重点关注多模态和视觉基础模型。如果您感兴趣,请联系gaopengcuhk@gmail.com

📄 引用

@misc{liu2024lumina-mgpt,
      title={Lumina-mGPT: Illuminate Flexible Photorealistic Text-to-Image Generation with Multimodal Generative Pretraining},
      author={Dongyang Liu and Shitian Zhao and Le Zhuo and Weifeng Lin and Yu Qiao and Hongsheng Li and Peng Gao},
      year={2024},
      eprint={2408.02657},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2408.02657},
}
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号