使用稳定扩散和SAM修改图像内容

news2024/11/26 8:18:30
推荐稳定扩散AI自动纹理工具: DreamTexture.js自动纹理化开发包

介绍

大型语言模型 (LLM) 和基础计算机视觉模型的最新突破为编辑图像或视频解锁了新的界面和方法。您可能听说过修复、复绘、生成填充和文本到图像;这篇文章将向您展示如何通过仅使用文本提示和最新的开源模型构建自己的可视化编辑器来执行这些新的生成式 AI 功能。

图像编辑不再是使用托管软件进行手动操作。Segment Anything Model (SAM)、Stable Diffusion 和 Grounding DINO 等模型使得仅使用文本命令执行图像编辑成为可能。它们共同创建了一个强大的工作流程,将图像零样本检测、分割和修复无缝结合在一起。本教程的目标是演示这三个强大模型的潜力,以帮助您入门,以便您可以在此基础上进行构建。

完全更改对象

用于零射物体检测的提示:“消防栓”,用于生成的提示:“照相亭”

更改对象的颜色和纹理

用于零射物体检测的提示:“Car”,用于生成的提示:“Red Car”

具有上下文的创意应用程序

用于零射物体检测的提示:“尤达”,用于生成的提示:“星球大战中的浣熊尤达”

#Step 1:安装依赖

我们的流程从安装必要的库和模型开始。我们从SAM(一种强大的分割模型)、用于图像修复的Stable Diffusion和用于零射物体检测的GroundingDINO开始。

!pip -q install diffusers transformers scipy segment_anything
!git clone https://github.com/IDEA-Research/GroundingDINO.git
%cd GroundingDINO
!pip -q install -e .

#Step 2:检测、预测、提取掩码

我们将使用接地 DINO 根据文本输入进行零射物体检测,在本例中为“消火栓”。使用 GroundingDINO 的 predict 函数,我们获取图像的框、对数和短语。然后,我们使用这些结果对图像进行注释。

from groundingdino.util.inference import load_model, load_image, predict, annotate
TEXT_PROMPT = "fire hydrant"
boxes, logits, phrases = predict(
   model=groundingdino_model,
   image=img,
   caption=TEXT_PROMPT,
   box_threshold=BOX_TRESHOLD,
   text_threshold=TEXT_TRESHOLD
)
img_annnotated = annotate(image_source=src, boxes=boxes, logits=logits, phrases=phrases)[...,::-1]

使用GroundingDINO进行零样本物体检测

使用 SAM 从边界框中提取掩码

然后,我们将使用 SAM 从边界框中提取掩码。

from segment_anything import SamPredictor, sam_model_registry
predictor = SamPredictor(sam_model_registry[model_type](checkpoint="./weights/sam_vit_h_4b8939.pth").to(device=device))

masks, _, _ = predictor.predict_torch(
           point_coords = None,
           point_labels = None,
           boxes = new_boxes,
           multimask_output = False,
       )

使用 SAM 的带掩码的分段对象

#Step 3:使用稳定扩散修改图像

然后,我们将使用稳定扩散根据文本提示修改图像。Stable Diffusion 的管道功能用于使用文本提示的内容对蒙版标识的区域进行涂色。请记住这一点,对于您的用例,您将希望上色的对象与它们要替换的对象具有相似的形式和形状。

prompt = "Phone Booth"
edited = pipe(prompt=prompt, image=original_img, mask_image=only_mask).images[0]

使用文本提示编辑图像的用例

  • 快速原型设计:通过快速可视化加速产品开发和测试,使设计人员和开发人员能够更快地获得反馈和决策。
  • 图像翻译和本地化:通过翻译和本地化视觉内容来支持多样性。
  • 视频/图像编辑和内容管理:使用文本提示而不是 UI 加快图像和视频的编辑速度,满足个人创作者和企业的大规模编辑任务。
  • 物体识别和替换:轻松识别物体并用其他物体替换它们,例如用可乐瓶替换啤酒瓶。

结论

就是这样!利用 SAM、Stable Diffusion 和 Grounding DINO 等强大的模型,使图像转换更轻松、更易于访问。使用基于文本的命令,我们可以指示模型执行精确的任务,例如识别对象、分割对象以及用其他对象替换它们。

转载:使用稳定扩散和SAM修改图像内容 (mvrlink.com)

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

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

相关文章

4.多层感知机-3GPT版

#pic_center R 1 R_1 R1​ R 2 R^2 R2 目录 知识框架No.1 多层感知机一、感知机1、感知机2、训练感知机3、图形解释4、收敛定理5、XOR问题6、总结 二、多层感知机1、XOR2、单隐藏层3、单隐藏层-单分类4、为什么需要非线性激活函数5、Sigmoid函数6、Tanh函数7、ReLU函数8、多类分…

uniapp 编译到模拟器(mumu)

一开始我是用逍遥模拟器,但这个玩意突然不好使了,一直加载卡在这页面 1、下载 官网下载:mumu模拟器12 2、打开mumu多开器,在右上角adb查看端口号 3、打开mumu模拟器 4、打开HBuiderX 工具—设置—运行配置 5、配置电脑的系统…

为什么Python爬虫教程众多,而专业工程师稀缺?

当谈到Python爬虫时,我们实际上在谈论网络爬虫,这是一种用编程技术从网页中提取数据的方法。Python爬虫在许多领域都有广泛应用,包括数据分析、数据挖掘和网络信息搜集。随着互联网的蓬勃发展,Python爬虫技术也在不断进化。 如果…

揭秘!自动化测试效率提升30%如何达成

一个全新的应用需要经过需求设计、应用开发、应用测试,及应用上架等几个阶段之后,才能到达用户手中。在应用测试中,测试的类型根据不同的开展时机,可以分为单元测试、集成测试、专项测试,以及上架测试。 单元测试指对软…

网络爬虫开发软件Screaming Frog SEO Spider mac中文版软件特点

Screaming Frog SEO Spider mac是一款SEO工具,可以帮助用户进行网站的SEO优化和分析。 Screaming Frog SEO Spider mac软件特点 网站爬取:可以快速扫描整个网站并列出所有内部和外部页面,包括URL,标题,描述和头信息等…

OSPF 高级特性3

一、OSPF安全特性 1、OSPF报文验证: 区域验证模式:在区域下配置一致的密码才能加入同一个区域。 [r3-ospf-1-area-0.0.0.0]authentication-mode md5 1 cipher 123456 接口验证模式:链路两端的接口必须配置一致的密码才能建立邻居关系 [r5-Gig…

成功创建百度百科词条,必备关键编辑技巧揭密!

公司成立后,可以创建自己的百度百科全书词条。然而,经常搜索可发现,有些企业词条只显示相关基本信息,而有些企业词条则包含了大量信息,显然与企业规模有关。 企业百科词条的内容是非常重要的。它应该包括企业的介绍&am…

Python语言高级实战-基于协程的方式来实现异步并发编程(附源码和实现效果)

实现功能 协程是一种轻量级的线程,可以在代码中定义异步任务,并在需要时挂起和恢复执行。Python提供了asyncio库来支持协程异步编程。使用async def await的方式定义协程。 async 用来声明一个函数为异步函数,异步函数的特点是能在函数执行…

前端H5用Canvas画布做类似银行签名的操作

<!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>签名页面</title> </head> <body> <canvas id"signatureCanvas" width"400" height"200"></canvas> <bu…

WebGIS面试题(第三期)

WebGIS面试题&#xff08;第三期&#xff09;&#xff08;某公司&#xff09;上机笔试题 以下题目为南京某公司上机笔试题&#xff0c;题目仅为部分题目&#xff0c;全部题目在公众号{GISer世界}&#xff0c;答案仅供参考&#xff0c;需要电子版在公众号{GISer世界}内回复“面…

离散傅里叶变换中的能量守恒公式(帕斯瓦尔定理)及其程序举例验证

离散傅里叶变换中的能量守恒公式&#xff08;帕斯瓦尔定理&#xff09;及其程序举例验证 一、 离散傅里叶变换中的能量守恒公式 离散傅里叶变换中的能量守恒公式&#xff1a; ∑ n 0 N − 1 ∣ x [ n ] ∣ 2 1 N ∑ k 0 N − 1 ∣ X [ k ] ∣ 2 (1) \sum\limits_{n 0}^{N…

外汇天眼:进行外汇交易,杠杆是不是越大越好?

有在做外汇保证金交易的投资人&#xff0c;相信对杠杆一定不陌生&#xff0c;不知道你是否曾经想过&#xff0c;外汇杠杆到底要怎么用比较好&#xff1f;一家经纪商提供的杠杆越大&#xff0c;对交易者来说就一定好吗&#xff1f;让我们一起思考以下几个问题。 滥用外汇交易杠…

Python算法练习 11.2

leetcode 399 除法求值 给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件&#xff0c;其中 equations[i] [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi values[i] 。每个 Ai 或 Bi 是一个表示单个变量的字符串。 另有一些以数组 queries 表示的问题&…

【建议收藏】免费体验的AI论文写作网站-「智元兔 AI」

在当今技术飞速发展的时代&#xff0c;越来越多的领域开始应用人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;。其中&#xff0c;AI写作工具备受瞩目&#xff0c;备受推崇。 在众多的选择中&#xff0c;智元兔AI是一款在笔者使用过程中非常有帮助…

广联达OA存在未授权导致敏感信息泄漏

漏洞概述 广联达Linkworks办公OA系统存在未授权接口从而引发敏感信息泄露,攻击者可通过此漏洞获取账号密码登录后台,造成其他影响。 漏洞复现 /Services/Identification/Server/Login.aspx 页面访问如下所示&#xff1a; 拼接url路径访问&#xff1a; /Org/service/Service.…

React native window工程在macbook中打包运行环境搭建实录

做了个安卓的app&#xff0c;打算试试打包ios。但是mac中遇到许多挑战。在这记录下。 刚开始就是按照文档的操作的&#xff0c; 实际上这里Watchman 不是必须的&#xff0c; 这是监听文件变化然后自动同步更新模拟器效果的&#xff0c;完全可以修改后自己重新打包看效果&#…

selenium自动化测试入门 —— Alert/Confirm/Prompt 弹出窗口处理!

一、Alert/Confirm/Prompt弹出窗口特征说明 Alert弹出窗口&#xff1a; 提示用户信息只有确认按钮&#xff0c;无法通过页面元素定位&#xff0c;不关闭窗口无法在页面上做其他操作。 Confirm 弹出窗口&#xff1a; 有确认和取消按钮&#xff0c;该弹出窗口无法用页面元素定…

GZ035 5G组网与运维赛题第9套

2023年全国职业院校技能大赛 GZ035 5G组网与运维赛项&#xff08;高职组&#xff09; 赛题第9套 一、竞赛须知 1.竞赛内容分布 竞赛模块1--5G公共网络规划部署与开通&#xff08;35分&#xff09; 子任务1&#xff1a;5G公共网络部署与调试&#xff08;15分&#xff09; 子…

不可不知的项目管理策略:十大方法论深度剖析

深入了解项目管理的十大方法论&#xff0c;包括敏捷、六西格玛、看板等&#xff0c;并探讨它们各自的优势和适用场景。本文为您提供全面的指南&#xff0c;帮助您选择最适合您项目和团队的方法论&#xff0c;提升工作效率和项目成功率。 一、什么是项目管理方法论 项目管理方法…

Rust学习日记(一)Cargo的使用

前言&#xff1a; 这是一个系列的学习笔记&#xff0c;会将笔者学习Rust语言的心得记录。 当然&#xff0c;这并非是流水账似的记录&#xff0c;而是结合实际程序项目的记录&#xff0c;如果你也对Rust感兴趣&#xff0c;那么我们可以一起交流探讨&#xff0c;使用Rust来构建程…