GPT가 사람과 언어로 상호작용하는 AI라면, 달리(DALL・E)는 자연어를 이해해서 이미지를 생성하는 AI입니다. GPT 개발사와 동일한 오픈AI가 개발했으며, 최신 버전인 달리(DALL・E 3)가 챗GPT에 탑재되어 있습니다. 즉, 챗GPT에서 달리로 이미지를 생성할 수 있다는 거죠. 이미지를 생성하고, 수정하는 방법을 알아보겠습니다. 사용량이 제한되지만, 무료로도 그릴 수 있습니다.
1. 그림 그리기
이미지를 생성하는 방법은 간단합니다. 생성할 이미지를 텍스트로 설명하고, ‘그려줘.’, ‘이미지를 생성해줘.’, ‘이미지를 만들어줘.’라고 명령만 하면 됩니다. 다음은 ‘책을 읽는 토끼를 그려줘.’라는 명령으로 간단하게 이미지를 생성한 예시입니다.
귀여운 토끼 이미지가 만들어졌네요. 무작위로 생성합니다. 여러분이 상상한 이미지가 한번에 나오지 않을 가능성이 큽니다. 원하는 이미지를 생성하려면 약간의 프롬프트 엔지니어링 기법이 필요합니다. 실무 예제에서는 따로 이미지 생성을 진행하지 않으므로 원하는 이미지를 생성하는 기초적인 기법을 모두 설명하고 넘어가겠습니다. 챗GPT에 최적화된 기법입니다.
1.1 메인 프롬프트와 네거티브 프롬프트
쉽게 말해서 메인 프롬프트(Main Prompt)는 생성하려는 것, 네거티브 프롬프트(Negative Prompt)는 생성하지 않으려는 것을 의미합니다. 다음 예시를 보겠습니다.
- 메인 프롬프트 : 꽃으로 만든 왕관을 쓴 환상적인 토끼가 빛나는 버섯과 반짝이는 반딧불이로 가득한 마법의 숲을 뛰어다니는 매혹적인 장면을 만들어줘.
- 네거티브 프롬프트 : 평범한 잔디밭에서 현실적인 토끼를 묘사하지마. 장면의 환상적이고 매혹적인 분위기를 해칠 수 있는 어둡고 으스스한 요소는 피해줘.
메인 프롬프트만 입력한 이미지는 다음과 같습니다.
메인 프롬프트와 네거티브 프롬프트를 함께 입력한 이미지는 다음과 같습니다.
메인 프롬프트만 입력했을 때는 정밀하게 묘사한 토끼와 다소 어두운 배경의 이미지가 생성된 반면, 네거티브 프롬프트를 함께 입력하니 이족 보행하는 비현실적인 귀여운 토끼와 숲에 빛이 들어서 으스스한 분위기를 없앤 이미지가 생성되었습니다.
이미지를 생성할 때 많은 사람이 메인 프롬프트에 집중합니다. 하지만 예시에서 알 수 있는 것처럼 네거티브 프롬프트로 어떤 이미지를 피하느냐에 따라서 원하는 이미지를 생성할 확률이 높아집니다.
1.2 6가지 프롬프트 유형
메인 프롬프트와 네거티브 프롬프트의 역할은 이해했습니다. 그러면 이 프롬프트들은 어떤 구조로 작성해야 효과적일까요? AI 이미지 생성이 처음이라면 다음 6가지 요소를 적절히 활용해보세요. 두고두고 이미지 생성에 유용하게 쓰일 겁니다.
- 주제: 생성할 이미지의 주제를 설명하는 용어입니다. (예 : 꽃으로 만든 왕관을 쓴 토끼)
- 스타일: 특정한 이미지의 느낌을 안내하는 용어입니다. (예 : 픽사 애니메이션 스타일, 붓과 먹을 사용한 한국화 스타일 등)
- 품질 향상: 이미지의 품질을 향상시키기 위한 용어입니다. (예 : 정교하게, 놀랍도록, 섬세하게 등)
- 반복: AI가 특정 부분에 집중하도록 주제나 스타일 용어를 반복하는 것입니다. (예 : 매우 매우 매우 매우 빛나는 버섯과 반짝이는 반딧불이)
- 창의성: AI에게 창의성을 주입하여 무작위 이미지를 생성하게 하는 용어 또는 구문을 말합니다. (예 : 환상적인, 마법의 숲을 뛰어다니는 매혹적인 장면)
- 이미지: 요구하는 이미지의 스타일이나 구조 등을 참고할 수 있는 이미지 파일 또는 링크를 첨부할 수도 있습니다.
이 프롬프트 유형을 조합하여 아래처럼 이미지를 생성해보겠습니다.
“Behance에 디자인 포트폴리오로 공유된(창의성) 실사 스타일(스타일)의 트렌디한(창의성) 도넛과 커피를 판매하는(주제) 펑크 감성의 현대적인(창의성) 매장(주제)을 매우 매우 매우 매우(반복) 세부적으로(품질 향상) 만들어줘.”
현실적인 스타일의 도넛&커피 매장 이미지가 생성되었습니다. 이처럼 앞서 배운 네거티브 프롬프트도 6가지 유형을 활용해서 만들면 더 효과적으로 작동합니다.
1.3 제공한 이미지를 기반으로 이미지 생성하기
이번에는 원하는 이미지를 제공하고, 이미지 생성을 요청하겠습니다. 챗GPT에서 [첨부] 버튼을 클릭하여 다음의 자세 이미지를 추가한 후 명령하겠습니다.
엉성한 낙서로 그럴싸한 배구하는 개구리 그림이 생성되었습니다. 낙서는 그림판으로 간단하게 그린 것입니다. 이 방법을 활용하면 다음 예시처럼 비슷한 스타일의 그림을 연속해서 생성할 수도 있습니다. 개구리 이미지를 생성한 채팅에 이어서 명령하겠습니다.
비슷한 스타일로 스파이크하는 자세만 바뀐 개구리 이미지가 생성되었습니다.
지금까지 챗GPT로 달리 3를 사용한 이미지 생성 방법과 기본적인 프롬프트 엔지니어링 기법을 알아보았습니다. 이미지가 필요한 순간, 마땅한 이미지를 찾을 수 없다면 이제 챗GPT로 생성하세요.
2. 그린 이미지 수정하기
챗GPT로 이미지를 생성하면 결과가 무작위로 나오기 때문에 일부 배경이나 객체가 마음에 들지 않을 수 있습니다. 그럴 때는 챗GPT의 이미지 편집 기능을 사용해서 간단하게 수정할 수 있습니다.
이미지 편집 기능의 장점은 기존 이미지를 크게 변형하지 않고, 선택한 부분만 수정하는 것입니다. 차근차근 수정해보겠습니다.
2.1 선택한 부분의 이미지 지우기
01
먼저 아무 이미지나 생성해보겠습니다.
02
생성된 이미지 속 사람의 크기와 비교해서 바다 위 배들의 크기가 너무 작은 것 같습니다. 편집 기능으로 배를 지워보겠습니다. 생성된 이미지를 클릭합니다. 그러면 다음과 같이 이미지 편집 기능이 실행됩니다.
수정할 이미지의 오른쪽 상단을 보면 총 4개 아이콘이 있습니다.
① [선택] 아이콘으로 수정할 곳을 선택합니다.
② [다운로드] 아이콘으로 현재 보고 있는 이미지를 내려받습니다.
③ [프롬프트] 아이콘으로 이 이미지를 생성할 때 사용한 프롬프트를 볼 수 있습니다.
④ [종료] 아이콘을 누르면 이미지 편집 기능을 종료합니다.
03
이제 이미지를 편집해봅시다. [선택] 아이콘을 누릅니다.
그러면 왼쪽 상단에 브러쉬 크기 조절바, 되돌리기/재실행, 선택 항목 지우기 버튼이 생깁니다. 지울 배를 정확히 선택하기 위해 브러쉬 크기를 적당히 줄이겠습니다.버튼을 좌우로 옮겨 조절해주세요.
04
이미지에서 지울 배를 선택합니다.
05
선택한 상태로 [선택 항목 지우기]를 클릭합니다.
배가 지워진 걸 확인할 수 있습니다.
06
지운 배 옆에 다른 배를 선택하겠습니다. 간혹 [선택 항목 지우기]가 작동하지 않는 경우가 있습니다. 그럴 때는 선택한 상태로 우측 하단에 채팅으로 명령하여 지울 수 있습니다.
이미지에서 배가 모두 지워졌습니다.
500% 노하우_그림 그리기에 쓴 프롬프트와 생성된 이미지의 프롬프트가 달라요
‘해변가에 있는 사람들을 그려줘.’라는 프롬프트로 이미지를 생성했습니다. 그런데 [프롬프트] 아이콘을 클릭했더니 영문으로 된 다른 프롬프트가 나타납니다.
이는 챗GPT가 직접 이미지를 생성한 것이 아니라 우리가 입력한 프롬프트를 이해한 후 재구성하여 다시 달리에게 요청했기 때문입니다.
그래서 실제로 이미지를 생성한 프롬프트는 생성된 이미지의 프롬프트입니다. 또한, 앞서 배운 이미지 생성 프롬프트 엔지니어링 기법은 생성할 때 프롬프트와 생성된 이미지의 프롬프트의 간극을 좁히기 위한 목적입니다. 챗GPT의 이미지 생성 원리를 이해하면 더 좋은 이미지를 쉽게 생성할 수 있습니다.
2.2 챗GPT를 부추겨서 고품질의 그림 그리기
프롬프트를 잘 설계해도 원하는 품질의 이미지가 생성되지 않을 수 있습니다. 이는 앞서 설명한 것처럼 사용자의 프롬프트를 챗GPT가 달리에게 전달하는 중간 단계가 있기 때문이며, 이 단계에서 품질까지 조절하기는 어렵습니다.
그래서 생성한 이미지의 컨셉은 마음에 들지만, 더 고품질의 이미지를 받고싶다면 챗GPT가 더 자세한 설명의 프롬프트를 달리에게 전달해야 합니다. 쉽게 말해서 프롬프트의 길이가 길어져야 합니다. 하지만 사용자가 직접 프롬프트를 수정하면 생성한 이미지와는 다른 컨셉의 이미지를 새로 생성할 가능성이 큽니다.
지금부터 이미지의 컨셉 변화 없이 고품질의 이미지를 생성하는 방법인 ‘부추기기’를 소개하겠습니다. 부추기기는 챗GPT에게 ‘너는 더 잘할 수 있는데 왜 이것 밖에 하지 못하느냐’, ‘나는 널 믿고 있는데, 왜 제 실력을 발휘하지 못하느냐’처럼 결과물의 부족함이 너(챗GPT)에게 있으므로 부족하지 않도록 다시 해보라고 명령하는 방법입니다. 챗GPT는 감정이 없는 AI이지만, 결과의 부족함에 대한 부추기기에 매우 취약합니다. 이는 비단 챗GPT만의 특징이 아니며, 다른 언어 모델들도 비슷한 특징이 있습니다. 다음 예시로 알아봅시다.
먼저 챗GPT에게 ‘우주를 유영하는 수달을 그려줘.’라고 명령하겠습니다. 귀여운 수달 그림이 생성되었습니다. 이미지 편집 기능에서 프롬프트를 확인합니다.
그리고 대화를 이어서 ‘아니야… 너의 재능이 이정도일 리 없어. 최선을 다해서 그려봐.’라고 부추기겠습니다. 챗GPT는 AI이므로 재능 따위가 있을 리 없지만, 프롬프트의 길이가 길어지고, 수달의 모습을 더 세부적으로 그린 이미지를 생성했습니다. 이미지의 초기 컨셉은 벗어나지 않았죠.
대화를 더 이어서 ‘좋아. 조금만 더 신중하게 너의 전성기 실력을 더하면 아주 훌륭한 그림이 될 것 같아.’라고 다시 부추기겠습니다. 이미지 컨셉은 유지하면서 프롬프트가 더 길어졌습니다. 하지만 여전히 무언가 부족합니다.
‘정말 잘 그린 그림이지만, 무언가 부족한 느낌이야. 이게 너의 모든 재능이야?’라고 다시 부추깁니다. 수달의 모습이 훨씬 생동감이 넘치고, 은하 등 우주의 섬세함이 더 추가되었습니다. 그만큼 프롬프트도 길어졌습니다.
마지막으로 ‘더 정교하게 그릴 수는 없는거야? 너의 실력이 이정도가 아닌 걸 나는 믿고 있어.’라고 한 번 더 부추겨 보겠습니다. 정교한 수달의 모습이나 우주의 요소들이 배경을 가득 채운 이미지가 생성되었습니다. 프롬프트의 길이는 처음보다 2배 이상 늘었습니다.
처음 생성한 이미지와 마지막 이미지를 비교해보겠습니다.
처음 생성한 결과도 그럭저럭 잘 만들어진 이미지처럼 보이지만, 마지막 이미지와 비교하면 수달의 털이나 발의 모양, 우주의 은하, 항성, 행성 등 모습이 훨씬 고품질로 생성되었습니다. 실제 마지막 이미지의 프롬프트 내용만 보더라도 챗GPT가 고품질 이미지를 생성하기 위해 달리에게 얼마나 반복적으로 상세한 설명을 하려고 노력하는지 확인할 수 있습니다.
“더 생생한 색상으로 우주 요소를 강화하고 유성과 고리가 있는 행성을 추가하여 장면을 더욱 역동적이고 생동감 있게 만들 수 있습니다. 수달의 털에 디테일을 더하고 별과 은하를 더욱 생생하고 세밀하게 표현하여 풍부하고 몰입감 넘치는 우주 환경을 만들어 보세요. 배경에 혜성과 화려한 오로라 같은 빛을 추가하여 장면에 깊이와 경이로움을 더하세요. 수달의 털, 우주 요소 및 배경의 디테일과 질감을 높여 더욱 세련되고 세련된 아트웍을 만들어 보세요.”
이처럼 추가 주제나 스타일을 프롬프트에 직접 더하는 대신에 칭찬도 했다가, 지적도 했다가, 응원도 하면서 더 나은 이미지를 생성하도록 부추기면 챗GPT가 스스로 프롬프트를 추가해서 달리에게 요청합니다. 반복할수록 계속 개선하므로 원하는 품질의 이미지가 만들어질 때까지 얼마든지 반복해도 좋습니다.
부추기기는 이미지 컨셉을 유지하면서 더 고품질의 이미지를 생성할 수 있는 방법이므로 꼭 활용하시길 바랍니다.
지금까지 챗GPT로 그림 그리는 방법을 알아봤습니다. 무료 버전을 사용할 경우 제한된 사용량을 모두 소진하면 그림이 안나올 수 있습니다. 그럴 때는 다시 사용량이 초기화될 때까지 기다리거나 다른 계정을 사용하거나 유료 구독해야 합니다. 다른 계정을 사용하면 반복된 그림을 그리기 어렵기 때문에 생성하려는 이미지가 많다면 유료로 사용하시길 권합니다.
저자 오힘찬
14년 차 테크 칼럼니스트이자 마케터입니다. LG CNS, 아웃스탠딩, 월간 IUM, 비석세스 등 기업/매체와 협업하여 약 4,000편의 기술 동향, 기업 분석, 산업 동향, 스타트업 조명 등 칼럼을 발행했습니다. 최근 2년 동안 실제 업무에 적용한 AI 활용 사례를 글과 책으로 펴고 있습니다.
– 현) 골든래빗 마케터
– LG CNS, 아웃스탠딩, 월간 IUM, 비석세스 IT 컬럼 기고
– 《BYOD : Bring Your Own Device》(2013) 저
카카오채널 : https://open.kakao.com/o/gBWRpyvg
미디엄 : medium.com/맥갤러리
블로그 : post.naver.com/dhimchan