给原生的 Stable Diffusion 模型按个涡轮发动机——DeepCache

AI绘图虽然模型种类繁多,但是一直存在一个缺点就是不够快。以至于Stability公司专门做了Turbo系列和Cascade版本。但是这些终究治标不治本,终于在CVPR2024收入中,我觉得DeepCache是一次不错的尝试。

论文

DeepCache: Accelerating Diffusion Models for Free

摘要

扩散模型因其卓越的生成能力,最近在图像合成领域获得了前所未有的关注。尽管这些模型性能出众,但通常会产生大量的计算成本,这主要归因于顺序去噪过程和繁琐的模型大小。压缩扩散模型的传统方法通常涉及大量的再训练,带来了成本和可行性方面的挑战。在本文中,我们介绍了 DeepCache,一种从模型架构角度加速扩散模型的新型免训练范式。DeepCache 利用扩散模型顺序去噪步骤中固有的时间冗余,缓存并检索相邻去噪阶段的特征,从而减少冗余计算。利用 U-Net 的特性,我们在重复使用高级特征的同时,还能以非常低廉的成本更新低级特征。这一创新策略反过来又使稳定扩散 v1.5 的速度提高了 2.3 倍,而 CLIP 分数仅下降了 0.05;使 LDM-4-G 的速度提高了 4.1 倍,而 ImageNet 上的 FID 仅略微下降了 0.22。我们的实验还证明,DeepCache 优于需要重新训练的现有剪枝和蒸馏方法,而且与当前的采样技术兼容。此外,我们还发现,在相同的吞吐量下,DeepCache 能有效地实现与 DDIM 或 DDIM 相似甚至略有改进的结果。

部署

复制代码
pip install DeepCache

代码

ini 复制代码
import torch

# Loading the original pipeline
from diffusers import StableDiffusionPipeline
pipe = StableDiffusionPipeline.from_pretrained('runwayml/stable-diffusion-v1-5', torch_dtype=torch.float16).to("cuda:0")

# Import the DeepCacheSDHelper
from DeepCache import DeepCacheSDHelper
helper = DeepCacheSDHelper(pipe=pipe)
helper.set_params(
    cache_interval=3,
    cache_branch_id=0,
)
helper.enable()

# Generate Image
deepcache_image = pipe(
        prompt,
        output_type='pt'
).images[0]
helper.disable()

测试

我用sdxl base 1.0 + 4090

无cache

Total runtime of the program is 7.61311936378479

有cache

Total runtime of the program is 3.8023335933685303

结语

如果用在中低端显卡估计推理效果更为显著吧!

相关推荐
canonical_entropy10 小时前
AI时代,我们还需要低代码吗?—— 一场关于模型、演化与软件未来的深度问答
后端·低代码·aigc
堆栈future12 小时前
秒级生成4K图!字节豆包Seedream 4.0实测:完爆GPT-4o和Nano Banana
llm·aigc
林木森ai13 小时前
爆款AI动物运动会视频,用Coze(扣子)一键搞定全流程(附保姆级拆解)
人工智能·aigc
大明哥_15 小时前
14 万粉丝、106万点赞,用 Coze + 即梦 Seedream4.0 一键复刻小红书知识养生图文。保姆级教程!!
aigc
安思派Anspire18 小时前
创建完整的评估生命周期以构建高(二)
aigc·openai·agent
陈大鱼头19 小时前
Seedream 4.0:重新定义 AI 生图的低门槛与高质感
aigc
SixHateSeven19 小时前
探索提示词工程:一个导演的自我修养
aigc·ai编程
后端小肥肠1 天前
别再眼馋 10w + 治愈漫画!Coze 工作流 3 分钟出成品,小白可学
人工智能·aigc·coze
墨风如雪1 天前
GPT-5-Codex:AI编程,告别F5的七小时史诗?
aigc
唐某人丶1 天前
教你如何用 JS 实现 Agent 系统(2)—— 开发 ReAct 版本的“深度搜索”
前端·人工智能·aigc