AI 이미지/Stable Diffusion

스테이블 디퓨전으로 동물 이미지를 생성하는 방법

하늘이푸른오늘 2023. 6. 24. 16:28

Chinese Zoidac LoRA를 사용해 생성한 소

이 글은 AUTOMATIC1111 이라는 스테이블 디퓨전 GUI를 사용하여 동물 이미지를 생성하는 방법을 다룹니다. AUTOMATIC1111 설치방법은 이 글을 읽어보시기 바랍니다.

멋진 동물 사진을 위한 프롬프트 선정 방법

좋은 이미지를 만들려면 가장 중요한 것 중 하나가 좋은 프롬프트입니다.

이미지의 종류

목표가 사실적인 사진 이미지이므로, 먼저 "photo" 키워드를 사용합니다.

photo of

주제

그 다음에는 어떤 피사체를 그리고 싶은지를 선택합니다. 다음은 예시입니다.

  • Lion (사자)
  • Pack of wolf(늑대 무리)
  • Red panda (레드 판다)
  • Peacock (공작)
  • teacup kitty(티컵 크기 고양이)

장면

장면은 배경과 주변 풍경을 제어 합니다. 프롬프트에는 연관 효과(키워드 간의 강한 관련이 있는 것)가 있어서 프롬프트에 야생 동물을 넣으면 주변 환경은 정글이 선택될 가능성이 높습니다.  따라서 자신이 원하는 키워드를 충분히 자세하게 넣어주는 것이 좋습니다.

  • snow (설경)
  • river (강)
  • tree (나무)
  • forest (숲)
  • grassland, grass field (초원)
  • con a coach (소파 위)

조명

조명은 이미지의 품질에 매우 많은 영향을 미칩니다. 좋은 조명 키워드를 넣어주면 이미지가 훨씬 다채로워집니다.

  • dark studio (어두운 스튜디오)
  • rim lighting (원형 조명)
  • sunset (해질녁)
  • dramatic lighting (극적인 조명)

기타

카메라와 관련된 키워드를 넣어주면 보다 전문적인 듯한 이미지가 생성됩니다. 아래는 그러한 예입니다.

  • dslr (DSLR)
  • ultra quality (초 고품질)
  • flim grain (필름 그레인)
  • 8K UHD (8K UHD)

이러한 키워드를 사용할 때 유의할 점은 이런 키워드를 무작정 많이 넣는다고 항상 좋은 결과를 낳는 건 아니라는 점입니다. 제 경험상 비슷한 유형의 키워드는 한두개 정도만 넣어주어도 충분히 효과를 발휘하는 것 같습니다. 특히 이런 키워드들이 주로 사람 사진과 관련된 경우가 많으므로, 동물 사진에는 오히려 나쁜 영향을 미칠 수도 있습니다.

또한 아래와 같은 야생동물 사진전 관련 키워드를 넣어주면 야생 동물 이미지가 좀더 예술적이 됩니다.

  • National Geographic Wildlife photo of the year 
  • The American Landscape Contest
  • Wildlife photography contest

모델

사실적인 야생 동물 사진을 원하면 당연히 사실적인 스타일의 모델을 선택해야 합니다. 아래는 그 예입니다. 모델에 관한 좀 더 자세한 사항은 이 글을 읽어보시기 바랍니다.

  • Realistic Vision
  • Dreamlike Photoreal
  • ChilloutMix

사실적 야생 동물 사진의 예

모델: Realistic Vision 2.0
프롬프트: National Geographic Wildlife photo of the year, elephant trunk pointing up in new york city, night, dark studio, depth of field, trunk pointing up 
부정적 프롬프트: deformed, disfigured, underexposed, overexposed

어제 마술사의 코끼리라는 애니메이션을 봤는데, 오늘은 뉴욕 시내를 거니는 코끼리를 보네요.^^

모델: Realistic Vision v2.0
프롬프트: National Geographic Wildlife photo of the year, red panda, evening light, sunset, rim lighting

레서(lesser) 판다라고 알고 있었는데, 영어권에서는 레드 판다라고 불리는 모양이네요. 오른쪽 사진이 제일 마음에 드네요. 이 글의 대표 이미지로 사용해야겠습니다.

모델: Realistic Vision v2.0
프롬프트: National Geographic Wildlife photo of the year, siberian cat on river, evening light, sunset, rim lighting, depth of field 

시베리안 고양이는 처음 알게되었는데, 털이 풍성한게 정말 매력적이네요. 우리집에서는 못키우지만요~ ㅠㅠ

모델: Realistic Vision v2.0
프롬프트: National Geographic Wildlife photo of the year, Peacock with feathers spread wide, wilderness, evening light, sunset, dramatic lighting

예전에 영국 리즈성인가? 정원에 공작을 풀어놓고 기르던 걸 보고 정말 신기했던 기억이 나네요. 그런데... 야생에서 깃털을 활짝 펼친 모습을 나타내라고 했는데, 저렇게 클로즈 업 된 사진만 나타나네요. 학습된 자료가 이런 종류뿐인 듯 싶습니다.

귀여운 동물들

귀여운 동물들을 생성하고 싶을 땐 그냥 프롬프트 맨 앞에 "cute"만 넣어주시면 됩니다. 다만, 모델에 따라 스타일이 약간씩 달라집니다.

모델: DreamShaper
프롬프트: A cute kitten

키워드를 추가하면 스타일을 바꿔서 생성해볼 수 있습니다. 이번엔 ChilloutMix 모델을 사용해 보겠습니다.

모델: ChilloutMix
프롬프트: a cute kitty, in a garden, (extremely detailed CG unity 8k wallpaper)
부정적 프롬프트: cartoon, 3d, disfigured, deformed 

아기 고양이도 예쁘게 잘 나오네요. ChilloutMix는 동양 여성을 표현하는데 최적의 모델이지만, 기반 모델 자체가 sd 1.5라서 다른 모델을 사용한 것과 그다지 다르지 않게 잘 생성해 줍니다. 

12간지 동물 LoRA

우리나라에서 자축인묘진사오미신유술해(子丑寅卯辰巳午未申酉戌亥)라고 하는 12간지는 서양권에서는 Chinese Zordiac이라고 부릅니다. Zordiac은 원래 황도12궁(양, 황소,쌍둥이, 게, 사자, 처녀, 천칭, 전갈, 궁수, 염소, 물병, 물고기)을 말하는데, 12개라는 공통점 때문이고 점을 치는데 사용하는 공통점이 있어 중국식 황도12궁이라는 뜻인 Chinese Zordiac으로 불리는 듯합니다.

다만, 원래 12지는 나라별로 많이 차이가 나는데,  이 모델의 경우 pig, bear, chook, monkey, sheep, horse, snake, dragon, bunny, tiger, cow, rat 가 사용할 수 있다고 합니다. chook는 닭이라는 뜻이니 문제가 없지만, 개가 bear(곰)으로 바뀌었네요. 검색을 해봐도 한중일 어디서도 곰을 사용하는 경우가 없는데 좀 이상합니다.

어쨌든 Chinese Zodiac LoRA를 사용하면 12간지에 속하는 동물들을 귀여운 카툰 스타일로 생성해줍니다. 이 모델 페이지에 들어가 보면 sunshinemix_sunlightmixPruned 모델과 함께 사용한다고 되어 있습니다. 저도 이 모델을 다운로드 받았습니다. 

프롬프트는 아래와 같습니다. 여기에서 맨 앞에 있는 pig만 다른 동물로 바꾸면 같은 스타일의 12간지 동물이 생성됩니다.

프롬프트: pig, Exquisite City, (sky:1.3), (Miniature tree:1.3),Miniature object, many flowers, glowing mushrooms, (creek:1.3), lots of fruits, cute colorful animal protagonist, Firefly,meteor, Colorful cloud,Complicated background, rainbow, studio lighting, auora, rim light <lora:Chinese zodiac:1>
부정적 프롬프트: Void background,black background

오른쪽 아래가 곰인데, 그중에도 그래도 강아지하고 비슷한 걸 골라낸 겁니다. 다른 건 오히려 무섭더군요. ㅠㅠ 지금 다시 검색해 봐도 왜 개가 곰으로 바뀌었는지는 잘 모르겠습니다. 이 LoRA 제작자가 일본인인데, 일본은 음력을 사용하지 않아서 오해가 있었던게 아닐까... 하는 생각만 드네요.

동물 벡터 아트

먼저 애니 스타일입니다. 대부분의 애니 모델은 사람 그중에서도 소녀를 대상으로 세부 조정되어 있기 때문에, 부정적 프롬프트에 people, girl 등을 넣어주어야 동물만 뽑아낼 수 있습니다. 여기서도 동물만 바꿔서 여러개를 출력해보았습니다. 참고로 원문에서는 MeinaMix 모델을 사용했습니다.

모델: anything v5
프롬프트: vector art of a horse, white background
부정적 프롬프트: bad art, amateur, girl, people, riding

사람 옷을 입고 있는 동물

사람의 자세에 얼굴만 동물로 바꿔서 생성하는 방법입니다. 원문에서는 v2 세부조정 모델을 사용하였다고 했지만, 저는 그냥 제가 제일 많이 사용하는 ChilloutMix 모델을 사용했습니다.

프롬프트: a goat wearing a suit, dark studio
부정적 프롬프트: 3d render, cgi, painting, drawing, cartoon, anime

자세 제어하기

스테이블 디퓨전에서 자세를 제어하기 위해서는 ControlNet을 사용합니다. 사람의 자세도 옮길 수 있지만, 잘못하면 아주 이상해 보일 수 있습니다. 사람과 동물의 신체 구조가 많이 다르기 때문입니다.

OpenPose

그래도 클로즈업 사진은 자세에 그다지 영향을 받지 않으니 상관이 없겠죠. 아래와 같은 이미지를 사용해 보겠습니다.

모델: Realistic Vision 2.0
프롬프트: National Geographic Wildlife photo of the year, a lion, evening light, sunset, rim lighting 
부정적 프롬프트: deformed, disfigured
전 처리기: openpose_face
모델: control_xxx_openpose
Control Weight: 0.4
Starting control step: 0
Ending control Step: 0.2

위에서 얼굴만 클로즈업 했기 때문에 openpose_face 전처리기를 사용하는 게 좋을 것 같지만, 사람과 동물의 얼굴 형태가 달라서 이상한 형태가 나옵니다. 그래서 일반적인 openpose 전처리기를 사용했습니다. 아울러 Control Weight는 0.4로  Control step이 끝나는 곳도 0.2로 낮추어 스테이블 디퓨전의 자유도를 최대한 높여주었습니다. 더 자세한 내용은 콘트롤넷 사용방법을 읽어보시기 바랍니다.

Canny Edge 검출

Canny 알고리듬은 외곽선 만을 가져오는 형태이므로, 다른 동물로 쉽게 자세를 옮길 수 있습니다. 

모델:Realistic Vision 2.0
프롬프트: National Geographic Wildlife photo of the year, a deer, evening light, sunset, rim lighting 
부정적 프롬프트: deformed, disfigured, woman, man, people
전처리기: Canny
Model: Canny_xxx
Control Weight: 0.65
Starting control step: 0
Ending control Step: 0.5


이상입니다. 이 글은 https://stable-diffusion-art.com/animals/ 을 제 생각에 따라 편집하고 일부는 번역한 글입니다.