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.mzph.cn/news/754209.shtml

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

相关文章

nvm安装和使用保姆级教程(详细)

一、 nvm是什么 &#xff1a; nvm全英文也叫node.js version management&#xff0c;是一个nodejs的版本管理工具。nvm和npm都是node.js版本管理工具&#xff0c;为了解决node.js各种版本存在不兼容现象可以通过它可以安装和切换不同版本的node.js。 二、卸载之前安装的node: …

【Spring MVC】Spring MVC拦截器(Interceptor)

目录 一、拦截器介绍 二、拦截器 Interceptor 定义 2.1 HandlerInterceptor接口 2.2 Spring MVC中提供的一些HandlerInterceptor接口实现类 1、AsyncHandlerInterceptor 2、WebRequestInterceptor 3、MappedInterceptor 4、ConversionServiceExposingInterceptor 三、拦…

creator-webview加载优化

title: creator-webview加载优化 categories: Cocos2dx tags: [cocos2dx, creator, webview, 优化, 加载, 性能] date: 2024-03-02 13:17:20 comments: false mathjax: true toc: true creator-webview加载优化 前篇 Android WebView shouldInterceptRequest - https://www.ji…

Linux——动静态库的制作及使用与动态库原理

目录 一、静态库 1.静态库的制作 2.静态库的使用 加载静态库方法一&#xff1a;安装头文件与库文件 加载静态库方法二&#xff1a;指定文件目录 二、动态库 1.动态库的制作 2.动态库的使用 方法一&#xff1a;安装到系统中 方法二&#xff1a;软链接 方法三&…

新火种AI|英伟达GTC大会在即,它能否撑住场面,为AI缔造下一个高度?

作者&#xff1a;小岩 编辑&#xff1a;彩云 英伟达不完全属于AI行业&#xff0c;但神奇的是&#xff0c;整个AI领域都有着英伟达的传说。因为几乎所有的AI巨头都需要英伟达的芯片来提供算力支持。 也正因此&#xff0c;纵使AI赛道人来人往&#xff0c;此起彼伏&#xff0c;…

Session会话绑定

1.需求原因 用户的请求,登录的请求,经过负载均衡后落到后面的web服务器上,登录的状态/信息也会记录在web服务器上,就会导致不通的web服务器上,登录状态不统一,造成用户频繁需要登录 2.目标&#xff1a;如何实现会话保持/会话共享 方案一&#xff1a;登录状态写入cookie中.(wor…

阿里云服务器centos安装msf教程

msf官方命令行一键安装 curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && chmod 755 msfinstall && ./msfinstall 稍微等待几分钟即可安装成功&am…

数据结构(四)——串的模式匹配

4.2 串的模式匹配 4.2.1_朴素模式匹配算法 字符串模式匹配&#xff1a;在主串中找到与模式串相同的⼦串&#xff0c;并返回其所在位置 主串⻓度为n&#xff0c;模式串⻓度为 m 朴素模式匹配算法&#xff1a;将主串中所有⻓度为m的⼦串依次与模式串对⽐&#xff0c;直到找到⼀…

代码随想录刷题day27|组合总和II组合总和II分割回文串

文章目录 day27学习内容一、组合总和-所选数字可重复1.1、代码-正确写法1.1.1、为什么递归取的是i而不是i1呢&#xff1f; 二、组合总和II-所选数字不可重复2.1、和39题有什么不同2.2、思路2.2.1、初始化2.2.2、主要步骤2.2.3、回溯函数 backTracking 2.3、正确写法12.3.1、为什…

传值、传址、空间释放详细图解

目录 前言 一.进程 1.1 进程的映射 1.2 进程的虚拟空间 二.函数传参 2.1 函数传参 2.2 函数传值 2.2.1 函数传值案例1 2.2.2 函数传值案例2 2.2.3 返回值为常量 2.3 函数传送地址 2.3 字符串使用 前言 详细介绍函数传值和传地址区别&#xff1a;进行数据操作的区别&#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;点击下一步 更改安…

被奔驰看上的“人”

上周五&#xff0c;人形机器人公司、NASA 合作伙伴 Apptronik 宣布已与梅赛德斯奔驰&#xff08;以下简称奔驰&#xff09;达成一项商业协议&#xff0c;试点将身高 1.7 米、体重 140 多斤的双足机器人 Apollo 用于制造业。奔驰也成为继宝马、蔚来汽车之后最新尝试人形机器人的…

nodejs实现链接shp的属性信息(替换字段或者追加字段)

写在前面 偶尔听到同事说一个数据处理重复性的流程太多&#xff0c;就了解了下&#xff0c;原来是1份shp数据对应着一个xls属性文件&#xff0c;需要把xls文件里的一部分属性更新到shp的相关字段中&#xff0c;当然这种操作是可以用ArcGIS或者QGIS实现&#xff0c;但是当数据特…

综合交易模型----可转债三低策略实盘qmt版,提供源代码

链接 综合交易模型----可转债三低策略实盘qmt版&#xff0c;提供源代码 (qq.com) 可转债3低策略是指选择正股市值低、转债余额低、溢价率低的可转债进行投资的策略。 市值低&#xff1a;指的是可转债对应的正股市场价值较小&#xff0c;这通常意味着需要较少的资金就可以对股价…

jeecg启动Sentinel 一直是空白页面 解决办法用 外部 Sentinel SpringCloud之Sentinel概述和安装及简单整合

jeecg启动Sentinel 一直是空白页面 解决办法用 外部 Sentinel SpringCloud之Sentinel概述和安装及简单整合 文章目录 jeecg启动Sentinel 一直是空白页面 解决办法用 外部 Sentinel SpringCloud之Sentinel概述和安装及简单整合 Sentinel概述基本介绍 Sentinel安装下载地址: http…

聊聊AI时代学习这件事本身应该发生什么样的变化

随着 AI 大模型 的爆发&#xff0c;我们身处这个时代&#xff0c;应该怎么样去学习去了解这些前言的技术&#xff1f;可能很多人会说我英文不好&#xff0c;我算法不行&#xff0c;无法深入去了解 AI 大模型相关的知识吧&#xff1f; 没关系&#xff0c;其实博主也跟大家一样&…

实在智能Agent——RPA终极进化方向

RPA技术备受瞩目&#xff0c;它通过“机器人”自动化了人力执行的重复性、低复杂度任务&#xff0c;解放了员工并降低了企业成本。RPA机器人全天候运行&#xff0c;避免人为错误&#xff0c;高效处理任务&#xff0c;成为处理事务、操作数据、回应查询的理想选择。在管理后台&a…

第四百一十回

文章目录 1. 概念介绍2. 方法与细节2.1 获取方法2.2 使用细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取当前系统语言"相关的内容&#xff0c;本章回中将介绍如何获取时间戳.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章…

实体店运营方案大全:从选址到日常管理的全面指导

想开实体店或正在创业的朋友们&#xff0c;大家好&#xff01;今天&#xff0c;我作为一个鲜奶吧5年的创业者&#xff0c;为大家分享一份实体店运营方案大全&#xff0c;涵盖从选址到日常管理的各个方面。我在实体店方面有一些心得体会&#xff0c;今天就来和大家聊聊&#xff…

【软考】系统集成项目管理工程师(十九)收尾管理【1分】

一、项目收尾的内容 二、总结 三、软件后续工作 练一练 【例1-17上】&#xff08;B&#xff09;不属于项目验收的内容。 A.验收测试 B.系统维护工作 C.项目终验 D.系统试运行 【例2-17上】信息系统集成项目完成验收后要进行一个综合性的项目后评估,评估的内容一般包括&#…