ชอบโหนดนี้ไหม? ซื้อกาแฟให้ฉันหน่อย!
เริ่มต้นใช้งาน? ดาวน์โหลดขั้นตอนการทำงานทดสอบด้านล่างและดูวิธีการทำงาน
ปัญหา? ข้ามไปที่การบันทึกและการดีบัก
แนวคิดสำหรับวิธีปรับปรุงโหนด (หรือรายงานข้อผิดพลาด) - แจ้งปัญหา
ปลั๊กไร้ยางอายสำหรับโหนดอื่นๆ ของฉัน -> ลองดู Image Picker เพื่อดูวิธีอื่นในการทำให้เวิร์กโฟลว์ราบรื่นยิ่งขึ้น และฝากดาวไว้ถ้าคุณชอบอะไร!
เวิร์กโฟลว์นี้ใช้ทั้งห้าโหนด และสามารถใช้เพื่อทดสอบ (และทำความเข้าใจ!) โหนดได้ คุณจะไม่สร้างมันแบบนี้ มันเป็นเพียงตัวอย่าง... | นี่คือภาพที่มีขั้นตอนการทำงาน |
---|---|
หรือเวิร์กโฟลว์เป็น json
มีบางสถานการณ์ที่โหนด UE ไม่สามารถรับมือได้ในปัจจุบัน นี่คือบางส่วนที่ฉันรู้และวิธีแก้ปัญหาที่เป็นไปได้
โหนดแบบกำหนดเองของ pythonsssss นั้นยอดเยี่ยม แต่มีข้อ จำกัด บางประการในการใช้งานกับโหนด UE โดยเฉพาะอย่างยิ่ง คุณไม่สามารถป้อนเอาต์พุตของโหนด Preset Text ลงในโหนด UE ได้โดยตรง (ดู #154)
โหนด UE ส่วนใหญ่ทำงานกับโหนดกลุ่ม แต่มีสิ่งสำคัญสองประการที่ควรทราบ:
5.0 (6 สิงหาคม 2567)
4.9 (2 พฤษภาคม 2567)
4.8 (18 มีนาคม 2567)
send to unmatched
4.7 (1 มีนาคม 2567)
Anything Everywhere?
โหนด4.6
Anything Everywhere?
โหนด4.5
convert to real links
4.4
Anything Everywhere?
โหนดที่มีอินพุต (ใช้งานได้เฉพาะในกรณีที่ลิงก์มาจากโหนดที่เป็นแหล่งสตริงแบบธรรมดา)4.3
4.2
4.1.2
4.1.1
4.1
โหนด v1 ได้ถูกลบออกอย่างสมบูรณ์แล้ว หากคุณใช้งานอยู่ คุณสามารถแทนที่มันด้วยโหนด Anything Everywhere
ได้
ใช้ตัวจัดการที่สะดวกสบาย หากคุณต้องการดำเนินการด้วยตนเองจริงๆ เพียงโคลนที่เก็บนี้ในไดเร็กทอรี custom_nodes ของคุณ
โหนด Anything Everywhere
มีอินพุตเดียว ซึ่งเริ่มแรกมีป้ายกำกับว่า 'anything' เชื่อมต่ออะไรก็ได้ (โดยตรง - ไม่ใช่ผ่านการเปลี่ยนเส้นทาง) และชื่ออินพุตจะเปลี่ยนไปเพื่อให้ตรงกับประเภทอินพุต ตัดการเชื่อมต่อและกลับไปที่ 'อะไรก็ได้'
เมื่อคุณเรียกใช้พร้อมท์ อินพุตที่ไม่ได้เชื่อมต่อใดๆ ในเวิร์กโฟลว์ซึ่งตรงกับประเภทนั้น จะทำงานเหมือนกับว่าเชื่อมต่อกับอินพุตเดียวกัน
หากต้องการเห็นภาพสิ่งที่กำลังเชื่อมต่ออยู่ ให้คลิกขวาที่พื้นที่พื้นหลังแล้วเลือก Toggle UE Link Visibility
โหนดนี้เพิ่มวิดเจ็ตสองตัว - title_regex และ input_regex มันจะส่งไปยังอินพุตที่ตรงกันเท่านั้น ดังนั้นในตัวอย่าง title_regex คือ 'Preview' ดังนั้นรูปภาพจะถูกส่งไปยังโหนด Preview Image แต่ไม่ใช่โหนด Save Image โปรดทราบว่าคุณสามารถเปลี่ยนชื่อโหนดและป้อนชื่อได้ ซึ่งสามารถช่วยได้!
(จากเวอร์ชัน 4.6 คุณยังสามารถระบุกลุ่ม regex เพื่อจับคู่อินพุตบนโหนดซึ่งอยู่ในกลุ่มที่ตรงกับ regex เท่านั้น)
การจับคู่เป็นนิพจน์ทั่วไป ไม่ใช่การจับคู่สตริง สตริงแบบง่ายส่วนใหญ่จะใช้งานได้ (ตรงกับส่วนใดส่วนหนึ่งของชื่อเรื่องหรือชื่ออินพุต) แต่อักขระบางตัวมีความหมายพิเศษ (รวมถึงวงเล็บประเภทต่างๆ เช่น ^, $, / และ . โดยเฉพาะ) ดังนั้นควรหลีกเลี่ยงหากคุณไม่เป็นเช่นนั้น มีแนวโน้มว่าจะใช้ regex
การใช้ regex หมายความว่าคุณสามารถใช้ ^prompt
เพื่อจับคู่ prompt
ที่ตอนต้นของชื่อเท่านั้น เพื่อหลีกเลี่ยงการจับคู่ negative_prompt
Regex 101 - ^
หมายถึง 'จุดเริ่มต้น', $
หมายถึง 'จุดสิ้นสุด' .
จับคู่อักขระเดี่ยวใดๆ .*
จับคู่อะไรก็ได้ที่มีความยาวเท่าใดก็ได้ (รวมถึงศูนย์ด้วย) หากต้องการมากกว่านั้น โปรดไปที่ regex101 (รสชาติที่คุณต้องการคือ ECMAScript แม้ว่านั่นอาจจะไม่สำคัญก็ตาม)
เรียงลำดับของ
เนื่องจากจำเป็นต้องทราบ regex ก่อนที่จะส่งเวิร์กโฟลว์ (เพื่อคำนวณลิงก์) คุณจึงไม่สามารถส่งสตริงไปที่ Anything Everywhere?
โหนดและคาดว่าจะใช้งานได้ สิ่ง เดียว ที่ได้รับการสนับสนุนคือถ้าอินพุตมาจากโหนด โดยตรง ซึ่งตั้งค่าด้วยวิดเจ็ตสตริง โหนด Simple String
ที่รวมอยู่ในชุดนี้จะใช้งานได้
มันได้ผล | นี่ไม่ได้ และไม่เคยจะ |
---|---|
Seed Everywhere เชื่อมต่อกับอินพุต INT ที่ไม่ได้เชื่อมต่อด้วย seed
ในชื่ออินพุต (seed, noise_seed ฯลฯ) และมีฟีเจอร์ control_after_generate ดังนั้นหากคุณแปลงวิดเจ็ตเริ่มต้นเป็นอินพุต คุณจะสามารถใช้เมล็ดพันธุ์เดียวกันได้ทุกที่
จริง ๆ แล้วมีเพียงสามโหนด Anything Everywhere
ที่บรรจุรวมกัน ออกแบบมาสำหรับเอาท์พุตของ Checkpoint Loader
Prompt Everywhere มีสองอินพุต พวกเขาจะถูกส่งไปพร้อมกับกฎการจับคู่ regex ของ (^prompt|^positive)
และ neg
ตามลำดับ สิ่งเหล่านี้ควรตรงกับชื่อเวอร์ชันต่างๆ ที่ใช้สำหรับพร้อมท์และพร้อมท์หรือเงื่อนไขเชิงลบ
สตริง | เครื่องปรับอากาศ |
---|---|
โหนด UE ไม่ทำงานกับข้อมูลพื้นฐานและ COMBO (ประเภทข้อมูลที่ใช้สำหรับรายการแบบเลื่อนลง ซึ่งเป็นประเภทข้อมูลพื้นฐานภายใน Comfy เช่นกัน) ไม่น่าเป็นไปได้ที่พวกเขาจะทำได้
หากคุณต้องการใช้ UE เพื่อควบคุมแซมเพลอร์หรือซิกม่า คุณสามารถทำได้ด้วยโหนด SamplerCustom
ในตัว:
สำหรับข้อมูลเพิ่มเติม โปรดดูการสนทนานี้
คลิกขวาที่โหนดและคุณสามารถตั้งค่าให้ปฏิเสธลิงก์ UE ได้
หากคุณต้องการดูลิงก์ UE คุณสามารถเปิดและปิดลิงก์เหล่านั้นได้ด้วยการคลิกขวาบนผืนผ้าใบ เพื่อการควบคุมที่ละเอียดยิ่งขึ้น เมนูการตั้งค่าหลักมีตัวเลือกให้แสดงลิงก์เมื่อเลื่อนเมาส์ไปเหนือโหนดที่ปลายด้านใดด้านหนึ่ง หรือเมื่อเลือกโหนดใดโหนดหนึ่งเหล่านั้น
ลิงก์สามารถทำเป็นภาพเคลื่อนไหวเพื่อแยกความแตกต่างจากลิงก์ปกติได้ - ภาพเคลื่อนไหวนี้อาจอยู่ในรูปแบบของจุดที่กำลังเคลื่อนที่ แสงเรืองๆ หรือทั้งสองอย่าง ซึ่งอาจส่งผลต่อประสิทธิภาพในบางกรณี - โปรดทราบว่าภาพเคลื่อนไหวแบบพัลส์ต้องใช้การประมวลผลน้อยกว่าจุดที่เคลื่อนไหว ควบคุมสิ่งนี้ในเมนูการตั้งค่าหลัก
ตามค่าเริ่มต้น ภาพเคลื่อนไหวจะปิดลงเมื่อเวิร์กโฟลว์กำลังทำงานเพื่อลดผลกระทบต่อ CPU/GPU - คุณสามารถเปลี่ยนสิ่งนี้ในการตั้งค่าได้เช่นกัน
หากคุณต้องการแชร์เวิร์กโฟลว์โดยไม่จำเป็นต้องมีโหนด UE หรือต้องการบันทึกเวอร์ชัน API ของเวิร์กโฟลว์ คุณสามารถแทนที่ลิงก์เสมือนที่สร้างโดยโหนด UE ด้วยลิงก์จริง (และลบโหนด UE ออก)
ซึ่งสามารถทำได้สำหรับโหนดเดียวโดยคลิกขวาที่โหนดแล้วเลือก Convert to real links
หรือสำหรับโหนด UE ทั้งหมดในเวิร์กโฟลว์โดยคลิกขวาที่พื้นหลังและเลือก Convert all UEs to real links
คลิก Shift ที่โหนดเอาต์พุตแล้วลากแล้วปล่อยเพื่อรับเมนูสร้างอัตโนมัติ ซึ่งจะแทนที่การทำงานเริ่มต้น (ซึ่งจะมีช่องค้นหาให้คุณ) ดังนั้นคุณจึงสามารถปิดการใช้งานได้ด้วยการตั้งค่า Anything Everywhere replace search
โหนด UE สามารถจำกัดให้ส่งเฉพาะโหนดที่มีสีเดียวกัน หรือเฉพาะโหนดที่ ไม่มี สีเดียวกันเท่านั้น
นอกจากนี้ยังสามารถจำกัดให้ส่งเฉพาะโหนดในกลุ่มเดียวกัน (กลุ่มใดก็ได้ที่เหมือนกัน) หรือเฉพาะโหนดที่ไม่อยู่ในกลุ่มเดียวกันเท่านั้น
คลิกขวาที่โหนดและเลือก Group restrictions
หรือ Color restrictions
โหนด UE ที่ถูกจำกัด (อย่างใดอย่างหนึ่งหรือทั้งสองวิธี) จะมีวงกลมสีเขียวที่มุมซ้ายบน
โหนดทางหลวงของ Trung 0246 เป็นวิธีที่ยอดเยี่ยมในการวางท่อข้อมูลไปรอบๆ คุณสามารถกำหนดเป้าหมายพวกเขาด้วย Anything Everywhere?
โหนดโดยใช้ input_regex
ซึ่งตรงกับชื่ออินพุตที่ไม่เชื่อมต่อกับ '+' เช่นนี้
นี่เป็นเรื่องใหม่ ดังนั้นโปรดรายงานปัญหาใด ๆ !
ตามค่าเริ่มต้นเวิร์กโฟลว์จะถูกตรวจสอบเพื่อหาลูปก่อนที่จะส่ง (เนื่องจาก UE สามารถแนะนำพวกมันได้ และการวนซ้ำจะส่งผลให้เกิดผลลัพธ์ของ Python ที่ไม่ดี) หากตรวจพบการวนซ้ำ คุณจะได้รับคำเตือน JavaScript ที่แสดงรหัสโหนดที่เกี่ยวข้อง อย่างไรก็ตาม โดยเฉพาะอย่างยิ่งหากมีโหนดแบบกำหนดเองอื่นๆ ที่เกี่ยวข้อง อาจเป็นไปได้ว่าการตรวจสอบจะพลาดการวนซ้ำ หรือตั้งค่าสถานะโหนดที่ไม่ใช่ของจริง
หากคุณได้รับคำเตือนและไม่เชื่อว่ามีการวนซ้ำ (หลังจากตรวจสอบรหัสโหนดที่แสดงแล้ว!) คุณสามารถปิดการตรวจสอบการวนซ้ำได้ในเมนูการตั้งค่าหลัก หากบางสิ่งที่ถูกทำเครื่องหมายว่าเป็นลูปทำงานได้ดี โปรดแจ้งปัญหาและรวมเวิร์กโฟลว์ไว้ในรายงาน (บันทึก json และ zip เนื่องจาก GitHub ไม่ยอมรับไฟล์ .json) ในทำนองเดียวกันหากไม่เกิดการวนซ้ำ
ฉันได้เขียนโค้ดสำหรับแบ็กเอนด์หลักของ Comfy เพื่อจับลูป บางทีมันอาจจะรวมอยู่ด้วย - PR สำหรับ ComfyUI - หรือบางทีพวกเขามีแผนอื่น
หากมีโหนดการส่งมากกว่าหนึ่งโหนดที่ตรงกับอินพุต กฎพื้นฐานคือโหนดที่เฉพาะเจาะจงมากกว่าจะชนะ ลำดับความสำคัญคือ:
Anything Everywhere?
Seed Everywhere
และ Prompts Everywhere
Anything Everywhere
Anything Everywhere3
สำหรับโหนดที่มีเวลาเดียวกัน โหนดที่มีการจำกัดสีและข้อจำกัดกลุ่มจะได้รับการจัดลำดับความสำคัญ (สี+กลุ่ม > สี > กลุ่ม > ไม่มี)
หากสองโหนดที่มีลำดับความสำคัญเท่ากัน ทั้งสองโหนด จะไม่เชื่อมต่อกัน ดีกว่าล้มเหลวอย่างรวดเร็วกว่าได้ผลลัพธ์ที่ไม่ชัดเจน หากมีการจับคู่ที่ไม่ชัดเจน คุณสามารถแสดงได้โดยใช้ Show UE broadcast clashes
(คลิกขวาที่พื้นหลัง - ตัวเลือกจะปรากฏขึ้นเฉพาะในกรณีที่มีการปะทะกัน)
โหนดที่มีเอาต์พุตเดียวสามารถรับกล่องข้อความที่แสดงสิ่งที่ส่งผ่านโหนดได้อย่างแน่นอน คุณต้องเปิดสิ่งนี้หากต้องการ โดยอยู่ในการตั้งค่าหลัก "รายละเอียดโหนดทุกแห่ง"
คอนโซล JavaScript (กด f12 ในบางเบราว์เซอร์) มีข้อมูลการบันทึกเกี่ยวกับสิ่งที่กำลังเชื่อมต่อ คุณสามารถเปลี่ยนระดับรายละเอียดได้โดยค้นหาไฟล์ [comfy_install]/custom_nodes/cg-use-everywhere/js/use_everywhre_utilities.js
และใกล้กับด้านบนเพื่อค้นหาบิตนี้:
static ERROR = 0 ; // actual errors
static PROBLEM = 1 ; // things that stop the workflow working
static INFORMATION = 2 ; // record of good things
static DETAIL = 3 ; // details
static LEVEL = Logger . PROBLEM ;
static TRACE = false ; // most of the method calls
เปลี่ยน LEVEL
เป็น Logger.INFORMATION
เพื่อดูข้อมูลเพิ่มเติม หรือ Logger.DETAIL
เพื่อดูเพิ่มเติม ตั้งค่า TRACE
เป็น true
สำหรับข้อมูลการดีบักอื่นๆ
หากคุณประสบปัญหา การกด f12 เพื่อดูคอนโซล JavaScript มักจะช่วยได้ ขั้นตอนต่อไปนี้มีประโยชน์มากในการสร้างรายงานข้อผิดพลาดที่ดี:
อีกสิ่งหนึ่งที่ควรค่าแก่การลองคือการล้าง JavaScript ของโหนดที่กำหนดเองทั้งหมดออกจากตำแหน่งที่จะถูกคัดลอกเมื่อ ComfyUI เริ่มทำงาน:
core
ออกจาก core
(เป็นสิ่งที่ ComfyUI)หากคุณพบข้อบกพร่อง โปรดแจ้งปัญหา - หากคุณสามารถรวมเวิร์กโฟลว์ได้ นั่นจะช่วยได้มาก (คุณจะต้องบันทึกเป็น .txt หรือ zip ไฟล์ .json เนื่องจาก GitHub ไม่ยอมรับ .json) .
การบายพาสและการปิดการใช้งานโหนดทำงานได้ แต่ทำได้เพียงครั้งเดียว หากคุณมีโหนด UE ที่ตรงกัน ( Anything Everywhere?
และ Prompt Everywhere
) และคุณข้ามโหนดที่ตรงกัน ลิงก์จะไม่ถูกสร้างขึ้น ดังนั้น
ถ้าคุณใช้ ? โหนดที่จะส่งไปยังโหนด... | ...และบายพาสผู้รับ จึงไม่เชื่อมต่อ |
---|---|
สิ่งนี้ไม่น่าจะได้รับการแก้ไข แต่ควรหลีกเลี่ยงได้ง่ายพอสมควร!