安装Ominigen

  1. 创建Conda环境:在macOS上,建议使用Conda环境来隔离安装,并在该环境中安装OmniGen。

    1
    2
    conda create -n omnigen python=3.10
    conda activate omnigen
  2. 安装支持MPS的PyTorch:在Apple Silicon Mac上,PyTorch使用MPS(Metal Performance Shaders)进行GPU加速。您需要使用pip安装PyTorch及其相关库,并确认MPS是否可用。

    1
    2
    pip install torch torchvision torchaudio
    python -c "import torch; print(torch.__version__, torch.backends.mps.is_available())"

    如果输出显示MPS可用(True),则表示安装成功。

  3. 克隆并安装OmniGen:克隆OmniGen仓库并在可编辑模式下安装。

    1
    2
    3
    git clone https://github.com/staoxiao/OmniGen.git
    cd OmniGen
    pip install -e .
  4. 检查安装:确保OmniGen安装成功。

    1
    python -c "import OmniGen; print('OmniGen installed successfully')"
  5. 内存管理:如果您遇到与内存相关的问题,可以尝试减少图像大小或设置环境变量来优化内存分配。

    1
    export PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.5

本地启动Gradio WebUI界面

  1. 安装Gradio和Spaces
    先安装Gradio和Spaces库。可以通过以下命令安装:

    1
    pip install gradio spaces
  2. 运行Gradio应用
    安装完成后,通过运行app.py文件来启动Gradio应用。确保app.py文件位于项目的根目录下。使用以下命令启动:

    1
    2
    export PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.0
    python app.py

    这将启动一个本地服务器,默认端口为7860。您可以通过访问http://127.0.0.1:7860在浏览器中查看Gradio WebUI界面。

  3. 访问WebUI界面
    启动服务后,在浏览器中输入http://127.0.0.1:7860即可访问Gradio WebUI界面,进行交互操作。

报错及解决方案

CondaError: Run ‘conda init’ before ‘conda activate’

出现这个错误是因为conda没有被正确初始化,或者conda的初始化脚本没有被添加到shell启动文件中。这通常发生在新安装的conda环境中,或者在某些配置更新后。以下是解决这个问题的步骤:

  1. 初始化Conda
    在终端中运行以下命令来初始化conda

    1
    conda init

    这个命令会将必要的初始化代码添加到您的shell配置文件中(例如.bashrc.bash_profile.zshrc等),取决于您使用的shell。

  2. 重新启动终端
    在运行conda init之后,您需要重新启动终端,以便更改生效。

  3. 再次激活环境
    终端重启后,您应该能够使用以下命令来激活您的omnigen环境:

    1
    conda activate omnigen

或者open ~/.bash_profile在文件末尾添加,保存并使用source ~/.bash_profile应用更改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/opt/homebrew/Caskroom/miniconda/base/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/opt/homebrew/Caskroom/miniconda/base/etc/profile.d/conda.sh" ]; then
. "/opt/homebrew/Caskroom/miniconda/base/etc/profile.d/conda.sh"
else
export PATH="/opt/homebrew/Caskroom/miniconda/base/bin:$PATH"
fi
fi
unset __conda_setup
# <<< 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