SD _ComfyUI

004. ControlNet 공부 - Flux Canny

cat8claw8 2026. 2. 1. 01:32

항목                                                            Stable Diffusion                                            FLUX

생성 원리 노이즈 제거 방향 이동
구조 유지 약함 강함
randomness 높음 낮음
canny 역할 강제 힌트
실패 패턴 구조 붕괴 스타일 미묘함

 

Stable Diffusion + ControlNet

흐물한 반죽
→ 빵틀에 억지로 넣고
→ 틀 모양으로 굳힘

Flux

반죽 만들 때부터
“이건 바게트로 만들 거야”라는
방향과 비율이 이미 정해진 레시피

  • 틀은 없음
  • 하지만 형태는 유지됨

 

 

 

단계                                                                 Stable Diffusion                                     Flux

canny 사용 위치 외부 보정 장치 내부 사고 요소
역할 틀, 강제 방향 정보
실패 시 구조 붕괴 스타일 편차
수정 방식 당김 이동

 

 

 

 

어느 정도 이해를 했다. 

 

 

 

노드를 뜯어보자.

 

이 표는 이 링크를 보면 된다. https://docs.comfy.org/tutorials/flux/flux-1-controlnet

 

ComfyUI Flux.1 ControlNet Examples - ComfyUI

This guide will demonstrate workflow examples using Flux.1 ControlNet.

docs.comfy.org

 

 

이 순서들에 대한 설명이 궁금하고 어떤 걸 의미하는 지 gpt에게 물어봤다. 

 

 

1️⃣ Load VAE node

왜 ae.safetensors를 먼저 로드해야 하나?

VAE의 역할

VAE는 latent ↔ 이미지를 변환하는 장치입니다.

 

FLUX에서 VAE가 중요한 이유

  • FLUX는 고해상도·고정밀 latent를 사용
  • SD1.5 / SDXL VAE와 호환 안 됨
  • ae.safetensors는 FLUX 전용 AE(AutoEncoder)

❗ 이걸 안 맞추면:

  • 색 깨짐
  • 디테일 붕괴
  • 흐릿한 출력

👉 그래서 제일 먼저 정확한 VAE를 지정하는 것

 

2️⃣ Load Diffusion Model

왜 flux1-canny-dev.safetensors를 로드하나?

여기서 말하는 “Diffusion Model”의 정체

사실 FLUX는 엄밀히 말해 diffusion이 아님
Rectified Flow 기반 생성 모델

하지만 역할은 동일:

  • latent를 점진적으로 정제
  • canny 구조 + 텍스트 조건 반영

flux1-canny-dev의 의미

  • flux1 : FLUX 1세대
  • canny : 에지 조건 전용으로 학습됨
  • dev : 개발용 / 컨트롤 강한 버전

👉 이 모델 안에 이미

  • canny 해석 방식
  • 구조 반영 규칙
    가 학습돼 있음

❗ 다른 FLUX 모델에 canny 넣어도
“해석 방법” 자체가 다름

 

3️⃣ DualCLIPLoader node

이게 제일 중요함

왜 “Dual” 인가?

FLUX는 텍스트를 두 단계로 해석합니다.

🔹 clip_l.safetensors

  • 짧고 시각적인 표현
  • 스타일, 분위기, 재질
  • “what it looks like”

🔹 t5xxl_fp16.safetensors

  • 문맥·의도·구조적 설명
  • 복잡한 문장 이해
  • “what it means”

👉 SD1.5 / SDXL과 가장 큰 차이점
텍스트가 ‘보조’가 아니라 ‘구조 지시자’

그래서:

  • DualCLIP 없으면 : 프롬프트가 얕아짐 , canny 구조만 따라가는 “무미건조한 결과” 나옴

FLUX는:  픽셀을 베끼지 않음 (“이런 구조구나” 하고 이해함)

그래서: 같은 canny라도 결과가 재해석됨

 

Flux의 canny 원리 단계

Load VAE FLUX 전용 latent ↔ 이미지 변환
Load Diffusion Model canny 구조 해석 규칙 자체
DualCLIPLoader 의미(T5) + 시각(CLIP) 결합
Load Image 구조 정보 제공
Queue 전체 사고 흐름 실행

 

 

그럼 이제 이게 어떻게 컨디셔닝/ 조건화 되어서 이미지가 재 생성 되는지 알아보자 . 

 

 

1️⃣ InstructPixToPixConditioning

“무엇을 어떻게 바꿀 것인가?”

이 노드는 출발점입니다.

역할

  • 입력 이미지 + 텍스트를 결합
  • **“이 이미지를 이런 방향으로 바꿔라”**라는 지시 생성
  • canny / pix2pix / 구조 기반 작업의 핵심

 

2️⃣ ConditioningZeroOut

( InstructPixToPixConditioning 의 negative에 연결)

“이 조건을 언제, 얼마나 무시할 것인가?”

이 노드는 안전장치이자 조율기입니다.

역할

  • conditioning을 필요 시 0으로 만들 수 있게 준비
  • 특정 구간에서 조건 영향 제거 가능

왜 필요하냐면…

FLUX는:

  • 구조 조건
  • 텍스트 조건
  • 스타일 조건

동시에 씁니다.

근데 항상 다 강하면:

  • 과도한 고정
  • 딱딱한 결과
  • “명령 과잉” 상태 발생

그래서 이 노드는 이렇게 말하는 겁니다:

“이 조건은
필요할 때만 쓰고,
나머지 단계에서는 잠시 꺼둘 수 있게 하자

👉 조건의 ‘존재 여부’를 제어

 

3️⃣ FluxGuidance ( InstructPixToPixConditioning postive에 연결)

“이 지시를 얼마나 강하게 따를 것인가?”

이게 FLUX 전용 핵심 노드입니다.

역할

  • conditioning에 방향 강도(guidance) 부여
  • Stable Diffusion의 CFG와 비슷해 보이지만 개념이 다름

Stable Diffusion의 CFG

“프롬프트를 얼마나 강제로 맞출까?”

FluxGuidance

“이 방향으로
얼마나 세게 이동할까?

FLUX는:

  • 수정 ❌
  • 이동 ⭕

이 노드는 그 이동 벡터의 크기를 정합니다.

 

 

 

이미지 생성 실습! 해보자.!

 

 

 

그냥 디폴트 이미지로 생성해서 차이를 보려고 한다. 

 

1. canny 노드를 통해 이미지 생성 

 

2. 프롬프트는 다음과 같은 상태 / 

A vibrant red ladybug rests on a blooming deep purple rose with lush, velvety petals. The background is a soft pink, filled with subtly blurred roses of the same pink shade, creating a dreamy and romantic atmosphere.

 

3. 아래 이미지들은 이제 위의 프롬을 작동 시켜서 나오는 결과값들인데, FluxGuidance에 따라 어떻게 달라지는지 확인해 보고자 한다. 

 

4. Ksampler seed는 픽스 

 

 

30일 때

 

10일 때

 

50일 때

 

 

 

 

값이 올라갈 때 실제로 바뀌는 것들

🔹 낮은 값 (예: 5~10)

  • 구조 느슨
  • 스타일 자유
  • 프롬프트 의도 일부 누락

🔹 중간 값 (15~30)

  • 구조 안정
  • 의도 명확
  • 가장 많이 쓰이는 구간

🔹 높은 값 (40~60+)

  • 의도 고정
  • 구조 거의 흔들리지 않음
  • 창의적 변주 감소
  • “설명서대로 그린 느낌”

⚠️ 그래도:

  • SD처럼 깨지지는 않음
  • 대신 경직

4️⃣ 그래서 canny 작업에서는 왜 높은 값이 자주 나오나

canny는:

  • 구조 힌트
  • 형태 방향

FluxGuidance를 높이면:

  • “이 구조를 유지하는 방향”이 강화됨
  • 선을 베끼는 게 아니라
  • 형태 의도를 끝까지 유지

그래서:

  • 30, 40도 흔히 쓰임
  • SD CFG 기준으로 생각하면 안 됨