생성형 인공지능을 활용한 보고서 및 논문용 그림 그리기
들어가며
얼마 전 총예산 150억짜리 프로젝트 제안서를 쓰면서 그림을 그려야 할 일이 있었는데, Adobe illustrator에 있는 생성형 모델 활용해서 그림을 그려 보니 꽤 괜찮은 결과물을 얻었었다. 프로젝트 선정도 되었고 약간 시간도 난 김에 해당 그림을 그렸던 과정 및 느꼈던 점을 기록으로 남겨 본다. 이 글은 GPT가 나오기 이전에 논문용 그림 직접 그렸던 이전 글의 후속 글이라고 생각해도 좋을 것 같다.
백문이 불여일견이라고 결과물부터 공개한다. 실제 발표자료에 들어간 그림이며 글자는 보안상 가림 처리하였다. 그림의 무단 편집 및 재배포 금지한다.
생성형 모델 활용하여 그림 그린 과정
필자는 사람도 졸라맨으로 그릴 정도로 그림에 조예가 없는 사람이다. 하지만 이미 특이점을 지난 2020년대를 살아가는 현대인으로서 생성형 모델을 쓰면 웬만한 사람의 평균은 상회할 수 있는 결과물을 얻을 수 있다는 것을 익히 알고 있었기 때문에 한번 기술의 힘을 빌려보기로 했다.
포토샵은 래스터 이미지이고 어차피 수정이 잦은 상황에서 해상도에서 손해보기 싫었기 때문에 해상도 바꿔도 손실이 없는 벡터 이미지 생성이 가능한 일러스트레이터를 쓰기로 했다. 참고로 라이센스는 기관 라이센스로 사용이 가능했다. 일러스트레이터 2025 (원래 2025 타겟으로 개발했는데 2024년에 출시된 것) 에는 아래와 같이 벡터 생성이라는 기능이 기본으로 탑재되어있다.
그려야 하는 물체는 직육면체 모양의 인체부착형 센서였고, 프롬프트를 아래와 같이 넣었더니 그림 3개를 뽑아줬다. 원래는 직육면체를 생각하고 cube가 아니라 cuboid라고 넣었던 건데 결과물은 정육면체 비스무리하게 나왔다.
원했던 것은 저런 투명 유리같은 것이 아니라 겉으로 봤을 땐 다 막혀있고 피부 쪽으로만 뚫려 있는 센서를 생각했기 때문에 opaque exterior라는 프롬프트를 추가했더니 다음과 같은 그림을 얻었다.
아무래도 의료라고 적었더니 밝은 계열만 나오는 것 같아서 dark color를 명시했더니 아래와 같은 결과를 얻었다. 이 중 그나마 전자기기처럼 생겼고 유리같은거 반짝거리지 않는 오른쪽 이미지가 그나마 써먹을만해 보여서 선택했다.
해당 이미지는 선택해 보면 아래와 같이 모든 path가 다 벡터로 되어 있는 벡터 이미지이다. 그룹 풀기를 하면 세부 수정도 가능한데, 어차피 그림 실력도 없는거 괜히 손댔다가 더 안좋아지기만 하니 그대로 사용하였다.
이후 기기 소형화라는 컨셉에 맞게 적당히 복붙한 뒤 사이즈만 줄이고, 적당한 화살표와 그래프 비스무리한걸 수작업으로 추가하여 최종적으로 아래과 같은 그림을 얻었다. 그래프에 지그재그 모양은 펜 툴을 이용해서 대충 횡보하는 주식 그래프 느낌으로 찍어서 완성하였다.
다음으로 그려야 했던 그림은 돌봄 노동자가 센서로 감지된 분석 결과를 보고 혼란스러워하는 그림이었다. 국내 돌봄 노동자의 경우 주로 여성이 많으므로 프롬프트에 여성을 넣기로 하였고, 표정으로 혼란을 표시하기보다는 명시적으로 옆에 물음표같은 것을 넣어서 한 눈에 알아볼 수 있는 게 나을 것 같다고 생각하였다. 구도는 아이디어 떠올랐을 때 전구가 옆에 켜지는 것 같은 그림을 생각했다.
결과물은 몇 가지가 나왔는데, 생각보다 퀄리티가 높아서 놀랐다. 특히 사람 그림의 경우 악용될 소지가 있어서 온라인으로 쓰는 웬만한 생성형 모델(ChatGPT, Gemini, Claude 등)에서는 안 그려주는데 일러스트레이터는 그런 장치가 없는 것인지, 아니면 운 좋게 프롬프트가 제한조건을 뚫은 것인지 잘 나왔다. 물음표가 사람 오른쪽에 있었는데, 하필 시선이 오른쪽을 보고 있어서 분석 결과를 바라보는 시선을 고려할 때 물음표를 왼쪽으로 옮기는 것이 나을 것 같았다. 그래서 그림 누르고 그룹 풀기를 반복하면서 물음표 부분만 떼낼 수 있을 때까지 계속 그룹을 푼 다음 물음표를 왼쪽으로 옮겼다. 그 결과물이 아래와 같다.
이제 사람 시선 방향인 오른쪽에 넣을, 센서로 감지된 분석 결과 디스플레이 그림이 필요했다. 보통 의학 그림에 많이 나오는 치아를 포함한 옆에서 본 머리 단면이 필요했어서 인터넷에 쳐보니 jaw라고 검색하는 것이 그나마 비스무리한 그림들이 나오길레 jaw를 포함시켰다. 결과물로 다음과 같은 그림들을 얻었다.
예상과는 달리 jaw라고 했더니 정면 이미지만 잔뜩 나와서 같은 프롬프트로 한 번 더 돌렸다.
여전히 앞면만 나와서 키워드가 잘못됐다고 생각했다. 어차피 돌봄 대상자는 노인이므로 노인의 턱 단면을 그리기 위해 프롬프트를 변경하였다.
그래도 앞면만 나오긴 했지만, 사람 주변에 있는 짜잘한 흰색 그림들이 의학 정보를 담은 디스플레이라는 개념에 잘 맞는 것 같아서 가운데꺼를 킵했다. 이후 유사한 그림이라는 기능을 적용하였고, 음식물이라는 내용을 포함하면 그것을 보여주기 위해 옆에서 본 단면을 그려줄 것이라 생각하여 프롬프트를 변경하였다.
원했던 것은 음식물이 입 안에 있는지를 표시하는 단면 그림이었는데, 그냥 평소에 뭘 먹는지를 표시하는 그림이 나와버렸다. 이건 내가 원한 게 아니라고...
한 번 더 돌려보면 나을까 해서 돌린 결과인데 여전히 음식 무슨 채소 먹었는지 따위의 개념만 나왔다. 차라리 아까 프롬프트가 낫다고 생각하여 food intake status라는 내용을 없애고 2번 더 돌렸다.
할아버지가 등장하거나 에러나서 아무 그림도 안 나오거나 했는데, 여전히 옆에서 본 단면은 아니었다. food intake가 문제였나 해서 입 안에 실제로 먹는 중인 것을 강조하기 위하여 food eating status로 다시 집어넣었다.
이대로는 안되겠다 싶어서 아예 병원 침대에 누워있는 느낌으로 그려보자 라는 생각이 들었고, eldery에 patient라는 수식어를 추가했고, 어떻게든 음식을 먹고있는 것을 그리고자 during meal time이라는 내용도 추가했다.
그래도 원하는 결과가 안 나왔는데, 문득 이전에 stable diffusion으로 그림 그릴 때가 떠올랐다. 당시에는 단어 단어로 쉼표로 구분해서 넣었었던 기억이어서 프롬프트를 해당 방식으로 수정하였다. 그리고 식도(esophagus)라는 단어까지 넣으면 옆 단면을 그려줄까 해서 추가했다.
원했던 것은 왼쪽엔 실제 사람, 오른쪽엔 단면을 그리는 거였는데 좌우분리는 됐으나 여전히 정면만을 그렸다. 이때서야 단면이라는 단어를 넣지 않았다는 게 떠올라서 cross section 이라는 단어를 추가했다.
이제서야 원하는 그림이 나왔고, 가운데 그림이 딱 원했던 그림의 컨셉이어서 가운데로 선택했다. 원래는 같은 방향을 바라보는 구도를 생각했는데 마주보고 있는 것도 나쁘지 않았고, 뭐라고 글자가 써 있는듯한 느낌도 기대하지는 않았는데 없는 것보다 있는 게 나은 것 같다고 생각했다.
이제 해당 그림에서 음식 먹다가 이상 있다는 것을 표시하기 위해 느낌표 모양을 역시 벡터 생성 기능을 이용해서 만들었고, 푸른색 이미지랑 비슷하게 된 것을 대충 골라서 껴 넣은 후, 대충 식도 안에 눈에 잘 띄는 노란색 타원 그려서 음식물을 표현했다. 그림이 inset 느낌으로 작아질 거라 주변에 빨간 동그라미까지 쳐 주는 것으로 다음과 같이 완성했다.
자세히 보면 글자가 다 깨져있는데, 어쨌거나 글자가 중요한 것은 아니라서 상관 없었고 느낌만 주면 되는거라 이대로 확정했다. 참고로 요즘 최신 생성형 모델들은 글자도 잘 표현해 준다.
어쨌거나 이 그림을 아까 그렸던 여성 돌봄 노동자 그림과 합쳐서 최종적으로 다음과 같이 식사 모니터링 중 센서에 이상이 표시되었지만 실제로는 문제없는데 왜 이상이 있다고 뜨지? 라는 생각으로 결과물 디스플레이를 바라보는 혼란스러운 상태의 간병인 그림을 완성했다.
당연히 벡터 생성이므로 눌러 보면 다음과 같이 모든 부분의 path를 확인할 수 있다. 직접 그린 부분은 오른쪽의 노란 타원 및 빨간 원밖에 없고 나머지는 다 생성형 모델로 생성한 결과이다.
느낀 점
만약 생성형 모델이 없던 시절이었다면, 또 대충 인터넷에 돌아다니는 그림을 복붙해서 느낌만 내거나, 아니면 포기하거나 둘 중 하나였을 것이다. 하지만 지금은 잘 써먹기만 하면 되는 어딘가 30%쯤 부족한 인공지능이 있어서 이런 결과물이 가능했던 것 같다. 색감도 모르고 그림도 모르지만 대충 프롬프트만 잘 써서 딸깍 여러 번 하면 정말 전문인력을 쓴 것 같은 느낌을 주는 그림을 위와 같이 완성할 수 있었다. 직접 그린다고 하면 절대 못 그렸을 것 같고, 완성된 그림을 따라그리라고 해도 못 그릴 것 같은데 어쨌거나 아이디어만 있으면 구현이 가능한 시대이므로 기술의 힘을 십분 활용했다고 보면 될 것 같다.
아쉬웠던 점은 생성된 벡터 이미지에서 물음표를 옮기려고 그룹을 푸니까 그 동안 생성형 그리기에 넣었던 프롬프트 기록이 모두 소실된다는 것이다. 아무래도 그림을 자주 수정하면서 그리다 보면 이전 생성 기록을 보존하고 싶을 때가 많은데, 차차 개선되리라 생각한다. 현재로서는 만약 그림 수정해야 되는 상황이 오면 원본을 옆에다 하나 복제해 놓고 나서 복제본을 수정하는 것으로 이전 기록을 유지할 수 있을 것으로 생각한다.
결론
그림 그려주는 인공지능이 일러스트레이터에 통합된 김에 실제 업무에 필요한 그림을 Adobe illustrator의 벡터 생성 기능으로 구현해 보았다. 프롬프트 엔지니어링을 하면서 내가 뭘 원했는지도 구체화시켜가는 과정을 겪어야 했지만, 어쨌든 적절히 미세수정과 여러 그림을 그린 후 조합하는 방식으로 만족스러운 결과물을 만들 수 있었다. 이제는 전문 디자이너를 끼지 않고도 혼자서 손쉽게 보고서나 논문에 들어갈 정도 퀄리티의 벡터 이미지를 생성하는 정도는 가능한 시대가 되었다고 볼 수 있겠다. 앞으로도 해당 기능을 많이 활용할 예정이며, Adobe 연례행사인 Adobe MAX에서 2D벡터의 3차원 회전 기능도 나오고 있고, 영상 쪽에서도 생성형으로 위화감이 없을 정도까지 일관성 있는 결과들이 나오고 있으므로, 앞으로 더욱 발전되기를 기대한다.