Python AI 之PhotoMaker 安装总结

PhotoMaker  官方文档

PhotoMaker GitHub 地址:https://github.com/TencentARC/PhotoMaker

PhotoMaker  Windows 安装

温馨提示:PhotoMaker 官网github 版本为通用版本,如果是Windows系统安装PhotoMarker 需要使用截图下的版本:

 第一步:Windows 虚拟环境创建和安装,执行如下指令:

conda create --name photomaker python=3.10  #创建虚拟环境名称photomaker,并指定Python 版本3.10
conda activate photomaker                   #激活虚拟环境photomaker
pip install -U pip                          # 包管理工具pip 更新# Install requirements
pip install -r requirements.txt             #安装Photomaker 所需依赖包

 第二步:Windows 安装Pytorch 环境

打开pytorch 官网:PyTorch

拷贝运行指令在虚拟环境pytorch 中执行: 

pip3 install torch torchvision torchaudio

PhotoMaker 运行

第一种:自己编写Python 脚本调用Photomaker。

  • 1 在Photomaker 项目下添加run.py 文件

  • 2 编写run.py 代码已经在Photomaker 官网提供。这里将需要修改的片段坐下简单说明。

加载模型

import torch
import os
from diffusers.utils import load_image
from diffusers import EulerDiscreteScheduler
from photomaker.pipeline import PhotoMakerStableDiffusionXLPipeline### Load base model
pipe = PhotoMakerStableDiffusionXLPipeline.from_pretrained(base_model_path,  # can change to any base model based on SDXLtorch_dtype=torch.bfloat16, use_safetensors=True, variant="fp16"
).to(device)### Load PhotoMaker checkpoint
pipe.load_photomaker_adapter(os.path.dirname(photomaker_path),subfolder="",weight_name=os.path.basename(photomaker_path),trigger_word="img"  # define the trigger word
)     pipe.scheduler = EulerDiscreteScheduler.from_config(pipe.scheduler.config)### Also can cooperate with other LoRA modules
# pipe.load_lora_weights(os.path.dirname(lora_path), weight_name=lora_model_name, adapter_name="xl_more_art-full")
# pipe.set_adapters(["photomaker", "xl_more_art-full"], adapter_weights=[1.0, 0.5])pipe.fuse_lora()

主要用于:负责加载图像生成模型,这里我们使用 RealVisXL_V3.0,接着为模型挂在 Adapter 也就是论问题提到的 PhotoMaker 的 bin 文件,同时注意修改 device 变量,相当于要修改:

bass_model_path、photomaker_path 以及 device

录入图像

### define the input ID images
input_folder_name = './examples/newton_man'
image_basename_list = os.listdir(input_folder_name)
image_path_list = sorted([os.path.join(input_folder_name, basename) for basename in image_basename_list])input_id_images = []
for image_path in image_path_list:input_id_images.append(load_image(image_path))

使用 Photomaker提供的 newton_man 的示例图像,可以看到其基于 list 读取,根据 README 的介绍,一个角色的图像越多,生成的会越精准或者和你的图像越像.

执行

# Note that the trigger word `img` must follow the class word for personalization
prompt = "a half-body portrait of a man img wearing the sunglasses in Iron man suit, best quality"
negative_prompt = "(asymmetry, worst quality, low quality, illustration, 3d, 2d, painting, cartoons, sketch), open mouth, grayscale"
generator = torch.Generator(device=device).manual_seed(42)
images = pipe(prompt=prompt,input_id_images=input_id_images,negative_prompt=negative_prompt,num_images_per_prompt=1,num_inference_steps=num_steps,start_merge_step=10,generator=generator,
).images[0]
gen_images.save('out_photomaker.png')

# 请注意,触发器单词 "img" 必须跟在类别单词后面才能进行个性化设置:

 含义:一个男人的半身像 img 戴着钢铁侠套装的太阳镜,质量最好

这里 Class Word 类别单词就是 a half-body portrait of a man 即一个男人半身像,img trigger 会基于这个类别 + img 后的个性化描述,结合你的 Input Image 的人脸。

将上面三部分的代码粘贴至 run.py 中,并 activate 激活我们的环境。 

device - 指定到对应设备,需自己添加该参数。

base_model_path - 下载的生成模型地址

photomaker_path - photomaker bin 文件地址

num_steps - 生成步数

第二种:运行Photomaker 携带gradio demo

 运行网页版请执行如下命令:

python gradio_demo/app.py

PhotoMaker  安装发生的问题

问题一:

  File "D:\anaconda3\envs\photemaker\lib\multiprocessing\context.py", line 193, in get_contextraise ValueError('cannot find context for %r' % method) from None
ValueError: cannot find context for 'fork'

解决办法:使用spawn 替换fork

pip install spawn

代码:PhotoMaker\gradio_demo\app.py

问题二:

 File "D:\anaconda3\envs\photemaker\lib\site-packages\luigi\parameter.py", line 29, in <module>from collections import OrderedDict, Mapping
ImportError: cannot import name 'Mapping' from 'collections' (D:\anaconda3\envs\photemaker\lib\collections\__init__.py)

 解决办法:

将
from collections import Mapping, OrderedDict
修改为
from collections.abc import Mapping
from collections import OrderedDict

问题原因:Python3.10 版本调整相关基础包的存放位置造成。 

问题三:

 File "D:\anaconda3\envs\photemaker\lib\site-packages\luigi\scheduler.py", line 207, in <module>class OrderedSet(collections.MutableSet):
AttributeError: module 'collections' has no attribute 'MutableSet'

解决办法:

将collections.MutableSet 修改为collections.abc.MutableMapping

问题原因:Python3.10 版本调整相关基础包的存放位置造成。  

 问题四:

Traceback (most recent call last):File "E:\python_ai\PhotoMaker\gradio_demo\app.py", line 14, in <module>from photomaker import PhotoMakerStableDiffusionXLPipeline
ModuleNotFoundError: No module named 'photomaker'

解决办法:

import sys
sys.path.append('../photomaker')

知识拓展

huggingface 修改缓存地址

1、修改系统环境变量

  1. 打开环境变量的设置界面。设置系统变量。
  2. 输入变量名XDG_CACHE_HOME 和变量值为新缓存路径的根路径 (例如 D:\cache)。
  3. 点击"确定"保存,电脑重启后生效。

这样,以后的缓存结构将会是:

模型缓存:D:\cache\huggingface\transformers或D:\cache\huggingface\hub(一般是这里)
数据集缓存:D:\cache\huggingface\datasets
此外metrics和modules也分别是在D:\cache\huggingface\metrics和D:\cache\huggingface\modules之下。

huggingface下载

现状:国内无法正常访问脸蛋网:https://huggingface.co/,原由自己Google 或百度一下。现在国内出现了脸蛋网国内镜像地址:https://hf-mirror.com/ 

第一种方式:使用命令行下载。

(1) 安装依赖

pip install -U huggingface_hub


(2) 基本命令示例:

export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download --resume-download --local-dir-use-symlinks False bigscience/bloom-560m --local-dir bloom-560m

第二种方式:  直接URL下载

打开 https://hf-mirror.com/ 

检索相关模型: PhotoMaker

 

完成相关模型下载。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WEB三大组件之Filter

在很多项目中通常需要用到filter来实现用户身份识别&#xff0c;并将识别出来的用户信息&#xff0c;保存到ThreadLocal对应的上下文&#xff0c;这样在后续的请求链路中&#xff0c;在任何地方都可以直接获取当前的登录用户了。 来看一下Java WEB三大组件之一的过滤器Filter&…

云原生(三)、Docker网络

Docker网络 在 Docker 中&#xff0c;不同容器之间的网络访问原理取决于容器所使用的网络模式。下面是 Docker 中常见的两种网络模式下容器间网络访问的原理&#xff1a; 桥接模式&#xff08;Bridge&#xff09;&#xff1a; 在桥接模式下&#xff0c;Docker 使用 Linux 桥接…

【德语常识】分类单词

【德语常识】分类单词 一&#xff0c;Colors二&#xff0c;Countries & Languages三&#xff0c; 一&#xff0c;Colors 二&#xff0c;Countries & Languages 三&#xff0c;

二叉树算法

递归序 每个节点都能回到3次! 相当于2执行完然后返回了代码会往下走,来到3节点 小总结: 也就是4节点先来到自己一次,不会执行if,先调用自己左边的那个函数,但是是null,直接返回。 这个函数执行完了,就会回到自己,调用自己右边的那个函数,结果又是空,又返回,回到…

HarmonyOS NEXT应用开发之Web获取相机拍照图片案例

介绍 本示例介绍如何在HTML页面中拉起原生相机进行拍照&#xff0c;并获取返回的图片。 效果预览图 使用说明 点击HTML页面中的选择文件按钮&#xff0c;拉起原生相机进行拍照。完成拍照后&#xff0c;将图片在HTML的img标签中显示。 实现思路 添加Web组件&#xff0c;设置…

微信小程序 nodejs+vue+uninapp学生在线选课作业管理系统

基于微信小程序的班级作业管理助手使用的是MySQL数据库&#xff0c;nodejs语言和IDEA以及微信开发者工具作为开发工具&#xff0c;这些技术和工具我在日常的作业中都经常的使用&#xff0c;并且因为对编程感兴趣&#xff0c;在闲暇时间也进行的进行编程的提高&#xff0c;所以在…

智能硬件 | XR头显市场只有少数玩家,AI是扭转局面的关键?

苹果头显设备Vision Pro突出2项技术&#xff0c;即“空间计算”和手部、眼部跟踪。“空间计算”使设备能够学习并与物理环境进行交互&#xff1b;手部和眼部跟踪功能通过从设备侧面、前置和底部安装的摄像头收集手部和眼球的感应数据&#xff0c;使用户能够操作虚拟环境并与之交…

VMware workstation pro 16 虚拟机的安装

VMware workstation pro 16 虚拟机的安装 VMware 16下载VMware 16安装VMware 16许可 VMware 16下载 下载地址&#xff1a; VMware workstation pro 16 官网下载地址 VMware 16安装 安装向导&#xff0c;点击下一步勾选我同意许可协议中的条款&#xff0c;点击下一步 更改安…

20.回文链表

给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为 回文链表 。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,2,1] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;head …

前端三件套 | 综合练习:模拟抽奖活动,实现一个简单的随机抽取并显示三名获胜者

随机运行结果如下&#xff1a; 参考代码如下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><tit…

Flink源码解析(1)TM启动

网络传输模型 首先在看之前,回顾一下akka模型: Flink通讯模型—Akka与Actor模型-CSDN博客 注:ActorRef就是actor的引用,封装好了actor 下面是jm和tm在通讯上的概念图: RpcGateway 不理解网关的作用,可以先移步看这里:网关_百度百科 (baidu.com) 用于定义RPC协议,是…

深入探索C与C++的混合编程

实现混合编程的技术细节 混合使用C和C可能由多种原因驱动。一方面&#xff0c;现有的大量优秀C语言库为特定任务提供了高效的解决方案&#xff0c;将这些库直接应用于C项目中可以节省大量的开发时间和成本。另一方面&#xff0c;C的高级特性如类、模板和异常处理等&#xff0c;…