기본 콘텐츠로 건너뛰기

ComfyUI 커스텀 노드 만드는 방법 (초보자용, 예제 포함)

 ComfyUI 커스텀 노드는 Comfyui 를 사용하는데 있어서 필수적인 것이다.

주로 Comfyui Manager 를 통하여 유용한 노드들을 설치하여 사용하곤 하는데 어떤 경우에는 아주 간단한 필요한 기능이지만 없는 경우도 많다.  그래서 나도 아직까지 Comfyui 노드를 만들어 본 적이 없는데 이번 기회에 나만의 Comfyui custom nodes 를 직접 만들어보고,  ComfyUI에 설치해서 실제로 사용하는 것까지 해 보고자 한다.  물론 내 혼자 힘으로는 불가능 하기 때문에 chatGPT 또는 GEMINI 를 이용하여 만들어 본다.

Qwen + Canvas 를 이용한 이미지


1. ComfyUI 커스텀 노드 구조 간단 설명

  • 커스텀 노드 설치 위치 : ../ComfyUI/custom_nodes/ My_Custom_Nodes   즉 custom_nodes 폴더 아래에 나만의 하위폴더를 만들고 거기에 내가 만든 모든 노드들을 저장 관리한다.
  • 보통 구성: __init__.py , 파일과 노드파일.py 은 내 폴더(My_Custom_Nodes) 에 설치한다.

    • __init__.py : 이 파일은 필수적으로 필요한데 맨 처음에 Comfyui 를 실행시키면 항상 이 파일을 읽어서 해당 노드파일을 comfyui 에서 사용 할 수있게 해 주는 파일이다.  만약 이파일이 없거나 잘못되어 있으면 내가 만든 노드파일을 comfyui 에서 인식하지 않는다.

    • 노드파일.py : 이 파일 하나가 comfyui 에서 사용하는 노드 하나이다.

    • 노드파일은 파이썬(Python) 언어로 만든다.

2. 커스텀 노드의 핵심 구조 이해하기 

  • Input_Types : 입력 데이터 (문자, 숫자, 이미지 등)
  • Function : 노드의 기능 (역할)
  • Return_Types : 출력 데이터 (문자, 숫자, 이미지 등)
기본적으로 각 노드들은 위와 같은 구조로 이루어진다.

3. 파이썬(Python) 언어 사용을 위한 편집기 설치

파이썬 언어로 작업을 할 때는 편집기로 워드패드 나 메모장으로도 가능하지만 파이썬 언어 편집기로는 불편하기 때문에 Visual Studio Code (VS Code)  무료 편집기를 설치하여 사용한다.
  •  아래 공식 사이트 접속
    👉 https://code.visualstudio.com 
  • 사용 중인 운영체제에 맞는 버전 다운 
  • 다운로드한 실행 파일 실행
  • 아래 옵션은 꼭 체크하는 것을 추천 
    • Add to PATH
    • Open with Code
    • Register Code as an editor for supported file types
  • 설치 계속을 하면 설치가 완료된다.
  • VS Code 실행하여  Python 확장(extension) 설치 
  • 왼쪽 메뉴에서 Extensions 아이콘 클릭

4. 실전! 간단한 노드 만들기 (정수 자동 카운터 )

    정수를 카운터 하고 출력하는 노드는 있지만 내가 원하는 것으로 실전 연습을 해본다.
  • 입력 단자 : 불필요
  • 입력 값 
    • start : 시작 값
    • stop : 종료 값
    • Step : 증가하는 양
    • reset : on 은 무조건 시작 값부터, off 는 연속하여 계속해서 값 출력
  • 출력 단자 : 정수 값
  • 노드 명 : counter_node

5. 파이썬 코딩

    코딩을 위하여 위의 필요한 내용을 chatGPT 에 넣고 커스텀 노드를 만들어 주라고 하면 파이썬코드로 만들어 준다.
 
counter_node.py 의 파이썬 코딩

__init__.py 의 코딩내용
항상 __init__.py 파일을 함께 만들어 준다.
이 코딩내용을 그대로 VS Code 편집기로 복사한 후  노드파일을 완성 한다.

6. __init.py__, counter_node.py 파일 편집 후 내 커스텀 폴더에 설치

    VS Code 편집기에 복사-붙여넣기 하고 두개의 파일을  My_Custom_Nodes 폴더에 저장한다.
My_Custom_Nodes 폴더내에 저장

이렇게 하면 나만의 커스텀노드가 완성 된 것이다.

7. Comfyui 에서 사용연습

  • Comfyui 실행
  • 화면을 클릭하여 counter 로 검색하면 내가 만든 노드 (예, counter_node) 가 나온다.

  • counter_node 에 기존 show Any 노드를 연결하여 테스트

    • 초기 값 : 100
    • 종료값 : 110
    • step : 1 
    • reset on 으로 실행한 결과 이다.
  • 그런데 reset off 으로 해서 실행을 계속해도 숫자가 101 에서 멈추고 진행이 안된다. (에러)
  • 이 내용을 그대로 chatGPT 에 문의하면 다시 수정하여 만들어 준다. 그것을 편집하여 다시 설치하여 실행한다.
  • chatGPT 에서 수정해준 노드로 다시 실행한 결과

  • 수정된 노드
    이것을 실행해 보니 아주 동작이 잘 된다.

8. 나만의 커스텀노드 만들어 사용한 결과

    실제로 AI 의 도움을 받아 만들어 사용해 보니 생각보다 훨씬 쉽다.  만약 동작이 제대로 잘 안되면 AI 가 다시 수정하여 주기 때문에 간단한 커스텀 노드들은 쉽게 만들고 적용 할 수 있다.
이런 방식으로 나만의 wildcard를 사용하는 노드도 만들어 현재 사용 중인데,  내가 원하는 방식으로 만들어 사용하기 때문에 나에게는 다른 woldcard 노드보다 훨씬 편하고 좋다.

물론 파이썬 언어를 잘 모르기 때문에 처음에는 매우 어렵게 느껴지지만, 간단한 것들을 만들면서 코딩 내용을 질문하면 아주 쉽게 알려주기 때문에 간단한 파이썬 명령어 나 문법체계도 알 수있다.
이렇게 하면 다른 사람이 만든 노드의 구조도 더 자세히 이해 할 수 있을 것이다.



댓글

이 블로그의 인기 게시물

Comfyui Wildcard 사용법 - Stable Diffusion , Flux 에서 쉽게 Random Prompt 로 이미지 만들기

 Comfyui Wildcard 사용법에 대하여 알아본다. Comfyui 로 Stable Diffusion 또는 Flux 로 이미지를 만들 때 Prompt 가 이미지를 결정하는데 매우 중요한 역할을 한다.  영어가 모국어가 아닌 이상 영어로 prompt 를 만드는 것이 참 어려운 일이다. 물론 처음에는 많은 다른 사람들이 사용한 prompt 들을 모방하여 수정하고 사용하는데 이런 일을 하나하나 해 보기가 시간이 많이 걸리고 어렵다.   그래서 Random 으로 prompt 가 만들어 져서 이미지가 생성되고 그 이미지 중에서 마음에 드는 이미지들을 골라 그 이미지의 Prompt들 만을 가지고 보완하고 개선하면 더 편리하고 좋지 않을까 생각이 든다.  그런 식의 Random Prompt 생성이 가능하게 해주는 것이 wildcard 사용이다. Joker는 card game에서 wildcard 이다. 1. Wildcard 의 의미      와일드 카드(Wildcard)란 카드 게임에서 유래되었다.  이런 카드 게임에서 모든 카드의 대용으로 쓸 수 있는 비장의 카드를 와일드 카드라고 한다. 포커나 훌라를 할 때 조커가 이런 역할을 하는데 ,  이 의미가 컴퓨터와 스포츠로 확장되어 사용되는 것이다. 컴퓨터 용어로 쓰일 때는 한 디렉터리 내에 여러 파일이 존재하거나, 파일 이름의 뒷부분을 정확히 알지 못하는 경우에도 사용할 수 있는 명령어를 말합니다. '*'을 넣으면 빠진 것에 어떤 문자열이 있든지 대신할 수 있고,  '?'는 임의의 한 문자에만  대응한다. Comfyui 에서 wildcard 사용은 "--문자열--"  이런 식으로 wildcard 사용 가능한 노드에 prompt 를 입력해 주면 그 노드는 "문자열" 에  해당되는 파일을 찾아 그 파일 내용 중에서 임의의 일부분을 prompt 로 대체해 준다. 2. Wildcard 사...

Pinokio 앱 설치 - 오픈 소스 AI 플랫폼

  Pinokio 는 오픈 소스 AI 플랫폼이다. 로컬에서 AI 애플리케이션을 쉽게 설치하고 실행할 수 있게 도와주는 오픈 소스 AI 플랫폼이다. 이 플랫폼은 사용자가 복잡한 설치 과정 없이 클릭 한 번으로 AI 도구들을 설치할 수 있도록 설계되어 있다. 이를 통해 기술적인 배경 지식이 없는 초보자나 비전문가들도 쉽게 AI 애플리케이션을 사용할 수 있다.   이미 설치되어 있는 애플리케이션이 있어도 별도의 독립된 공간에서 문제없이 사용할 수 있게 해준다.   우리가 stable diffusion 을 comfyui 에서 사용하기 위해서는 "Python", "git ....", "conda"  뭔지 모르지만 설치해야 하는데 pinokio 브라우저에서 원 클릭으로 알아서 설치를 해주기 때문에  컴맹인 일반인도 쉽게 설치하고 사용 할 수 있다. pinokio.computer 1. Pinokio 주요 기능 원클릭 설치 : 복잡한 환경 설정이나 명령어 입력 없이도 다양한 AI 모델을 한 번의 클릭으로 설치할 수 있다. 예를 들어, Comfyui 나 Flux 같은 AI 도구들을 손쉽게 설치할 수 있다. 다양한 AI 애플리케이션 제공 : Pinokio는 다양한 오픈 소스 AI 애플리케이션을 제공하는 허브 역할을 하며, Pinokio 브라우저 나 홈페이지에서 쉽게 찾아 설치할 수 있다. 브라우저 기반 인터페이스 : 모든 설치된 애플리케이션은 Pinokio 웹 브라우저에서 관리할 수 있어, 친숙한 인터페이스로 쉽게 사용이 가능하다. 독립적인 가상 컴퓨터 : Pinokio는 백엔드 작업을 자동으로 처리하여, 애플리케이션이 로컬에서 실행되는 동안 인터넷에 연결되어 있지 않아도 된다. 2. Pinokio 설치 구글에서 pinokio 를 검색하여 " pinokio.computer " 를 클릭 Download 클릭 다운로드 된 pinokio 압축 파일을  푼다. pinokio 설치파일을 실행하여 설치 설치과정은 복...

이미지에서 프롬프트 추출하기 in Comfyui - QWEN3-VL

 이미지 또는 사진에서 Prompt(프롬프트)를 추출하여 사용하기 네이버, 구글 또는 핀터레스트 등의 사이트에서 마음에 드는 사진을 보고 비슷한 이미지를 만들고 싶을때,   그 사진을 보고 직접 그것을 프롬프트로 만들기가 어려운 일이다.  만들었다고 해도 그것을 이용하여 이미지를 생성해 보면 원하는 이미지와는 동 떨어진 이미지가 만들어지기 쉽다. 그래서 보통은 chatGPT 나 GEMINI 를 이용하여 이미지를 업로드하고 프롬프트를 만들어 달라고 하여 추출한다.  나도 이런 방식으로 종종 프롬프트를 추출하여 사용하곤 한다. 여기에서는 외부 도움을 받아 추출하는 대신  내 컴퓨터에서 추출하여 사용하는 방법이다. 1. 이미지에서 프롬프트 추출 예 Z-Image-Turbo 로 만든 이미지 위의 이미지에서 프롬프트를 추출 한다면...... chatGPT : A soft, elegant portrait of a young woman sitting on the floor, painting flowers with a brush and a palette. She wears a crisp white shirt with rolled-up sleeves and fitted blue jeans. Her long dark hair flows naturally as she focuses calmly on her artwork. A vase filled with colorful roses stands beside her. The scene has a warm beige background, smooth lighting, clean details, and a serene, gentle atmosphere. Ultra-high-definition, photorealistic illustration, soft shadows, pastel tones, refined skin texture, delicate rendering. G...