当前位置: 首页 > news >正文

ComfyUI完全入门:图生图局部重绘

大家好,我是每天分享AI应用的萤火君!

这篇文章的主题和美女有关,不过并不是教大家生产美女视频,而是讲解 ComfyUI 的图生图局部重绘,其中将会以美女图片为例,来展示局部重绘的强大威力。

先看看效果:

ComfyUI是什么?

在AI绘画领域,Stable Diffusion 因其开源特性而受到广泛的关注和支持,背后聚拢了一大批的应用开发者和艺术创作者,是AI绘画领域当之无愧的王者。

目前使用 Stable Diffusion 进行创作的工具主要有两个:Stable Diffusion WebUI 和 ComfyUI。

Stable Diffusion WebUI 开箱即用,基本功能齐全,社区也有很多的插件支持,入门比较简单,适合新手,但是可定制性稍微差点,很多作品不容易传播复现,使用API进行操作也有一定的难度。

ComfyUI 虽然出来的晚一点,但是它的可定制性很强,可以让创作者搞出各种新奇的玩意,通过工作流的方式,也可以实现更高的自动化水平,创作方法更容易传播复现,发展势头特别迅猛。从解放生产力以及工业化批量生产的角度看,ComfyUI 具备更广阔的应用前景。

但是 ComfyUI 的上手门槛有点高,对 Stable Diffusion 以及各种扩展能力的原理需要有一定的理解,动手能力要求也比较高。为了让 ComfyUI 走进千家万户,从这篇文章开始,我将开始介绍一些 ComfyUI 的概念和使用方法,让大家更快的掌握 ComfyUI 的使用技巧,创作出自己独特的艺术作品。

如何安装 ComfyUI?

本地或手动安装

本系列的第一篇文章中已经详细的介绍过安装步骤,需要的同学请点此前往:ComfyUI 完全入门:安装部署

云环境使用

如果你的电脑没有配置高性能的Nvidia显卡,我建议你可以先在云环境试试,推荐两个云平台:

京东云:京东云最近大举进入AIGC领域,新上了AI服务器,价格十分美丽,目前4090每小时1.89,最重要的是还可以领取2个小时的代金券(领取方式见文末)。为了让大家在京东云尽快跑起来,萤火君也正在制作相应的 ComfyUI 镜像,内置常见模型和插件,敬请关注。

智算服务的地址:智算服务-京东云

AutoDL:AutoDL是一个云计算平台,提供多种显卡服务器租用服务,可按小时付(1-2元左右),显卡价格相比阿里云、腾讯云有明显的优势,我一直在用,推荐本地硬件性能不足的同学试试。

镜像地址:CodeWithGPU | 能复现才是好算法

镜像使用方法:打开镜像页面,点击右下角的“AutoDL创建实例”,按照使用说明操作即可。

ComfyUI局部重绘

基本重绘方法

我们先来看一个最简单的局部重绘示例,在这个示例中,我将在姑娘左边的地板上增加了一条黄色的小狗。工作流下载见文末。

加载重绘图片

从左向右看,最左边是加载需要做局部重绘的图片,并在图片中添加一个遮罩,遮罩的区域内将绘制一条小狗。这个部分包括4个节点,我分别介绍下:

加载图像:从文件夹选择一张图片,或者上传一张图片。然后我们在图片上点击右键,在弹出的菜单中继续点击“在遮罩编辑器中打开”,在打开的页面中我们就可以绘制遮罩了,完成绘制点击右下角的“Save to node”就可以了,操作如下图所示:

VAE编码:图片要进行重绘,还是要走扩散模型的基本流程,这里需要使用VAE模型将图片编码到潜空间。

遮罩羽化:让遮罩部分生成的内容和图片的其它部分融合的更好一些,不那么突兀。

遮罩平滑:我们手动操作可能比较毛糙,让遮罩的编码更加平滑。

设置Laten滤波遮罩:给潜空间中的遮罩区域增加噪音,这样可以让生成的内容和图片融合的更好些。

设置SD参数

然后我们还要设置Stable Diffusion的基本参数,包括:

加载SD基础模型:可以使用所有的SD基础模型,SD1.5、SDXL都可以。

填写提示词和反向提示词:描述要重绘的内容,不想出现的内容等。

设置采样器:常用的K采样器即可,所有参数都是用默认设置即可。

最终保存图像:可以设置一个文件名前缀。

然后就可以“添加提示词队列”去生成图片了。

使用ControlNet精细重绘

终于到了更换丝袜的环节了。因为我们只是想要更换丝袜的颜色,腿形啥的都不想有大的改变,这就需要更为精细的控制,可以通过引入 ControlNet 达到这个目的。

Canny控制网

我们先使用 Canny 控制网来进行处理,Canny 是一个线稿模型,它可以控制图片按照线稿的约束进行生成,效果不错。工作流的其它部分基本不用改变,我们只需要增加 ControlNet 的部分,并把这些节点添加到工作流中。这里主要介绍下ControlNet的部分(完整的工作流请在文末获取),看下面这张图:

先看左边三个节点:

  • Canny细致线预处理器器:从要重绘的图片中提取线稿图,这里边有个分辨率的参数,需要设置为图片最小边的像素值,所以引入了“数学表达式”和“图像信息”两个节点。
  • 图像信息:提取要重绘图片的宽度和高度。
  • 数学表达式:获取图片宽度和高度的最小值。

再看右边两个节点:

  • DiffControlNet加载器:用来加载ControlNet模型,注意模型要和预处理器匹配。
  • ControlNet应用:用来定义一个ControlNet节点,其中的强度、开始时间和结束时间,是用来控制 ControlNet 参数图片生成的影响力的,开始时间和结束时间的取值范围是0-1,代表在采样过程中的介入时机。

另外需要注意的是遮罩的绘制和提示词的编写:

先看遮罩的绘制,因为只是更改丝袜的颜色,我们这里需要只把腿覆盖上,其它部分尽量不要覆盖,以免出图效果不好。

再看提示词,我们需要在提示词中描述丝袜的颜色、质地等特征。

最后还是点击“添加提示词队列”去生成图片。

Tile控制网

另外我也做了一个Tile控制网的工作流,Tile的主要能力是细节完善,修改颜色比较困难,但是也能把丝袜处理的更好看一些,所以还是简单介绍下。

这里也需要一个预处理器,Tile平铺预处理器,它主要是把图片变模糊。这里的分辨率我没有自动计算,直接设置为了图片最小边的长度,你生成图片的时候请注意修改。

其它ControlNet模型的选择就没什么好说的了,工作流下载还是见文末。

资源分享

工作流:请给公众号“萤火遛AI”发消息:局部重绘,即可获取。

京东云代金券:请+V yinghuojun007 领取。


以上就是本文的主要内容。

用好 ComfyUI:

  • 首先需要对 Stable Diffusion 的基本概念有清晰的理解,熟悉 ComfyUI 的基本使用方式;
  • 然后需要在实践过程中不断尝试、不断加深理解,逐步掌握各类节点的能力和使用方法,提升综合运用各类节点进行创作的能力。

我将在后续文章中持续输出 ComfyUI 的相关知识和热门作品的工作流,帮助大家更快的掌握 Stable Diffusion,创作出满足自己需求的高质量作品,感兴趣的同学请及时关注。

另外我还创建了一个AI绘画专栏,可以零门槛,全面系统的学习 Stable Diffusion 创作,让创作灵感轻松落地!如有需要请点击此处进入。

相关文章:

ComfyUI完全入门:图生图局部重绘

大家好,我是每天分享AI应用的萤火君! 这篇文章的主题和美女有关,不过并不是教大家生产美女视频,而是讲解 ComfyUI 的图生图局部重绘,其中将会以美女图片为例,来展示局部重绘的强大威力。 先看看效果&…...

基于UDP的网络多人聊天室

UDP服务器 #include <myheader.h>//宏定义打印错误信息 #define PRINT_ERR(msg) \do \{ \printf("%S,%D,%S\n",__FI…...

美国FDA认证是什么,食品FDA注册申请流程

​美国FDA认证是什么&#xff1f; 美国FDA认证&#xff0c;全称为美国食品药品监督管理局&#xff08;Food and Drug Administration&#xff09;的认证&#xff0c;是美国政府为了确保食品、药品、医疗器械等产品的安全性和有效性所设立的重要制度。FDA认证的种类繁多&#x…...

golang的context和chan 的使用

1. context 作用 context包的context的接口&#xff0c;主要是控制协程执行上下文的时间&#xff0c;以及取消程序的执行&#xff0c;以及上下文中传递数据等作用&#xff0c;golang中耗时或者需要协同的操作都会见到context的身影。 context有几个常用的方法 1.1 context.B…...

洛谷P3574 [POI2014] FAR-FarmCraft(树形dp)

洛谷 P 3574 [ P O I 2014 ] F A R − F a r m C r a f t &#xff08;树形 d p &#xff09; \Huge{洛谷P3574 [POI2014] FAR-FarmCraft&#xff08;树形dp&#xff09;} 洛谷P3574[POI2014]FAR−FarmCraft&#xff08;树形dp&#xff09; 文章目录 题意题目说明 思路标程 题目…...

vue/core源码中ref源码的js化

起源&#xff1a; 当看见reactivity文件中的ref.ts文件长达五百多的ts代码后&#xff0c;突发奇想想看下转化成js有多少行。 进行转化&#xff1a; let shouldTrack true; // Define shouldTrack variable let activeEffect null; // Define activeEffect variable// 定义…...

准备打ccf

准备打ccf...

k8s遇到的错误记录

时隔四年有开始重新鼓捣k8s了&#xff0c;重新安装后遇到的错误记录如下&#xff1a; Error: Package: kubelet-1.14.0-0.x86_64 (kubernetes) Requires: kubernetes-cni 0.7.5 Available: kubernetes-cni-0.3.0.1-0.07a8a2.x86_64 (kubernetes) …...

全局平均池化笔记

全局平均池化&#xff08;Global Average Pooling, GAP&#xff09;是一种用于卷积神经网络&#xff08;CNN&#xff09;中的池化操作&#xff0c;其主要作用和优点包括&#xff1a; 减少参数数量&#xff1a;全局平均池化层将每个特征图通过取其所有元素的平均值&#xff0c;压…...

【数仓系列】maxcompute、postgresql、sparksql等行转列数据处理实战总结(其他类型持续总结更新)

1.熟悉、梳理、总结项目研发实战中的SQL开发日常使用中的问题、经验总结&#xff0c;都是常用的开发技能&#xff0c;可以省去很多时间&#xff0c;时间长就忘记了 2.欢迎点赞、关注、批评、指正&#xff0c;互三走起来&#xff0c;小手动起来&#xff01; 文章目录 1.maxcompu…...

用数据,简单点!奇点云2024 StartDT Day数智科技大会,直播见

在充满挑战的2024&#xff0c;企业如何以最小化的资源投入和试错成本&#xff0c;挖掘新的增长机会&#xff0c;实现确定性发展&#xff1f; “简单点”是当前商业环境的应对策略&#xff0c;也是奇点云2024 StartDT Day的核心理念。 5月28日&#xff0c;由奇点云主办的2024 S…...

Cloneable接口和深拷贝

在java中如何对对象进行拷贝呢&#xff1f;我们可以使用Object类中的clone方法。 一、浅拷贝 在使用clone方法对对象进行拷贝的时候&#xff0c;需要注意&#xff1a; 1.需要重写clone方法&#xff1b; 2.clone方法的返回值是Object类&#xff0c;需要强制类型转化&#xf…...

C++:vector的介绍及使用

✨✨✨学习的道路很枯燥&#xff0c;希望我们能并肩走下来! 文章目录 文章目录 前言 一、vector的介绍 二、vector的使用 2.1.构造和赋值重载&#xff08;Member functions&#xff09; 2.2 vector iterator 的使用 2.3 vector 空间增长问题 2.4 vector 增删查改 三 sort 四 v…...

【机器学习】大模型在机器学习中的应用:从深度学习到生成式人工智能的演进

&#x1f512;文章目录&#xff1a; &#x1f4a5;1.引言 ☔2.大模型概述 &#x1f6b2;3.大模型在深度学习中的应用 &#x1f6f4;4.大模型在生成式人工智能中的应用 &#x1f44a;5.大模型的挑战与未来展望 &#x1f4a5;1.引言 随着数据量的爆炸性增长和计算能力的提…...

营销短信XML接口对接发送示例

在现代社会中&#xff0c;通信技术日新月异&#xff0c;其中&#xff0c;短信作为一种快速、简便的通信方式&#xff0c;仍然在日常生活中占据着重要的地位。为了满足各种应用场景的需求&#xff0c;短信接口应运而生&#xff0c;成为了实现高能有效通信的关键。 短信接口是一种…...

【C语言刷题系列】求一个数组中两个元素a和b的和最接近整数m

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;C语言刷题系列 目录 一、问题描述 二、解题思路 解题思路&#xff1a; 解题步骤: 三、C语言代码实现及测试 一、问题描述 给定一…...

Python pdf2imges -- pdf文件转图片

pdf文件转图片&#xff0c;需要安装PyMuPDF包&#xff0c;具体PyMuPDF包介绍可以参考&#xff1a;Python 处理 PDF 的神器 -- PyMuPDF import fitz # pip install PyMuPDF# PDF转换为IMG统一管理 def pdf_to_images(pdf_path, img_path, filename):"""pdf_p…...

分布式版本控制工具 git

git 是什么 分布式版本控制工具。github 是代码托管平台。 git 有什么用 保存文件的所有修改记录。使用版本号&#xff08;sha1 哈希值&#xff09; 进行区分。随时可浏览历史版本记录。可还原到历史指定版本。对比不同版本的文件差异。 为什么要使用 git 多人协作开发一个大…...

Flutter 中的 ExpansionTile 小部件:全面指南

Flutter 中的 ExpansionTile 小部件&#xff1a;全面指南 在 Flutter 应用中&#xff0c;ExpansionTile 是一个常用的折叠列表项&#xff0c;它允许用户点击标题来展开或折叠更多的内容。这个组件在实现可折叠列表、FAQ 部分或显示详情信息时非常有用。本文将详细介绍 Expansi…...

二进制的协议的测试程序

一、引子 由于要调试二进制私有协议&#xff0c;不想用C重头到尾写&#xff0c;用C写工程量有点大&#xff0c;因此想找一个比较简单的工具&#xff0c;postman无法实现&#xff0c;外界的几乎找不到合适的工具&#xff0c;只能考虑手写一个。 前面写了一个python通过tcp协议发…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体&#xff08;对象或容器&#xff09;QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质&#xff08;定义颜色、反光等&#xff09;QFirstPersonC…...

libfmt: 现代C++的格式化工具库介绍与酷炫功能

libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库&#xff0c;提供了高效、安全的文本格式化功能&#xff0c;是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全&#xff1a…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...

Linux-进程间的通信

1、IPC&#xff1a; Inter Process Communication&#xff08;进程间通信&#xff09;&#xff1a; 由于每个进程在操作系统中有独立的地址空间&#xff0c;它们不能像线程那样直接访问彼此的内存&#xff0c;所以必须通过某种方式进行通信。 常见的 IPC 方式包括&#…...

【java】【服务器】线程上下文丢失 是指什么

目录 ■前言 ■正文开始 线程上下文的核心组成部分 为什么会出现上下文丢失&#xff1f; 直观示例说明 为什么上下文如此重要&#xff1f; 解决上下文丢失的关键 总结 ■如果我想在servlet中使用线程&#xff0c;代码应该如何实现 推荐方案&#xff1a;使用 ManagedE…...