一款超高分辨率图像生成AI工具-DemoFusion

向量数据库人工智能与算法混合云

什么是DemoFusion?

picture.image

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的硬件上生成20482048图像),可以设置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演示 -- 更好的交互和展示!

picture.image

Image2Image使用本地Gradio演示

•确保您已安装gradio和gradio_imageslider。 •通过python gradio_demo_img2img.py启动DemoFusion Image2Image。

picture.image

•⚠️ 请注意,作为一个无需调整的框架,DemoFusion的Image2Image能力与SDXL的训练数据分布密切相关,并将显示显著偏差。准确描述输入内容和风格的提示也会显著提高性能。玩得开心,把它当作基于文本+图像生成的一个附加应用。

引用

更多信息请参考:https://github.com/PRIS-CV/DemoFusion

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
字节跳动客户端性能优化最佳实践
在用户日益增长、需求不断迭代的背景下,如何保证 APP 发布的稳定性和用户良好的使用体验?本次分享将结合字节跳动内部应用的实践案例,介绍应用性能优化的更多方向,以及 APM 团队对应用性能监控建设的探索和思考。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论