本地部署DeepSeek开源多模态大模型Janus-Pro-7B实操

本地部署DeepSeek开源多模态大模型Janus-Pro-7B实操

Janus-Pro-7B介绍

Janus-Pro-7B 是由 DeepSeek 开发的多模态 AI 模型,它在理解和生成方面取得了显著的进步。这意味着它不仅可以处理文本,还可以处理图像等其他模态的信息。
模型主要特点:Permalink
统一的架构: Janus-Pro 采用单一 transformer 架构来处理文本和图像信息,实现了真正的多模态理解和生成。
解耦的视觉编码: 为了更好地平衡理解和生成任务,Janus-Pro 将视觉编码解耦为独立的路径,提高了模型的灵活性和性能。
强大的性能: 在多个基准测试中,Janus-Pro 的性能超越了之前的统一模型,甚至可以与特定任务的模型相媲美。
开源: Janus-Pro-7B 是开源的,这意味着研究人员和开发者可以自由地访问和使用它,推动 AI 领域的创新。
具体来说,Janus-Pro-7B 有以下优势:

图像理解: 能够准确地识别和理解图像中的对象、场景和关系。
图像生成: 可以根据文本描述生成高质量的图像,甚至可以进行图像编辑和转换。
文本生成: 可以生成流畅、连贯的文本,例如故事、诗歌、代码等。
多模态推理: 可以结合文本和图像信息进行推理,例如根据图像内容回答问题,或者根据文本描述生成图像。
与其他模型的比较:
超越 DALL-E 3 和 Stable Diffusion: 在 GenEval 和 DPG-Bench 等基准测试中,Janus-Pro-7B 的性能优于 OpenAI 的 DALL-E 3 和 Stability AI 的 Stable Diffusion。
基于 DeepSeek-LLM: Janus-Pro 建立在 DeepSeek-LLM-1.5b-base/DeepSeek-LLM-7b-base 的基础上,并对其进行了多模态扩展。
应用场景:
Janus-Pro-7B 具有广泛的应用场景,例如:

内容创作: 可以帮助用户生成高质量的图像、文本和其他多媒体内容。
教育: 可以用于创建交互式学习体验,例如根据文本描述生成图像,或者根据图像内容回答问题。
客户服务: 可以用于构建更智能的聊天机器人,能够理解和回应用户的多模态查询。
辅助设计: 可以帮助设计师生成创意概念,并将其转化为可视化原型

1 启动Anaconda环境

在这里插入图片描述

在这里插入图片描述

2 进入命令环境

conda create -n myenv python=3.10 -y

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

cd Janus

pip install -e .

pip install webencodings beautifulsoup4 tinycss2

pip install -e .[gradio]

pip install 'pexpect>4.3'

python demo/app_januspro.py

3 遇到默认配置下C盘磁盘空间不足问题

(myenvp) C:\Users\Administrator>python demo/app_januspro.py
python: can't open file 'C:\\Users\\Administrator\\demo\\app_januspro.py': [Errno 2] No such file or directory

(myenvp) C:\Users\Administrator>e:

(myenvp) E:\>cd ai


(myenvp) E:\AI>cd Janus



(myenvp) E:\AI\Janus>dir
 驱动器 E 中的卷是 chia-12T-1
 卷的序列号是 0AF0-159B

 E:\AI\Janus 的目录

2025/01/31  12:26    <DIR>          .
2025/01/30  00:53    <DIR>          ..
2025/01/30  00:53               115 .gitattributes
2025/01/30  00:53             7,301 .gitignore
2025/01/30  01:47    <DIR>          .gradio
2025/01/30  01:18    <DIR>          .locks
2025/01/31  12:26                 0 4.3'
2025/01/30  00:53    <DIR>          demo
2025/01/30  00:53             4,515 generation_inference.py
2025/01/30  00:53    <DIR>          images
2025/01/30  00:53             2,642 inference.py
2025/01/30  00:53             5,188 interactivechat.py
2025/01/30  01:04    <DIR>          janus
2025/01/31  12:25    <DIR>          janus.egg-info
2025/01/30  00:53         2,846,268 janus_pro_tech_report.pdf
2025/01/30  00:53             1,065 LICENSE-CODE
2025/01/30  00:53            13,718 LICENSE-MODEL
2025/01/30  00:53             3,069 Makefile
2025/01/30  01:47    <DIR>          models--deepseek-ai--Janus-Pro-7B
2025/01/30  00:53             1,111 pyproject.toml
2025/01/30  00:53            26,742 README.md
2025/01/30  00:53               278 requirements.txt
2025/01/30  01:18                 1 version.txt
              14 个文件      2,912,013 字节
               9 个目录 9,387,683,614,720 可用字节

3.1 设置HF_DATASETS_CACHE环境变量没解决问题

(myenvp) E:\AI\Janus>set HF_DATASETS_CACHE="E:\AI\Janus"


(myenvp) E:\AI\Janus>python demo/app_januspro.py
Python version is above 3.10, patching the collections module.
D:\anaconda3\envs\myenvp\lib\site-packages\transformers\models\auto\image_processing_auto.py:590: FutureWarning: The image_processor_class argument is deprecated and will be removed in v4.42. Please use `slow_image_processor_class`, or `fast_image_processor_class` instead
  warnings.warn(
Downloading shards:   0%|                                                                        | 0/2 [00:00<?, ?it/s]D:\anaconda3\envs\myenvp\lib\site-packages\huggingface_hub\file_download.py:651: UserWarning: Not enough free disk space to download the file. The expected file size is: 9988.18 MB. The target location C:\Users\Administrator\.cache\huggingface\hub\models--deepseek-ai--Janus-Pro-7B\blobs only has 8154.37 MB free disk space.
  warnings.warn(
pytorch_model-00001-of-00002.bin:  37%|███████████████▉                           | 3.71G/9.99G [00:05<02:38, 39.5MB/s]
Downloading shards:   0%|                                                                        | 0/2 [00:06<?, ?it/s]
Traceback (most recent call last):
  File "E:\AI\Janus\demo\app_januspro.py", line 19, in <module>
    vl_gpt = AutoModelForCausalLM.from_pretrained(model_path,
  File "D:\anaconda3\envs\myenvp\lib\site-packages\transformers\models\auto\auto_factory.py", line 564, in from_pretrained
    return model_class.from_pretrained(
  File "D:\anaconda3\envs\myenvp\lib\site-packages\transformers\modeling_utils.py", line 3944, in from_pretrained
    resolved_archive_file, sharded_metadata = get_checkpoint_shard_files(
  File "D:\anaconda3\envs\myenvp\lib\site-packages\transformers\utils\hub.py", line 1098, in get_checkpoint_shard_files
    cached_filename = cached_file(
  File "D:\anaconda3\envs\myenvp\lib\site-packages\transformers\utils\hub.py", line 403, in cached_file
    resolved_file = hf_hub_download(
  File "D:\anaconda3\envs\myenvp\lib\site-packages\huggingface_hub\utils\_validators.py", line 114, in _inner_fn
    return fn(*args, **kwargs)
  File "D:\anaconda3\envs\myenvp\lib\site-packages\huggingface_hub\file_download.py", line 860, in hf_hub_download
    return _hf_hub_download_to_cache_dir(
  File "D:\anaconda3\envs\myenvp\lib\site-packages\huggingface_hub\file_download.py", line 1009, in _hf_hub_download_to_cache_dir
    _download_to_tmp_and_move(
  File "D:\anaconda3\envs\myenvp\lib\site-packages\huggingface_hub\file_download.py", line 1543, in _download_to_tmp_and_move
    http_get(
  File "D:\anaconda3\envs\myenvp\lib\site-packages\huggingface_hub\file_download.py", line 452, in http_get
    for chunk in r.iter_content(chunk_size=constants.DOWNLOAD_CHUNK_SIZE):
  File "D:\anaconda3\envs\myenvp\lib\site-packages\requests\models.py", line 820, in generate
    yield from self.raw.stream(chunk_size, decode_content=True)
  File "D:\anaconda3\envs\myenvp\lib\site-packages\urllib3\response.py", line 1066, in stream
    data = self.read(amt=amt, decode_content=decode_content)
  File "D:\anaconda3\envs\myenvp\lib\site-packages\urllib3\response.py", line 955, in read
    data = self._raw_read(amt)
  File "D:\anaconda3\envs\myenvp\lib\site-packages\urllib3\response.py", line 879, in _raw_read
    data = self._fp_read(amt, read1=read1) if not fp_closed else b""
  File "D:\anaconda3\envs\myenvp\lib\site-packages\urllib3\response.py", line 862, in _fp_read
    return self._fp.read(amt) if amt is not None else self._fp.read()
  File "D:\anaconda3\envs\myenvp\lib\http\client.py", line 466, in read
    s = self.fp.read(amt)
  File "D:\anaconda3\envs\myenvp\lib\socket.py", line 717, in readinto
    return self._sock.recv_into(b)
  File "D:\anaconda3\envs\myenvp\lib\ssl.py", line 1307, in recv_into
    return self.read(nbytes, buffer)
  File "D:\anaconda3\envs\myenvp\lib\ssl.py", line 1163, in read
    return self._sslobj.read(len, buffer)
KeyboardInterrupt
^C

3.2 设置环境变量HF_HOME解决问题

(myenvp) E:\AI\Janus>set HF_HOME=E:\AI\Janus

(myenvp) E:\AI\Janus>python demo/app_januspro.py
Python version is above 3.10, patching the collections module.
D:\anaconda3\envs\myenvp\lib\site-packages\transformers\models\auto\image_processing_auto.py:590: FutureWarning: The image_processor_class argument is deprecated and will be removed in v4.42. Please use `slow_image_processor_class`, or `fast_image_processor_class` instead
  warnings.warn(
config.json: 100%|████████████████████████████████████████████████████████████████████████| 1.28k/1.28k [00:00<?, ?B/s]
pytorch_model.bin.index.json: 100%|███████████████████████████████████████████████| 89.0k/89.0k [00:00<00:00, 1.67MB/s]
model.safetensors.index.json: 100%|███████████████████████████████████████████████| 92.8k/92.8k [00:00<00:00, 2.99MB/s]
pytorch_model-00001-of-00002.bin:  15%|██████▌                                    | 1.53G/9.99G [00:37<03:26, 41.0MB/s]
Downloading shards:   0%|                                                                        | 0/2 [00:37<?, ?it/s]
Traceback (most recent call last):
  File "E:\AI\Janus\demo\app_januspro.py", line 19, in <module>
    vl_gpt = AutoModelForCausalLM.from_pretrained(model_path,
  File "D:\anaconda3\envs\myenvp\lib\site-packages\transformers\models\auto\auto_factory.py", line 564, in from_pretrained
    return model_class.from_pretrained(
  File "D:\anaconda3\envs\myenvp\lib\site-packages\transformers\modeling_utils.py", line 3944, in from_pretrained
    resolved_archive_file, sharded_metadata = get_checkpoint_shard_files(
  File "D:\anaconda3\envs\myenvp\lib\site-packages\transformers\utils\hub.py", line 1098, in get_checkpoint_shard_files
    cached_filename = cached_file(
  File "D:\anaconda3\envs\myenvp\lib\site-packages\transformers\utils\hub.py", line 403, in cached_file
    resolved_file = hf_hub_download(
  File "D:\anaconda3\envs\myenvp\lib\site-packages\huggingface_hub\utils\_validators.py", line 114, in _inner_fn
    return fn(*args, **kwargs)
  File "D:\anaconda3\envs\myenvp\lib\site-packages\huggingface_hub\file_download.py", line 860, in hf_hub_download
    return _hf_hub_download_to_cache_dir(
  File "D:\anaconda3\envs\myenvp\lib\site-packages\huggingface_hub\file_download.py", line 1009, in _hf_hub_download_to_cache_dir
    _download_to_tmp_and_move(
  File "D:\anaconda3\envs\myenvp\lib\site-packages\huggingface_hub\file_download.py", line 1543, in _download_to_tmp_and_move
    http_get(
  File "D:\anaconda3\envs\myenvp\lib\site-packages\huggingface_hub\file_download.py", line 452, in http_get
    for chunk in r.iter_content(chunk_size=constants.DOWNLOAD_CHUNK_SIZE):
  File "D:\anaconda3\envs\myenvp\lib\site-packages\requests\models.py", line 820, in generate
    yield from self.raw.stream(chunk_size, decode_content=True)
  File "D:\anaconda3\envs\myenvp\lib\site-packages\urllib3\response.py", line 1066, in stream
    data = self.read(amt=amt, decode_content=decode_content)
  File "D:\anaconda3\envs\myenvp\lib\site-packages\urllib3\response.py", line 955, in read
    data = self._raw_read(amt)
  File "D:\anaconda3\envs\myenvp\lib\site-packages\urllib3\response.py", line 879, in _raw_read
    data = self._fp_read(amt, read1=read1) if not fp_closed else b""
  File "D:\anaconda3\envs\myenvp\lib\site-packages\urllib3\response.py", line 862, in _fp_read
    return self._fp.read(amt) if amt is not None else self._fp.read()
  File "D:\anaconda3\envs\myenvp\lib\http\client.py", line 466, in read
    s = self.fp.read(amt)
  File "D:\anaconda3\envs\myenvp\lib\socket.py", line 717, in readinto
    return self._sock.recv_into(b)
  File "D:\anaconda3\envs\myenvp\lib\ssl.py", line 1307, in recv_into
    return self.read(nbytes, buffer)
  File "D:\anaconda3\envs\myenvp\lib\ssl.py", line 1163, in read
    return self._sslobj.read(len, buffer)
KeyboardInterrupt
^C

3.3 如果没下载好模型文件忽略这步

如果之前已经下载好模型文件,将models–deepseek-ai–Janus-Pro-7B目录拷贝到E:\AI\Janus\hub

(myenvp) E:\AI\Janus>python demo/app_januspro.py
Python version is above 3.10, patching the collections module.
D:\anaconda3\envs\myenvp\lib\site-packages\transformers\models\auto\image_processing_auto.py:590: FutureWarning: The image_processor_class argument is deprecated and will be removed in v4.42. Please use `slow_image_processor_class`, or `fast_image_processor_class` instead
  warnings.warn(
Loading checkpoint shards: 100%|█████████████████████████████████████████████████████████| 2/2 [00:44<00:00, 22.13s/it]
Using a slow image processor as `use_fast` is unset and a slow processor was saved with this model. `use_fast=True` will be the default behavior in v4.48, even if the model was saved with a slow processor. This will result in minor differences in outputs. You'll still be able to use a slow processor with `use_fast=False`.
You are using the default legacy behaviour of the <class 'transformers.models.llama.tokenization_llama_fast.LlamaTokenizerFast'>. This is expected, and simply means that the `legacy` (previous) behavior will be used so nothing changes for you. If you want to use the new behaviour, set `legacy=False`. This should only be set if you understand what it means, and thoroughly read the reason why this was added as explained in https://github.com/huggingface/transformers/pull/24565 - if you loaded a llama tokenizer from a GGUF file you can ignore this message.
Some kwargs in processor config are unused and will not have any effect: ignore_id, num_image_tokens, add_special_token, mask_prompt, image_tag, sft_format.
Running on local URL:  http://127.0.0.1:7860
IMPORTANT: You are using gradio version 3.48.0, however version 4.44.1 is available, please upgrade.
--------
Running on public URL: https://cf6180260c7448cc2b.gradio.live

This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run `gradio deploy` from Terminal to deploy to Spaces (https://huggingface.co/spaces)
Keyboard interruption in main thread... closing server.
Traceback (most recent call last):
  File "D:\anaconda3\envs\myenvp\lib\site-packages\gradio\blocks.py", line 2361, in block_thread
    time.sleep(0.1)
KeyboardInterrupt

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "E:\AI\Janus\demo\app_januspro.py", line 244, in <module>
    demo.launch(share=True)
  File "D:\anaconda3\envs\myenvp\lib\site-packages\gradio\blocks.py", line 2266, in launch
    self.block_thread()
  File "D:\anaconda3\envs\myenvp\lib\site-packages\gradio\blocks.py", line 2365, in block_thread
    self.server.close()
  File "D:\anaconda3\envs\myenvp\lib\site-packages\gradio\networking.py", line 75, in close
    self.thread.join()
  File "D:\anaconda3\envs\myenvp\lib\threading.py", line 1096, in join
    self._wait_for_tstate_lock()
  File "D:\anaconda3\envs\myenvp\lib\threading.py", line 1116, in _wait_for_tstate_lock
    if lock.acquire(block, timeout):
KeyboardInterrupt
Killing tunnel 127.0.0.1:7860 <> https://cf6180260c7448cc2b.gradio.live
^C

4 强制使用显卡

(myenvp) E:\AI\Janus>python demo/app_januspro.py --device cuda
Python version is above 3.10, patching the collections module.
D:\anaconda3\envs\myenvp\lib\site-packages\transformers\models\auto\image_processing_auto.py:590: FutureWarning: The image_processor_class argument is deprecated and will be removed in v4.42. Please use `slow_image_processor_class`, or `fast_image_processor_class` instead
  warnings.warn(
Loading checkpoint shards: 100%|█████████████████████████████████████████████████████████| 2/2 [00:06<00:00,  3.29s/it]
Using a slow image processor as `use_fast` is unset and a slow processor was saved with this model. `use_fast=True` will be the default behavior in v4.48, even if the model was saved with a slow processor. This will result in minor differences in outputs. You'll still be able to use a slow processor with `use_fast=False`.
You are using the default legacy behaviour of the <class 'transformers.models.llama.tokenization_llama_fast.LlamaTokenizerFast'>. This is expected, and simply means that the `legacy` (previous) behavior will be used so nothing changes for you. If you want to use the new behaviour, set `legacy=False`. This should only be set if you understand what it means, and thoroughly read the reason why this was added as explained in https://github.com/huggingface/transformers/pull/24565 - if you loaded a llama tokenizer from a GGUF file you can ignore this message.
Some kwargs in processor config are unused and will not have any effect: num_image_tokens, image_tag, ignore_id, mask_prompt, sft_format, add_special_token.
Running on local URL:  http://127.0.0.1:7860
IMPORTANT: You are using gradio version 3.48.0, however version 4.44.1 is available, please upgrade.
--------
Running on public URL: https://342ecb20d5120e7d8c.gradio.live

This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run `gradio deploy` from Terminal to deploy to Spaces (https://huggingface.co/spaces)
Keyboard interruption in main thread... closing server.
Traceback (most recent call last):
  File "D:\anaconda3\envs\myenvp\lib\site-packages\gradio\blocks.py", line 2361, in block_thread
    time.sleep(0.1)
KeyboardInterrupt

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "E:\AI\Janus\demo\app_januspro.py", line 244, in <module>
    demo.launch(share=True)
  File "D:\anaconda3\envs\myenvp\lib\site-packages\gradio\blocks.py", line 2266, in launch
    self.block_thread()
  File "D:\anaconda3\envs\myenvp\lib\site-packages\gradio\blocks.py", line 2365, in block_thread
    self.server.close()
  File "D:\anaconda3\envs\myenvp\lib\site-packages\gradio\networking.py", line 75, in close
    self.thread.join()
  File "D:\anaconda3\envs\myenvp\lib\threading.py", line 1096, in join
    self._wait_for_tstate_lock()
  File "D:\anaconda3\envs\myenvp\lib\threading.py", line 1116, in _wait_for_tstate_lock
    if lock.acquire(block, timeout):
KeyboardInterrupt
Killing tunnel 127.0.0.1:7860 <> https://342ecb20d5120e7d8c.gradio.live
^C

5 部分部署过程

(myenvp) E:\AI\Janus>pip install -e .
Obtaining file:///E:/AI/Janus
  Installing build dependencies ... done
  Checking if build backend supports build_editable ... done
  Getting requirements to build editable ... done
  Preparing editable metadata (pyproject.toml) ... done
Requirement already satisfied: torch>=2.0.1 in d:\anaconda3\envs\myenvp\lib\site-packages (from janus==1.0.0) (2.5.1+cu121)
Requirement already satisfied: transformers>=4.38.2 in d:\anaconda3\envs\myenvp\lib\site-packages (from janus==1.0.0) (4.48.1)
Requirement already satisfied: timm>=0.9.16 in d:\anaconda3\envs\myenvp\lib\site-packages (from janus==1.0.0) (1.0.14)
Requirement already satisfied: accelerate in d:\anaconda3\envs\myenvp\lib\site-packages (from janus==1.0.0) (1.3.0)
Requirement already satisfied: sentencepiece in d:\anaconda3\envs\myenvp\lib\site-packages (from janus==1.0.0) (0.1.96)
Requirement already satisfied: attrdict in d:\anaconda3\envs\myenvp\lib\site-packages (from janus==1.0.0) (2.0.1)
Requirement already satisfied: einops in d:\anaconda3\envs\myenvp\lib\site-packages (from janus==1.0.0) (0.8.0)
Requirement already satisfied: torchvision in d:\anaconda3\envs\myenvp\lib\site-packages (from timm>=0.9.16->janus==1.0.0) (0.20.1+cu121)
Requirement already satisfied: pyyaml in d:\anaconda3\envs\myenvp\lib\site-packages (from timm>=0.9.16->janus==1.0.0) (6.0.2)
Requirement already satisfied: huggingface_hub in d:\anaconda3\envs\myenvp\lib\site-packages (from timm>=0.9.16->janus==1.0.0) (0.28.0)
Requirement already satisfied: safetensors in d:\anaconda3\envs\myenvp\lib\site-packages (from timm>=0.9.16->janus==1.0.0) (0.5.2)
Requirement already satisfied: filelock in d:\anaconda3\envs\myenvp\lib\site-packages (from torch>=2.0.1->janus==1.0.0) (3.17.0)
Requirement already satisfied: typing-extensions>=4.8.0 in d:\anaconda3\envs\myenvp\lib\site-packages (from torch>=2.0.1->janus==1.0.0) (4.12.2)
Requirement already satisfied: networkx in d:\anaconda3\envs\myenvp\lib\site-packages (from torch>=2.0.1->janus==1.0.0) (3.4.2)
Requirement already satisfied: jinja2 in d:\anaconda3\envs\myenvp\lib\site-packages (from torch>=2.0.1->janus==1.0.0) (3.1.5)
Requirement already satisfied: fsspec in d:\anaconda3\envs\myenvp\lib\site-packages (from torch>=2.0.1->janus==1.0.0) (2024.12.0)
Requirement already satisfied: sympy==1.13.1 in d:\anaconda3\envs\myenvp\lib\site-packages (from torch>=2.0.1->janus==1.0.0) (1.13.1)
Requirement already satisfied: mpmath<1.4,>=1.1.0 in d:\anaconda3\envs\myenvp\lib\site-packages (from sympy==1.13.1->torch>=2.0.1->janus==1.0.0) (1.3.0)
Requirement already satisfied: numpy>=1.17 in d:\anaconda3\envs\myenvp\lib\site-packages (from transformers>=4.38.2->janus==1.0.0) (1.26.4)
Requirement already satisfied: packaging>=20.0 in d:\anaconda3\envs\myenvp\lib\site-packages (from transformers>=4.38.2->janus==1.0.0) (24.2)
Requirement already satisfied: regex!=2019.12.17 in d:\anaconda3\envs\myenvp\lib\site-packages (from transformers>=4.38.2->janus==1.0.0) (2024.11.6)
Requirement already satisfied: requests in d:\anaconda3\envs\myenvp\lib\site-packages (from transformers>=4.38.2->janus==1.0.0) (2.32.3)
Requirement already satisfied: tokenizers<0.22,>=0.21 in d:\anaconda3\envs\myenvp\lib\site-packages (from transformers>=4.38.2->janus==1.0.0) (0.21.0)
Requirement already satisfied: tqdm>=4.27 in d:\anaconda3\envs\myenvp\lib\site-packages (from transformers>=4.38.2->janus==1.0.0) (4.64.0)
Requirement already satisfied: psutil in d:\anaconda3\envs\myenvp\lib\site-packages (from accelerate->janus==1.0.0) (6.1.1)
Requirement already satisfied: six in d:\anaconda3\envs\myenvp\lib\site-packages (from attrdict->janus==1.0.0) (1.17.0)
Requirement already satisfied: colorama in d:\anaconda3\envs\myenvp\lib\site-packages (from tqdm>=4.27->transformers>=4.38.2->janus==1.0.0) (0.4.5)
Requirement already satisfied: MarkupSafe>=2.0 in d:\anaconda3\envs\myenvp\lib\site-packages (from jinja2->torch>=2.0.1->janus==1.0.0) (2.1.5)
Requirement already satisfied: charset-normalizer<4,>=2 in d:\anaconda3\envs\myenvp\lib\site-packages (from requests->transformers>=4.38.2->janus==1.0.0) (3.4.1)
Requirement already satisfied: idna<4,>=2.5 in d:\anaconda3\envs\myenvp\lib\site-packages (from requests->transformers>=4.38.2->janus==1.0.0) (3.10)
Requirement already satisfied: urllib3<3,>=1.21.1 in d:\anaconda3\envs\myenvp\lib\site-packages (from requests->transformers>=4.38.2->janus==1.0.0) (2.3.0)
Requirement already satisfied: certifi>=2017.4.17 in d:\anaconda3\envs\myenvp\lib\site-packages (from requests->transformers>=4.38.2->janus==1.0.0) (2024.12.14)
Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in d:\anaconda3\envs\myenvp\lib\site-packages (from torchvision->timm>=0.9.16->janus==1.0.0) (10.4.0)
Building wheels for collected packages: janus
  Building editable for janus (pyproject.toml) ... done
  Created wheel for janus: filename=janus-1.0.0-0.editable-py3-none-any.whl size=16196 sha256=cdb0ebb0c36046bf768a84cbf9208824eadb31fadea888f3b6ff102de576f743
  Stored in directory: C:\Users\Administrator\AppData\Local\Temp\pip-ephem-wheel-cache-dhnej7iy\wheels\e4\87\ba\dd6e5c70086c786d25bcd3e6bddaeb7c46f5ae69dc25ea8be0
Successfully built janus
Installing collected packages: janus
  Attempting uninstall: janus
    Found existing installation: janus 1.0.0
    Uninstalling janus-1.0.0:
      Successfully uninstalled janus-1.0.0
Successfully installed janus-1.0.0

(myenvp) E:\AI\Janus>pip install webencodings beautifulsoup4 tinycss2
Requirement already satisfied: webencodings in d:\anaconda3\envs\myenvp\lib\site-packages (0.5.1)
Requirement already satisfied: beautifulsoup4 in d:\anaconda3\envs\myenvp\lib\site-packages (4.12.3)
Requirement already satisfied: tinycss2 in d:\anaconda3\envs\myenvp\lib\site-packages (1.4.0)
Requirement already satisfied: soupsieve>1.2 in d:\anaconda3\envs\myenvp\lib\site-packages (from beautifulsoup4) (2.6)

(myenvp) E:\AI\Janus>pip install 'pexpect>4.3'
ERROR: Invalid requirement: "'pexpect": Expected package name at the start of dependency specifier
    'pexpect
    ^

(myenvp) E:\AI\Janus>pip install 'pexpect>4.3'
ERROR: Invalid requirement: "'pexpect": Expected package name at the start of dependency specifier
    'pexpect
    ^

(myenvp) E:\AI\Janus>pip install "pexpect>4.3"
Requirement already satisfied: pexpect>4.3 in d:\anaconda3\envs\myenvp\lib\site-packages (4.9.0)
Requirement already satisfied: ptyprocess>=0.5 in d:\anaconda3\envs\myenvp\lib\site-packages (from pexpect>4.3) (0.7.0)

(myenvp) E:\AI\Janus>python demo/app_januspro.py
Python version is above 3.10, patching the collections module.
D:\anaconda3\envs\myenvp\lib\site-packages\transformers\models\auto\image_processing_auto.py:590: FutureWarning: The image_processor_class argument is deprecated and will be removed in v4.42. Please use `slow_image_processor_class`, or `fast_image_processor_class` instead
  warnings.warn(
Loading checkpoint shards: 100%|█████████████████████████████████████████████████████████| 2/2 [00:06<00:00,  3.25s/it]
Using a slow image processor as `use_fast` is unset and a slow processor was saved with this model. `use_fast=True` will be the default behavior in v4.48, even if the model was saved with a slow processor. This will result in minor differences in outputs. You'll still be able to use a slow processor with `use_fast=False`.
You are using the default legacy behaviour of the <class 'transformers.models.llama.tokenization_llama_fast.LlamaTokenizerFast'>. This is expected, and simply means that the `legacy` (previous) behavior will be used so nothing changes for you. If you want to use the new behaviour, set `legacy=False`. This should only be set if you understand what it means, and thoroughly read the reason why this was added as explained in https://github.com/huggingface/transformers/pull/24565 - if you loaded a llama tokenizer from a GGUF file you can ignore this message.
Some kwargs in processor config are unused and will not have any effect: ignore_id, sft_format, image_tag, num_image_tokens, mask_prompt, add_special_token.
Running on local URL:  http://127.0.0.1:7860
IMPORTANT: You are using gradio version 3.48.0, however version 4.44.1 is available, please upgrade.
--------
Running on public URL: https://b0590adff3d54b2255.gradio.live

This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run `gradio deploy` from Terminal to deploy to Spaces (https://huggingface.co/spaces)
Keyboard interruption in main thread... closing server.
Killing tunnel 127.0.0.1:7860 <> https://b0590adff3d54b2255.gradio.live

(myenvp) E:\AI\Janus>python demo/app_januspro.py --device cuda
Python version is above 3.10, patching the collections module.
D:\anaconda3\envs\myenvp\lib\site-packages\transformers\models\auto\image_processing_auto.py:590: FutureWarning: The image_processor_class argument is deprecated and will be removed in v4.42. Please use `slow_image_processor_class`, or `fast_image_processor_class` instead
  warnings.warn(
Loading checkpoint shards: 100%|█████████████████████████████████████████████████████████| 2/2 [00:06<00:00,  3.05s/it]
Using a slow image processor as `use_fast` is unset and a slow processor was saved with this model. `use_fast=True` will be the default behavior in v4.48, even if the model was saved with a slow processor. This will result in minor differences in outputs. You'll still be able to use a slow processor with `use_fast=False`.
You are using the default legacy behaviour of the <class 'transformers.models.llama.tokenization_llama_fast.LlamaTokenizerFast'>. This is expected, and simply means that the `legacy` (previous) behavior will be used so nothing changes for you. If you want to use the new behaviour, set `legacy=False`. This should only be set if you understand what it means, and thoroughly read the reason why this was added as explained in https://github.com/huggingface/transformers/pull/24565 - if you loaded a llama tokenizer from a GGUF file you can ignore this message.
Some kwargs in processor config are unused and will not have any effect: image_tag, sft_format, ignore_id, add_special_token, num_image_tokens, mask_prompt.
Running on local URL:  http://127.0.0.1:7860
IMPORTANT: You are using gradio version 3.48.0, however version 4.44.1 is available, please upgrade.
--------
Running on public URL: https://72d4294c2d37f91dc8.gradio.live

This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run `gradio deploy` from Terminal to deploy to Spaces (https://huggingface.co/spaces)

6 使用效果

6.1 识别图片

在这里插入图片描述

在这里插入图片描述

6.2 文生图

在这里插入图片描述

6.2.1 浣熊师父身穿滴水服装,扮演街头歹徒。

Master shifu racoon wearing drip attire as a street gangster.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.2.2 美丽女孩的脸

The face of a beautiful girl
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

6.2.3 丛林中的宇航员,冷色调,柔和的色彩,细节丰富,8k

Astronaut in a jungle, cold color palette, muted colors, detailed, 8k
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.2.4 反光面上的一杯红酒。

A glass of red wine on a reflective surface.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.2.5 一只可爱又迷人的小狐狸,有着大大的棕色眼睛,背景中秋叶迷人,永恒、蓬松、闪亮的鬃毛、花瓣、童话般的氛围,虚幻引擎 5 和 Octane 渲染器,细节丰富,具有照片级真实感,具有电影感,色彩自然。

A cute and adorable baby fox with big brown eyes, autumn leaves in the background enchanting,immortal,fluffy, shiny mane,Petals,fairyism,unreal engine 5 and Octane Render,highly detailed, photorealistic, cinematic, natural colors.
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.2.6 这幅画中的眼睛设计精巧,背景为圆形,饰有华丽的漩涡图案,既有现实主义的色彩,也有超现实主义的色彩。画中焦点是一只鲜艳的蓝色虹膜,周围环绕着从瞳孔向外辐射的细纹,营造出深度和强度。睫毛又长又黑,在周围的皮肤上投下微妙的阴影,皮肤看起来很光滑,但略带纹理,仿佛随着时间的流逝而老化或风化。眼睛上方有一个类似古典建筑的石头结构,为构图增添了神秘感和永恒的优雅。这一建筑元素与周围的有机曲线形成鲜明而和谐的对比。眼睛下方是另一个让人联想到巴洛克艺术的装饰图案,进一步增强了每个精心制作的细节所蕴含的整体永恒感。总体而言,氛围散发着一种神秘的气氛,与暗示永恒的元素无缝交织在一起,通过现实纹理和超现实艺术的并置实现。每一个组成部分——从吸引眼球的复杂设计到上方古老的石块——都以独特的方式创造出充满神秘魅力的视觉盛宴。

The image features an intricately designed eye set against a circular backdrop adorned with ornate swirl patterns that evoke both realism and surrealism. At the center of attention is a strikingly vivid blue iris surrounded by delicate veins radiating outward from the pupil to create depth and intensity. The eyelashes are long and dark, casting subtle shadows on the skin around them which appears smooth yet slightly textured as if aged or weathered over time.

Above the eye, there’s a stone-like structure resembling part of classical architecture, adding layers of mystery and timeless elegance to the composition. This architectural element contrasts sharply but harmoniously with the organic curves surrounding it. Below the eye lies another decorative motif reminiscent of baroque artistry, further enhancing the overall sense of eternity encapsulated within each meticulously crafted detail.

Overall, the atmosphere exudes a mysterious aura intertwined seamlessly with elements suggesting timelessness, achieved through the juxtaposition of realistic textures and surreal artistic flourishes. Each component—from the intricate designs framing the eye to the ancient-looking stone piece above—contributes uniquely towards creating a visually captivating tableau imbued with enigmatic allure.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/962508.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

从 UTC 日期时间字符串获取 Unix 时间戳:C 和 C++ 中的挑战与解决方案

在编程世界里&#xff0c;从 UTC 日期时间字符串获取 Unix 时间戳&#xff0c;看似简单&#xff0c;实则暗藏玄机。你以为输入一个像 “Fri, 17 Jan 2025 06:07:07” 这样的 UTC 时间&#xff0c;然后轻松得到 1737094027&#xff08;从 1970 年 1 月 1 日 00:00:00 UTC 开始经…

Linux——网络(tcp)

文章目录 目录 文章目录 前言 一、TCP逻辑 1. 面向连接 三次握手&#xff08;建立连接&#xff09; 四次挥手&#xff08;关闭连接&#xff09; 2. 可靠性 3. 流量控制 4. 拥塞控制 5. 基于字节流 6. 全双工通信 7. 状态机 8. TCP头部结构 9. TCP的应用场景 二、编写tcp代码函数…

51单片机(STC89C52)开发:点亮一个小灯

软件安装&#xff1a; 安装开发板CH340驱动。 安装KEILC51开发软件&#xff1a;C51V901.exe。 下载软件&#xff1a;PZ-ISP.exe 创建项目&#xff1a; 新建main.c 将main.c加入至项目中&#xff1a; main.c:点亮一个小灯 #include "reg52.h"sbit LED1P2^0; //P2的…

力扣116. 填充每个节点的下一个右侧节点指针

Problem: 116. 填充每个节点的下一个右侧节点指针 文章目录 题目描述思路复杂度Code 题目描述 思路 遍历思想(利用二叉树的先序遍历) 本题目的难点在于对于不同父节点的邻接问题因此我们可以抽象将两两节点为一组&#xff08;不同父节点的两个孩子节点也抽象为一组&#xff09…

k8s简介,k8s环境搭建

目录 K8s简介环境搭建和准备工作修改主机名&#xff08;所有节点&#xff09;配置静态IP&#xff08;所有节点&#xff09;关闭防火墙和seLinux&#xff0c;清除iptables规则&#xff08;所有节点&#xff09;关闭交换分区&#xff08;所有节点&#xff09;修改/etc/hosts文件&…

苯乙醇苷类化合物的从头生物合成-文献精读108

Complete pathway elucidation of echinacoside in Cistanche tubulosa and de novo biosynthesis of phenylethanoid glycosides 管花肉苁蓉中松果菊苷全生物合成途径解析及苯乙醇苷类化合物的从头生物合成 摘要 松果菊苷&#xff08;ECH&#xff09;是最具代表性的苯乙醇苷…

C++ 新特性实现 ThreadPool

序言 在之前我们实现过线程池&#xff0c;但是非常基础。答题思路就是实现一个安全的队列&#xff0c;再通过 ThreadPool 来管理队列和线程&#xff0c;对外提供一个接口放入需要执行的函数&#xff0c;但是这个函数是无参无返回值的。  参数的问题我们可以使用 bind 来封装&a…

网络攻防实战指北专栏讲解大纲与网络安全法

专栏 本专栏为网络攻防实战指北&#xff0c;大纲如下所示 进度&#xff1a;目前已更完准备篇、HTML基础 计划&#xff1a;所谓基础不牢&#xff0c;地动山摇。所以下一步将持续更新基础篇内容 讲解信息安全时&#xff0c;结合《中华人民共和国网络安全法》&#xff08;以下简…

计算机网络——流量控制

流量控制的基本方法是确保发送方不会以超过接收方处理能力的速度发送数据包。 通常的做法是接收方会向发送方提供某种反馈&#xff0c;如&#xff1a; &#xff08;1&#xff09;停止&等待 在任何时候只有一个数据包在传输&#xff0c;发送方发送一个数据包&#xff0c;…

知识库管理系统助力企业实现知识共享与创新价值的转型之道

内容概要 知识库管理系统&#xff08;KMS&#xff09;作为现代企业知识管理的重要组成部分&#xff0c;其定义涵盖了系统化捕捉、存储、共享和应用知识的过程。这类系统通过集成各种信息来源&#xff0c;不仅为员工提供了一个集中式的知识平台&#xff0c;还以其结构化的方式提…

⼆叉树的存储(上)c++

在前几天写的树&#xff0c;我们已经了解到树的存储&#xff0c;⼆叉树也是树&#xff0c;也是可以⽤vector数组或者链式前向星来存储。仅需在存储的过程中标记谁是左孩⼦&#xff0c;谁是右孩⼦即可。 ⽐如⽤ vector 数组存储时&#xff0c;可以先尾插左孩⼦&#xff0c;再尾…

2025创业思路和方向有哪些?

创业思路和方向是决定创业成功与否的关键因素。以下是一些基于找到的参考内容的创业思路和方向&#xff0c;旨在激发创业灵感&#xff1a; 一、技术创新与融合&#xff1a; 1、智能手机与云电视结合&#xff1a;开发集成智能手机功能的云电视&#xff0c;提供通讯、娱乐一体化体…

研发的护城河到底是什么?

0 你的问题&#xff0c;我知道&#xff01; 和大厂朋友聊天&#xff0c;他感叹原来努力干活&#xff0c;做靠谱研发&#xff0c;积累职场经验&#xff0c;干下来&#xff0c;职业发展一般问题不大。而如今大厂“年轻化”&#xff0c;靠谱再不能为自己续航&#xff0c;企业似乎…

FreeRTOS从入门到精通 第十五章(事件标志组)

参考教程&#xff1a;【正点原子】手把手教你学FreeRTOS实时系统_哔哩哔哩_bilibili 一、事件标志组简介 1、概述 &#xff08;1&#xff09;事件标志位是一个“位”&#xff0c;用来表示事件是否发生。 &#xff08;2&#xff09;事件标志组是一组事件标志位的集合&#x…

学习数据结构(5)单向链表的实现

&#xff08;1&#xff09;头部插入 &#xff08;2&#xff09;尾部删除 &#xff08;3&#xff09;头部删除 &#xff08;4&#xff09;查找 &#xff08;5&#xff09;在指定位置之前插入节点 &#xff08;6&#xff09;在指定位置之后插入节点 &#xff08;7&#xff09;删除…

Golang :用Redis构建高效灵活的应用程序

在当前的应用程序开发中&#xff0c;高效的数据存储和检索的必要性已经变得至关重要。Redis是一个快速的、开源的、内存中的数据结构存储&#xff0c;为各种应用场景提供了可靠的解决方案。在这个完整的指南中&#xff0c;我们将学习什么是Redis&#xff0c;通过Docker Compose…

18 大量数据的异步查询方案

在分布式的应用中分库分表大家都已经熟知了。如果我们的程序中需要做一个模糊查询&#xff0c;那就涉及到跨库搜索的情况&#xff0c;这个时候需要看中间件能不能支持跨库求交集的功能。比如mycat就不支持跨库查询&#xff0c;当然现在mycat也渐渐被摒弃了(没有处理笛卡尔交集的…

Redis代金卷(优惠卷)秒杀案例-单应用版

优惠卷表:优惠卷基本信息,优惠金额,使用规则 包含普通优惠卷和特价优惠卷(秒杀卷) 优惠卷的库存表:优惠卷的库存,开始抢购时间,结束抢购时间.只有特价优惠卷(秒杀卷)才需要填写这些信息 优惠卷订单表 卷的表里已经有一条普通优惠卷记录 下面首先新增一条秒杀优惠卷记录 { &quo…

编程题-三数之和(中等)

题目&#xff1a; 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。注意&#xff1a;答案中不可以包含重复的三…

过年回家的意义,

年前&#xff0c;我特想让家里人到深圳过年&#xff0c;想让他们看看深圳&#xff0c;看看外面好玩的样子&#xff0c;跟我妈提了两次&#xff0c;她两次的借口都是家里养着的那几头猪&#xff0c;还有好多鸡鸭要喂&#xff0c;说家里一定得要有人守&#xff0c;人走远是不行的…