워크플로우 파일은 다른 파일에 의존합니다
우리는 종종 커뮤니티에서 다양한 워크플로우 파일을 얻지만, 로드한 후 바로 실행할 수 없는 경우가 많습니다. 이는 워크플로우 파일이 워크플로우 자체 외에도 미디어 자산 입력, 모델, 맞춤형 노드, 관련 파이썬 종속성 등 다른 파일들에 의존하기 때문입니다. ComfyUI 워크플로우는 관련된 모든 종속성이 충족되어야만 정상적으로 실행됩니다. ComfyUI 워크플로우 종속성은 주로 다음과 같은 카테고리로 나뉩니다:- 자산 (오디오, 비디오, 이미지 및 기타 입력을 포함한 미디어 파일)
- 맞춤형 노드
- 파이썬 종속성
- 모델 (Stable Diffusion 모델 등)
자산
AI 모델은 자산의 한 예입니다. 미디어 제작에서 자산이란 입력 데이터를 제공하는 일부 미디어 파일을 말합니다. 예를 들어, 동영상 편집 프로그램은 디스크에 저장된 영화 파일을 처리합니다. 편집 프로그램의 프로젝트 파일에는 이러한 영화 파일 자산에 대한 링크가 포함되어 있어 원본 영화 파일을 변경하지 않는 비파괴적 편집이 가능합니다. ComfyUI도 같은 방식으로 작동합니다. 워크플로우는 필요한 모든 자산이 발견되고 로드되어야만 실행될 수 있습니다. 생성 AI 모델, 이미지, 동영상, 사운드 등은 워크플로우가 의존할 수 있는 자산의 몇 가지 예시입니다. 따라서 이를 의존 자산 또는 자산 종속성이라고 합니다.맞춤형 노드
맞춤형 노드는 ComfyUI의 기능을 확장하는 중요한 구성 요소입니다. 커뮤니티에서 만들어진 것으로, 설치하여 워크플로우에 새로운 기능을 추가할 수 있습니다.파이썬 종속성
ComfyUI는 파이썬 기반의 프로젝트입니다. 우리는 ComfyUI를 실행하기 위해 독립적인 파이썬 환경을 구축하며, 관련된 모든 종속성은 이 격리된 파이썬 환경에 설치됩니다.ComfyUI 종속성
현재 ComfyUI의 종속성은 requirements.txt 파일에서 확인할 수 있습니다:comfyui-frontend-package 종속성 버전을 업데이트합니다. 다른 프론트엔드 버전으로 전환하려면 여기에서 버전 정보를 확인할 수 있습니다.
맞춤형 노드 종속성
ComfyUI 커뮤니티의 많은 저자들의 노력 덕분에 우리는 서로 다른 맞춤형 노드를 사용해 ComfyUI의 기능을 확장하고 놀라운 창의력을 발휘할 수 있습니다. 일반적으로 각 맞춤형 노드는 고유한 종속성과 별도의requirements.txt 파일을 가지고 있습니다. ComfyUI Manager를 사용해 맞춤형 노드를 설치하면 ComfyUI Manager가 일반적으로 해당 종속성을 자동으로 설치해줍니다.
하지만 수동으로 종속성을 설치해야 하는 경우도 있습니다. 현재 모든 맞춤형 노드는 ComfyUI/custom_nodes 디렉토리에 설치됩니다.
ComfyUI 파이썬 환경에서 해당 플러그인 디렉토리로 이동한 후 pip install -r requirements.txt를 실행해 종속성을 설치해야 합니다.
Windows 포터블 버전을 사용하는 경우, ComfyUI_windows_portable 디렉토리에서 다음 명령어를 사용할 수 있습니다:
종속성 충돌
ComfyUI를 사용하다 보면 종속성 충돌 문제가 자주 발생합니다. 맞춤형 노드를 설치하거나 업데이트한 후 이전에 설치된 맞춤형 노드들이 ComfyUI 노드 라이브러리에서 더 이상 찾을 수 없거나 오류 팝업이 나타날 수 있습니다. 그 이유 중 하나는 종속성 충돌 때문입니다. 종속성 충돌에는 여러 가지 원인이 있을 수 있으며, 예를 들면 다음과 같습니다:- 맞춤형 노드 버전 고정
open_clip_torch==2.26.1)을 고정하는 반면, 다른 플러그인은 더 높은 버전(예: open_clip_torch>=2.29.0)을 요구해 두 버전의 요구사항을 동시에 만족할 수 없습니다.
해결 방법: 고정된 버전 종속성을 범위 제약으로 변경해보세요. 예를 들어 open_clip_torch>=2.26.1처럼 하고 종속성을 다시 설치해 문제를 해결할 수 있습니다.
- 환경 오염
PyTorch에 의존하지만 서로 다른 CUDA 버전을 요구한다면, 이후 설치된 플러그인이 기존 환경을 깨뜨릴 수 있습니다.
해결 방법:
- 파이썬 가상환경에서 특정 버전의 종속성을 수동으로 설치해 이런 문제를 해결할 수 있습니다.
- 또는 서로 다른 플러그인마다 별도의 파이썬 가상환경을 만들어 이런 문제를 해결할 수 있습니다.
- 플러그인을 하나씩 설치하면서 매번 ComfyUI를 재시작해 종속성 충돌 여부를 관찰해보세요.
- 맞춤형 노드 종속성 버전과 ComfyUI 종속성 버전 간의 호환성 문제
모델
모델은 ComfyUI의 중요한 자산 종속성입니다. 다양한 맞춤형 노드와 워크플로우는 특정 모델을 중심으로 구축되며, 예를 들어 Stable Diffusion 시리즈, Flux 시리즈, Ltxv 등이 있습니다. 이 모델들은 ComfyUI로 창작하는 데 필수적인 기반이므로 우리가 사용하는 모델이 제대로 이용 가능하도록 보장해야 합니다. 일반적으로 우리의 모델은ComfyUI/models/ 하위 디렉토리에 저장됩니다. 물론, extra_model_paths.yaml을 템플릿을 수정해 추가 모델 경로를 ComfyUI가 인식하도록 만들 수도 있습니다. 이를 통해 여러 ComfyUI 인스턴스가 동일한 모델 라이브러리를 공유해 디스크 사용량을 줄일 수 있습니다.
소프트웨어
ComfyUI와 같은 고급 애플리케이션은 소프트웨어 종속성도 가지고 있습니다. 이는 애플리케이션이 실행되기 위해 필요한 프로그래밍 코드와 데이터 라이브러리입니다. 맞춤형 노드는 소프트웨어 종속성의 예입니다. 더욱 근본적인 차원에서는 파이썬 프로그래밍 환경이 ComfyUI의 궁극적인 종속성입니다. 특정 버전의 ComfyUI를 실행하려면 올바른 버전의 파이썬이 필요합니다. 파이썬, ComfyUI, 맞춤형 노드의 업데이트는 모두 ComfyUI Manager 창에서 처리할 수 있습니다.