AI绘画:PhotoMaker Win11本地安装记录!

昨天介绍一个叫PhotoMaker的AI绘画开源项目。挺不错的!

通过这个项目可以快速制作特定人脸的AI绘画作品,相比传统的技术效果会好很多,效率也高很多。

今天趁热打铁,本地电脑装装看,并且记录,分享一下!

本文主要面向有一定配置基础的人,所以废话我就尽量少说了。

把步骤说清楚,把命令留下,把坑填了,就收工了。

会装的可以结束阅读直接去GitHub了。

想努力一下的可以慢慢看,我尽量把关键信息写清楚。

不想努力的直接拉到最后~~哈啊哈!

0.准备工作

准备一张牛逼的英伟达显卡!

Windows11+Conda+git

1.克隆代码

打开CMD工具,通过CD命令进入到制定目录,然后克隆代码。

git clone https://github.com/TencentARC/PhotoMaker.git
cd PhotoMaker

2.创建虚拟环境并激活

官方推荐的版本信息如下:

  • Python >= 3.8(推荐 Anaconda or Miniconda)
  • PyTorch >= 2.0.0

使用Conda工具,创建一个虚拟环境,创建成功之后激活虚拟环境。

conda create -n photemaker python=3.10
conda activate photomaker

3.安装依赖

常规安装方法如下:

pip install -r requirements.txt

由于在Windows下面安装,又会有些不一样。需要修改一下这个文件。

注释掉下面三项:

#torch==2.0.1
#torchvision==0.15.2
#pytorch-cuda==11.8

运行上面的安装命令,装完之后,单独安装一下Torch!

安装过程网络不好的,可以设置conda镜像,pip镜像。

4.下载模型

这个项目用到了两类模型,一个是PhotoMaker,还有一个是基于SDXL的基础模型。

运行代码之后会自动下载。

下载部分代码如下:

from huggingface_hub import hf_hub_download
photomaker_path = hf_hub_download(repo_id="TencentARC/PhotoMaker", filename="photomaker-v1.bin", repo_type="model")

当然,你也可以手动下载。那就得明白各种路径的问题!

模型默认会下载在C盘,大概7G左右,准备好足够的硬盘空间。

C盘扛不住的,可以设置环境变量:

SET HF_HUB_CACHE=./models

这样C就解脱了,压力给到D>E>F。

5. 运行测试

喜欢研究代码的,可以直接根据项目主页上提供的演示代码来运行项目。

但是本文以配置为主,就不展开讲代码了。

直接运行网页版Demo:

python gradio_demo/app.py

运行成功之后,打开网址,就可以使用了。

从文章来看,配置过程简直小菜一碟!

而实际安装过程肯定没有那么顺利!

这就叫,搞定之后云淡风轻,搞的过程痛不欲生

下面来说说我遇到的几个问题。

6. 遇到的问题

但凡涉及网络的问题,我都不认为是问题。大家都知道有这个问题,但是不能说是什么问题。

pytorch-cuda包找不到!

ERROR: Could not find a version that satisfies the requirement pytorch-cuda==11.8 (from versions: none)
ERROR: No matching distribution found for pytorch-cuda==11.8

这个问题上面有提到,直接安装就会报这个错误。原因大概是,这个依赖文件,就不是为Windows用户准备的。

所以,我的选择是,直接注释掉。

Torch版本的问题

如果只是简单使用:

pip install torch

那肯定是不行滴,Linux玩家专属。

Windows需要:

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

你可以不指定GPU,但是必须带个尾巴!

Fork异常

ValueError: cannot find context for 'fork'

看到这个问题时,我就默默说了句fxxk。

鬼知道什么问题!

经过查询,基本确定和操作系统差异有关。

把源代码中的fork换成spawn就可以了。

无法导入photomaker

ModuleNotFoundError: No module named 'photomaker'

所有问题都解决之后,根据官方主页上提供的运行命令,运行app.py就会出现这个错误了。

VSCode里面可以看到导入正常,但是运行命令就是为出现这个问题。

可能是我对Import的路径问题理解不够深刻。

我先是暴力解决,直接把gradio_demo文件下面的两个文件拖动到上一级目录了。

然后直接用如下命令:

python app.py

后来思考了一下它的导入机制。我只要在根目录创建一个run.py。

里面添加一行代码:

import gradio_demo.app

这样就不用去移动那两个文件,直接使用:

python run.py

这样就可以了。

上面的问题都解决了,你应该可以在Windows正常运行这个项目了。

但是,你还要面临最后一个考验:OOM

我先是在3060上配置运行的,可以启动,但是跑到最后就提示显存不够了,直接摆烂了。

最后又在3090上折腾了一阵子,终于可以愉快的玩耍了。

我开头说了,不想努力的拉到最后,主要基于两点:

  1. 硬件不够硬,就直接不用努力了。
  2. 硬件够硬,可以等我的一键运行包。

给公众号“托尼不是塔克“ 发送关键词photomaker获取!

最后夹带点私货。

在线演示可以看这里:

https://github.com/dream80/TonyDemo

Colab脚本可以看这里:

https://github.com/dream80/TonyColab

在线演示人太多,可能有点崩溃了!

最后…

不管你会没会,不能白看哦。

起码点个赞再走!!!

收工!

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

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

相关文章

高效摄入英语信息的独门武器

经常有读者问我:日常看的都是什么样的信息? 简单来说,大致是这些:比较前沿的科研成果,心理学和神经科学的最新文献,一些综述性和总结性的文章,以及跟心理、大脑和其他科学领域相关的期刊杂志&am…

数据结构—栈实现前缀表达式的计算

前缀表达式计算 过程分析 中缀表达式:(1 5)*3 > 前缀表达式:*153 (可参考这篇文章:中缀转前缀) 第一步:从右至左扫描前缀表达式(已存放在字符数组中)&a…

最近公共祖先

最近公共祖先 概念 给定一棵有n个节点的树,树中的两个节点u和v的最近公共祖先lca,有以下定义 (1)lca既是u的祖先,又是v的祖先 (2)lca是所有u和v的公共祖先中深度最深的祖先,也就…

Linux第38步_编译“正点原子移植好的uboot”

uboot的全称是Universal Boot Loader,uboot是一个遵循GPL协议的开源软件,uboot是一个裸机代码,可以看作是一个裸机综合例程。现在的 uboot 已经支持液晶屏、网络、USB等高级功能。 uboot官方的uboot源码是给所有的半导体厂商准备的。ST公司会…

CSS自适应分辨率 postcss-pxtorem(适用于 Vite)

前言 此篇是基于 Vite Vu3 项目的 CSS 自适应分辨率! 如果想知道基于 Webpack Vue2 可移步 《CSS自适应分辨率 amfe-flexible 和 postcss-pxtorem(适用于 Webpack)》 项目对应的主要插件版本如下: "vite": "^4…

使用Win32API实现贪吃蛇小游戏

目录 C语言贪吃蛇项目 基本功能 需要的基础内容 Win32API 介绍 控制台程序部分指令 设置控制台窗口的长宽 设置控制台的名字 控制台在屏幕上的坐标位置结构体COORD 检索指定标准设备的句柄(标准输入、标准输出或标准错误) 光标信息结构体类型CONSOLE_CUR…

人人都可配置的大屏可视化

大屏主要是为了展示数据和酷炫的效果,布局大部分是9宫格,或者在9宫格上做的延伸,现在介绍下 泛积木-低代码 提供的大屏可视化配置。 首先查看效果展示 泛积木-低代码大屏展示。 创建页面之后,点击进入编辑页面,在可视…

电子液晶屏幕生产厂污废水处理需要哪些工艺设备

随着电子液晶屏幕行业的不断发展,污废水处理成为了一个重要的环保问题。为了达到合规性排放要求,并保护环境,厂家需要采取一系列工艺设备来处理污废水。 首先,常见的一种处理工艺是物理与化学处理。物理处理包括预处理与固液分离&…

Servlet过滤器个监听器

过滤器和监听器 过滤器 什么是过滤器 当浏览器向服务器发送请求的时候,过滤器可以将请求拦截下来,完成一些特殊的功能,比如:编码设置、权限校验、日志记录等。 过滤器执行流程 Filter实例 package com.by.servlet;import jav…

看过来:大龄程序员转行的18个方向

程序员35岁后,无人问津、被下岗,说到底还是中国互联网企业普遍短命和中国程序员新人不断涌现导致的,前者是岗位的缩减,后者是供应的增加,两者一叠加,35岁程序员就成了背锅侠。 大龄程序员和老医生一样都是非…

MySQL数据库基础合集

MySQL数据库基础合集 目录 MySQL数据库基础合集SQL关键字DDL关键字DML关键字DQL关键字DCL关键字约束关键字 SQL基础数据类型整数类型字符类型浮点类型时间类型 数据定义语言DDL1.查看数据库2.创建库3.删除库4.切换库5.创建表6.删除表7.查看表8.查看表属性9.插入列10.修改列11.设…

【MySQL】学习如何通过DQL进行数据库数据的条件查询

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-63IIm2s5sIhQfsfy {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

股票市场

(一)股票市场 顾名思义,就是买卖股票的场所。就是为了撮合想发展但缺钱的企业与有钱但想投资的投资者。 股票市场按照交易场所,可分为场内市场和场外市场: 场内市场是指证券交易所, 场外市场就是证券交易…

Java 学生管理系统

条件要求: 自己写的代码: public class Student{private String id;private String name;private int age;private String address;public Student() {}public Student(String id, String name, int age, String address) {this.id id;this.name name…

element ui组件 el-date-picker设置default-time的默认时间

default-time &#xff1a;选择日期后的默认时间值。 如未指定则默认时间值为 00:00:00 默认值修改 <el-form-item label"计划开始时间" style"width: 100%;" prop"planStartTime"><el-date-picker v-model"formData.planStart…

【论文解读】Collaboration Helps Camera Overtake LiDAR in 3D Detection

CoCa3D 摘要引言Collaborative Camera-Only 3D DetectionCollaborative depth estimationCollaborative detection feature learning 实验结论和局限 摘要 与基于 LiDAR 的检测系统相比&#xff0c;仅相机 3D 检测提供了一种经济的解决方案&#xff0c;具有简单的配置来定位 3…

【Linux】Linux环境基础开发工具使用

上篇博客我们学习了Linux权限相关知识&#xff0c;那么这节课我们来学习一下Linux环境基础开发工具使用吧~&#xff0c;主要包括yum、vim、gcc/g的使用&#xff0c;以及Linux项目自动化构建工具。 目录 Linux软件包管理器--yum yum是什么 yum相关操作 yum本地配置 Linux编…

程序员怎么写简历_写简历软件

你们在制作简历时&#xff0c;是不是基本只关注两件事&#xff1a;简历模板&#xff0c;还有基本信息的填写。 当你再次坐下来更新你的简历时&#xff0c;可能会发现自己不自觉地选择了那个“看起来最好看的模板”&#xff0c;填写基本信息&#xff0c;却没有深入思考如何使简历…

小程序样例5:简单登录界面

基本功能 1、头像选择、用户名、密码、昵称选择、性别、城市 2、确认注册跳转 我的页面。 3、其他注册方式跳转用户名 密码登录方式 4、清除 和 密码显示按钮&#xff1a; 5、用户名、密码合法性校验&#xff1a; 6、点击微信图标&#xff0c;调转回微信登录&#xff1a; 代码…

模糊神经网络控制器(MATLAB)

模糊神经网络控制器(Fuzzy Neural Network Controller)是将模糊控制和神经网络相结合的一类控制器。它综合了两者的优点,主要包括以下特点: 知识表达能力强。模糊系统的语言规则和神经网络的学习能力相结合,可以表示复杂的非线性映射关系。 自适应能力强。神经网络提供了在线学…