本地运行Stable Diffusion遇脚本卡死及CUDA内存不足问题求助
问题解决指南
一、官方仓库txt2img.py未利用GPU导致速度过慢
验证PyTorch CUDA可用性
运行以下命令确认PyTorch是否正确识别GPU:python -c "import torch; print(torch.cuda.is_available())"若输出
False,卸载当前PyTorch,重新安装匹配系统CUDA版本的PyTorch包。强制脚本使用GPU
打开txt2img.py,检查设备初始化代码,确保设置为:device = torch.device("cuda" if torch.cuda.is_available() else "cpu")若之前修改代码时误将设备设为
cpu,改回上述设置。启用半精度推理(适配P1000显存)
运行脚本时添加--half参数,启用FP16半精度计算,既节省显存又保证GPU利用:python txt2img.py --prompt "your prompt" --half检查环境变量
确保没有设置强制CPU的环境变量(如CUDA_VISIBLE_DEVICES=-1),若有则删除后重新运行脚本。
二、HuggingFace Diffusers CUDA内存不足
Quadro P1000只有4GB显存,需启用内存优化策略:
使用FP16精度加载模型
加载模型时指定torch_dtype=torch.float16,大幅降低显存占用:import torch from diffusers import StableDiffusionPipeline pipe = StableDiffusionPipeline.from_pretrained( "runwayml/stable-diffusion-v1-5", torch_dtype=torch.float16, low_cpu_mem_usage=True ) pipe = pipe.to("cuda")启用注意力切片
添加以下代码启用注意力切片,进一步减少显存消耗:pipe.enable_attention_slicing()启用xFormers内存高效注意力(可选)
先安装xFormers库:pip install xformers然后启用该优化:
pipe.enable_xformers_memory_efficient_attention()降低生成参数
若仍报错,可降低图片分辨率(如从512x512改为448x448),或减少生成步数(将num_inference_steps设为20-30)。
内容的提问来源于stack exchange,提问作者scubbo
相关产品推荐
相关产品推荐

