이 노드가 마음에 드시나요? 나에게 커피를 사주세요!
시작하시겠어요? 아래 테스트 워크플로를 다운로드하여 작동 방식을 확인하세요.
문제가 있나요? 로깅 및 디버깅으로 이동
노드 개선 방법에 대한 아이디어(또는 버그 보고서) - 문제 제기
다른 노드에 대한 뻔뻔한 플러그 -> 일부 작업 흐름을 더 원활하게 만드는 다른 방법은 이미지 선택기를 확인하세요. 마음에 드는 것이 있다면 별표를 남겨주세요!
이 워크플로는 5개 노드를 모두 사용하며 노드를 테스트하고 이해하는 데 사용할 수 있습니다. 이렇게 구축하지는 마세요. 단지 예시일 뿐입니다... | 다음은 워크플로가 포함된 이미지입니다. |
---|---|
또는 json으로서의 워크플로
현재 UE 노드가 대처할 수 없는 몇 가지 상황이 있습니다. 제가 알고 있는 몇 가지 사항과 가능한 해결 방법은 다음과 같습니다.
pythonsssss 커스텀 노드는 훌륭하지만 UE 노드와 함께 사용하는 데에는 몇 가지 제한 사항이 있습니다. 특히 Preset Text 노드의 출력을 UE 노드에 직접 공급할 수 없습니다(#154 참조).
UE 노드는 대부분 그룹 노드와 함께 작동합니다. 그러나 주목해야 할 몇 가지 중요한 사항이 있습니다.
5.0(2024년 8월 6일)
4.9(2024년 5월 2일)
4.8(2024년 3월 18일)
send to unmatched
모드가 있습니다.4.7(2024년 3월 1일)
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
노드로 교체하면 됩니다.
Comfy Manager를 사용하세요. 정말로 수동으로 수행하려면 custom_nodes 디렉터리에 이 저장소를 복제하면 됩니다.
Anything Everywhere
노드에는 처음에는 'anything'이라는 라벨이 붙은 단일 입력이 있습니다. 무엇이든 연결하면(재라우팅을 통하지 않고 직접) 입력 이름이 입력 유형에 맞게 변경됩니다. 연결을 끊으면 '무엇이든'으로 돌아갑니다.
프롬프트를 실행하면 해당 유형과 일치하는 워크플로의 어느 위치에서든 연결되지 않은 입력이 동일한 입력에 연결된 것처럼 작동합니다.
무엇이 연결되어 있는지 시각화하려면 배경 캔버스를 마우스 오른쪽 버튼으로 클릭하고 Toggle UE Link Visibility
선택하세요.
이 노드는 title_regex 및 input_regex라는 두 개의 위젯을 추가합니다. 일치하는 입력에만 전송됩니다. 따라서 이 예에서 title_regex는 'Preview'이므로 이미지는 Preview Image 노드로 전송되지만 Save Image 노드로는 전송되지 않습니다. 노드 이름을 바꾸고 제목을 입력하면 도움이 될 수 있습니다.
(4.6부터는 정규식과 일치하는 그룹에 있는 노드의 입력만 일치하도록 그룹 정규식을 지정할 수도 있습니다.)
일치 항목은 문자열 일치 항목이 아닌 정규식입니다. 대부분의 간단한 문자열은 작동하지만(제목 또는 입력 이름의 모든 부분과 일치) 일부 문자는 특별한 의미(다양한 종류의 대괄호, 특히 ^, $, / 및 . 포함)를 가지므로 그렇지 않은 경우에는 사용하지 마십시오. 정규식 경향이 있습니다.
정규식을 사용한다는 것은 ^prompt
사용하여 제목 시작 부분의 prompt
만 일치시켜 negative_prompt
일치를 피할 수 있음을 의미합니다.
정규식 101 - ^
'시작'을 의미하고 $
'끝'을 의미합니다 .
모든 단일 문자와 일치하고, .*
모든 길이(0 포함)와 일치합니다. 그 이상을 알아보려면 regex101을 방문하세요(원하는 버전은 ECMAScript이지만 아마도 중요하지 않을 것입니다).
일종의.
워크플로를 제출하기 전에 정규식을 알아야 하기 때문에(링크를 계산하기 위해) Anything Everywhere?
노드를 실행하고 작동할 것으로 예상합니다. 지원되는 유일한 것은 입력이 문자열 위젯을 사용하여 설정하는 노드에서 직접 나오는 경우입니다. 이 팩에 포함된 Simple String
노드가 작동합니다.
이것은 작동합니다 | 그렇지 않습니다. 그리고 결코 그렇지 않을 것입니다. |
---|---|
Seed Everywhere는 입력 이름(seed, Noise_seed 등)에 seed
있는 연결되지 않은 INT 입력에 연결되며 control_after_generate 기능이 있습니다. 따라서 시드 위젯을 입력으로 변환하면 어디에서나 동일한 시드를 사용할 수 있습니다.
실제로는 세 개의 Anything Everywhere
노드가 함께 패키지되어 있습니다. Checkpoint Loader의 출력용으로 설계되었습니다.
Prompt Everywhere에는 두 가지 입력이 있습니다. 각각 (^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 결과가 발생하기 때문입니다). 루프가 감지되면 관련된 노드 ID를 보여주는 JavaScript 경고가 표시됩니다. 그러나 특히 관련된 다른 사용자 정의 노드가 있는 경우 검사에서 루프가 누락되거나 실제가 아닌 노드에 플래그가 지정될 수 있습니다.
경고가 표시되고 루프가 있다고 생각되지 않는 경우(나열된 노드 ID를 확인한 후!) 기본 설정 메뉴에서 루프 검사를 끌 수 있습니다. 루프로 플래그가 지정된 항목이 정상적으로 실행되면 문제를 제기하고 보고서에 워크플로를 포함하세요(GitHub에서는 .json 파일을 허용하지 않으므로 json을 저장하고 압축하세요). 루프가 잡히지 않는 경우에도 마찬가지입니다.
루프를 잡기 위해 핵심 Comfy 백엔드에 대한 코드를 작성했습니다. 아마도 ComfyUI에 대한 PR이 포함될 수도 있고 다른 계획이 있을 수도 있습니다.
입력과 일치하는 전송 노드가 두 개 이상 있는 경우 기본 규칙은 더 구체적인 노드가 승리한다는 것입니다. 우선순위는 다음과 같습니다.
Anything Everywhere?
Seed Everywhere
Prompts Everywhere
Anything Everywhere
Anything Everywhere3
동일한 시간의 노드에 대해서는 색상 제한 및 그룹 제한이 있는 노드가 우선적으로 적용됩니다(색상+그룹 > 색상 > 그룹 > 없음).
동일한 우선순위를 가진 두 노드가 모두 일치하면 어느 쪽도 연결되지 않습니다 . 모호한 결과를 얻는 것보다 빨리 실패하는 것이 좋습니다. 모호한 일치 항목이 있는 경우 Show UE broadcast clashes
를 사용하여 이를 표시할 수 있습니다(배경을 마우스 오른쪽 버튼으로 클릭 - 옵션은 충돌이 있는 경우에만 나타납니다).
하나의 출력만 있는 노드는 노드를 통과한 내용을 정확하게 보여주는 텍스트 상자도 얻을 수 있습니다. 원한다면 이 기능을 켜야 합니다. 기본 설정인 'Anything Everywhere 노드 세부정보'에 있습니다.
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 콘솔을 확인하면 도움이 될 수 있습니다. 다음 단계는 좋은 버그 보고서를 작성하는 데 정말 도움이 됩니다.
시도해 볼 만한 또 다른 방법은 ComfyUI가 시작될 때 복사되는 모든 사용자 정의 노드 자바스크립트를 지우는 것입니다.
core
를 제외한 모든 것을 제거하십시오. core
남겨두세요(ComfyUI 관련입니다)버그를 발견하면 문제를 제기해 주세요. 워크플로를 포함할 수 있다면 큰 도움이 됩니다. GitHub에서는 .json을 허용하지 않으므로 .txt로 저장하거나 .json 파일을 압축해야 합니다. .
노드 우회 및 비활성화는 작동하지만 한 가지 문제가 있습니다. 일치하는 UE 노드( Anything Everywhere?
및 Prompt Everywhere
)가 있고 일치하는 노드를 우회하는 경우 링크가 만들어지지 않습니다. 그래서
? 노드로 보낼 노드... | ...수신자를 우회하면 연결되지 않습니다. |
---|---|
이 문제는 고칠 가능성이 없지만 피하기는 매우 쉽습니다!