모델 파일, 한 폴더에 넣지 마세요

에피소드 10: Qwen Image Edit 모델 파일을 나눠 넣어야 하는 이유

Qwen Image Edit 2511을 ComfyUI에서 사용할 때 diffusion model, text encoder, VAE, LoRA를 왜 나눠 넣어야 하는지 작업일지와 공식 문서 기준으로 정리했습니다.

지난 편에서는 ComfyUI에서 Qwen i2i workflow의 실패 지점을 줄이는 순서를 정리했습니다. 이번 편은 그 안쪽으로 한 단계 더 들어갑니다.

이번 질문은 단순합니다. Qwen Image Edit 모델 파일은 왜 한 폴더에 몰아넣으면 안 될까요?

이미지 편집 모델을 처음 만지면 "모델 파일 하나만 받으면 끝"이라고 생각하기 쉽습니다. 하지만 ComfyUI에서 Qwen Image Edit 2511을 다룰 때는 그렇게 접근하면 곧바로 막힙니다. 실제 실행에는 diffusion model, text encoder, VAE, 선택 LoRA가 함께 필요하고, 각각 맡는 일이 다릅니다.

1. 이번 작업에서 먼저 확인한 것

작업일지에서 먼저 확인한 기준은 ComfyUI 직접 실행이었습니다. Open-WebUI나 n8n으로 바로 연결하지 않고, Qwen Image Edit 2511 workflow가 ComfyUI 안에서 직접 동작하는지부터 봤습니다.

이 과정에서 중요한 판단이 하나 나왔습니다. 모델 파일은 이름이 비슷해도 같은 역할이 아닙니다. 이미지 편집의 중심 모델, 프롬프트를 읽는 인코더, 이미지를 다시 복원하는 VAE가 서로 다른 위치에서 불립니다.

그래서 이번 편의 목표는 설치 명령을 길게 나열하는 것이 아닙니다. 초보자가 가장 먼저 헷갈리는 모델 파일 분리를 이해하는 것입니다.

2. diffusion model은 실제 편집을 맡는다

diffusion model은 이미지 편집의 중심입니다. Qwen Image Edit 2511에서 우리가 "Qwen edit 모델"이라고 부르는 핵심 파일이 이쪽에 해당합니다.

ComfyUI에서는 이 파일이 diffusion model 폴더에 있어야 합니다. Open-WebUI에서 edit workflow를 연결할 때도 모델 항목은 보통 unet_name으로 이 diffusion model을 가리킵니다.

여기서 실수하면 문제가 복잡해집니다. 예를 들어 VAE 파일이나 text encoder 파일을 모델 이름처럼 넣으면, 겉으로는 "모델을 골랐다"고 생각해도 workflow 안에서는 전혀 다른 타입의 파일을 부르게 됩니다. 그러면 오류 메시지는 mapping 문제처럼 보이지만, 실제 원인은 모델 파일 역할을 섞은 것입니다.

실패 원인은 폴더가 아니라 역할 섞임
실패 원인은 폴더 위치보다 역할이 섞이는 데 있습니다. diffusion model, text encoder, VAE를 분리해 점검합니다.

3. text encoder는 프롬프트를 읽게 만든다

text encoder는 프롬프트를 모델이 이해할 수 있는 정보로 바꿉니다. 이미지 편집에서는 입력 이미지도 중요하지만, "무엇을 어떻게 바꿀지"를 설명하는 문장도 함께 중요합니다.

Qwen 계열 workflow에서는 일반적인 CLIPTextEncode와 다른 텍스트 인코딩 구성이 쓰일 수 있습니다. 그래서 Open-WebUI 문서에서도 Qwen 같은 특수 workflow는 prompt key가 text인지 prompt인지 workflow JSON에서 직접 확인해야 한다고 안내합니다.

즉, text encoder는 보조 파일처럼 보여도 실행의 중심에 가깝습니다. 프롬프트가 제대로 들어가지 않으면 모델 파일이 맞아도 원하는 편집이 나오지 않습니다.

4. VAE는 latent와 이미지 사이를 오간다

VAE는 모델 내부 표현과 실제 이미지 사이를 변환하는 역할을 합니다. 쉽게 말하면 모델이 다루는 압축된 표현을 사람이 보는 이미지로 되돌리는 통로입니다.

VAE를 diffusion model과 같은 것으로 보면 안 됩니다. 파일 이름에 Qwen이 들어간다고 해서 같은 폴더에 넣는 구조가 아닙니다. ComfyUI 공식 문서도 VAE를 별도 모델 위치로 나눠 안내합니다.

이 분리를 해두면 나중에 workflow를 바꾸거나 다른 Qwen 이미지 모델을 테스트할 때도 문제가 줄어듭니다. "어떤 파일이 어떤 노드에서 불리는지"를 폴더 구조만 보고도 어느 정도 추적할 수 있기 때문입니다.

5. LoRA는 선택 기능으로 따로 본다

Qwen Image Edit 2511 문서에는 Lightning 계열 LoRA처럼 속도나 표현을 바꾸는 선택 요소도 나옵니다. 하지만 선택 요소는 본체가 아닙니다.

작업일지에서도 LoRA가 없는 상태에서 workflow가 실패하지 않도록 strength를 0으로 낮춰 직접 경로를 먼저 검증했습니다. 이 판단이 중요합니다. 없는 LoRA 때문에 실패하면, 정작 diffusion model과 text encoder, VAE가 맞는지 확인하기 어려워집니다.

처음에는 본체 구성을 먼저 성공시키고, LoRA는 그 다음에 붙이는 편이 안전합니다.

6. 폴더를 나누는 이유는 디버깅 때문이다

모델 파일을 역할별로 나누는 이유는 깔끔해 보이기 위해서만이 아닙니다. 진짜 이유는 디버깅입니다.

이미지 편집이 실패했을 때 의심할 수 있는 원인은 많습니다.

  • diffusion model 파일명이 workflow와 다르다.
  • text encoder가 없거나 다른 위치에 있다.
  • VAE가 로드되지 않는다.
  • LoRA가 없는데 workflow가 LoRA를 부른다.
  • Open-WebUI가 unet_name에 잘못된 값을 넘긴다.
  • prompt key가 workflow의 실제 key와 다르다.

폴더와 역할을 섞어 놓으면 이 원인들이 한꺼번에 엉킵니다. 반대로 역할별로 나눠 두면 오류가 났을 때 어느 레이어를 봐야 하는지 빨리 좁힐 수 있습니다.

7. Open-WebUI 연결 전에 이 기준이 필요하다

Open-WebUI로 넘어가면 문제가 하나 더 생깁니다. Open-WebUI는 workflow 안의 특정 노드와 key에 값을 덮어씁니다. image editing 쪽에서는 image, prompt, unet_name, width, height가 핵심입니다.

여기서 unet_name은 아무 모델 이름이나 넣는 칸이 아닙니다. edit workflow 안의 UNET loader가 받을 diffusion model 이름을 넣는 자리로 봐야 합니다.

그래서 모델 파일 분리가 먼저입니다. ComfyUI 안에서 어떤 파일이 diffusion model이고, 어떤 파일이 text encoder이고, 어떤 파일이 VAE인지 정리되어 있어야 Open-WebUI 매핑도 흔들리지 않습니다.

unet_name은 diffusion model만 가리킵니다
Open-WebUI의 unet_name은 diffusion model만 가리킨다고 보고 연결해야 모델 매핑 오류를 줄일 수 있습니다.

8. 이번 편의 결론

Qwen Image Edit 2511을 ComfyUI에서 쓸 때 모델 파일을 나눠 넣는 이유는 단순합니다.

각 파일이 하는 일이 다르고, 실패했을 때 원인을 좁히기 위해서입니다.

이번 편에서 정리한 기준은 다음과 같습니다.

  1. diffusion model은 이미지 편집의 중심 모델이다.
  2. text encoder는 프롬프트를 모델 입력으로 바꾼다.
  3. VAE는 latent와 실제 이미지 사이를 변환한다.
  4. LoRA는 선택 기능이며 본체 검증 뒤에 붙인다.
  5. Open-WebUI의 unet_name은 diffusion model과 연결해서 봐야 한다.

다음 편에서는 이 기준을 가지고 Open-WebUI edit workflow 매핑으로 넘어가겠습니다. 범위는 더 좁힙니다. image, prompt, unet_name, width, height를 어떻게 확인해야 하는지만 다루겠습니다.

참고 문서

댓글 달기

위로 스크롤