챕터3는 순서대로 모두 읽으실 필요는 없습니다!
필요하실때 참고하실 수 있는 문서 정도로 생각해주세요.
학습목표 및 요약
우리는 2-1 튜토리얼을 통해 다음과 같은 것들을 배웠습니다. (다시 읽으실 필요가 없을 정도로 간단한 내용입니다.)
개념 | 요약 |
comfyui 접속방법 | https://nordy.ai/comfyui |
comfyui 실행방법 | queue prompt (win : ctrl+enter / mac : ) |
노드란 무엇인가 | 하나의 프로그래밍 블록 |
워크플로우란 무엇인가 | 노드들의 연결관계 그리고 각각의 값을 하나의 json파일에 저장한 것 |
노드 설정값 변경하는 법 | 각 노드에 적혀있는 값을 클릭하여 변경 가능 |
워크플로우 저장/다른이름으로저장 | nordy 내부에서 저장하여 관리가 가능함. |
워크플로우 내보내기/불러오기 | nordy 외부의 파일로 추출하거나 불러올 수 있음. |
이미지 피드 | 커뮤니티 기능을 통해 서로 이미지 공유가 가능하며, 스텔스모드 설정이 가능함. |
이 문서를 통해서는 다음과 같은 것들을 배울 것입니다.
매우 간단한 사용방법과 단축키들이며, 외울 필요는 없으나 익혀두면 도움이 됩니다.
개념 | 요약 |
노드 지우기 | Delete |
뒤로 가기 | Ctrl+Z (Mac : Command+Z) |
앞으로 가기 | Ctrl+Y (Mac : Command+Shit+Z) |
노드 불러오기 | 빈공간 더블클릭 |
노드 선 뽑기 | 뽑으면 추천도 나옴 |
노드 연결하기 | 연결 가능한 것끼리 잘 연결 |
여러 노드 선택하기 | Ctrl+Drag (Mac : Command+Drag) |
선택한 여러 노드 동시에 이동하기 | Shift+Drag (Mac : Shift+Drag) |
노드 복사하여 붙혀넣기 | Ctrl+C/Ctrl+V (Mac : Command+C/Command+V) |
연결을 유지한 상태로 복사하여 붙혀넣기 | Ctrl+C/Ctrl+Shift+V (Mac : Command+Option+V) |
get/set | 복잡도가 높아질때 적절히 잘쓰면 좋으나 에러 발생 가능성 존재 |
reroute | 연결관계가 복잡해지는 경우에, 선을 정리하기 위해서 쓰임 |
bypass | Ctrl+B, 워크플로우에 남겨는 두고 싶은데 동작을 시키고 싶지 않을 때 사용 |
단축키 및 기본 사용성
노드 지우기
노드를 클릭하고 Delete를 누르거나 우클릭 Remove하면 노드를 제거할 수 있습니다.
뒤로 가기 / 앞으로 가기
Ctrl+Z를 눌러 뒤로갈 수 있습니다. (Mac : )
Ctrl+Y를 눌러 앞으로 갈 수 있습니다. (Mac : )
노드 불러오기
빈 화면을 더블클릭하면 노드를 불러오는 창이 뜹니다.
검색 기능을 통해 기존에 존재하는 새로운 노드를 불러올 수 있습니다.
(주의 : 띄어쓰기를 인식하는 단점이 있습니다. IPAdapter라고 저장되어 있는 노드라면 IP-Adapter 또는 IP Adapter로 검색하면 검색이 되지 않습니다.)
노드 선 뽑기
당연히 노드 좌우에 있는 선을 쭉 뽑아서 새로운 연결을 만들 수 있습니다.
노드 연결하기
뽑았던 선을 다른 노드의 입력에 연결하여 연결할 수 있습니다.
연결 가능한 노드를 제외하고는 흐리게 처리됩니다.
즉 model과 model은 연결이 가능하지만 model과 image는 연결이 가능하지 않습니다.
숫자와 숫자는 더할 수 있지만 (ex. 3+2) 숫자와 특수기호는 더할 수 없는 것과 비슷합니다. (3+@)
노드 추천받기
선을 쭉 뽑은 이후, 어딘가에 연결하지 않고, 허공에 두고 클릭을 해제하면, 다음과 같은 창이 뜹니다.
해당 노드와 자주 연결될 가능성이 높은 것들을 추천해주기는 합니다만 아주 좋은 추천을 해주진 않습니다.
Save와 Preview의 차이점
이미지를 Save하면 ‘내가 만들었던 이미지’로 저장이 되지만, 단순히 Preview만 해주면, ‘결과 이미지는 아니고 중간의 이미지 중 하나’ 정도로 볼수만 있고 저장이 되지는 않습니다. 작업을 하다보면 수십개의 이미지를 처리해야하는 워크플로우가 있을 수 있는데, Save를 남발하는 것은 좋지 않습니다.
여러 노드 선택하기
Ctrl+Drag를 통해, Drag 범위 안에 있는 노드를 모두 선택할 수 있습니다.
당연히 Ctrl+C, Ctrl+V를 통해 복사 및 붙혀넣기가 가능합니다.
연결 유지한 상태로 복사하기
복사 및 붙혀넣기를 한 이후에는, 노드만 복사되고 연결이 해제된 상태로 복사됩니다.
하지만 Ctrl+V가 아니라 Ctrl+Shift+V를 해주면, 연결이 유지된 상태로 복사할 수 있습니다.
(단, 너무 과도하게 복잡한 연결관계의 경우, 잘못 연결되는 현상이 있을 수 있다는 점은 참고해주세요)
Get/Set
지금 위의 ‘연결 유지한 상태로 복사하기’를 보시면 VAE Decode의 Output인 Image에 4개의 노드가 연결이 되어있습니다. 이런 간단한 상황에서 Get/Set을 사용할 필요는 없지만, 상황이 복잡해지면 적당한 Get/Set 활용은 도움이 될 수 있습니다.
아래 상황에서는 Vae Decode를 거친 Image를 img01이라는 변수명으로 설정하고, get을 통해 img01이라는 동일한 값을 선택한 뒤, 해당 image를 다시 save해주었습니다. vae decode 노드와 save image 노드는 직접 연결되어있지는 않으나 설정한 변수명을 통해 블루투스 장치들간에 선없이 연결되듯이 연결되었습니다.
(단, get/set 노드를 잘못 활용하면 나중에는 워크플로우가 안복잡할 상황에서 괜히 복잡해지는 경우도 생기고, 혹시 원인 파악이 안되는 에러가 발생했는데 알고보니 get/set 노드가 원인인 경우가 있다던지 등의 상황이 있다는 점은 간단히 참고해주세요.)
ReRoute
위에서 get/set을 설명하며 장단점을 갖는다고 말씀드렸습니다. 그래서 복잡도가 너무 높아지는 상황을 만나기 전에는, 평범한 상황에서 정리를 적당하게 잘 하기 위해서는 reroute를 써도 충분합니다.
reroute를 검색해서 다음과 같이 조그마한 노드를 불러올 수 있습니다.
그리고 연결을 해주면, 이렇게 중간다리 역할을 해주는 것을 볼 수 있습니다.
reroute를 제거하면, 갖고있던 연결관계를 유지한채 삭제됩니다.
ByPass
중요한데 설명하지 않았던 것이 있어 마저 설명하겠습니다. Bypass 입니다. (Ctrl+B)
예를들어 Latent Upscale 워크플로우를 예시로 설명하자면, 해당 워크플로우에서는 KSampler가 두번 돕니다.
여기에서는, 그 두가지를 제외하고 나머지는 KSampler를 위해 Load를 해주는 역할을 합니다.
그런데 첫번째 KSampler만 수정을 하고 싶은데, 자꾸 두번째 KSampler 까지 돌아서 시간이 오래걸리는 상황이 생긴다고 가정해봅시다.
그러면, 두번째 KSampler에 대해 Bypass를 해주면, 첫번째 KSampler만 도는 효과를 가져옵니다.
그런데 관찰을 해보니, KSampler 전에 있는 ‘Upscale Latent’ 또한 동작을 발생시키는 노드였습니다. 그래서 그 결과물이 Save Image에 저장되고 있는 것이 거추장스럽습니다.
이런 경우에는 KSampler를 Bypass 시키지 않고, Save Image를 Bypass 시켜버려도, 그 경로에 있는 Upscale Latent By와 KSampler 두가지가 모두 돌지 않습니다. 어차피 만들어봤자 저장할 이미지가 없기 때문이죠.
이상으로 기초적인 사용성 측면의 팁들을 공유드렸습니다. 이 외에도 본인에게 적합한 기능들은 차근히 몸에 익혀나가시면서 도움이 되시면 좋겠습니다. 이런 것들은 그냥 한두번 해보면 익혀지는 것들이지, ‘중요한 꿀팁이래’ 하면서 외워야 할 것들에 해당하지는 않습니다.