DemoFusion为什么牛?
因为它具备以下三个醒目的特征:
•提升SDXL图像生成的分辨率至4倍、16倍或更高。
•改善图片清晰度和小细节(如纹理和边缘)。•生成更自然和逼真的图像。
使用生成性人工智能(GenAI)进行高分辨率图像生成具有巨大潜力,但由于训练所需的巨额资本投入,这一技术越来越集中于少数几家大型公司,并隐藏在付费墙后面。
本文旨在通过推进高分辨率生成的前沿,同时使其对广泛受众保持可访问性,以实现高分辨率GenAI的民主化。展示了现有的潜在扩散模型(LDMs)具有未被挖掘的高分辨率图像生成潜力。
新颖DemoFusion框架无缝扩展开源GenAI模型,采用渐进式放大、跳过残差和扩张采样机制,实现更高分辨率的图像生成。DemoFusion的渐进性质需要更多的通过,但中间结果可以作为“预览”,便于快速提示迭代。
•2023.12.10: ✨ 现在pipeline_demofusion_sdxl支持Image2Image功能!本地Gradio演示也可用。•2023.12.08: 🚀 Img2Img的HuggingFace演示现已可用!感谢Radamés的实现和支持!•2023.12.07: 🚀 添加了Colab演示。去看看吧!感谢camenduru的实现!•2023.12.06: ✨ 本地Gradio演示现已可用!更好的交互和展示!•2023.12.04: ✨ DemoFusion的低显存版本现已可用!感谢klimaleksus的实现!•2023.12.01: 🚀 集成到Replicate。查看在线演示:感谢Luis C.的实现!•2023.11.29: 💰 pipeline_demofusion_sdxl已发布。
•HuggingFace Space:在这里尝试Text2Image生成 和 Image2Image增强。•Colab:在这里尝试Text2Image生成 和 Image2Image增强。•Replicate:在这里尝试Text2Image生成 和 Image2Image增强。
Text2Image(将占用约17GB的显存)
•设置依赖项:
conda create -n demofusion python=3.9
conda activate demofusion
pip install -r requirements.txt
•下载pipeline_demofusion_sdxl.py并按以下方式运行。使用案例可在demo.ipynb中找到。
from pipeline_demofusion_sdxl import DemoFusionSDXLPipeline
model_ckpt = "stabilityai/stable-diffusion-xl-base-1.0" pipe = DemoFusionSDXLPipeline.from_pretrained(model_ckpt, torch_dtype=torch.float16) pipe = pipe.to("cuda")
prompt = "想象一下一位年长女性的肖像,她的脸是时间的画布,头巾的色调柔和,呈锈色和奶油色。她的眼睛,像褪色的牛仔布一样蓝。她的服饰,简单而有尊严。" negative_prompt = "模糊的,丑陋的,重复的,画得不好,畸形的,马赛克的"
images = pipe(prompt, negative_prompt=negative_prompt, height=3072, width=3072,
view_batch_size=16, stride=64,
num_inference_steps=50, guidance_scale=7.5,
cosine_scale_1=3, cosine_scale_2=1, cosine_scale_3=1, sigma=0.8,
multi_decoder=True, show_image=True
)
for i, image in enumerate(images): image.save('image_' + str(i) + '.png')
•⚠️ 当您有足够的显存时(例如,在拥有超过18GB RAM的硬件上生成2048*2048图像),可以设置multi_decoder=False
,这可以使解码过程更快。•请随意尝试不同的提示和分辨率。•默认的超参数是推荐的,但它们可能不适用于所有情况。具体每个超参数的影响,请参考DemoFusion论文的附录C。•发布前代码已进行清理。如果遇到任何问题,请联系我们。•Text2Image在Windows上使用8GB显存*•设置环境:
cmd git clone "https://github.com/PRIS-CV/DemoFusion"
cd DemoFusion
python -m venv venv venv\Scripts\activate
pip install -U "xformers==0.0.22.post7+cu118" --index-url https://download.pytorch.org/whl/cu118
pip install "diffusers==0.21.4" "matplotlib==3.8.2" "transformers==4.35.2" "accelerate==0.25.0"
•启动DemoFusion:
from pipeline_demofusion_sdxl import DemoFusionSDXLPipeline
import torch
from diffusers.models import AutoencoderKL
vae = AutoencoderKL.from_pretrained("madebyollin/sdxl-vae-fp16-fix", torch_dtype=torch.float16)
model_ckpt = "stabilityai/stable-diffusion-xl-base-1.0"
pipe = DemoFusionSDXLPipeline.from_pretrained(model_ckpt, torch_dtype=torch.float16, vae=vae)
pipe = pipe.to("cuda")
prompt = "想象一下一位年长女性的肖像,她的脸是时间的画布,头巾的色调柔和,呈锈色和奶油色。她的眼睛,像褪色的牛仔布一样蓝。她的服饰,简单而有尊严。"
negative_prompt = "模糊的,丑陋的,重复的,画得不好,畸形的,马赛克的"
images = pipe(prompt, negative_prompt=negative_prompt,
height=2048, width=2048, view_batch_size=4, stride=64,
num_inference_steps=40, guidance_scale=7.5,
cosine_scale_1=3, cosine_scale_2=1, cosine_scale_3=1, sigma=0.8,
multi_decoder=True, show_image=False, lowvram=True
)
for i, image in enumerate(images):
image.save('image_' + str(i) + '.png')
Text2Image使用本地Gradio演示
•确保您已安装gradio和gradio_imageslider。•现在尝试通过python gradio_demo.py启动DemoFusion Gradio演示 -- 更好的交互和展示!
Image2Image使用本地Gradio演示
•确保您已安装gradio和gradio_imageslider。•通过python gradio_demo_img2img.py启动DemoFusion Image2Image。
•⚠️ 请注意,作为一个无需调整的框架,DemoFusion的Image2Image能力与SDXL的训练数据分布密切相关,并将显示显著偏差。准确描述输入内容和风格的提示也会显著提高性能。玩得开心,把它当作基于文本+图像生成的一个附加应用。
更多信息请参考:https://github.com/PRIS-CV/DemoFusion
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有