미드 저니+레오나르도+미리 캔버스 or 캔바
Anglerfish
안녕하세요 여러분
지난 시간에 이어 동화책을 만들 때 가장 어려운 부분이 캐릭터의 일관성입니다.
그리고 이미지 생성 시 내가 생각하는 것과 이미지를 매칭시키는 것이 동화책에서는 특히나 더 힘듭니다.
위 이미지를 보면 레오나르도에서 배경을 만들고 미리 캔버스에서 등대 이미지를 합성해서 투명도를 조금 손봐서 만진 이미지입니다. 제가 지금 쓰고 있는 동화에 별빛이 길을 내어주고 저 멀리 불이 꺼진 등대의 실루엣이 보이는 장면을 만들다 보니 가장 어려운 부분이 AI의 인지였습니다.
예를 들면 등대는 보통 바다에서 불을 밝히는 건물이고 불이 꺼진 등대라고 명령어를 넣으면 정확하게 불이 꺼진 등대가 잘 나오질 않았습니다. 그래서 이 부분은 챗 GPT를 통해 델리에서도 뽑아보고 미드 저니에 불 꺼진 프롬프트를 만들어 달라고 해도 불 켜진 등대가 나오는 확률이 높았습니다. 그리고 가장 큰 문제는 아래 그림을 보시면
very dark deep sea background, one dolphin with starry eyes and fins, A distant tiny silhouette of an extinguished dark very small tower, the figure of a dolphin gazing at that silhouette, The starlight is only visible on the dolphin's fins, with the rest of the background depicted completely dark, devoid of light, without stars --cref https://s.mj.run/soP9m2P_3wA --cw 100 --ar 1:1 --v 6.0
이런 식으로 캐릭터의 일관성을 주어도(나중에 다뤄보겠지만 참조할 원본을 여러 개 두어서 정확성을 더 높일 수 있다지만 전 해봐도 잘 모르겠습니다. 더 이상하게도 나와서) 내가 생각하는 캐릭터의 모습이 아니거나 등대에 불이 켜져 있거나 전체적인 그림이 내가 원하는 모습이 아닐 가능성이 높습니다.
그나마 가장 비슷하게 나오면 한 이미지를 지정해서 유사하게 재 생성하면 좀 더 빨리 원하는 이미지를 뽑아낼 수는 있습니다.
Beneath the very dark under the sea, The faraway largest an extinguished lighthouse, barely visible, a nearby small an extinguished lighthouse, a dolphin with starlit eyes and fins, and light shining from its back, gazing at the distant an extinguished lighthouse --cref https://s.mj.run/soP9m2P_3wA --cw 100 --ar 1:1 --v 6.0
원래 의도는 바닷속에서 등대가 보이는 여행이었지만 등대는 바다 위에 있는 피사체이고 바닷속과는 서로 부딪히는 명령어이기 때문에 위 그림처럼 등대가 있는 바다 위와 어설픈 바닷속 모습이 나오거나 아예 다 바다 위 모습처럼 생성이 되는 확률이 더 높았습니다.
판타지라는 명령이나 배경이나 설정을 하며 하나하나 뽑아낼 수는 있겠지만 그렇게 하면 일관성을 주기가 더 어려워지고 표현에 제한이 더 많아질 것 같아서 설정은 바닷속이 너무 어두워 바다 위에서 별빛을 따라가는 설정으로 살짝 수정을 하였습니다.
이런 과정들을 겪다 보니 배경과 등장인물을 따로 생성하여 합성하는 것이 더 좋을 것 같다고 생각했습니다.
그리고 그 처음으로 가장 위에 이미지를 레오나르도를 통하여 만들고 미리 캔버스를 통하여 미리 캔버스 안에 요소와 옵션 수정으로 합쳐보았습니다.
그랬더니 시간도 줄어들고 그나마 만족한 만한 표현이 되었다고 생각합니다.
물론 프롬프트를 더 세밀하게 사용하고 더 많은 이미지를 뽑아내며 작업한다면 그냥 이미지 생성만 가지고도 충분히 가능합니다.
다른 예제를 하나 더 보여드리면 난이도가 조금 낮은 컬러링북을 만드는 그림입니다.
Cartoon illustration, coloring book page, my child's first ballet lessons, ballet academy background, black and white, clean style, --ar 500:707
프롬프트는 심플하게 만들면 좋습니다. 앞쪽으로 그림의 목적과 스타일을 강조해서 넣었고, 흑백에 깨끗한 스타일을 뒤에 한 번 더 넣었습니다. 그리고 중간에 그림의 설명과 배경 설정을 넣어주었습니다.
물론 더 디테일하게 구성해서 넣으셔도 됩니다.
그럼 준비해야 할 것은 당연히 스토리를 준비하고 등장인물을 먼저 만들어 주세요.
우선 오늘은 이렇게 캐릭터까지 준비해 주세요. 짧은 스토리라도 하나 준비해 보시고요.
동화라고 해서 너무 쉽게 생각하지 마시고 말 그대로 짧은 문장 하나로 갈등과 긴장, 해결과 기쁨 같은 감정을 담아야 하니 대상 연령대의 나이까지 고려하면 쉽지만은 않더라고요.
그리고 지금 계속 연습해 보는 것은 캐릭터의 이미 지나 어떤 형태를 인식시키고 연속 작업 동안 캐릭터 자체를 인식해서 작업이 어느 수준까지 가능할지 계속 연습해 보고 있습니다.
어찌 보면 앞으로 더 완벽한 AI가 나와서 제가 하는 이런 테스트들이 무의미할 수 있지만 미드 저니에서 --cref 명령어에 링크를 여러 개 달아서 사용하는 것도 해봤지만 한 개의 캐릭터를 더 디테일하게 학습시키는 효과는 조금 있는 것 같았고 두 개의 캐릭터는 랜덤성이 너무 강했습니다.
두 개의 캐릭터일 때 --cw 강도를 100으로 주면 아무리 캐릭터 지정을 해도 링크를 단 캐릭터로 모두 나오는 경우도 아주 많았어요.
아래는 미드저니 기본 프롬프트 구조입니다.
[1] = [불 꺼진 망가진 어두운 등대의 문 앞][전체적으로 어둡고 스산한 풍경]
[2] = [1]의 구체적인 이미지 세부사항을 포함한 상세한 설명.
[3] = 장면의 환경에 대한 상세한 설명.
[4] = 장면의 분위기, 감정, 그리고 분위기에 대한 상세한 설명.
[5] = [1]을 위한 스타일 (예: 사진, 회화, 일러스트레이션, 조각, 작품, 종이작업, 3D 등).
[6] = [5]가 실행될 방식에 대한 설명 (예: 카메라 모델 및 설정, 그림 재료, 렌더링 엔진 설정 등).
[ar] = 가로 이미지는 "--ar 16:9", 세로 이미지는 "--ar 9:16", 정사각형 이미지는 "--ar 1:1"을 사용하세요.
[v] = 일본 예술 스타일은 "--niji"를 사용하거나, 다른 스타일은 "--v 6"를 사용하세요.
기본적으로는 이 구조를 먼저 익히세요 /imagine prompt: [1], [2], [3], [4], [5], [6], [ar] [v].
앞으로 위치할수록 표현에 중요도를 높게 판단합니다.
하지만 디테일한 일상 대화식 설명으로도 충분히 프롬프트를 사용할 수 있고 효과나 이미지의 크기 버전 등 일부 --XXX를 사용하는 명령어들만 뒤로 배치해 주세요.