在Google Colab运行Stable Diffusion时遇memory_efficient_attention_forward错误
解决Stable Diffusion在Colab中
memory_efficient_attention_forward报错的方案 安装兼容版本的xformers
新的xformers版本可能和Colab自带的PyTorch/CUDA环境不兼容,试试锁定老版本安装:!pip install xformers==0.0.20安装完成后一定要重启Colab的runtime,再重新运行Stable Diffusion代码。
禁用xformers,改用原生注意力计算
在笔记本的Stable Diffusion配置代码里,找到启用xformers的参数(比如enable_xformers_memory_efficient_attention=True),把它改成False,或者直接注释掉加载xformers的相关代码块,让模型使用原生的attention实现。检查并匹配PyTorch与CUDA版本
运行以下代码确认当前环境版本:import torch print(f"PyTorch版本: {torch.__version__}") print(f"CUDA可用: {torch.cuda.is_available()}") print(f"CUDA版本: {torch.version.cuda}")如果版本不匹配,重新安装对应版本的PyTorch,比如适配CUDA 11.8的版本:
!pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118重装PyTorch后再重新安装xformers。
降低图像分辨率或调整输入规模
报错里的输入shape显示序列长度达到4096,可能是生成分辨率过高导致的异常。试试把生成图像的分辨率从1024x1024调低到768x768,避免输入张量出现异常规模。
内容的提问来源于stack exchange,提问作者FYH
相关产品推荐
相关产品推荐

