OmniGen: Unified Image Generation(代码的复现)

论文简介

OmniGen的github项目地址

OmniGen: Unified Image Generation。OmniGen 在各种图像生成任务中都表现出了卓越的性能,并可能大大超过现有扩散模型的极限。OmniGen 是第一个能够以统一的方式处理各种任务的模型,如从文本生成图像、图像编辑和视觉条件生成。用一个模型实现多类文生图任务

模型框架图
在这里插入图片描述

模型的部署

需要下载的预训练权重

模型在huggingface的权重:
将huggingface中的权重下到文件夹里:
在这里插入图片描述
需要保证保的版本,和requirements中的版本一致

torch==2.3.1
transformers==4.45.2
datasets==2.20.0
accelerate==0.26.1
jupyter==1.0.0
numpy==1.26.3
pillow==10.2.0
torch==2.3.1
peft==0.9.0
diffusers==0.30.3
timm==0.9.16

模型的生成效果

模型推理代码

separate_cfg_infer:

这个参数通常用于区分训练和推理时的配置。当设置为 True 时,模型可能会使用不同的配置或策略来处理推理任务,以优化性能或提高生成质量。具体的实现取决于模型的框架或库。
use_kv_cache:

这个参数表示是否使用键值缓存。在变换器模型中,推理时会生成上下文(即输入序列的表示)。使用键值缓存可以在处理长序列时提高效率,因为它允许模型在生成下一个 token 时重用先前计算的键(key)和值(value),从而减少计算开销。

from OmniGen import OmniGenPipeline

pipe = OmniGenPipeline.from_pretrained("Shitao/OmniGen-v1")
#img_guidance_scale=1.6
images = pipe(
    prompt="A man in a black shirt and a blue hat is reading a book in the library. The man is the left man in <img><|image_1|></img>.",
    input_images=["./imgs/test_cases/two_man.jpg"],
    height=1024,
    width=1024,
    guidance_scale=2.5,
    img_guidance_scale=1.6,
    separate_cfg_infer=True,
    use_kv_cache=True,
    seed=0

)
images[0].save("example_ti2i.png")  # save output PIL image

图像编辑的效果

输入的文本:

prompt="<img><|image_1|><img> Remove the woman's book. Replace the mug with A pot of sunflowers ."

prompt=“<|image_1|> 删除女人的书,
用一盆向日葵代替杯子。”

输入的图像如下:
在这里插入图片描述

生成的图像结果如下

在这里插入图片描述
可以看到,书被删除了,被子被替换了,有向日葵,但是不是我们想要的效果。

换一个提示词

prompt="<img><|image_1|><img> Remove the woman's book.The women in <img><|image_1|><img> waves her hand"

移除图片中女人的书,图片中的女人在挥舞她的手
生成结果如下

可以看到效果还不错,就是背景变化了

风格迁移的效果

prompt= "Make this image <img><|image_1|><img> has the same style of <img><|image_2|><img>|"

原图
在这里插入图片描述
风格参考图像
在这里插入图片描述
生成的图像
在这里插入图片描述
可以看到,有一定的风格迁移能力,但是效果一般,应该还需要调试一些模型的参数。

总结

确实这个模型有很好的文本理解能力,可以实现多种类型文生图任务,但是每个任务的能力可能不会非常好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值