기본 콘텐츠로 건너뛰기

스테이블 디퓨전 기초 Flux_Fill - text to image 와 image to image 차이

 스테이블 디퓨전에서 이미지를 생성할 때는 text(prompt) 만 입력하여 생성하거나 , 이미지를 load하여 그것을 수정하여 이미지를 생성한다.

이 내용은 스테이블 디퓨전으로 이미지를 생성하는데 아주 초보이신 분들에게 도움이 될 내용이다.
여기서는 주로 Comfyui 에서 Flux 모델을 사용하여 이미지를 생성한다.
Flux - Text to Image

1. Text to Image

    이것은 prompt 를 입력하면 거기에 따라 checkpoint 모델이 이미지를 생성하기 때문에 이미지를 생성 할 백지상태의  캔버스를 입력해 주면 된다.  그 이미지를  Latent Image 라고 한다.
Flux 용 Basic Workflow

workflow 에서 ksampler 에 입력되는 Empty Latent Image 가 바로 빈 Latent Image 를 준비해 준다.  
Empty Latent Image 를 KSampler 로 연결


빈 백지에 명령 prompt 대로 이미지를 생성해 준다고 보면된다.

이 procedure 를 Text to Image 생성방법 이라고 한다.

2. Image to Image

    이미지 투 이미지는 원본 이미지를 주고 그것을 일부 또는 전부를 수정하여 이미지를 생성하는 방식이다.   따라서 빈 latent Image 를 KSampler 에 연결하는 것이 아닌 이미지 원본을 입력해 준다.
Img to Img Workflow

원본이미지를 Load 할 노드들이 필요하다.

Load Image Nodes
원본이미지를 그대로 입력할 수는 없다.
여기서 우리는 Latent Image 라는 개념을 알고 있어야 한다.
Latent image는 **눈에 보이지 않는 "압축된 이미지 정보"** 이다.
Stable Diffusion은 실제 이미지 공간에서 바로 작업하지 않고, 먼저 이미지를 숨어 있는(=latent) 압축된 형태로 변환한 뒤 작업한다.  그 이유는 압축하여 크기를 대폭 축소한 후 그것을 가지고 이미지 작업을 하면 속도가 빠르기 때문이다.  
그래서 Latent Image 는 우리가 눈으로 알아볼 수 없다.

원본 이미지를 스테이블 디퓨전이 작업할 수있는 Latent Image 로 바꾸어 주는것이 VAE Encode 이다.  그 후에 KSampler 로 연결해 줄 수있다.
물론 Ksampler 에서 작업이 끝난 이미지도 Latent Image 이기 때문에 이것을 우리가 볼 수있는 이미지로 다시 바꾸어 주는것이 VAE Decode 이다.

3. Img to Img 이미지 생성 요령

    Workflow 를 만들어 원본이미지를 올리고 Prompt 를 입력하여 생성을 시켜보면 원하는 대로 안나올 것이다.
여기서 KSampler 에 있는 Denoise 값을 이해해야 한다.

Denoise 값은 쉽게 말하면 
  • 값 1 : 원본 이미지를 무시하고 Text to Image 처럼 Prompt 대로 생성한다.
  • 값 0 : 원본이미지 대로 변화없이 생성한다.
  • 0.4 ~ 0.6 : 이 정도 수치에서 적절히 사용하면 원본이미지를 어느 정도 유지하며 Prompt 에 맞추어 적절히 수정을 해 준다.  따라서 수치를 조정하면서 자기가 원하는 이미지를 만들어야 한다.
  • 처음 고양이 이미지를 원본으로 하여 Denoise 값을 1 ~ 0.5 로 변경시키면서 이미지를 생성한 결과이다.
  • prompt : "A dog sitting on a beach at sunset, in watercolor style"
값 0.7일때


값 0.6 일때



값 0.5 일때

값이 0.5로 갈 수록 원본과 거의 유사한 이미지가 만들어 졌다.

이 workflow 가 가장 기본적인 Img to Img 방식이다.
그런데 이 방식으로 이미지를 생성해 보면 자신이 원하는 것을 얻기가 참 어렵다.
이미지의 일부분만 수정하기도 어렵다.

4. Flux-Fill  모델 사용 (Inpaint)

    이 모델을 사용하면 원본이미지의 일부분을 원하는 것으로 바꾸는 것이 매우 쉽다.
Flux-Fill Inpaint Workflow

원본이미지의 변경하고 싶은 부분을 Masking 하고 prompt 를 입력한 후 이미지를 생성하면 원본이미지의 원하는 부분만 변경하여 만들어 진다.
Prompt : A dog sitting on a beach at sunset, in watercolor style
Flux-Fill Inpaint

깔끔하게 모든 부분은 원본 그대로이면서 고양이 이미지를 강아지 이미지로 바꾸어 졌다.

전체적인 이미지를 어떤 스타일이나 구도는 유지하고 변경하고 싶으면 기본적인 workflow 를 이용하면 되고,  이미지의 일부분을 수정하거나 변경을 원하면 Flux-Fill 모델의 Inpaint 기능이 아주 유효하다.





댓글

이 블로그의 인기 게시물

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 사...

Flux Lora 제작 - Local 에서 Fluxgym 을 이용하여 자체 Lora 만들기

 Flux Lora 는 일관된 이미지를 만드는데 꼭 필요하다. 특히 일관된 얼굴의 이미지를 만드는데 있어서 다른 기능들 (ipadapter , controlnet, imgtoimg 등) 을 이용하는 것 보다 훨씬 일정한 캐릭터를 생성하게 해준다.  문제는 이런 Lora는 주로 CIVITAI , Tensor, Hugging face 등 사이트에서 다운 받아 사용하면 되지만  그것은 나만의 독특한 캐릭터가 아니고 나의 취향과 일치 되기가 어려워서 Lora를 구하기가 어렵다.  아니면 그런 사이트 내에서 자체 Lora를 제작하면 되는데 모두 비용이 필요하다. 여기 소개하는 Fluxgym AI 는 Local 컴퓨터에서 VRAM 12G 이상이면 자체 Lora를 만들 수 있게 해준다.   소요되는 시간도 생각보다 많이 걸리지 않는다.   이제 설치하고 자체 Lora를 한번 만들어 보자. Fluxgym 으로 만든 Lora 대표이미지 1. fluxgym 설치 pinokio 앱을 실행한다. ( pinokio 앱 설치 참조 ) 우측 상단 맨 처음 아이콘 (discover) 클릭 fluxgym 을 찾아서 클릭 fluxgym 이것을 클릭하면 된다. 여러가지 파일들을 설치하기 때문에 시간이 좀 소요될 것이다. 모든 설치가 끝나면 pinokio 브라우저 하단 부분에 fluxgym 메뉴가 추가된다. fluxgym 나중에 불필요하면 삭제(쓰레기통 아이콘 클릭) 하면 모두 unintall 된다. 2. fluxgym 실행 항상 pinokio 앱을 실행하여 pinokio 브라우저에서 fluxgym 을 클릭하면 된다. flux화면3-1 -. 1번항 : 여기에 입력한 대로 fluxgym/outputs/ 의 하위 폴더를 만들어 준다. -. 2번항 : Lora를 작동시키는 trigger word 를 입력한다. (예,  hart_style_a......) -. 3번항 : 자신의 가능한 VRAM 선택 : 나는 12 G 선택 ...

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 설치파일을 실행하여 설치 설치과정은 복...