Ebsynh及Ebsynth_utility深入理解(上)
工具要用好,首先你要理解工具是什么東西,怎么工作的。
我很反對連說明書都不看就亂搞的人,說明書看不懂是能力不足,用不好是技術有限,理解有誤也情有可原,而完全不看說明書就是個笑話。我作為一個工人叔叔,覺得這是不可原諒的低級錯誤。
廢話不多數(shù),先說一下我對Ebsynh的理解,它是把視頻拆解成圖片,計算圖片和圖片之間的差異,挑出動態(tài)變化最大的作為關鍵幀,然后修改關鍵幀后,再補幀回去合成視頻。
而Ebsynth_utility中也清晰列舉了步驟。
接下來我們看看這些步驟中的細節(jié)和可優(yōu)化空間
1. 將原始視頻轉(zhuǎn)換為幀序列。
生成一個蒙版圖像。
為什么要生成蒙版,把人物或者物品分割出來?
?
因為畫面要穩(wěn)定,如果你用過SD的MOV2MOV插件你就會發(fā)現(xiàn),每一幀都重新畫,在controlnet約束還不夠智能的情況下,合成的畫面閃爍嚴重。
?
在插件設置中,可以見到蒙版方式有三種:
透明背景,clip分割,透明背景和clip分割
?
1>?? 透明背景默認情況下?lián)赋鋈宋?,閾值設定是對摳像的精準度設置,如果只摳人,我建議用透明背景。
摳圖三種模式
--ckpt[CCKT](可選):使用其他檢查點文件。默認值使用復合數(shù)據(jù)集進行訓練,如果不可用,將自動下載。請參考InSPyReNet的Model Zoo,了解可用的預先培訓的檢查點。
(SD中未開放?)
?
--fast(可選):快速模式。如果指定,它將使用低分辨率輸入和用LR比例訓練的模型??赡軙档托阅?,但會減少推理時間和gpu內(nèi)存使用量。
(使用快速模式(它會更快,但蒙版質(zhì)量會較低)。)
--jit(可選):Torchscript模式。如果指定,它將使用pytorch內(nèi)置的torchscript JIT編譯器跟蹤模型。可能會導致初始化延遲,但會減少推理時間和gpu內(nèi)存使用。
(使用實時產(chǎn)出模式)
2>Clip物品分割,有時候我們要摳的不是人,而是物品,那就用這個,我做過clip摳人和透明背景的對比,clip 摳人0.5的效果是最好的,但是依舊趕不上透明背景,設置clip蒙版閾值0和1是兩個極端, 全部摳和完全不摳,所以我建議設置0.5,當然具體大家可以做試試看。
3>透明背景和clip分割 就是二者結(jié)合了,我很少用這個,大家可以實驗一下。
2
Ebsynth 提取關鍵幀
?
為什么要提取關鍵幀?
還是因為閃爍問題,實際上我們大部分時候都不需要每一幀重繪,而畫面和畫面之間也有很多相似和重復,因此提取關鍵幀,后面再補一些調(diào)整,這樣看起來更加流程和自然。
而畫面差異最大的幀,就是關鍵幀,一秒鐘內(nèi)大幅度的動作圖像就是關鍵幀。
如果關鍵幀太多,會有什么問題,SD重繪畫面數(shù)量增加,閃爍也增加,畫面穩(wěn)定度下降。
但是關鍵幀太少,會有什么問題?會缺失動作,因為Ebsynth是補幀,如果關鍵幀太少,補幀沒補上,就會漏畫面,感覺不自然。舉個例子,拍手動作剛抬起,第二畫面就雙手在一起,這同樣不可接受。
因此在這個項目中,我們就可以見到三個可調(diào)選項:
?
最小關鍵幀間隔:如果畫面變化多,多久截取一幀關鍵幀?這個數(shù)值越小,動態(tài)中的關鍵幀越多,動作細節(jié)丟失越少,但是閃爍可能嚴重
最大關鍵幀幀間隔:如果畫面長時間保持一致或者靜止,多長時間再截取一幀作為關鍵幀/
?
關鍵幀間隔差異閾值:差異多少才計算為關鍵幀,數(shù)值越大,關鍵幀越少
這個值越小,關鍵幀的間隔就越小,如果設置為0,關鍵幀的間隔將與[最小關鍵幀間隔]的值相同。
?
也就是說如果設置為0,那就不計算關鍵幀之間的差異了,直接按照最小關鍵幀間隔截取幀
?
設置最后一幀為關鍵幀,這個選項務必勾選。
?
3
將關鍵幀進行圖生圖
?
你想修改關鍵幀到什么程度,到什么地步?
如果你全程按照提示操作是這樣的
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1. 前往 圖生圖 選項卡
2. 在腳本框里選擇 [ebsynth utility]
3. Fill in the "Project directory" field with [E:\STAICVIDEO5]
4. Select in the "Mask Mode(Override img2img Mask mode)" field with [Normal]
5. I recommend to fill in the "Width" field with [512]
6. I recommend to fill in the "Height" field with [1088]
7. 建議將“重繪幅度”設置為小于0.35
(當使用 ControlNet 進行配合時,你可以嘗試設置更大的值(甚至1.0都可以)。)
8. 填寫圖生圖其他的設置。不需要設置圖像和蒙版。
9. 拖拽任意圖片到圖生圖主窗口。這樣做能有效避免錯誤,但不會影響圖生圖的結(jié)果。
10. 生成
(Images are output to [E:\STAICVIDEO5\img2img_key])
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
細節(jié)來了,
?
1>?? 注意推薦填寫的寬高,這里是512和1088,可是我原視頻只有480和1014啊,我需要按照推薦的填寫嗎?
其實是不需要的,你完全可以填寫原視頻的寬高,作為生成的成品關鍵幀數(shù),后面那一步調(diào)整分辨率的動作完全可以不做,直接建立個img2img_upscale_key文件夾把生存關鍵幀圖片放進去就可以了。
但是如果分辨率過小,SD生圖的細節(jié)可能丟失,這一點要注意。
?
2>?? 還有,如果你用了controlnet,那么請在ebsynth unility插件里面把權重設為1,太高了,容易出鬼圖,太低了控制會很差,當然如果你只想做點特效,也想節(jié)約時間,機器性能也差,那就將重繪幅度設置為小于0.35吧,這樣畫面閃爍會很低,但改變也很少。
?
3>?? 接下這點要格外注意:
?
關于推薦步驟里面的描述:拖拽任意圖片到圖生圖主窗口。這樣做能有效避免錯誤,但不會影響圖生圖的結(jié)果。
?
這一點描述是有問題,你在圖生圖主窗口的縮放模式,和control net的縮放模式,請務必一致。而且和建議的拖拽任意圖片不同,我的建議是必須原視頻的任意圖片,如果你拿了一個尺寸不一樣的其他圖片,蒙版會出現(xiàn)漂移,人物對不準蒙版的情況。
如果視頻尺寸過大,同樣可能出蒙版漂移的問題,如果是這樣,建議先修改視頻分辨率和尺寸
?
4>?? 關鍵幀風格化或者重大轉(zhuǎn)變 ,如果希望轉(zhuǎn)換幅度比較大,那建議不要添加精確的邊界或者線稿controlnet,僅僅用depth_zoe和openpost去控制大概。
用shuffle洗牌模型可以讓你作品控制力更強,變更更多,上傳圖片添加你想要的元素,當然也要配合種子和提示詞來做調(diào)整。如果你的設備還好,所有controlnet都建議使用完美像素模式,如果用了controlnet,那么重回幅度就可以設置很大,如果重繪低于0.75這個數(shù)值,畫面變化不會很大。
(請注意,僅僅使用到shuffle模型時需要使用上傳特定圖片,其余controlnet留空,會自動填充圖片)
?

有問題歡迎大家指正說明