
DeepSeek Janus-Pro 应用代码与图片链接实践
DeepSeek Janus-Pro 是一款多模态 AI 模型,专注于文本到图像生成和多模态理解。它在多个基准测试中表现优异,超过了 OpenAI 的 DALL-E 3 和 Stability AI 的 Stable Diffusion。Janus-Pro 提供了 7B 和 1.5B 两个参数规模的版本,用户可以根据需求选择。
Janus-Pro 的改进主要体现在以下几个方面:
这些改进使 Janus-Pro 在图像生成的稳定性和一致性上都有显著提升。
国内用户可以通过 modelscope 快速下载 Janus-Pro 的模型权重。访问 modelscope 下载 Janus-Pro-1B 模型。Janus 是多模态的模型,1B 大小的模型显存占用在 8GB。如果低于 8GB,可以考虑使用云服务器。
我们推荐使用 Git 下载模型,这种方式更稳定。Git lfs 是下载大型文件必备的软件,可以通过以下命令安装:
git lfs install
git clone https://www.modelscope.cn/deepseek-ai/Janus-Pro-1B.git
执行上述命令后,模型会下载到本地。
首先,需要下载 Janus 的项目,访问 GitHub。将项目下载至本地后,解压缩到一个目录中。
安装 Python 环境以及相关依赖,可在命令行中执行以下命令:
pip install -e .
如果遇到网络问题,可以使用清华源:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
在 Janus 项目的 "Quick Start" 部分,我们可以找到多模态图片理解的示例。以下是代码片段,修改 model_path
、image
、question
变量以适配你的需求。
import torch
from transformers import AutoModelForCausalLM
from janus.models import MultiModalityCausalLM, VLChatProcessor
from janus.utils.io import load_pil_images
model_path = "E:modelsJanus-Pro-1B"
vl_chat_processor: VLChatProcessor = VLChatProcessor.from_pretrained(model_path)
tokenizer = vl_chat_processor.tokenizer
vl_gpt: MultiModalityCausalLM = AutoModelForCausalLM.from_pretrained(
model_path, trust_remote_code=True
)
vl_gpt = vl_gpt.to(torch.bfloat16).cuda().eval()
image = "imagesdoge.png"
question = "Extract all information from this image and convert them into markdown format."
conversation = [
{
"role": "",
"content": f"n{question}",
"images": [image],
},
{"role": "", "content": ""},
]
运行代码后,成功的输出会显示在命令行中。
DeepSeek R1 模型支持后缀为 qwen、llama 的蒸馏模型,可以在本地使用 transformers 进行部署。参考 qwen 文档 进行配置。
通过调整代码中的输出字符长度,可以获得完整的输出。例如,将默认的 512 字符调整到 2048 或 4096。
硅基流动平台提供免费调用 Janus-Pro-7B 的服务。通过 官网 注册,官方会赠送 14 元的 API 使用金额。
申请一个 API key 后,可以通过以下代码调用 Janus-Pro 进行图像生成:
import requests
url = "https://api.siliconflow.cn/v1/images/generations"
payload = {
"model": "deepseek-ai/Janus-Pro-7B",
"prompt": "a woman with a beautiful smile",
"seed": 1
}
headers = {
"Authorization": "Bearer apikey",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
将 apikey
替换为你的 API key,执行脚本即可生成图像。
Janus-Pro 提供了强大的多模态 AI 能力,适用于从文本到图像的生成以及多模态理解。通过上述指南,用户可以快速下载、部署和调用 Janus-Pro,实现更多创意应用。
问:DeepSeek Janus-Pro 支持哪些平台?
问:如何提高 Janus-Pro 的运行效率?
问:Janus-Pro 是否支持自定义训练?
问:如何解决模型下载缓慢的问题?
问:API 调用中的图像生成速度如何?