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

news2024/11/5 19:33:30

文章目录

  • 论文简介
  • 模型的部署
    • 需要下载的预训练权重
  • 模型的生成效果
    • 图像编辑的效果
    • 风格迁移的效果
  • 总结

论文简介

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>|"

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

总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2231369.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

景联文科技医疗数据处理平台:强化医疗数据标注与管理,推动医疗数字化新篇章

随着医疗科技快速进步与广泛应用&#xff0c;医疗信息的规模正在迅速扩张&#xff0c;如何有效管理这些医疗数据成为了关键议题。 医疗数据不仅包括传统的纸质病历&#xff0c;还有电子病历、实验室检测结果、医学影像等多样化的数字信息。为确保这些数据能为临床决策、科研分析…

在线学习新体验:SpringBoot精品试题库系统

1 绪论 1.1 研究背景 现在大家正处于互联网加的时代&#xff0c;这个时代它就是一个信息内容无比丰富&#xff0c;信息处理与管理变得越加高效的网络化的时代&#xff0c;这个时代让大家的生活不仅变得更加地便利化&#xff0c;也让时间变得更加地宝贵化&#xff0c;因为每天的…

Fluent Editor 富文本开源2个月的总结:增加格式刷、截屏、TypeScript 类型声明等新特性

你好&#xff0c;我是 Kagol&#xff0c;个人公众号&#xff1a;前端开源星球。 Fluent Editor 是一个基于 Quill 2.0 的富文本编辑器&#xff0c;在 Quill 基础上扩展了丰富的模块和格式&#xff0c;框架无关、 功能强大、开箱即用。 2024年8月12日&#xff0c;Fluent Edito…

redis v6.0.16 安装 基于Ubuntu 22.04

redis安装 基于Ubuntu 22.04 本文演示如何在ubuntu22.04下&#xff0c;安装redis v6.0.16&#xff0c;并配置测试远程访问。 Step1 更新环境 sudo apt updateStep2 安装redis sudo apt install redis-server -yStep3 启动 sudo systemctl restart redissudo systemctl sta…

python画出圣诞树(简易版,matplotlib.pyplot) 代码实现

需求 使用python的turtle库绘制圣诞树 绘制结果 代码实现 import matplotlib.pyplot as plt import matplotlib.patches as patches import numpy as npdef draw_christmas_tree(ax):# 定义树的基本参数base_width 6 # 底部宽度height 12 # 总高度levels 3 # 层次数量…

【1个月速成Java】基于Android平台开发个人记账app学习日记——第4天,注册登录逻辑代码

24.11.03 1.输入手机号跳转功能 第一个要设计的功能是&#xff0c;输入手机号以后跳转到另一个页面&#xff0c;输入获取得到的验证码页面。先拿这个功能练练手。 首先看一下此时的完整项目结构&#xff1a; 主要是添加了2个活动类和对应的界面&#xff0c;下面看详细的代码…

使用GraphQL构建现代API

使用GraphQL构建现代API GraphQL简介 安装GraphQL 使用npm安装GraphQL 使用Yarn安装GraphQL 创建GraphQL服务器 定义Schema 编写Resolver 查询数据 变更数据 使用Apollo Client GraphQL订阅 数据验证 错误处理 分页查询 拆分和组合Schema 总结 随着API的发展&#xff0c;传统…

炒到天价的数字头像如何用AI制作——教你用Midjourney轻松打造像素风NFT头像

​ ​ 近年来&#xff0c;NFT数字头像成了热门话题&#xff0c;许多以像素风格为主的头像被炒到天价&#xff0c;像最近比较火的星球兽头像。 它们之所以备受追捧&#xff0c;不仅是因为视觉风格独特&#xff0c;更是因其在NFT领域的稀缺性。 那如果想自己制作一个像素风头像…

网络层2--IP协议

目录 一、虚拟互连网络 二、IP地址 1、IP地址表示方法 2、IP地址分类 3、无分类编址CIDR &#xff08;1&#xff09;网络前缀 &#xff08;2&#xff09;地址块 、 地址掩码 4、IP地址特点 5、地址解析协议ARP &#xff08;1&#xff09;原理 &#xff08;2&#xf…

进程间通信(命名管道 共享内存)

文章目录 命名管道原理命令创建命名管道函数创建命名管道 共享内存原理shmgetFIOK 代码应用&#xff1a;premsnattch 命名管道 用于两个毫无关系的进程间的通信。 原理 Linux文件的路径是多叉树&#xff0c;故文件的路径是唯一的。 让内核缓冲区不用刷新到磁盘中&#xff0c…

基于SSM+小程序的计算机实验室排课与查询管理系统(实验室2)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 1、管理员功能有个人中心&#xff0c;学生管理&#xff0c;教师管理&#xff0c;实验室信息管理&#xff0c;实验室预约管理&#xff0c;取消预约管理&#xff0c;实验课程管理&#xff0…

基于STM32的农业监测与管理系统设计思路介绍(代码示例)

一、项目概述 在全球农业现代化进程中&#xff0c;农业监测与管理系统的研发具有重要意义。本文介绍的基于STM32的农业监测与管理系统&#xff0c;旨在通过智能小车实现对农作物的环境监测、土壤检测等功能。该系统利用手势控制技术&#xff0c;农民可以通过简单的手势指令来操…

分布式架构搭建博客网站

目录 运行环境基础配置需求准备工作配置静态ip修改主机名及host映射开启防火墙时间同步配置免密ssh登录 环境搭建Server-Web端安装LNMP环境软件Server-NFS-DNS端上传博客软件Server-NFS-DNS端设置NFS共享Server-Web设置挂载远程共享目录nginx设置在数据库中创建数据库和用户重启…

基于Transformer的路径规划 - 第五篇 GPT生成策略_解码方法优化

上一篇&#xff1a;基于Transformer的路径规划 - 第四篇 GPT模型优化 在上一篇中&#xff0c;我尝试优化GPT路径生成模型&#xff0c;但没有成功。在随机生成的测试集上&#xff0c;路径规划成功率只有99%左右。而使用传统的路径规划算法&#xff0c;例如A*&#xff0c;路径规划…

【HarmonyOS】鸿蒙应用设置控件通用样式AttributeModifier, @Styles

【HarmonyOS】鸿蒙应用设置控件通用样式AttributeModifier&#xff0c; Styles 前言 在鸿蒙中UI开发经常需要对控件样式进行统一的封装&#xff0c;在API早前版本&#xff0c;一般是通过 Styles进行样式封装复用&#xff1a; Entry Component struct Index {build() {Column(…

[vulnhub]DC:7

https://www.vulnhub.com/entry/dc-7,356/ 端口扫描主机发现 探测存活主机&#xff0c;178是靶机 nmap -sP 192.168.75.0/24 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-03 13:30 CST Nmap scan report for 192.168.75.1 Host is up (0.00037s l…

鸿蒙HarmonyOS应用开发者(基础+高级)认证

文章目录 鸿蒙HarmonyOS应用开发者(基础高级)认证&#x1f449;1.HarmonyOS认证介绍1.1、HarmonyOS发展历程1.2、HarmonyOS NEXT 开发预览版1.3、ArkTS语言开发鸿蒙应用1.4、HarmonyOS应用开发者基础认证的核心内容1.5、HarmonyOS应用开发者高级认证的核心内容1.6、HarmonyOS应…

视频Qoe测量学习笔记(一)

目录 流媒体协议详解 RTSP&#xff1a;实时流式协议 RTCP&#xff1a;实时运输控制协议 RTP&#xff1a;实时运输协议 H.264 流媒体协议详解 RTSP&#xff1a;实时流式协议 由IETF MMusic小组开发&#xff0c;已成为互联网建议标准[RFC 2326]。RTSP本身并不传送数据&…

第三十三章 Vue路由进阶路由模块封装

目录 一、引言 二、完整代码 main.js index.js App.vue Find.vue My.vue 一、引言 在上一个章节中&#xff0c;我们将所有的路由配置都堆在main.js中来实现路径组件的路由&#xff0c;这样做的话非常不利于我们后期对项目的维护。因此正确的做法是将路由模块抽离出来&a…

用插值公式实现滚动进度条动画效果

我们在日常前端开发时在动画的选择上基本都是css&#xff0c;通过css的animation即可满足大部分的开发场景&#xff0c;如果遇到了特殊而比较不容易实现的效果就会考虑到用js来实现&#xff0c;而本次的主题&#xff0c;就是围绕用js来做一个比较不常见的特殊动画效果。 假设我…