전체 글 1901

Stable Diffusion에 대한 기본적인 이론

스테이블 디퓨전(Stable Diffusion)은 텍스트로부터 인공지능 이미지를 생성하는 잠재 확산 모델(latent diffusion model) 입니다. 고차원의 이미지 공간이 아닌, 먼저 이미지를 잠재 공간(latent space)로 압축합니다. Stable Diffusion을 우리말로 번역하면 "안정적인 확산"입니다. 왜 이런 이름을 붙였을까요? 그냥 사용할 줄 알면 되지, 왜 작동 원리까지 알아야 할까요? 그 해답은 이렇습니다. "우리가 필요한 것은 내가 원하는 이미지를 잘 뽑아내는 것이고, 내부 작동원리를 알면 이렇게 이미지를 잘 뽑아내는 데 도움이 되기 때문"입니다.한마디로 도구를 올바르게 사용하면 더 정밀한 결과를 얻을 수 있습니다. text-to-image 는 image-to-image와..

Stable Diffusion으로 사실적인 인물 사진을 생성하는 방법

스테이블 디퓨전을 활용하는 이유중 가장 중요한 것중의 하나가 사실적인 인물 사진을 생성하는 것입니다. 카메라로 직접 현장에서 찍은 것같은 진짜처럼 보이는 사진. 이 글에서는 사진 스타일의 이미지를 생성하는 원리를 알아 보겠습니다. 프롬프트, 모델, 사진확대기 등이 이 글에서 다룰 주요 내용이다. 소프트웨어 스테이블 디퓨전을 사용하는 방법은 여러가지가 있습니다. 이 글에서는 AUTOMATIC1111을 사용하는데, AUTOMATIC1111 GUI는 윈도에서도, Mac에서도, Google Colab에서도 사용할 수 있습니다. 제 컴퓨터 그래픽 카드가 오래된 것이다보니, 저는 앞으로 Google Colab 환경을 주로 사용하기로 했습니다. 프롬프트 여기에서는 사실적인 인물 사진을 생성하기 위한 고품질의 프롬프트..

Automatic1111 GUI: 초보자 가이드(메뉴 해설)

Atutomatic1111 Stable Diffusion webUI는 사실상의 표준 GUI입니다. 새로운 기능이 나오면 여기에 가장 먼저 등장합니다. 그런데 쉬운 소프트웨어는 아닙니다. 문서도 별로 없구요. 메뉴를 들여다보면, 특히 설정(Settings)의 경우 너무 복잡해서 숨이 넘어갈 정도입니다. 이글은 AUTOMATIC1111 GUI를 사용하는 방법에 대한 가이드입니다. 투토리얼로 생각해도 무방합니다. 여러가지 예제가 많이 들어있으니 직접 실습해보시면 좋습니다. AUTOMATIC1111이 뭘 할 수 있는지가 궁금하다면 먼저 대충 어떤 기능이 있는지만 알아보고, 나중에 확인해 보는 것도 좋습니다. txt2img 탭 GUI를 시작하면 제일 먼저 보이는 것이 text2img (Text to Image)탭..

OpenArt의 프롬프트 북(Prompt Book)

Stable Diffusion을 포함하여, Text2Img 방식의 그림생성 인공지능에서 가장 중요한 것중의 하나가 프롬프트(Prompt)이다. 프롬프트는 자신이 생성하고자 하는 이미지를 표현하는 단어들의 모음이다. 즉, 프롬프트를 얼마나 잘 입력하느냐가 생성된 이미지의 품질을 좌우한다. 그러나, 프롬프트 시장이 확대된다는 신문 기사에서 알 수 있는 것처럼, 좋은 프롬프트를 만드는 것은 쉬운 일이 아니다.이 글에서는 OpenArt에 올려진 프롬프트 북(The PromptBook) 을 기준으로, 직접 테스트해보면서 필요에 따라 편집한 결과를 정리한다.1. 서론Tiny cute cow toy, reading a book, standing character, soft smooth lighting, soft pa..

Stable Diffusion A1111 메모리 부족 에러

AUTOMATIC1111을 설치하고, 몇가지 테스트 중이었습니다. 그중에서도 Easy Diffusion에서는 사용할 수 없었던 LoRA를 사용할 수 있다고 해서 기분 좋게 돌리고 있었죠. 그런데, 잘 돌아가는 듯 하다가... 뻗었습니다. 처음에 512x512짜리 이미지 1개를 생성할 때는 문제가 없었는데 크기를 좀 늘이고 2장씩 뽑으라고 했더니 아래처럼 "torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 38.00 MiB (GPU 0; 4.00 GiB total capacity; 2.67 GiB already allocated; 27.80 MiB free; 2.71 GiB reserved in total by PyTorch" 라는 메시..

Stable Diffusion 대표 UI - AUTOMATIC1111 설치방법

그림 생성형 인공지능 중 하나인 Stable Diffusion은 다양한 방법으로 사용할 수 있습니다. 오픈 소스이기 때문에 원하는 누구나 조금씩 수정하여 프로그램을 만들 수 있기 때문입니다. 며칠전 소개시켜드린 Easy Diffusion 2.5도 그중 하나입니다. 이 프로그램은 아무 사전 작업없이 그냥 파일을 다운로드 받고, 설치를 풀기만 하면 실행할 수 있어 편리합니다. 아무리 컴맹이라도 실패할 확률이 "제로"죠. 그런데 Easy Diffusion을 사용해 보니 몇가지 문제가 있었습니다. 무엇보다 최신의 기능이 지원되지 않는다는 것이었습니다. 특히 (정확히 무언지는 모르지만) LoLA를 이제 겨우 베타버전에서만 지원하기 시작했고, Inpainting에서도 생각대로 작동되지 않는 것 같았습니다. 오늘 소..

python을 실행시켰더니 Windows 앱스토어가 뜰때

요즘 이런저런 이유로 python을 공부하고 있습니다. Stable Diffusion을 사용하기 위해서 필요한 것도 있고, 가끔 퍼즐을 풀 때 프로그램을 짜야 할 때가 있어서입니다. 물론 다른 언어도 사용할 수 있겠지만, 몇년 전부터 들어왔던 python이 가장 나을 것 같아서입니다. 그래서 현재 제 컴엔 anaconda3와 pycharm 이 설치되어 있고, 주력으로 사용하고 있습니다. 그런데 Stable Diffusion을 사용하려면 별도로 python 3.10.6 을 깔으라고 하더군요. 설치하면서 반드시 PATH 를 추가하라고 해서 시키는 대로 했고요.그런데... 다했는데도 불구하고 python을 실행하기만 하면 아래처럼 Windows App Store 가 뜨더군요. python이 없으니 새로 설치하..

Easy Diffusion - VAE

VAE (Variational Auto Encoder)란? 간단히 말해서, VAE를 사용하면 생성된 이미지의 품질이 향상된다. VAE 는 이미지 중에서 특정한 측면을 위해 학습된 것으로, Easy Diffusion에 기본으로 탑재된 VAE인 vae-ft-mse-840000-ema-pruned 는 생성된 이미지에서 눈을 더 잘 표현한다. Stable Diffusion은 vae-ft-mse-840000-ema-pruned 를 사용하여 설치하고 시작한다. 이 VAE 파일은 모든 Stable Diffusion 모델에서 사용할 수 있다. 이 VAE의 원본은 https://huggingface.co/stabilityai/sd-vae-ft-mse-original이다. VAE 를 변경할 경우 VAE 파일 (확장자는 ...

Easy Diffusion - 모델 추가 방법

Stable Diffusion 에서 생성되는 이미지는 여러가지 요인에 의해 영향을 받지만, 그중 가장 큰 비중을 차지하는 것이 이미지 생성에 사용되는 모델이다. Stable Diffusion은 여러개의 학습 모델을 사용하면서, 수시로 교체하며 사용할 수 있다. 이 글은 여러가지 모델을 어떻게 설치하고 사용할 수 있는지에 대해 설명한다. Stable Diffusion 모델이란? 스테링블 디퓨전의 UI는 이른바 모델(model)을 사용하여 이미지를 생성한다. 모델은 수많은 이미지와 이미지에 대한 설명을 사용하여 학습한 결과이다. Easy Diffusion을 설치하면 기본 모델인 sd-v1-4 가 다운로드된다. 하지만, 다른 모델도 존재하며 매우 다양하다. 그중에는 sd-v1-4를 기반으로 하여 추가로 다른 ..

Easy Diffusion - 모델 병합

Stable Diffusion 에서 생성되는 이미지는 여러가지 요인에 의해 영향을 받지만, 그중 가장 큰 비중을 차지하는 것이 이미지 생성에 사용되는 모델이다. Stable Diffusion은 여러개의 학습 모델을 사용하면서, 수시로 교체하며 사용할 수 있다. 사용가능한 모델은 .ckpt 또는 .safetensors 로서, "C:\EasyDiffusion\models\stable-diffusion" 에 복사하면 사용할 수 있다. 모델 병합(Model Merging)은 2개의 Stable Diffusion 모델(.ckpt 또는 .safetensors)을 합쳐서, 각각의 스타일과 기능을 결합하는 것을 말한다. (단, 이 기능은 Easy Diffusion 2.5.0 이상에서만 지원한다.) 1 단계 Easy D..

Easy Diffusion 인페인팅 사용방법

인페인팅(Inpainting)은 Stable Diffusion 모드 중 하나로서, 입력된 초기 이미지중에서 표시된 일부분만 변경하는 모드를 말한다. 그림의 배경을 바꾼다거나, 새로운 객체를 추가하고자 하는 경우 유용하다. 입력 이미지 지정 인페인팅을 사용하려면 먼저 입력용 이미지를 지정해야 한다. 입력용 이미지는 두 가지 방법으로 지정할 수 있다. 첫번째는 입력용 이미지를 직접 불러오는 것이다. 아래 그림에서 왼쪽 [Browse] 버튼을 누르고 원하는 그림을 불러오면 된다. 두번째는 Stable Diffusion 을 사용해 생성한 그림을 그대로 입력용 그림으로 지정하는 방법으로, 이미지에 마우스를 올리면 나타나는 버튼 메뉴에서 [Use as Input] 을 누르면 된다. 인페인트(InPaint) 이렇게 ..

Easy Diffusion 프롬프트 작성 방법

Stable Diffusion은 두가지 방식의 이미지 생성을 지원한다. 첫번째는 img-to-img 즉, 그림을 입력하여 그 그림을 기반으로 이미지를 생성하는 방법이며, 두번째는 txt-to-img, 즉 문자를 입력하여 이미지를 생성하는 방법이다(대부분의 이미지 생성형 AI는 이 두가지 방식을 지원한다).txt-to-img 방식에서 입력하는 문자를 프롬프트(prompt)라고 한다. 프롬프트는 생성할 이미지에 반영하고 싶은 여러가지 속성을 짧은 어구로 입력하는데, 프롬프트를 얼마나 잘 입력하느냐에 따라 생성되는 이미지가 자신이 원하는 이미지와 가까와질 확률이 높아진다. 즉, 프롬프트는 txt-to-img 방식에서 가장 핵심이라고 할 수 있다. 이 글에서는 프롬프트를 작성하기 위한 기본적인 사항을 설명한다...

Easy Diffusion 메뉴

Easy Diffusion을 설치하고나서 실행하려 할 때 사용하는 메뉴에 대한 설명입니다. 대부분의 경우 상세하게 설정하지 않더라도 프롬프트(Prompt)만 입력하면 잘 수행됩니다. 아래는 처음 실행된 후 보이는 화면으로 현재 Generate(생성) 탭이 켜진 상태입니다. 왼쪽 위는 가장 중요한 설정으로 프롬프트(Prompt)와 초기 이미지를 설정하는 곳이고, 그 아래로 이미지 설정(Image Settings), 이미지 수식어(Image Modifiers) 메뉴가 있습니다. 아래에는 각 부분 별로 자세한 설명이 있습니다. 또한 그 아래로는 설정(Settings) 메뉴에 대한 설명 및 그림위에 나타나는 메뉴 버튼에 대한 설명이 있습니다. 프롬프트와 초기입력 사진 Prompt: 생성하고자 하는 사진을 설명하..

Easy Diffusion 사용법 기초

Easy Diffusion을 설치하고나서, 설치한 디렉토리(저의 경우 C:\EasyDiffusion)에 들어가서 "Start Stable Diffusion UI.cmd" 파일을 더블 클릭하면, 아래와 같은 화면이 나타나면서 Stabel Diffusion을 사용할 수 있습니다. 여러가지 팁 여러개의 작업을 대기열에 넣을 수 있습니다. "Make Image" 단추를 누를 때마다 새로운 작업이 추가되고, 현재 실행중인 작업이 완료되면 다음 대기중인 작업이 자동 실행됩니다. 프롬프트에 여러 줄(Return으로 분리)을 입력하면, 각 줄별로 따로 따로 실행됩니다. 예를 들어, 세 줄로 입력하면 아래와 같이 세개의 대기열이 만들어집니다. [Face Correction] 또는 [Upscaling]을 사용하여 사진의 ..

Easy Diffusion - 가장 쉬운 Stable Diffusion 설치

그림 인공지능인 Stable Diffusion은 오픈소스이니 만큼 아주 다양한 방법으로 사용할 수 있습니다. 나무위키 사이트에 보면 Stable Diffusion web UI, Text-toArt Discord 등 여러가지 프로젝트가 있다고 하고, NovelAI와 같이 아예 Stable Diffusion 을 기반으로 만들어진 사이트들도 존재합니다. 저는 처음에 Stable Diffusion web UI를 설치하려고 했습니다. 그러다가 클라우드를 통해 스테이블 디퓨전을 사용하는 Google Colab 쪽도 기웃거렸고요. 제가 사용하는 PC가 벌써 몇년쯤 되다 보고(찾아보니 19년 9월이네요) 그다지 고사양이 아니다 보니, 아무래도 로컬로 돌리기는 힘들다 싶었기 때문입니다. 그런데 한번에 설치가 안되고, 여..