로컬 AI 이미지 생성 입문: ComfyUI와 FLUX로 첫 그림 만들기

“로컬 모델로 만든다”는 말은 보통 모델 파일을 내 컴퓨터에 내려받아, 내 GPU나 시스템 메모리로 추론을 실행한다는 뜻이다. 웹 서비스의 이미지 생성 버튼과 달리 설치·저장 공간·메모리를 직접 챙겨야 하지만, 모델과 작업 순서를 선택하고 반복 실험하기 좋다. 이 글은 첨부된 대화의 모델 이름을 그대로 따라 하기보다, 정지 이미지 한 장을 만드는 가장 이해하기 쉬운 경로에 집중한다.

먼저 이름부터 구분하자

  • 실행 앱: 모델과 작업 단계를 연결하는 화면. 여기서는 ComfyUI 공식 사이트의 로컬 설치판을 쓴다.
  • 이미지 모델: 프롬프트를 바탕으로 픽셀을 생성하는 가중치. 예시는 FLUX.2 Klein 4B 공식 모델이다.
  • 워크플로: 모델 로드 → 문장 입력 → 생성 → 저장을 잇는 노드 구성. ComfyUI의 FLUX.2 Klein 예제를 사용한다.
  • VRAM: GPU가 작업 중 모델과 중간 결과를 담는 메모리. 필요한 양은 모델·해상도·정밀도에 따라 달라진다.

ComfyUI는 모델 자체가 아니라 노드 기반 실행 환경이다. 아래 공식 화면의 A–F는 기본 Stable Diffusion 1.5 예시로, 체크포인트·캔버스·프롬프트·샘플러·디코더·저장 단계를 보여 준다. FLUX.2 Klein의 실제 노드와 파일 구성은 이 그림과 다르므로 개념을 읽는 용도로만 보자.

ComfyUI 기본 이미지 생성 워크플로에서 모델 로드, 잠재 이미지, 프롬프트, 샘플러, 디코더, 저장 노드가 연결된 화면

ComfyUI 공식 기본 워크플로 설명 이미지. A–F는 생성 단계의 역할을 나타내며, 화면 속 모델은 FLUX가 아닌 SD 1.5다. (출처: ComfyUI 공식 문서, 원본 확대)

내 컴퓨터에서 가능한지 확인하기

이 글의 실습 모델인 FLUX.2 Klein 4B는 Black Forest Labs가 공개한 텍스트→이미지·이미지 편집 모델이다. 제작사 모델 카드는 약 13GB VRAM을 제시한다. ComfyUI 예제에는 FP8 파일도 있지만, 실제 사용량은 워크플로·해상도·오프로딩 설정에 따라 달라진다. 따라서 특정 카드에서 “반드시 돌아간다”고 단정하지 말고, 16GB급 GPU를 여유 있는 출발점으로 보고 자신의 환경에서 확인하자. Apple Silicon은 통합 메모리를 쓰므로 PC의 VRAM 수치를 그대로 대입하지 않는다.

NVIDIA 사용자라면 Windows 터미널이나 Linux 셸에서 아래 명령으로 GPU 이름과 VRAM을 볼 수 있다.

nvidia-smi

메모리가 넉넉하지 않다면 이미지 크기를 먼저 낮추거나, ComfyUI의 가벼운 SD 1.5 입문 예제로 설치와 노드 작동부터 익히는 편이 안전하다. 해당 공식 예제는 6GB급 VRAM 환경을 예시로 든다. CPU 실행도 지원하지만 느리다. 모델 파일 외에 앱·텍스트 인코더·VAE·결과 이미지가 차지할 디스크 공간도 확보하자. ComfyUI 시스템 요구사항에서 OS 지원을 확인할 수 있다.

첫 이미지를 만드는 5단계

1. Comfy Desktop을 설치한다

ComfyUI 공식 다운로드 페이지에서 운영체제에 맞는 Comfy Desktop을 받는다. 공식 안내에 따르면 Windows 10+, macOS 13+ Apple Silicon, Linux를 지원하며, 데스크톱 앱이 ComfyUI 인스턴스와 Python 환경을 관리한다. 첫 화면에서 New Install을 선택해 로컬 인스턴스를 만들고 실행한다. 설치 화면이나 선택지는 버전에 따라 바뀔 수 있다.

Comfy Desktop 첫 화면에 로컬 환경 생성용 New Install 카드와 Comfy Cloud 카드가 나란히 표시된 모습

ComfyUI 공식 문서가 제공하는 Comfy Desktop 공개 화면. 이 글에서는 로컬 실행을 위해 New Install 경로를 사용한다. (출처: Comfy Desktop 공식 안내)

2. 로컬 FLUX 워크플로를 연다

FLUX.2 Klein 4B 공식 실습 페이지에서 4B Text-to-Image Workflow를 다운로드해 ComfyUI 캔버스로 끌어다 놓는다. ComfyUI의 워크플로 템플릿에서 같은 이름을 찾을 수도 있다. 이름에 Cloud, API, Partner Node가 들어간 템플릿은 로컬 추론과 다를 수 있으니, 이 실습에서는 모델 파일을 로컬에 배치하는 4B 워크플로를 고른다. 템플릿이 보이지 않으면 ComfyUI 버전을 확인한다.

3. 모델 파일 세 종류를 정확한 폴더에 둔다

공식 실습 페이지의 다운로드 링크에서 4B distilled(FP8) 모델, 텍스트 인코더, VAE를 각각 받는다. 파일명과 배치 경로는 다음과 같다. 기존 모델 파일을 임의의 사이트에서 받지 말고 공식 문서가 연결한 저장소를 확인하자.

ComfyUI/models/
├── diffusion_models/flux-2-klein-4b-fp8.safetensors
├── text_encoders/qwen_3_4b.safetensors
└── vae/flux2-vae.safetensors

여기서 qwen_3_4b.safetensors는 이 FLUX 워크플로의 텍스트 인코더다. 이름에 Qwen이 들어가도 Qwen-Image 전체 모델을 설치했다는 뜻은 아니다. 앱의 모델 목록에 파일이 보이지 않으면 배치 경로와 파일명을 다시 보고 ComfyUI를 재시작한다.

4. 프롬프트를 쓰고 작은 크기로 먼저 생성한다

템플릿의 프롬프트 칸에 아래처럼 주제, 재질, 구도, 조명, 배경을 구체적으로 적는다. 첫 실험에서는 템플릿의 샘플링 값을 유지하고, 이미지 크기를 무리하게 키우지 않는다. 실행 버튼(Queue/Run)을 누른다.

A small ceramic teapot on a pale blue table,
three-quarter view, soft morning window light,
minimal studio background, realistic material texture

동일한 구도에서 색만 바꿔 보고 싶다면 다른 조건과 seed를 고정한 채 색 표현 한 구절만 수정한다. seed는 결과를 비교하기 위한 출발점이지, 버전·장치·설정이 달라도 완전히 같은 픽셀을 보장하는 인증 번호는 아니다.

5. 결과를 저장하고 기록한다

출력 노드에서 결과를 확인한다. ComfyUI 기본 Save Image 노드는 이미지를 로컬 ComfyUI/output/에 저장한다. 잘 나온 이미지에는 사용 모델명, 프롬프트, seed, 해상도를 함께 기록해 두면 재현·수정이 쉽다. 아래 이미지는 FLUX.2 Klein 공식 문서의 예시 결과로, 이 글의 프롬프트를 실제 실행한 결과는 아니다.

파티 모자를 쓴 고슴도치가 색종이 사이에 있는 FLUX.2 Klein 4B 공식 예시 이미지

ComfyUI 공식 FLUX.2 Klein 4B 안내의 예시 출력. 모델이 만들 수 있는 정지 이미지의 한 사례이며 결과 품질을 보증하지 않는다. (출처: ComfyUI 공식 FLUX.2 Klein 문서)

막힐 때는 여기부터 본다

  • 모델 목록이 비어 있음: 세 파일의 폴더와 확장자를 다시 확인한다. diffusion_models, text_encoders, vae는 서로 바꿔 넣는 폴더가 아니다.
  • Out of memory/OOM: 먼저 출력 해상도와 동시 실행 수를 줄인다. 오프로딩이나 더 작은 모델을 검토하고, VRAM 숫자만 보고 결과를 보장하지 않는다.
  • 노드가 없음: 템플릿과 ComfyUI 버전이 맞는지 확인한다. 공식 FLUX 안내도 오래된 버전에서 템플릿·노드가 없을 수 있다고 설명한다.
  • 그림 속 글자가 틀림: 모델 카드도 텍스트 왜곡 가능성을 밝힌다. 정확한 문구가 필요하면 별도의 편집 도구로 텍스트를 넣고 최종 결과를 검수한다.
  • 로컬이라고 생각했는데 로그인을 요구함: API·Cloud 템플릿인지 다시 확인한다. 로컬 모델을 다운로드해 실행하는 경로와 외부 서비스를 호출하는 노드는 다르다.

첨부 대화의 Wan·Qwen·4K는 어떻게 이해할까?

Wan2.2 공식 저장소는 Wan을 영상 생성 모델로 설명하며, 텍스트→영상과 이미지→영상 작업을 제시한다. Qwen 계열 모델을 선택적으로 프롬프트 확장에 쓸 수 있다는 설명은 있지만, 그것만으로 “Wan은 Qwen 기반 이미지 모델”이라고 부를 수는 없다. 정지 이미지를 만들려면 이 글의 FLUX나 Qwen-Image 공식 모델처럼 이미지 생성용 모델을 고르는 편이 명확하다. 첨부 대화의 “Wan Image 2.1”이라는 표현은 이 실습의 공식 모델명으로 채택하지 않았다.

또한 영상 업스케일 노드를 붙인다는 말은 출력 픽셀 수를 늘리는 후처리를 뜻할 뿐, 원본에 없던 디테일이나 4K 품질을 자동 보증하지 않는다. 첫 단계에서는 영상·업스케일을 건너뛰고, 작은 정지 이미지 한 장을 안정적으로 생성하는 경험을 먼저 쌓자.

마지막으로 로컬 실행은 모든 데이터가 자동으로 비공개라는 뜻이 아니다. 모델 다운로드에는 인터넷이 필요하고, API 노드를 사용하면 외부 서비스로 입력이 전송될 수 있다. 모델별 라이선스와 상업적 사용 조건도 해당 모델 카드에서 확인하자. 이 글의 FLUX.2 Klein 4B 모델 카드는 Apache 2.0을 명시하지만, 다른 크기·변형까지 같은 조건이라고 가정하면 안 된다.