使用 PixelSmile 精細表情控制進行精準肖像編輯
此 ComfyUI 工作流程在 Qwen Image Edit 之上提供 PixelSmile 精細表情控制。它允許您將面部從中性引導到特定情感,並在保持身份和構圖完整的情況下在它們之間混合。典型用例包括頭像的細微修飾、探索角色的情感變化以及在單一畫布中製作控制的表情混合。
在內部,圖形使用 Qwen 的編輯編碼器編碼中性和目標提示,計算 PixelSmile 差異以隔離表情變化,混合多個目標,然後使用輕量級 Lightning LoRA 進行採樣,以實現快速、一致的結果。您可以在不重構場景的情況下,對快樂、驚訝、中性或其他可提示表情進行可預測的控制。
Comfyui PixelSmile 精細表情控制工作流程中的關鍵模型
- Qwen-Image-Edit-2511。基於擴散的圖像編輯骨幹,在編輯過程中保持佈局和身份。它擴展了 Qwen-Image 用於結構感知的局部修改和穩定的文本條件變更。模型卡
- Qwen2.5-VL-7B-Instruct。這裡用作提示編碼器的文本-視覺模型,從短自然短語中生成穩健的編輯條件。模型卡
- PixelSmile LoRA。專注於表情的 LoRA,提供與提示語義對齊的線性、強度控制的面部變化。查看開源權重和專案資源。Hugging Face 論文
- Qwen-Image-Edit-2511-Lightning LoRA。速度優化的 LoRA,能夠在極少步驟中進行高質量編輯,非常適合互動式表情探索。模型卡
如何使用 Comfyui PixelSmile 精細表情控制工作流程
流程採用源肖像,建立中性和目標表情條件,計算 PixelSmile 差異,混合多個目標,然後採樣並解碼結果。在編碼器節點中編輯提示,調整 PixelSmile 強度和混合,並預覽輸出。
加載源肖像並設置工作尺寸
- 使用
LoadImage(#129) 將肖像導入。圖像同時供給編碼器和尺寸探測,以便圖形能夠在原始解析度下渲染。 GetImageSize+(#257) 讀取寬度和高度,EmptySD3LatentImage(#119) 分配與相同尺寸的潛在圖像。這在整個採樣過程中保持框架和構圖穩定。
描述中性和目標表情
TextEncodeQwenImageEditPlus(#248) 編碼與源圖像配對的中性描述(例如“中性表情”)。這成為您的參考狀態。- 在
TextEncodeQwenImageEditPlus(#113, #260) 中創建一個或多個目標描述,例如“高興表情”或“驚訝表情”。每個目標都使用相同的源圖像,這錨定了身份和姿態。 - 提示可以是簡短且自然的。編碼器使用 Qwen2.5-VL-7B-Instruct 來導出適合 Qwen-Image-Edit-2511 的編輯條件。
計算 PixelSmile 差異以實現精確控制
- 對於每個目標,
PixelSmileConditioning(#249, #259) 接受目標條件和中性條件,然後計算隔離面部表情變化的差異。 - 該節點暴露一個強度控制,線性縮放表情強度。它還支持一種令牌範圍方法,將插值限制在表情詞上,這有助於避免面部區域外的不必要變化。
混合多個表情
ConditioningAverage(#261) 將兩個 PixelSmile 輸出混合成一個正面條件。用於混合,例如 40% 驚訝與 60% 高興以形成複合情感。ConditioningZeroOut(#231) 通過將剩餘指導歸零提供乾淨的負面。這保持編輯專注並減少漂移。
使用 Qwen Image Edit 和 Lightning 進行採樣
- 模型堆疊加載 Qwen-Image-Edit-2511 UNet,應用 PixelSmile LoRA,然後層疊 Lightning LoRA 以實現快速、一致的步驟(
UNETLoader(#244) →LoraLoaderModelOnly(#250, #251) →ModelSamplingAuraFlow(#118))。 KSampler(#133) 使用混合的正面和歸零的負面條件執行去噪。Lightning LoRA 使得能夠在少步驟中進行響應式預覽,這在調整 PixelSmile 強度和混合時是理想的。
解碼和預覽
VAEDecode(#120) 將最終潛在圖像轉回圖像,PreviewImage(#134) 顯示結果。由於潛在尺寸與源一致,輸出保持構圖和縱橫比。
Comfyui PixelSmile 精細表情控制工作流程中的關鍵節點
PixelSmileConditioning (#249)
計算目標提示和中性基線之間的表情差異,然後將其縮放以控制強度。調整 score 以增加或柔化表情變化。method 開關讓您可以跨所有令牌插值以進行更廣泛的風格變化,或將插值限制在表情令牌以獲得更緊密的面部控制,這通常更忠實地保留頭髮和背景。查看節點實現以獲取詳細信息。GitHub
PixelSmileConditioning (#259)
第二個實例,允許在相同中性基線上設置平行目標(例如“驚訝”)。使用此設置 A/B 表情軌道,您可以進行混合。如果計劃混合,請保持兩個 PixelSmile score 值適中,因為兩條軌道上的極端設置可能會抵消或過度驅動結果。
ConditioningAverage (#261)
將兩個 PixelSmile 條件混合成一個正面條件。增加您希望主導的表情的權重,或完全設置為一側以進行純單一表情運行。在構建細微情感時,從接近平分開始,然後小幅度偏向,直到像眉毛和嘴角這樣的微特徵看起來自然。
TextEncodeQwenImageEditPlus (#113)
從簡短提示和輸入圖像生成編輯條件,利用 Qwen2.5-VL-7B-Instruct 作為 Qwen-Image-Edit-2511 的編碼器。保持措辭簡潔且具體以匹配情感。跨中性和目標編碼器配對相同的源圖像是保持身份的關鍵。
KSampler (#133)
運行堆疊的 Qwen-Image-Edit 骨幹和 Lightning LoRA 的去噪。主要用於控制整體迭代計數和變異性,同時微調 PixelSmile 強度和混合。如果出現人工痕跡,首先減少 PixelSmile score,然後增加步驟。
可選額外功能
- 保持表情詞明確,例如“細微的高興表情”或“輕微的驚訝”,以使 PixelSmile 差異偏向於微表情。
- 如果面部變化滲入頭髮或背景,將 PixelSmile
method切換到令牌限制插值並稍微減少score。 - 在編輯前鬆散地裁剪面部,如果表情感覺不足,然後一旦找到喜歡的設置再重新應用到整個圖像。
- 為了預覽速度,使用 Lightning LoRA 和低步驟進行迭代,然後僅在需要時為最終導出提高步驟。
參考模型和專案資源的鏈接:
- PixelSmile 項目和權重:Hugging Face 和論文 PixelSmile: Toward Fine-Grained Facial Expression Editing
- PixelSmile ComfyUI 節點:GitHub
- Qwen-Image-Edit-2511:Hugging Face
- Qwen2.5-VL-7B-Instruct:Hugging Face
- Qwen-Image-Edit-2511-Lightning:Hugging Face
致謝
此工作流程實施並構建於以下作品和資源之上。我們誠摯感謝 r/StableDiffusion 社群提供的源帖子,PixelSmile 提供的 PixelSmile 模型,以及 judian17 提供的 ComfyUI PixelSmile Conditioning Interpolation 節點的貢獻和維護。欲了解詳情,請參考下列鏈接的原始文檔和存儲庫。
資源
- r/StableDiffusion/Source post
- 文檔 / 發布說明:Reddit post
- PixelSmile/PixelSmile
- Hugging Face: PixelSmile/PixelSmile
- judian17/ComfyUI-PixelSmile-Conditioning-Interpolation
注意:使用參考模型、數據集和代碼需遵循其作者和維護者提供的相關許可和條款。
