19 webUI應用中 Controlnet精講(05)-圖像修復與編輯

?? ? 前面的篇章已經詳細講解了線條約束、三維關系與空間深度、人體姿態等幾類controlnet的功能與應用,本節內容將對通過controlnet對圖像修復與編輯進行講解。

? ? 通過controlnet也可以對圖片進行編輯、重繪及放大等操作,具體包括Recolor、Inpaint、Tile等,我們可以將這幾類功能理解為對原生圖生圖功能的延伸和拓展。

序號

分類

Controlnet名稱

備注

1

線條約束

Canny(硬邊緣)

約束性強,可以識別詳細線條

SoftEdge(軟邊緣)

柔和的線條

MLSD 直線、最小線段檢測

主要用于建筑空間

Lineart 線稿提取

粗細不同的線條

Scribble 涂鴉

粗略線條、發揮空間大

2

三維關系、

空間深度

Depth 深度

空間層次關系

Normal 法線貼圖

紋理效果常用

3

人體姿態、手勢與表情

Openpose 姿態控制

姿勢、表情、手勢控制

4

圖像風格轉換

Shuffle 隨機

打亂圖片元素重新組合

IP-Adapter (圖像)風格遷移

參考圖像畫風、換臉等

T2l-Adapter (文字轉圖)風格遷移

參考原圖畫風

Reference 參考圖引導

模仿原圖繪畫

Instant-ID 換臉

人物換臉

5

圖片修復與編輯

Recolor 重上色

老照片修復

Inpaint重繪

類似于局部重繪,但融合效果更好

Tile 分塊

分塊重采樣,細節方法

6

結構理解

Seg 語義分割

根據色塊代表不同含義

7

其它

InstructP2P 指令式編輯

變換場景、特效

Revision 圖像修訂

1 Recolor重上色

? ? 相信大家在網上看到過類似于老照片修復顏色的直播,這里面用到的主要功能就是通過Recolor重上色實現的。

? ? 模型下載地址:https://huggingface.co/lllyasviel/sd_control_collection/tree/main

? ? 對應1.5大模型版本模型1個:

對應XL大模型版本模型共有2個,根據電腦內存情況選擇其中1個下載即可:

? ? Recolor預處理器共2種: intensity(調節圖像強度)和 luminance(調節圖像亮度),推薦使用 luminance效果更好。

? ? Gamma Correction參數用于調節圖片的明暗,默認值為1,設置完成后點擊爆炸按鈕即可看到該數值的預覽效果,方便多次調整至目標數值。

? ? 使用Recolor模型,可以通過提示詞指定圖中人物或環境等元素的顏色,如膚色、衣服色彩等,從而實現對圖片中元素色彩的調整。

? ? Recolor在文生圖或者圖生圖中使用均可以獲得類似的效果,下面以在文生圖中為一張黑白圖像上色作為案例,對recolor功能進行講解。

目標圖像:

提示詞獲取:可以通過WD1.4標簽器功能反推出圖片關鍵詞,再根據目標需求進行修改。

調整后提示詞描述為

正向提示詞:color photo,solo,1girl,exquisite face,realistic,looking at viewer,lips,person photo,blond hair,fair_skin,lipstick,black eyelashes BREAK blue eyes,simple background,glass soda bottle,white shirt BREAK light blue sweater,

反向提示詞:DeepNegative_xl_v1,

Recolor 無法保證需要的顏色可以準確地賦予特點的元素,不同的顏色之間也可能會出現相互污染,實際使用時可以配合提示詞打斷語法進行調試(BREAK句式)。

? ? 實際上因為年代久遠的問題,很多老照片并不清晰,僅僅采用重上色功能,可能無法達到較好的效果。一般情況下,一張老照片的修復需要經過以下幾個步驟:先采用高清修復功能放大照片分辨率;再對照片進行消除噪點、修復損壞部分;最后再通過SD重上色功能進行上色填充。后續章節中針對老照片上色操作步驟會有詳細的講解。

2 Inpaint局部重繪

? ? Inpaint局部重繪的功能與圖生圖十分類似,但是因為在controlnet中可以選擇不同的預處理器和模型,使Inpaint重繪的可控性比webUI圖生圖功能更強。

? ? inpaint重繪預處理共三個:

①重繪-全局融合算法(Inpaint_Global_Harmonious):對圖片整體畫面和色調調整,由于更加側重蒙版區域與整體畫面的融合,整體畫面可能較原圖有較大變動;

②僅局部重繪(Inpaint_only):僅對蒙版區域進行局部重繪;

③僅局部重繪+大型蒙版(Inpaint_only+lama):Inpaint_only的改良,lama算法更適合抹除蒙版區域內較為突出的內容,更適合消除/抹除畫面局部內容。

2.1 局部內容消除

? ? 上傳一張人物風景照,嘗試去除風景照中的人物,并使該區域更好地融入背景。

? ? controlnet中上傳圖像,鼠標手動繪制蒙版--圖像左上角點擊“圖像”可以看到操作方式。

? ? 測試幾款預處理器預覽效果,Inpaint_only+lama在預處理器階段就可以很好地實現去除物體效果。

? ? 再來測試實際生成圖片情況,測試僅依賴inpaint的消除功能,在提示詞區域不填寫任何內容:

生圖結果對比:

? ? 經過多輪抽卡,三款預處理器雖然均能實現抹除蒙版內容并生成與融入周邊背景的內容,但從成功概率及生成效果對比,Inpaint_only+lama消除蒙版內容能力上有明顯優勢。

2.2 局部重繪

? ? 涂抹圖片中需要重繪的區域,提示詞中填入目標內容提示詞。

? ? 比如我們將風景照中的人物衣服重繪成白色襯衫,測試一下三個預處理器的對比情況。

? ? 提示詞中填寫目標內容,打開controlnet上傳底圖并手繪蒙版區域:

? ? 三款預處理器生成效果對比:

預處理效果

生成圖像效果

Inpaint_only+lama在預處理時即消除蒙版區域,雖然可以成功生成白色襯衣背影,但多次抽卡依然缺少一部分被消除的胳膊。

inpaint_only預處理器可以較好地按指令生成重繪內容

inpaint_global_harmonious預處理器可以較好地按指令生成重繪內容,根據其它圖像測試,該預處理器在局部重繪時對全局融合的效果最好。

? ? 該功能效果與圖生圖局部重繪效果基本類似(圖生圖局部重繪需要重繪蒙版區域,可能需要多次抽卡才能獲得正常圖片,更多地應用于重繪非蒙版區域)。

? ? 高效子蒙版區的作用和圖生圖-上傳蒙版重繪功能基本一致,但是經過實測,文生圖controlnet中inpaint功能中僅有預處理器inpaint_global_harmonious對上傳的蒙版生效,另外兩款預處理器無效。另外需要注意,inpaint中,白底黑色蒙版圖中黑色區域為蒙版區域。

2.3 擴圖

? ? 我們可以利用提示詞+重繪功能來填充目標圖像大于參考圖像的范圍空間,從而實現擴圖的功能。

? ? 因為是擴圖,我們需要用到原圖中的描述,可以通過WD1.4反推獲取提示詞(使用完反推功能后一定記得卸載反推模型),并發送到文生圖。

? ? 注意,圖片尺寸需設置為擴圖后尺寸,其余參數參考如下:

? ? controlnet中選擇inpaint,選擇預處理與模型,注意縮放模式需選擇“縮放后填充空白”,即擴充畫布后將新增空白區域進行填充。

? ? 生成效果如下:

3 Tile分塊

? ? ?Tile分塊的原理是將圖片切分成多個分塊,分別識別每個分快的信息并進行放大及細節增強,最后再通過特定算法將擴大后的分塊重組成一張圖片。Tile分塊因為采取分塊放大再組合的方式,可以有效避免整張圖片放大時易爆顯存情況。理論上只要分的塊足夠多,普通顯存設備也能繪制任意尺寸的放大圖,只是需要花費的時間長短問題。

? ? ?因在優化圖像細節的同時不會影響畫面結構,除了將低像素圖像清晰化外,Tile也可以用于增加畫面細節,常用于模糊照片修復、圖片放大、修復細節等。

? ? ?Tile分塊共有4 種預處理器:resample重采樣、colorfix+sharp固定顏色+銳化、colorfix固定顏色,以及特殊的算法blur_gaussian高斯模糊(通過模糊輸入圖像的特征,再重新生成質量更的圖像)。

3.1 案例

? ? ?目標:將一張低像素模糊照片清晰化,并增加細節。

? ? 選擇與目標圖像風格對應的大模型;

? ? 提示詞欄添加對圖像內容簡單描述詞,也可通過WD1.4反推獲得:

? ? ?參數設置中主要注意寬度高度設置為原圖的倍數,即放大倍數:

? ? ?打開controlnet,上傳底圖(案例尺寸128×256),控制類型選擇“Tile分塊”,選擇對應預處理器與模型等。

? ? ?不同預處理器最終生圖效果如下:

? ? 可以看出,圖片在保持了原圖片的原有結構基礎上,通過增加細節變得更加清晰。這一點在圖生圖模塊中很難實現,如采用圖生圖進行圖像放大,調高重繪幅度雖然能增強畫面細節,但是圖片的變化可能會很大,導致與原圖有明顯差距。

? ? 其它1組案例:

3.2 案例2

? ? ?一張原本清晰的照片,通過Tile功能增加細節(圖像尺寸不變,不改變圖像原有結構)

? ? 因不改變圖像尺寸,只通過tile增加細節,所以此處目標圖像尺寸通過controlnet直接同步即可,無需調整。

? ? ?不同預處理器生成圖像如下,可以看到后面兩幅圖較原圖均有細節增加。

總結:

? ? ? ? 這里分享webUI的本地整合包資源,個人自用的整合包(超全插件及模型,本節課程所有涉及的模型均可在對應文件夾中找到下載)。

? ? ?整合包形式,無需安裝,Windows系統下載打開即用。

「webui全能包(內置超全插件、模型)--100G左右」https://pan.quark.cn/s/3647679a1966

????歡迎正在學習comfyui等ai技術的伙伴V加 huaqs123 進入學習小組。在這里大家共同學習comfyui的基礎知識、最新模型與工作流、行業前沿信息等,也可以討論comfyui商業落地的思路與方向。 歡迎感興趣的小伙伴,群共享資料會分享博主自用的comfyui整合包(已安裝超全節點與必備模型)、基礎學習資料、高級工作流等資源……

????致敬每一位在路上的學習者,你我共勉!Ai技術發展迅速,學習comfyUI是緊跟時代的第一步,促進商業落地并創造價值才是學習的實際目標。

——畫青山Ai學習專欄———————————————————————————————

零基礎學Webui:

https://blog.csdn.net/vip_zgx888/category_13020854.html

Comfyui基礎學習與實操:

https://blog.csdn.net/vip_zgx888/category_13006170.html

comfyui功能精進與探索:

https://blog.csdn.net/vip_zgx888/category_13005478.html

系列專欄持續更新中,歡迎訂閱關注,共同學習,共同進步!

—————————————————————————————————————

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/921891.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/921891.shtml
英文地址,請注明出處:http://en.pswp.cn/news/921891.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

消息推送的三種常見方式:輪詢、SSE、WebSocket

摘要:本文介紹消息推送的三種常見方式:輪詢(定時請求,易增負擔)與長輪詢(阻塞請求至有數據 / 超時,減少請求)、SSE(HTTP 單向實時傳輸,純文本、自動重連&…

論文閱讀:ACL 2024 Stealthy Attack on Large Language Model based Recommendation

總目錄 大模型相關研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 https://arxiv.org/pdf/2402.14836 https://www.doubao.com/chat/19815566713551106 文章目錄速覽攻擊方法速覽一、攻擊核心目標與前提1. 核心目標2. 攻擊前提二、模型無關的簡單…

自動駕駛中的傳感器技術43——Radar(4)

本文對目前毫米波雷達中的天線設計進行比較全面的羅列,并進行簡單的設計評述 1、實際設計案例 圖1 涵蓋能寬窄覆蓋的天線設計(無俯仰分辨率)圖2 Bosch前雷達的天線設計(有俯仰的分辨率但比較弱,也涵蓋了擴展覆蓋&…

使用反轉法線材質球,實現切換天空盒相同的功能,優點:包體變小

切換天空盒第一步先把SKY 天空球資源導入到工程里, 第二步:天空球文件下的SKY預制件拖入到場景里 第三步 選著SKY材質球,拖入自己的全景圖片(圖片分辨率不能超過5000*5000,否則手機無法顯示) 如果并沒有效果,看看圖…

真正有效的數據指標體系應該長什么樣?

真正有效的數據指標體系應該長什么樣?為什么大多數企業的指標體系都是"花架子"?真正有效的指標體系應該長什么樣?從數據到洞察:讓指標真正"活"起來結語在這個人人都在談數字化轉型的時代,企業就像…

分布式專題——6 Redis緩存設計與性能優化

1 多級緩存架構2 緩存設計 2.1 緩存穿透 2.1.1 簡介緩存穿透是什么?當查詢一個根本不存在的數據時,緩存層和存儲層都不會命中。正常邏輯下,存儲層查不到數據就不會寫入緩存層。這會導致:每次請求這個不存在的數據,都要…

一文了解大模型壓縮與部署

一文了解大模型壓縮與部署:從 INT4 量化到 MoE,讓大模型跑在手機、邊緣設備和云端🎯 為什么需要模型壓縮與部署?你訓練了一個強大的大模型(如 Qwen-72B、LLaMA-3-70B),但在部署時發現&#xff1…

新手向:中文語言識別的進化之路

自然語言處理(NLP)技術正在以前所未有的速度改變我們與機器的交互方式。根據Gartner最新報告顯示,全球NLP市場規模預計在2025年將達到430億美元,年復合增長率高達21%。而中文作為世界上使用人數最多的語言(全球約15億使…

LeetCode100-206反轉鏈表

本文基于各個大佬的文章上點關注下點贊,明天一定更燦爛!前言Python基礎好像會了又好像沒會,所有我直接開始刷leetcode一邊抄樣例代碼一邊學習吧。本系列文章用來記錄學習中的思考,寫給自己看的,也歡迎大家在評論區指導…

uniapp開源多商戶小程序商城平臺源碼 支持二次開發+永久免費升級

在電商行業競爭日益激烈的今天,擁有一個功能強大、靈活可拓展的多商戶小程序商城至關重要。今天給大家分享一款 uniapp 開源多商戶小程序商城平臺源碼,它不僅具備豐富的基礎功能,還支持二次開發,更能享受永久免費升級服務&#xf…

使用腳本一鍵更新NTP服務器地址為自定義地址

【使用場景】 在銀河麒麟桌面操作系統V10SP1-2303版本中使用腳本一鍵修改NTP服務器地址為自定義地址。 【操作步驟】 步驟1. 編寫shell腳本 ```bash desktop2303@desktop2303-pc:~$ vim setntptimeserver.sh #!/bin/bashfunction modifykylinconf() { # 檢查是否已存在目標配置…

linux內核 - 內核架構概覽

當 Linux 系統啟動時,內核會在啟動過程的早期階段接管控制——緊跟在固件(BIOS 或 UEFI)和引導加載程序完成任務之后。此時,壓縮的 Linux 內核鏡像會被加載到內存中,通常會附帶一個稱為 initramfs 的最小臨時根文件系統,它用于在切換到真實根文件系統并繼續系統初始化之前…

[react] react-router-dom是啥?

頁面路由,注意頁面路由不是路由器,因為我之前總是把路由和路由器搞混。而且我總是把前端頁面的路由和路由器的路由搞混。那么這里一定要明白,這里我所說的頁面路由就是指在瀏覽器里面的導航路由。 npm create vitelatest my-react-app – --t…

HTTP簡易客戶端實現

🌐 HTTP簡易客戶端實現 流程圖: 引用: chnroutes2.cpp#L474 chnroutes2_getiplist() chnroutes2.cpp#L443 http_easy_get(…) 🕒 1. 超時管理機制 (http_easy_timeout) 🔹 核心功能:創建定時器自動關…

建筑面LAS點云高度計算工具

效果 例如中位數,計算后,在shp建筑面中添加一個字段meidian_hei 準備數據 1、建筑矢量面.shp 2、點云.las 界面 腳本 import laspy import shapefile # pyshp庫,處理POLYGONZ坐標格式異常 import pandas as pd import numpy as np import os import traceback # 打印…

java day18

繼續學習,學習sringboot案例;熟悉的三件套;比如做一個表,前端搭建好框架,然后返回給后端一個請求,說要這個表的數據吧;然后通過請求和規定的格式返回給后端之后,我們后端進行接收處理…

并發編程原理與實戰(二十八)深入無鎖并發演進,AtomicInteger核心API詳解與典型場景舉例

無鎖并發演進背景 隨著系統高并發的壓力越來越大,傳統同步機制在高并發場景下的性能瓶頸和缺點可能會逐漸顯露: (1)性能損耗:synchronized等鎖機制會導致線程阻塞和上下文切換,在高并發場景下性能損耗顯著。…

整體設計 之 緒 思維導圖引擎 之 引 認知系統 之 引 認知系統 之 序 認知元架構 之5 : Class 的uml profile(豆包助手 之7)

摘要(AI生成)三層中間件架構的約束邏輯體系1. 架構定位與功能分工三個中間層(隔離層/隱藏層/防腐層)構成數據處理管道,分別承擔:隔離層:跨系統數據轉換處理對象:異構數據&#xff08…

iframe引入界面有el-date-picker日期框,點擊出現閃退問題處理

前言:iframe引入界面有el-date-picker日期框,點擊出現閃退問題處理。問題情況:點擊開始日期的輸入部分,會出現閃退情況,該組件是iframe調用的內容問題分析:事件冒泡,點擊與聚焦的時候&#xff0…

docker 拉取本地鏡像

要在Docker中拉取本地鏡像,通常有以下幾種實現方法: 使用docker pull命令:可以使用docker pull命令從本地鏡像倉庫拉取鏡像。例如,如果本地鏡像的名稱是my-image,則可以運行以下命令拉取鏡像: docker pull …