ComfyUI-高級-ControlNet
用於跨時間步長和批量潛伏調度 ControlNet 強度,以及應用自訂權重和注意力掩模的節點。這裡的 ControlNet 節點完全支援滑動上下文採樣,就像 ComfyUI-AnimateDiff-Evolved 節點中使用的那樣。目前支援 ControlNets、T2IAdapters、ControlLoRAs、ControlLLLite、SparseCtrls、SVD-ControlNets 和 Reference。
自訂權重允許透過軟權重複製 Auto1111 的 sd-webui ControlNet 擴充功能的「我的提示更重要」功能,並且可以透過更改相同軟權重上的 uncond_multiplier 來精細控制「ControlNet 更重要」功能。
ControlNet 預處理器可透過 comfyui_controlnet_aux 節點使用。
特徵
- 時間步長和潛在強度調度
- 注意口罩
- 透過Soft Weights複製 sd-webui-controlnet 擴充功能中的「我的提示更重要」功能,並允許透過base_multiplier調整柔軟度
- 透過軟權重上的uncond_multiplier複製 sd-webui-controlnet 擴充功能中的「ControlNet 更重要」功能
- uncond_multiplier=0.0 給出與 auto1111 功能相同的結果,但可以毫無問題地使用 0.0 和 1.0 之間的值來精細控制設定。
- ControlNet、T2IAdapter 和 ControlLoRA 支援滑動上下文視窗
- ControlLLLite 支援
- SparseCtrl 支持
- SVD-ControlNet 支援
- CiaraRowles訓練的穩定視訊擴散控制網:深度、線條
- 參考支持
- 支援
reference_attn
、 reference_adain
和refrence_adain+attn
模式。 style_fidelity
和ref_weight
分別相當於Auto1111中的style_fidelity和control_weight,Apply ControlNet的強度是受ref影響的結果和無ref影響的結果之間的平衡。還有一個參考 ControlNet (Finetune) 節點,允許分別調整 attn 和 adain 的 style_fidelity、權重和強度。
目錄:
日程安排說明
調度的兩個核心概念是時間步長關鍵影格和潛在關鍵影格。
時間步長關鍵影格保存指導控製網路設定的值,並根據其 start_percent(對應於採樣過程的百分比)開始生效。它們可以包含每個潛在的強度、control_net_weights 和 Latent_keyframes(每個潛在的特定強度)的掩碼,所有這些都是可選的。
潛在關鍵影格確定控製網路對特定潛在變數的強度 - 它們包含的只是潛在變數的batch_index,以及控制網路應應用於該潛在變數的強度。作為一個概念,潛在關鍵影格可實現與具有所選強度值的統一遮罩相同的效果。
節點
此處提供的 ControlNet 節點是應用高階 ControlNet和載入高級 ControlNet 模型(或 diff)節點。普通 ControlNet 節點也是相容的,幾乎可以互換使用 - 唯一的區別是這些節點中至少有一個必須用於要使用的 ControlNet 的高級版本(對於滑動上下文採樣很重要,例如 AnimateDiff-Evolved) 。
鑰匙:
- ? - 所需的輸入
- ? - 可選輸入
- ? - 作為小工具啟動,可以轉換為輸入
- ? - 可選輸入/輸出,但除非需要,否則不建議使用
- ? - 輸出
應用先進的 ControlNet
與一般應用高階 ControlNet(進階)節點的功能相同,但新增了進階 ControlNet 功能。自動將任何 ControlNet 從 ControlNet 載入程式轉換為進階版本。
輸入
- ?正面:調理(正面)。
- ?消極:調節(消極)。
- ? control_net :載入controlnet;如果它是受支援的類型,則該節點將自動轉換為進階版本。
- ? image :引導控制網路的映像 - 如果載入的控製網路需要它,它們必須預處理映像。如果提供一張圖像,將用於所有潛在圖像。如果提供更多圖像,將為每個潛在圖像單獨使用每個圖像。如果沒有足夠的影像來滿足潛在計數,將從頭開始重複影像以匹配普通 ControlNet 功能。
- ? mask_Optional :應用於控製網路的注意遮罩;基本上,決定控製網路應用於影像的哪一部分(以及相對強度,如果遮罩不是二進位的)。與影像輸入相同,如果您提供多個掩模,則每個掩模都可以應用於不同的潛在變數。
- ? timestep_kf :時間步長關鍵幀,用於在整個採樣步驟中引導控製網路效果。
- ? Latent_kf_override :覆蓋潛在關鍵幀,如果不需要時間步長關鍵幀的其他功能,則非常有用。注意:此潛在關鍵影格將應用於所有時間步長,無論是否有其他潛在關鍵影格附加到連線的時間步長關鍵影格。
- ? Weights_override :覆蓋權重,如果不需要時間步長關鍵影格的其他功能,則非常有用。注意:此權重將應用於所有時間步長,無論是否有其他權重附加到連接的時間步長關鍵影格。
- ?強度:控制網的強度; 1.0 是完全強度,0.0 是完全沒有效果。
- ? start_percent :應開始套用 controlnet 的採樣步長百分比 - 無論在時間步長關鍵影格上設定什麼 start_percent,在達到此 start_percent 之前它們都不會生效。
- ? stop_percent :controlnet 應停止應用的採樣步長百分比 - 無論時間步長關鍵幀上設定什麼 start_percent,一旦達到 end_percent,它們都不會生效。
輸出
- ?正:使用控制網進行調節(正)
- ?負:使用控制網進行調整(負)
載入高級 ControlNet 模型
載入 ControlNet 模型並將其轉換為支援此儲存庫中所有功能的進階版本。與「套用高階 ControlNet」節點一起使用時,沒有理由在此節點上使用 timestep_keyframe 輸入 - 請在「套用」節點上使用 timestep_kf。
輸入
- ? timestep_keyframe :可選且可能不必要的輸入,以使 ControlNet 使用選定的 timestep_keyframes - 除非需要,否則不應使用。如果此節點未附加到「套用高階 ControlNet」節點,但仍想使用時間步長關鍵幀,或在同一場景中使用 ControlWeights 的 TK_SHORTCUT 輸出,則非常有用。將被“應用高級 ControlNet”節點上的 timestep_kf 輸入覆蓋(如果在那裡提供了)。
- ? model :插入節點差異版本的模型。有些控制網是為接收模型而設計的;如果您不知道這是做什麼的,您可能不想使用節點的 diff 版本。
輸出
- ? CONTROL_NET :載入進階 ControlNet
時間步長關鍵幀
根據設定的 start_percent 跨時間步(採樣步)調度節點。連結時間步長關鍵影格可讓 ControlNet 透過時間步長關鍵影格調度跨採樣步驟(按百分比)進行調度。
輸入
- ? prev_timestep_kf :用於將時間步長關鍵影格連結在一起以建立時間表。順序並不重要 - 時間步長關鍵影格會依其 start_percent 自動排序。 prev_timestep_keyframe 中包含的任何時間步長關鍵影格(包含與時間步長關鍵影格相同的 start_percent)都會被覆寫。
- ? cn_weights :在此時間步長關鍵影格生效時應用於 controlnet 的權重。必須與載入的控製網路相容,否則會拋出錯誤,解釋哪些權重類型是相容的。如果inherit_missing為True,且沒有傳入control_net_weight,將嘗試重複使用時間步驟關鍵影格計畫中最後使用的權重。如果套用高階 ControlNet 節點具有weight_override,則在採樣期間將使用weight_override 而不是control_net_weight。
- ? Latent_keyframe :此時間步長關鍵影格生效時應用於 controlnet 的潛在關鍵影格。如果inherit_missing為True,且沒有傳入latent_keyframe,則會嘗試重複使用時間步驟關鍵影格計畫中最後使用的權重。如果套用高階 ControlNet 節點具有 Latent_kf_override,則在採樣期間將使用 Latent_lf_override 而非 Latent_keyframe。
- ? mask_Optional :應用於控製網路的注意遮罩;基本上,決定控製網路應用於影像的哪一部分(以及相對強度,如果遮罩不是二進位的)。與「套用高階 ControlNet」節點上的 mask_Option 相同,可以將一個標記套用到所有潛在變量,也可以為每個潛在變數套用單獨的遮罩。如果inherit_missing為True,且沒有傳入mask_Optional,則會嘗試重複使用時間步驟關鍵影格計畫中最後使用的mask_Optional。它不會被應用高階 ControlNet 節點上的 mask_option 覆蓋;將一起使用。
- ? start_percent :此時間步長關鍵影格有資格使用的採樣步長百分比。充當時間步長關鍵影格計畫中時間步長關鍵影格的「關鍵」。
- ?強度:控制網的強度;將 controlnet 乘以該值,基本上與「應用 ControlNet」節點上的強度一起應用。如果設定為 0.0,則在此時間步長關鍵影格效果的持續時間內不會產生任何效果,並且會透過不執行任何工作來提高採樣速度。
- ? null_latent_kf_strength :分配給在傳入的 Latent_keyframes 中未說明的潛在變數的強度。如果沒有傳入 Latent_keyframes,或在採樣過程中 Latent_keyframes 中沒有未計入任何 batch_indeces,則不會產生任何影響。
- ?繼承_缺失:決定是否應重複使用先前時間步長關鍵影格中的值作為未包含在此時間步長關鍵影格中的可選值(control_net_weights、latent_keyframe 和 mask_option)。若要僅繼承特定輸入,請使用預設輸入。
- ? guarantee_steps :當1 或更大時,即使計劃中該時間步長關鍵幀的start_percent 更接近當前採樣百分比,該時間步長關鍵幀仍將用於指定的步數,然後再轉到下一個選定的時間步長關鍵影格接下來的步驟。無論是否使用時間步長關鍵幀,其輸入仍將考慮繼承缺失的目的。
輸出
- ? TIMESTEP_KF :已建立的時間步長關鍵幀,可以連結到另一個或連結到時間步長關鍵幀輸入。
時間步長關鍵影格插值
允許使用給定百分比範圍內的插值強度值來建立時間步長關鍵影格。 (第一個產生的關鍵影格的guarantee_steps=1,其餘的關鍵影格的guarantee_steps=0)。
輸入
- ? prev_timestep_kf :用於將時間步長關鍵影格連結在一起以建立時間表。順序並不重要 - 時間步長關鍵影格會依其 start_percent 自動排序。 prev_timestep_keyframe 中包含的任何時間步長關鍵影格(包含與時間步長關鍵影格相同的 start_percent)都會被覆寫。
- ? cn_weights :在此時間步長關鍵影格生效時應用於 controlnet 的權重。必須與載入的控製網路相容,否則會拋出錯誤,解釋哪些權重類型是相容的。如果inherit_missing為True,且沒有傳入control_net_weight,將嘗試重複使用時間步驟關鍵影格計畫中最後使用的權重。如果套用高階 ControlNet 節點具有weight_override,則在採樣期間將使用weight_override 而不是control_net_weight。
- ? Latent_keyframe :此時間步長關鍵影格生效時應用於 controlnet 的潛在關鍵影格。如果inherit_missing為True,且沒有傳入latent_keyframe,則會嘗試重複使用時間步驟關鍵影格計畫中最後使用的權重。如果套用高階 ControlNet 節點具有 Latent_kf_override,則在採樣期間將使用 Latent_lf_override 而非 Latent_keyframe。
- ? mask_Optional :應用於控製網路的注意遮罩;基本上,決定控製網路應用於影像的哪一部分(以及相對強度,如果遮罩不是二進位的)。與「套用高階 ControlNet」節點上的 mask_Option 相同,可以將一個標記套用到所有潛在變量,也可以為每個潛在變數套用單獨的遮罩。如果inherit_missing為True,且沒有傳入mask_Optional,則會嘗試重複使用時間步驟關鍵影格計畫中最後使用的mask_Optional。它不會被應用高階 ControlNet 節點上的 mask_option 覆蓋;將一起使用。
- ? start_percent :第一個產生的時間步長關鍵影格有資格使用的採樣步長百分比。
- ? end_percent :最後產生的時間步長關鍵影格有資格使用的採樣步長百分比。
- ? Strength_start :時間步長關鍵影格在範圍開始處的強度。
- ? Strength_end :時間步長關鍵影格在範圍末端的強度。
- ?插值法:插值法。
- ?間隔:總共產生的關鍵影格數量 - 第一個的 start_percent 等於 start_percent,最後一個的 start_percent 等於 end_percent。
- ? null_latent_kf_strength :分配給在傳入的 Latent_keyframes 中未說明的潛在變數的強度。如果沒有傳入 Latent_keyframes,或在採樣過程中 Latent_keyframes 中沒有未計入任何 batch_indeces,則不會產生任何影響。
- ?繼承_缺失:決定是否應重複使用先前時間步長關鍵影格中的值作為未包含在此時間步長關鍵影格中的可選值(control_net_weights、latent_keyframe 和 mask_option)。若要僅繼承特定輸入,請使用預設輸入。
- ? print_keyframes :如果為 True,將列印此節點產生的時間步長關鍵影格以用於偵錯目的。
輸出
- ? TIMESTEP_KF :已建立的時間步長關鍵幀,可以連結到另一個或連結到時間步長關鍵幀輸入。
清單中的時間步長關鍵幀
允許透過浮點數清單建立時間步長關鍵幀,例如使用來自 ComfyUI_FizzNodes 節點的批次值計畫。 (第一個產生的關鍵影格的guarantee_steps=1,其餘的關鍵影格的guarantee_steps=0)。
輸入
- ? prev_timestep_kf :用於將時間步長關鍵影格連結在一起以建立時間表。順序並不重要 - 時間步長關鍵影格會依其 start_percent 自動排序。 prev_timestep_keyframe 中包含的任何時間步長關鍵影格(包含與時間步長關鍵影格相同的 start_percent)都會被覆寫。
- ? cn_weights :在此時間步長關鍵影格生效時應用於 controlnet 的權重。必須與載入的控製網路相容,否則會拋出錯誤,解釋哪些權重類型是相容的。如果inherit_missing為True,且沒有傳入control_net_weight,將嘗試重複使用時間步驟關鍵影格計畫中最後使用的權重。如果套用高階 ControlNet 節點具有weight_override,則在採樣期間將使用weight_override 而不是control_net_weight。
- ? Latent_keyframe :此時間步長關鍵影格生效時應用於 controlnet 的潛在關鍵影格。如果inherit_missing為True,且沒有傳入latent_keyframe,則會嘗試重複使用時間步驟關鍵影格計畫中最後使用的權重。如果套用高階 ControlNet 節點具有 Latent_kf_override,則在採樣期間將使用 Latent_lf_override 而非 Latent_keyframe。
- ? mask_Optional :應用於控製網路的注意遮罩;基本上,決定控製網路應用於影像的哪一部分(以及相對強度,如果遮罩不是二進位的)。與「套用高階 ControlNet」節點上的 mask_Option 相同,可以將一個標記套用到所有潛在變量,也可以為每個潛在變數套用單獨的遮罩。如果inherit_missing為True,且沒有傳入mask_Optional,則會嘗試重複使用時間步驟關鍵影格計畫中最後使用的mask_Optional。它不會被應用高階 ControlNet 節點上的 mask_option 覆蓋;將一起使用。
- ? float_strengths :浮點列表,對應於每個時間步長關鍵影格的強度;第一個將分配給 start_percent,最後一個將分配給 end_percent,其餘的在之間線性分佈。
- ? start_percent :第一個產生的時間步長關鍵影格有資格使用的採樣步長百分比。
- ? end_percent :最後產生的時間步長關鍵影格有資格使用的採樣步長百分比。
- ? null_latent_kf_strength :分配給在傳入的 Latent_keyframes 中未說明的潛在變數的強度。如果沒有傳入 Latent_keyframes,或在採樣過程中 Latent_keyframes 中沒有未計入任何 batch_indeces,則不會產生任何影響。
- ?繼承_缺失:決定是否應重複使用先前時間步長關鍵影格中的值作為未包含在此時間步長關鍵影格中的可選值(control_net_weights、latent_keyframe 和 mask_option)。若要僅繼承特定輸入,請使用預設輸入。
- ? print_keyframes :如果為 True,將列印此節點產生的時間步長關鍵影格以用於偵錯目的。
輸出
- ? TIMESTEP_KF :已建立的時間步長關鍵幀,可以連結到另一個或連結到時間步長關鍵幀輸入。
潛在關鍵幀
單一潛在關鍵影格選擇特定批次索引的強度。如果採樣期間不存在batch_index,則不會產生任何效果。可以與任何其他潛在關鍵幀類型節點連結以建立潛在關鍵幀計劃。
輸入
- ? prev_latent_kf :用於將潛在關鍵影格連結在一起以建立時間表。如果 prev_latent_keyframes 中包含的潛在關鍵影格與該潛在關鍵影格具有相同的batch_index,則它們將優先於該節點的值。
- ? batch_index :要套用 controlnet 強度的批次中的潛在索引。充當潛在關鍵幀計劃中潛在關鍵幀的「關鍵」。
- ?強度:應用於對應潛伏的控制網強度。
輸出
- ? LATENT_KF :建立的潛在關鍵幀,可以連結到另一個或連結到潛在關鍵幀輸入。
潛在關鍵影格組
允許透過單獨的索引或 python 風格的範圍來建立潛在關鍵影格。
輸入
- ? prev_latent_kf :用於將潛在關鍵影格連結在一起以建立時間表。如果 prev_latent_keyframes 中包含的任何潛在關鍵影格與此潛在關鍵影格具有相同的batch_index,則它們將優先於該節點的版本。
- ? Latent_Optional :期望傳入採樣的潛在變數;僅當您希望使用負數時才需要(將自動轉換為實數值)。
- ? index_strengths :索引的字串清單或要為其分配強度的Python風格的索引範圍。如果傳入 Latent_Optional ,則可以包含負數或包含負數的範圍,Python 風格。不同的索引必須用逗號分隔。單一潛在變數可以透過
batch_index=strength
指定,例如0=0.9
。範圍可以透過start_index_inclusive:end_index_exclusive=strength
指定,例如0:8=strength
。當 Latents_Optional 具有輸入(帶有諸如0,-4=0.25
之類的字串)時,負索引是可能的。 - ? print_keyframes :如果為 True,將列印此節點產生的潛在關鍵影格以用於偵錯目的。
輸出
- ? LATENT_KF :建立的潛在關鍵幀,可以連結到另一個或連結到潛在關鍵幀輸入。
潛在關鍵幀插值
允許使用一定範圍內的插值來建立潛在關鍵影格。
輸入
- ? prev_latent_kf :用於將潛在關鍵影格連結在一起以建立時間表。如果 prev_latent_keyframes 中包含的任何潛在關鍵影格與此潛在關鍵影格具有相同的batch_index,則它們將優先於該節點的版本。
- ? batch_index_from :範圍的起始batch_index,包含在內。
- ? batch_index_to :範圍的結束batch_index,排除(python樣式範圍)。
- ? Strength_from :內插法的起始強度。
- ? Strength_to :內插的結束強度。
- ?插值法:插值法。
- ? print_keyframes :如果為 True,將列印此節點產生的潛在關鍵影格以用於偵錯目的。
輸出
- ? LATENT_KF :建立的潛在關鍵幀,可以連結到另一個或連結到潛在關鍵幀輸入。
清單中的潛在關鍵幀
允許透過浮點清單建立潛在關鍵幀,例如使用來自 ComfyUI_FizzNodes 節點的批次值計劃。
輸入
- ? prev_latent_kf :用於將潛在關鍵影格連結在一起以建立時間表。如果 prev_latent_keyframes 中包含的任何潛在關鍵影格與此潛在關鍵影格具有相同的batch_index,則它們將優先於該節點的版本。
- ? float_strengths :浮點列表,對應於每個潛在關鍵影格的強度; batch_index 是清單中每個浮點值的索引。
- ? print_keyframes :如果為 True,將列印此節點產生的潛在關鍵影格以用於偵錯目的。
輸出
- ? LATENT_KF :建立的潛在關鍵幀,可以連結到另一個或連結到潛在關鍵幀輸入。
還有更多節點可以記錄和顯示用法 - 將很快添加!待辦事項