You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在RTX 4090上运行Stable Diffusion 3.5 Large?

如何在RTX 4090上运行Stable Diffusion 3.5 Large?

嘿,我来帮你搞定RTX 4090上跑Stable Diffusion 3.5 Large爆显存的问题!你的4090有24G显存,其实完全能跑,只是需要点显存优化技巧,试试下面这些方法:

  • 启用自动模型分片
    这是最直接的解决方案,不用手动折腾显存分配,让库自动把模型的不同部分分配到GPU显存和CPU内存里,用到哪部分就动态加载哪部分。修改你的代码如下:

    login(HF_TOKEN)
    self.pipe = StableDiffusion3Pipeline.from_pretrained(
        "stabilityai/stable-diffusion-3.5-large",
        torch_dtype=torch.bfloat16,
        device_map="auto"  # 关键参数:自动分配模型到可用设备
    )
    # 这里不需要再手动调用.to("cuda"),device_map会自动处理
    

    这个方法几乎不会影响生成质量,只是偶尔会有一丢丢的速度下降,但对于解决OOM问题来说完全值得,而且4090的24G显存能让大部分模型组件留在GPU上,性能损失微乎其微。

  • 用8位/4位量化压缩模型
    如果自动分片还是不够(比如你后台还有其他GPU应用在跑),可以用bitsandbytes库对模型做量化压缩,把参数从16位降到8位甚至4位,大幅减少显存占用。
    首先确保你已经安装了bitsandbytes,然后修改代码:

    self.pipe = StableDiffusion3Pipeline.from_pretrained(
        "stabilityai/stable-diffusion-3.5-large",
        torch_dtype=torch.bfloat16,
        device_map="auto",
        load_in_8bit=True  # 8位量化,对质量影响极小;也可以用load_in_4bit=True更省显存
    )
    

    8位量化后的生成质量几乎和原模型没区别,4位量化会有一点点细微的损失,但显存占用能砍半,4090跑起来毫无压力。

  • 清理后台显存占用
    有时候系统后台的程序(比如开了好几十个标签页的浏览器、视频剪辑软件、其他AI工具)会偷偷占用GPU显存,导致SD3.5加载失败。你可以打开任务管理器(Windows)或者htop(Linux)查看GPU显存的占用情况,把不需要的程序关掉,腾出更多空间给模型。

  • 启用梯度检查点(可选)
    如果你需要做微调或者生成高分辨率图片,开启梯度检查点能进一步节省显存,代价是生成速度会慢一点。只需要在加载完模型后加一行代码:

    self.pipe.enable_gradient_checkpointing()
    

    这个方法对生成阶段的显存优化也很有帮助,适合显存吃紧的场景。

备注:内容来源于stack exchange,提问作者Dima

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 15:38:04