【DeepSeek】本地快速搭建多模态理解和文生图 Janus-Pro-7B模型

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持!
博主链接

博客内容主要围绕:
       5G/6G协议讲解
       高级C语言讲解
       Rust语言讲解



文章目录

  • 本地快速搭建多模态理解和文生图 Janus-Pro-7B模型
    • 一、创建运行环境
    • 二、下载项目代码并安装依赖
    • 三、运行Gradio Demo

本地快速搭建多模态理解和文生图 Janus-Pro-7B模型

        Janus-Pro是一种新的自回归框架,将多模态理解和生成统一起来。它通过将视觉编码解耦到单独的路径中,同时仍然使用单一、统一的transformer架构进行处理,解决了以前方法的局限性。解耦不仅缓解了视觉编码器在理解和生成方面的角色冲突,而且增强了框架的灵活性。Janus-Pro超越了以前的统一模型,并匹配或超过特定任务模型的性能。Janus-Pro的简单性、高灵活性和有效性使其成为下一代统一多模态模型的有力候选者。

一、创建运行环境

我这边使用的是Anaconda,因此在cmd命令窗口中执行下面的命令创建一个虚拟环境:

conda create -n deepseek python=3.10 -y
conda activate deepseek

也可以使用pycharm或者miniforge

二、下载项目代码并安装依赖

运行下面的代码下载janus项目:

git clone https://github.com/deepseek-ai/Janus.git

这个项目中的requirements.txt文件中的 torch版本有问题,需要修改为更新的版本,以我这边测试为例,我使用的版本是:

torch==2.6.0+cu126 
--index-url https://download.pytorch.org/whl/cu126

transformers>=4.38.2
timm>=0.9.16
accelerate
sentencepiece
attrdict
einops

# for gradio demo
gradio==3.48.0
gradio-client==0.6.1
mdtex2html==1.3.0
pypinyin==0.50.0
tiktoken==0.5.2
tqdm==4.64.0
colorama==0.4.5
Pygments==2.12.0
markdown==3.4.1
SentencePiece==0.1.96

上面安装的版本是支持cuda 12.6 的torch版本,如果:

  • 你没有显卡,则只需要修改为 torch==2.6.0 即可;
  • 你的cuda版本和我的不一样,需要修改 torch 版本;

如何查看 cuda 版本?运行下面的命令查看:
nvidia-smi
在这里插入图片描述
如果无法执行上面的命令,需要先安装网卡驱动。

如何选择 torch 版本?

  1. 进入 https://download.pytorch.org/whl/cu<XXX>,XXX是你的cuda版本,例如我的是 CUDA 12.6,则XXX就是126,最后的地址就是 https://download.pytorch.org/whl/cu126
  2. 找到 torch 目录点进去;
  3. 然后找到 torch-<X.Y.Z>+cu126-*.whl 符合这个规则的最新版本的 torch就行。

修改好requirements.txt文件后,执行下面的命令开始安装环境:

pip install -r requirements.txt

三、运行Gradio Demo

在项目的 demo目录中,默认提供了三个模型的示例脚本,我们可以直接使用,这三个脚本对应的模型分别是:

脚本名称部署的模型
app.pydeepseek-ai/Janus-1.3B
app_janusflow.pydeepseek-ai/JanusFlow-1.3B
app_januspro.pydeepseek-ai/Janus-Pro-7B

我们这里使用 Janus-Pro-7B模型,在项目根目录运行下面的命令:

python demo/app_januspro.py

模型加载完毕之后,会提供一个本地 URL,我们将其复制到浏览器之后就可以开始使用了。

在这里插入图片描述

最后的效果就是下图所示:

在这里插入图片描述



在这里插入图片描述

### deekseep 文本模型概述 deekseep 提供的文本模型允许用户通过输入自然语言描述来成对应的高质量像。这一技术基于先进的多模态理解成能力[^1]。 ### 模型下载指南 为了获取并使用该模型,可以访问 Hugging Face 平台上的特定仓库页面: - **模型名称**: deepseek-ai/Janus-Pro-7B - **链接地址**: [https://huggingface.co/deepseek-ai/Janus-Pro-7B](https://huggingface.co/deepseek-ai/Janus-Pro-7B) 在上述网页上,可以根据个人需求选择合适的版本进行下载。通常情况下,推荐下载最新的稳定版以获得最佳性能和支持。 ### 安装依赖库 安装必要的 Python 库对于成功运行此模型至关重要。可以通过 pip 工具轻松完成这些操作: ```bash pip install transformers diffusers accelerate safetensors torch torchvision torchaudio ``` 以上命令会自动处理所有必需的依赖关系,并确保环境配置正确无误。 ### 使用示例代码 下面是一个简单的例子,展示了如何加载预训练模型并通过给定提示词片: ```python from PIL import Image import requests from io import BytesIO from transformers import AutoImageProcessor, BlipForConditionalGeneration import torch device = "cuda" if torch.cuda.is_available() else "cpu" model_name_or_path = "deepseek-ai/Janus-Pro-7B" processor = AutoImageProcessor.from_pretrained(model_name_or_path) model = BlipForConditionalGeneration.from_pretrained(model_name_or_path).to(device) def generate_image(prompt_text): inputs = processor(text=prompt_text, return_tensors="pt").to(device) with torch.no_grad(): outputs = model.generate(**inputs) image_ids = outputs.logits.argmax(dim=-1) generated_image = processor.decode(image_ids.squeeze(), skip_special_tokens=True) response = requests.get(generated_image) img = Image.open(BytesIO(response.content)) return img # 测试函数 prompt_example = "A beautiful sunset over the ocean." image_result = generate_image(prompt_example) image_result.show() ``` 这段代码实现了从文字到像转换的过程,其中 `generate_image` 函数接收一段描述性的字符串作为参数,并返回一张由 AI 创建的新象对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从善若水

原创不易,感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值