이 글은 Stable Diffusion 또는 다른 이미지 생성형 AI에 대해 거의 아무것도 알지 못하는 초보자를 위한 안내서입니다. (예전에 써둔 글을 새로운 내용을 추가하고 일부 수정하였습니다)
스테이블 디퓨전(Stable Diffusion) 이란?
스테이블 디퓨전은 일반 문자로부터 이미지를 생성하는 잠재 확산 모델(latent diffusion model) 모델입니다. 카메라로 직접 촬영한 듯한 정말 사실적인 사진도, 예술가들이 직접 그린 예술 작품 같은 이미지도 생성할 수 있습니다.
가장 좋은 점은 무료라는 것입니다. 자신의 PC에 AUTOMATIC1111 UI만 설치하면 언제든지 사용할 수 있습니다.
Stable Diffusion 사용방법은?
예를 들어, 생강 과자집(gingerbread hous) 사진이 필요하다고 해보죠. 이때 프롬프트(Prompt)를 다음과 같이 입력하면
gingerbread hous, diorama, in focus, white background, toast, cruch cereal
스테이블 디퓨전은 다음과 같은 이미지를 생성해 줍니다. 아주 간단합니다!. 그리고 상당히 쓸만합니다! 일반적으로 생성하는 이미지는 그때그때 모두 달라지는데, 그 중에서 가장 마음에 드는 것을 선택하기만 하면 됩니다.
![]() |
![]() |
![]() |
DALL-E 혹은 미드저니(MidJourney)와 같이 텍스트에서 이미지를 생성하는 서비스는 많습니다. 하지만, 스테이블 디퓨전은 다음과 같은 장점이 있습니다.
- 오픈소스(Open-Source) : 소스가 공개되어 있어 무료로 사용할 수 있으며, 많은 개발자들이 참여하여 새로운 기능이 추가되고 있습니다.
- 저사양 컴퓨터 작동 가능 : 대부분의 상용 이미지 생성형 인공지능은 컴퓨터 자원 (및 전기)을 무지막지하게 사용하는 걸로 알려져 있습니다. 하지만, Stable Diffusion은 4년전에 100만원 내외로 구입한 제 중급 컴퓨터에서도 돌아갑니다. (느리긴 느려서... 고민됩니다.)
스테이블 디퓨전으로 할 수 있는 것
1. 텍스트로부터 이미지를 생성하기
스테이블 디퓨전을 사용해 이미지를 생성하는 방법은 여러가지가 있지만, 가장 기본적인 것은 text-to-image(txt2img) 방식입니다. 아래는 Stable Diffusion으로 생성할 수 있는 이미지의 예입니다.
Anime 스타일
사실적 사진
사실적 인물 사진에 관심이 있으시면 여기를 읽어보세요.
풍경
판타지풍 이미지
예술적 이미지
동물
2. 이미지로부터 이미지를 생성하기
image-to-image(img2img) 기능을 사용하면, 어떤 이미지를 기준으로 다른 이미지를 생성할 수 있습니다. image-to-image 는 프롬프트 뿐만 아니라, 이미지도 입력으로 넣어주는 방식입니다. Stable Diffusion은 입력한 이미지를 기본으로 깔고, 프롬프트의 요구사항을 만족시키는 방향으로 이미지를 생성합니다. (사실 text-to-image도 img2img 방식의 일종이라고 할 수 있습니다. 다만 입력된 이미지가 무작위 잡음만 있는 그림일 뿐이죠.)
아래는 제가 대충 손으로 그린 그림을 AI로 재생성한 그림입니다. (프롬프트는 "a color pencil sketch of girl in grassland, standing pose, praying, clasp hands on the chest, facing right, look into the distance, flowers, blue sky with clouds, small hill in the background" 입니다)
물론 한번만에 뽑아낼 수 있었던 건 아니고, ChatGPT의 도움을 받아 프롬프트를 가다듬으면서, 약 15장 정도중에서 제일 마음에 드는 걸 선택했습니다. 보시는 것처럼, 아무리 개떡같은 그림을 입력해도 인공지능은 전문가 수준의 그림을 뽑아내 줍니다. 너무 행복합니다. ㅎㅎㅎ
![]() |
![]() |
3. 이미지 편집
inpainting 기능을 사용하면 AI 가 생성한 사진 혹인 일반 이미지의 일부를 재 생성할 수 있습니다. 포토샵을 써보신 분은 내용인식(context-aware) 채워넣기와 거의 비슷하다고 생각하실 수 있습니다.
4. 비디오 변환하기
왼쪽이 원본 비디오이고, 오른쪽이 이 비디오를 기준으로 얼굴만 대체한 새로운 비디오입니다. 아직까지 완벽하지는 않고, 원래 Stable Diffusion에서 지원해 주는 게 아니라, 외부 프로그램을 사용해 강제로?? 만들었다는 느낌입니다만, 나중에는 정식으로 지원할 날이 오지 않을까 싶습니다. 자세한 내용은 스테이블 디퓨전을 사용해서 비디오 만들기(Video2Video)를 읽어보시기 바랍니다.
![]() |
![]() |
어떤 Stable Diffsion 서비스를 사용해야 할까?
스테이블 디퓨전은 오픈 소스이라서, 다양한 형태의 서비스가 존재합니다. 예를 들어 제가 올린 Easy Diffusion - 가장 쉬운 Stable Diffusion 도 그중 하나입니다. 그중 일부는 어느 정도 뒤에는 사라질 수도 있고, 더 나은 서비스도 등장할 수 있습니다.
온라인 생성기
미드저니나 Dall-E 만큼 유명하지는 않아도, 스테이블 디퓨전 기반의 온라인 서비스도 많이 존재합니다. 이중에서 하나를 선택해서 가입한 뒤, 적당한 프롬프트만 넣으면 원하는 이미지를 얻을 수 있습니다. 사용 측면에서는 아주 간단합니다. 심각하게 사용할 게 아니라 간단한 그림 몇장 얻고 싶은 정도라면 이런 서비스를 이용하는 것도 좋은 선택일 것니다. 사용자가 많을 수록 더 나은 결과물이 공유되고, 더 많은 것을 배울 수 있다는 점을 고려하여 서비스를 선택하시면 됩니다.
고급 GUI
무료 온라인 사이트는 기능이 많지 않다는 단점이 있습니다. 그래서 자신의 PC에 GUI (및 모델)을 설치하면 자유롭게 사용할 수 있습니다.
약간은 번거로운 설치작업이 필요하지만, 자신의 PC가 VRAM 4GB 이상의 NVidia GPU가 있다면 Automatic1111을 사용하는 것이 가장 좋습니다. 설치방법은 여기를 참고하시면 됩니다.. 하지만, 설치작업이 어렵다고 느낀다면 Easy Diffusion을 추천합니다. Easy Diffusion은 그냥 다운로드 받아서 원하는 폴더에 압축을 풀기만 하면 시행할 수 있어서 무척 편합니다. 다만, 최신 기능이 없는 게 있어서 약간 아쉬워 질 수 있습니다.
PC의 성능이 너무 떨어진다면 Google Colab을 사용하는 것이 좋습니다. Google Colab은 구글에서 제공하는 클라우드에서 연산을 하고, 자신의 PC에서는 GUI로 환경을 설정하는 일만 담당하기 때문에, 자원이 거의 없는 노트북에서도 사용할 수 있습니다. 현재까지 우리집 PC로 돌려본 결과 Google Colab이 처음 기동시킬 때 까지 시간이 걸리지만, 이미지를 생성할 때에는 3-4 배정도 빨리 돌아갑니다. 동시에 뽑을 수 있는 배치 사이즈(batch size)도 8개 까지 한꺼번에 뽑을 수 있어 시간상 많이 절약됩니다.
그런데... 저는 이것 저것 테스트하느라 그림을 많이 뽑아냈더니 접속이 제한되어버렸습니다. 이후에는 매달 $9.99 인 유료 구독 서비스를 사용해야 합니다. 그나마 무한정 사용할 수 있는 게 아니라, 컴퓨팅 단위 제한이 있는 걸로 알고 있습니다. 그래서 저는 포기했습니다.
그럼 왜 이런 독자 GUI 방식을 사용해야 할까요? 다음과 같은 장점이 있기 때문입니다.
- 보다 고급 프롬프트(Prompt)를 입력할 수 있다.
- 인페인트(Inpaint) 기능을 사용해 이미지 일부만 다시 그릴 수 있다.
- 이미지를 입력하고, 그 이미지를 기반으로 새로운 이미지를 생성할 수 있다.(img2img)
프롬프트를 잘 만들려면?
프롬프트를 잘 만드는 것은 자신이 원하는 이미지를 얻기 위한 가장 기본입니다. 가장 기본은 원하는 주제를 가능한 한 상세하게 입력하면 됩니다. 아울러 중요한, 그리고 스타일을 결정하는 강력한 키워드를 반드시 기억해 활용해야 합니다.
가장 쉬운 방법은 기존 프롬프트를 재활용하는 것입니다. civitai.com, openart.ai, playgroundai.com 와 같은 인공지능 이미지 공유사이트에 접속해 자신이 원하는 것과 비슷한 이미지를 찾고, 그 이미지를 만든 프롬프트를 복붙해서 사용하는 방법입니다. (구글에서 "인공지능 이미지 공유" 혹은 "AI image share"정도만 입력하면 이런 사이트이 엄청 많이 나옵니다.) 프롬프트를 잘 들여다 보고, 자신이 원하는 결과물을 얻을 때 까지 적당하게 더하고 빼면서 조절하시면 됩니다. 다만, 공유사이트에서 본 이미지와 동일하게 나올 것이라는 기대는 안하는 게 좋습니다. 다양한 환경변수 중에 약간만 달라져도 완전히 다른 이미지가 나온다는 것을 기억해야합니다.
openart.ai에서 만든 프롬프트 북을 읽어보면 많이 도움이 될 것 같습니다. 특히, 질문 목록을 만들어서 프롬프트를 만들어 가는 과정은 참고하면 좋습니다. 프롬프트 작성을 도와주는 사이트도 있는데, 기본적으로는 아래와 같은 여러가지 측면을 나누어 해당되는 단어를 선택할 수 있도록 만들어 둔 것입니다.
- 사진인가 그림인가? (photo, painting, sketch, 3D drawing 등)
- 주제는 사람? 동물? 풍경?(person or animal or landscape)
- 추가하고 싶은 요소
- 특별한 아트 스타일? 3D 렌더링, 지브리 스튜디오, 영화 포스터(3D render, studio ghibli, movie poster)
- 사진 종류? 마크로 렌즈, 망원렌즈(macro, telephoto)
좋은 프롬프트를 작성하는 방법
가장 중요한 법칙 1) 자세하게, 구체적으로, 2) 강력한 키워드를 쓸 것. 이 두가지 입니다.
자세하게 구체적으로
AI 가 하루가 멀게 진화하고 있지만, 스테이블 디퓨전이 당신의 마음을 읽을 수는 없습니다.^^ 따라서, 자신의 마음 속에 있는 것을 가능한 한 상세하게 적는 것이 프롬프트의 출발점입니다.
예를 들어 다음과 같은 프롬프트를 입력했다고 하겠습니다.
a woman on street
그 결과 아래와 같은 이미지가 나왔다고 해보죠. (사실은 할머니 사진이 너무 안나와서 일부러 할머니 사진을 뽑게 했습니다. ㅎㅎ)
할머니 사진을 원한 건 아니겠지만, 이 이미지가 프롬프트에 틀린 것은 아니죠. 다만 내용이 불충분했을 뿐입니다. 따라서 좀 더 자세하게 적어보도록 하겠습니다.
a young lady, brown eys, highlights in hair, smil, wearing stylish business casual attire, sitting outside, quiet city street, rim lighting
완전히 다르죠? 원하는 이미지인가요? 아니라면 다시 생성하면 됩니다. 필요하다면 좀 더 프롬프트를 수정해서 지정하면 원하는 이미지가 나올 확률이 더 높아집니다.
강력한 키워드 사용하기
일부 키워드는 매우 강력합니다. 예를 들면 아래와 같습니다.
- 유명인 이름 (예: Emma Watson)
- 예술가 이름 (예: Vincent van Gogh)
- 예술 매체 (예: illustration, painting, photograph, pencil schetch)
이런 단어들을 적절히 사용하면 원하는 이미지를 얻는 데 매우 도움이 됩니다.
그런데... 한글로 학습된 이미지 모델이 없기 때문에 모든 키워드는 영어로 입력해야 합니다. 한글로도 뭐라고 해야 할 지 떠오르지 않는 게 문제이긴 하지만요. ㅠㅠ 이럴 때, 일단 ChatGPT에 자신이 생각하는 원하는 그림을 설명하고, 이를 프롬프트를 만들어 달라고 해볼 수 있습니다. 한글로 먼저 주문한 뒤 영어로 바꿔달라고 하면 대충 원하는 프롬프트를 얻을 수 있을 것입니다.
Stable Diffusion 기본 파라미터
Stable Diffusion은 매우 많은 파라미터를 설정할 수 있습니다. 자세한 내용은 이 글을 보시면 됩니다. 하지만, 가장 중요한 것만 요약하면 아래와 같습니다.
- 이미지 크기 : 출력 이미지의 크기. 512x512가 기본입니다. 텍스트 프롬프트가 동일할 경우에도, 크기가 달라지면 생성되는 이미지가 엄청나게 달라집니다. 예를 들어 이미지 크기는 좌우가 넓은데 서있는 사람을 프롬프트에 입력해서는 생성될 확률이 떨어집니다. 이때는 512x768 등 landscape가 아닌 portrait 크기로 지정하는 것이 좋겠습니다. 이미지 크기를 잘못 설정하면 이런 기괴한 이미지가 생성될 수도 있습니다.
- 샘플링 스텝(Sampling steps) : 최소 20회가 필요합니다. 이미지가 좋지 않으면 일단 좀 더 늘려볼 수 있습니다. 담, 40회 이상은 거의 필요가 없다고 합니다.
- CFG(무분류기 안내, Classifier-free Guidance) : 기본이 7입니다. 작게하면 인공지능의 자유도가 올라갑니다. 즉 프롬프트를 무시할 확률이 커지게 됩니다.
- 시드 값(seed) : -1로 지정하면 무작위로 지정됩니다. 모든 이미지에는 시드 값이 있다고 생각하면 되는데, 동일한 값을 입력하면 동일한 이미지를 얻을 수 있습니다.
얼마나 많은 이미지를 생성해야 하나?
저는 처음에 2-4 장씩 생성하면서 원하는 것와 비슷한 이미지가 나오는지 확인해 본 뒤, 프롬프트를 조금씩 바꿔가면서 4장 정도씩 뽑는 편입니다.
기본적으로 성능이 좋은 PC라면 한번에 더 많은 이미지를 뽑을 수 있습니다. 특히 배치 사이즈(Batch size)를 크게 할 수록 전체적으로 생성되는 속도가 빨라지게 됩니다.
잘못된 이미지 수정하기
AI 이미지를 생성하다보면, 특히 사람의 모습을 생성할 경우, 부자연스러운 표정이나 자세를 취한 이미지가 만들어지는 경우가 많습니다. 정말 마음에 드는 데 일부분만 잘못되었다면 새로 그리는 것보다 일부는 수정하는 편이 훨씬 나을 수 있겠죠.
얼굴 복원(Face Restoration)
생성형 인공지능으로 출력한 이미지는 특히 얼굴이 부자연스럽게 나오는 경우가 많습니다. 예전에는 이를 후처리해야 했던 모양이지만, [Restore faces]를 선택하고 생성하면 해결됩니다. Settings에 들어가면 얼굴 복원에 관한 설정이 있는데, 아래와 같이 설정하면 크게 문제가 없습니다. 만약 얼굴 복원 옵션을 꺼둔 상태로 이미지를 생성했다면, 해당 영상의 씨드번호를 넣어주고 또 다시 돌려주면 됩니다.
아래는 얼굴 복원을 꺼뒀을 때와 켰을 때의 차이를 보인 것입니다.(프롬프트는 "A portrait of a fairy princess, tiara, long flowery hair, fantasy, soft background, sea-like , bluish dress, bare shoulders, UHD, 8k, beautiful composition, a modern surrealistic, " ) 인물이 들어간 이미지를 뽑을 때는 무조건 [Restore faces] 옵션을 켜두는 게 좋겠습니다.
![]() |
![]() |
![]() |
![]() |
인페인트를 사용한 결함 제거
생성한 이미지가 전체적으로는 마음에 드는데, 일부분에 결함이 있을 경우, 인페인트(Inpaint)를 이용해 수정할 수 있습니다. 예를 들어 아래 왼쪽에 있는 사진을 뽑았는데(프롬프트 "Photo of A couple of lovers staring at the milkyway, dark and dim in midnight, in the desert, highly detailed, wide-angle lens, HD"), 연인의 모습이 마음에 안들어 앉아있는 모습으로 수정하였습니다.
![]() |
![]() |
![]() |
이렇게 Stable Diffusion에서 생성한 이미지 뿐만 아니라, 자신이 실제로 찍은 사진이나 그림 등도 물론 수정할 수 있습니다.
어떤 모델을 사용할 것인가?
스테이블 디퓨전이 생성하는 이미지에 가장 영향을 미치는 것이 사용하는 모델입니다. 고양이를 학습하지 않는 모델을 사용하면 고양이 이미지를 생성할 수 없고, 고양이만 학습한 모델이라면 고양이 이미지만 생성할 수 있습니다.
스테이블 디퓨전 개발사인 Stability AI에서는 현재까지 Stable Diffusion 1.4, 1.5, 2.0, 2.1 등 총 4가지의 기반 모델(base model)을 공개했습니다. 이 기반모델을 사용하면 모든 종류의 이미지를 생성할 수 있지만, 그렇다고 특별히 원하는 이미지(내가 좋아하는 연예인이나, 내가 좋아하는 애니 스타일 등)를 생성할 수는 없습니다. 그런 이미지를 학습하지 않았기 때문이죠.
이럴 때 원하는 스타일의 이미지를 사용해 추가로 학습, 즉 미세조정한 모델들이 존재합니다. 이러한 미세 조정 모델은 매우 종류가 많고 매일 매일 새로운 것들이 나오고 있습니다. 어떤 모델을 사용하면 좋을지에 대해서는 이 글을 읽어보시기 바랍니다.
새로운 모델을 학습시키는 방법
스테이블 디퓨전의 가장 좋은 점 중 하나가 모델을 마음대로 제어할 수 있다는 것입니다. 다른 온라인 서비스는 편리하지만, 해당 서비스에서 제공하는 모델만 사용할 수 있죠. 하지만 스테이블 디퓨전의 경우, 원한다면 자신만의 독자적인 모델을 생성할 수도 있습니다. 새로운 모델을 학습시키는 방법은 많지만, 가장 많이 사용하는 방법은 (1)Dreambooth 와 (2)임베딩입니다.
이 두가지 중에서 드림부스(Dreambooth)가 훨씬 강력합니다. 모델에 포함된 모든 가중치를 미세 조정할 수 있기 때문입니다. 반면 임베딩의 경우 모델은 그대로 둔 상태에서 새로운 주제 혹은 스타일을 설명하는 새로운 키워드를 만드는 방식입니다.
이미지의 구도를 제어하는 방법
이미지를 생성할 때, 그냥 생각하는 프롬프트를 입력하고, 인공지능에게 여러 장을 생성하도록 한 다음, 그중에서 마음에 드는 것을 고르는 방법이 일반적입니다. 하지만, 좀 더 머리속에 그리는 구도가 있다면, 그 구도를 따라 이미지를 생성하도록 지시하는 방법도 있습니다.
Image-to-image
아래는 좌측의 검독수리 이미지를 기반으로 드래곤 이미지를 생성한 것입니다. img2img에서 입력 영상을 주면, 결과 이미지가 그 구도를 따라 생성됩니다. 가운데와 오른쪽은 잡음 제거 강도(Denoising Strength)를 달리한 결과입니다. 자세한 내용은 Stable Diffusion 초보자 가이드를 참고하세요.
![]() |
![]() |
![]() |
ControlNet
인공지능 생성 이미지에서 특정한 자세를 취한 영상을 얻으려면 ControlNet을 사용합니다. ControlNet도 입력 이미지를 사용하여 출력 이미지를 제어합니다. 다만, 특정한 정보, 예를 들면 사람의 자세와 같은 정보만 추출해 사용합니다. 아래는 ControlNet을 사용하여 왼쪽의 입력 이미지로부터 자세를 복사하여 생성한 이미지입니다. 자세만이 아니라, 외곽선과 같은 정보도 추출해 사용하는 방법도 있습니다.
ControlNet에 대한 자세한 내용은 이 글(1)과 이 글(2)를 읽어보세요.
![]() |
![]() |
Depth-to-Image
Depth-to-Image를 사용해도 입력 이미지로부터 구조를 제어할 수 있습니다. Depth-to-Image는 입력된 영상의 전경과 배경을 감지할 수 있는데, 출력 이미지는 동일한 전경과 배경을 따르게 됩니다. 아래는 그 예입니다.
지역분할 프롬프트(Regional Prompting)
Regional Prompter라는 확장(extension)을 설치하면, 일부 이미지에만 프롬프트가 적용되도록 할 수 있습니다.
예를 들어 아래는 오른쪽 위에 보름달이 있도록 하고, 왼쪽에 불꽃이 있도록 제어한 마녀 이미지입니다.
특정한 피사체 생성하기
사실적인 인물 사진
스테이블 디퓨전을 사용해서 사실적인 인물 사진을 생성할 수 있습니다. 아래는 몇가지 예입니다. 적절한 모델과 적절한 프롬프트를 사용하면, 정말 실물과 구분이 안될 정도로 정교한 인물 사진을 생성할 수 있죠. 자세한 내용은 이 글을 읽어보시기 바랍니다.
![]() |
![]() |
![]() |
동물
동물도 스테이블 디퓨전 사용자들이 선호하는 피사체중의 하나입니다. 아래는 몇가지 예입니다. 자세한 사항은 이 글을 읽어보세요~
![]() |
![]() |
![]() |
![]() |
기타 여러가지 피사체에 관한 글은 스테이블 디퓨전으로 멋진 이미지 만들기를 읽어보시기 바랍니다.
===
이상입니다. 이글은 Andrew 님의 글을 참고로, 일부는 번역하고, 샘플 중 일부는 제가 직접 해보면서, 필요한 부분을 제가 고쳐쓴 글입니다. 특히 개별 이미지가 아닌, 테두리가 있는 이미지는 해당 사이트에서 캡처했음을 알려드립니다.
민, 푸른하늘
- Stable Diffusion 인공지능 이미지 생초보 가이드
- Stable Diffusion 대표 UI - AUTOMATIC1111 설치방법
- Automatic1111 GUI: 초보자 가이드(메뉴 해설)
- Stable Diffusion에 대한 기본적인 이론
- ChatGPT로 스테이블 디퓨전 프롬프트 만들기
- Stable Diffusion - 인페인트 가이드
- Stable Diffusion - 모델에 대한 모든 것
- Stable Diffusion - LoRA 모델 사용법
- Stable Diffusion - ControlNet 사용법(1)
- Stable Diffusion - ControlNet 사용법(2)
- Stable Diffusion - 하이퍼네트워크 사용법
- Stable Diffusion - AI 확대도구 사용법
- Stable Diffusion - 구역분할 프롬프트 사용법
- Stable Diffusion으로 멋진 이미지 만들기