稳定生成图像 Omnigen Mac本地部署及报错修复
安装Ominigen
创建Conda环境:在macOS上,建议使用Conda环境来隔离安装,并在该环境中安装OmniGen。
1
2conda create -n omnigen python=3.10
conda activate omnigen安装支持MPS的PyTorch:在Apple Silicon Mac上,PyTorch使用MPS(Metal Performance Shaders)进行GPU加速。您需要使用
pip
安装PyTorch及其相关库,并确认MPS是否可用。1
2pip install torch torchvision torchaudio
python -c "import torch; print(torch.__version__, torch.backends.mps.is_available())"如果输出显示MPS可用(
True
),则表示安装成功。克隆并安装OmniGen:克隆OmniGen仓库并在可编辑模式下安装。
1
2
3git clone https://github.com/staoxiao/OmniGen.git
cd OmniGen
pip install -e .检查安装:确保OmniGen安装成功。
1
python -c "import OmniGen; print('OmniGen installed successfully')"
内存管理:如果您遇到与内存相关的问题,可以尝试减少图像大小或设置环境变量来优化内存分配。
1
export PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.5
本地启动Gradio WebUI界面
安装Gradio和Spaces:
先安装Gradio和Spaces库。可以通过以下命令安装:1
pip install gradio spaces
运行Gradio应用:
安装完成后,通过运行app.py
文件来启动Gradio应用。确保app.py
文件位于项目的根目录下。使用以下命令启动:1
2export PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.0
python app.py这将启动一个本地服务器,默认端口为7860。您可以通过访问
http://127.0.0.1:7860
在浏览器中查看Gradio WebUI界面。访问WebUI界面:
启动服务后,在浏览器中输入http://127.0.0.1:7860
即可访问Gradio WebUI界面,进行交互操作。
报错及解决方案
CondaError: Run ‘conda init’ before ‘conda activate’
出现这个错误是因为conda
没有被正确初始化,或者conda
的初始化脚本没有被添加到shell启动文件中。这通常发生在新安装的conda
环境中,或者在某些配置更新后。以下是解决这个问题的步骤:
初始化Conda:
在终端中运行以下命令来初始化conda
:1
conda init
这个命令会将必要的初始化代码添加到您的shell配置文件中(例如
.bashrc
、.bash_profile
、.zshrc
等),取决于您使用的shell。重新启动终端:
在运行conda init
之后,您需要重新启动终端,以便更改生效。再次激活环境:
终端重启后,您应该能够使用以下命令来激活您的omnigen
环境:1
conda activate omnigen
或者open ~/.bash_profile
在文件末尾添加,保存并使用source ~/.bash_profile
应用更改
1 | # >>> conda initialize >>> |
TypeError: MPS BFloat16 is only supported on MacOS 14 or newer
可升级到macOS14或在pipeline.py
文件中,找到设置数据类型的地方,将torch.bfloat16
更改为torch.float32
。
RuntimeError: OffloadedCache can only be used with a GPU. If there is no GPU, you need to set use_kv_cache=False, which will result in longer inference time!
将pipeline.py
文件中的 use_kv_cache: bool 的 True改为False。同时检索其它文件有没有use_kv_cache值为True的都改为False
AssertionError: total images must be the same as the number of image tags, got 0 image tags and 2 images
注意提示词语法即可
RuntimeError: MPS backend out of memory (MPS allocated: 16.43 GB, other allocations: 232.58 MB, max allowed: 18.13 GB). Tried to allocate 5.76 GB on private pool. Use PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.0 to disable upper limit for memory allocations (may cause system failure).
当前终端会话中设置环境变量而不修改配置文件,可以在终端中直接运行以下命令,然后执行python app.py
,这样,当运行 python app.py
时,export PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.0
会影响 Python 脚本中 PyTorch 的行为。
1 | export PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.0 |
- 感谢你赐予我前进的力量