일반적으로 학술지에 제출한 SCI 논문이 커버 논문으로 선정되면 보통 수십~수백의 돈을 들여 화려한 논문 커버 이미지를 제작해서 제출합니다. 그런데 문득 이 논문 커버 이미지도 스테이블 디퓨전으로 어느정도 만들어 볼 수 있지 않을까 싶어 도전해보았는데요, 짧은 도전기의 결론은 다음과 같습니다.
스테이블 디퓨전만으로는 아직 힘들다. 단 보조적 도구로는 휼륭하다.
논문 커버 이미지란?
먼저 논문 커버 이미지란 수많은 논문(학술지)을 제출받은 학회에서 논문들을 카테고리별로, 시기별로 취합해 책 또는 잡지로 출간할 때 표지가 되는 앞장 및 마지막장에 그려지는 그래픽 아트입니다. 학회마다 조금씩 다를 수 있지만, 일반적으로 보통 해당 권(volume)의 성격을 대표하는 논문이나, Best 논문 저자에게 논문 커버 이미지를 제출할 수 있는 기회가 주어지고, 저자는 이를 통해 자신의 논문을 더욱 돋보이게 만들 수 있는 효과가 있습니다. 당장 구글 이미지 검색에 “Science 표지” 라고 검색하면 다음과 같은 검색 결과를 볼 수 있습니다.
위에 보이는 그림들이 모두 Science지의 표지, 즉 논문 커버 이미지입니다. 저 이미지 한 장 뒤에 수십~수백 논문이 묶여 한 권의 책을 이루고 있으며, 내 논문이 이 모두를 대표하는 논문이 될 수 있다면, 수십~수백만원을 지불하더라도 화려한 커버 이미지를 만들어 제출하는 것입니다.
SD1.5 vs SDXL
처음에는 논문 커버이미지를 그리는데 스테이블 디퓨전의 버전이 큰 영향을 미치지 않을거라 생각했습니다. 왜냐하면, 온전히 스테이블 디퓨전으로 표지를 만들 수는 없으니, 결국 부분부분 편집이 필요할테고, 그렇다면 파인튜닝된 모델과 풍부한 확장기능을 앞세운 SD1.5가 오히려 더 유리할 수 있다고 생각했기 때문입니다. 그런데 실제로 해보니 일단 시작부터 밑바탕을 그리려면 SDXL을 사용하는 것이 좋겠다는 결론입니다.
SD1.5 논문 커버 이미지를 모르는 모델
prompt(좌) : (best quality:1.5), (realistic:1.5), an academic paper, cover image, human cells, DNA illustrations,
prompt(우) : (best quality:1.5), (realistic:1.5), an academic paper cover image with human cells and DNA illustrations,
먼저 위 그림은 SD1.5 버전의 한 모델을 사용해 사람의 세포 및 유전자 그림이 담긴 논문 커버 이미지를 만들어 달라고 요청했을 때 얻은 결과입니다. 단어 나열식(좌)과 문장형(우)의 차이가 있을까 싶어 둘 모두 시도해봤지만 여러번 시도해도 도무지 프롬프트와는 큰 연관이 없는 이미지를 만들어냅니다. 아무래도 학술지(academic paper)라는 단어 자체를 인지하지 못하는 모습입니다.
SD1.5 논문 커버 이미지를 아는 듯한 모델
아무리 SD1.5 버전이라도 모든 모델이 “논문 커버 이미지”를 못알아 듣지는 않을 것이란 믿음으로 이번에는 SD1.5 버전의 다른 모델을 사용해봤습니다.
prompt(좌) : (best quality:1.5), (realistic:1.5), an academic paper, cover image, human cells, DNA illustrations,
prompt(우) : (best quality:1.5), (realistic:1.5), an academic paper cover image with human cells and DNA illustrations,
이번에는 조금 다른 결과입니다. 모든 설정을 동일하게 하고 모델만 바꿔 썼을 뿐인데, 뭔가 논문에 나올법한 그림이 만들어지긴 합니다. 하지만 여전히 프롬프트에 작성한 의도대로 논문 커버 이미지로 사용할 퀄리티의 세포 및 DNA 그림을 만들어 주는 느낌은 아닙니다. 단지 어설프지만 어딘가 학술지의 커버를 보고 흉내낸 느낌으로 결과 이미지를 만들어 줄 뿐입니다.
SDXL 모델
그래서 결국 최종적으로 SDXL 모델을 사용해봤습니다. 모두 동일한 상태에서 모델과 VAE만 SDXL용으로 바꾸고, 이미지 해상도는 1024×1024로 생성한 결과입니다.
prompt(좌) : (best quality:1.5), (realistic:1.5), an academic paper, cover image, human cells, DNA illustrations,
prompt(우) : (best quality:1.5), (realistic:1.5), an academic paper cover image with human cells and DNA illustrations,
마찬가지로, 단어만 나열해서도 생성해보고, 문장으로도 작성해봤습니다. 둘 모두 어딘가 조금 이상(과학적으로 틀린 그림)하긴 하지만, 멀리서 보면 이 상태로 그냥 학술지 이름과 권호수, 및 부가적인 글씨만 작성해주면 하나의 잘 그려진 논문 커버 이미지라고 해도 손색없을 정도입니다.
화학 구조도 잘 표현할 수 있을까?
이제 그럴듯한 이미지를 만들 수 있다는 것은 알았습니다. 그렇다면 이제 원하는 이미지를 원하는 크기와 위치, 색상 등으로 만드는 작업이 가능해야 정말 논문 커버 이미지를 그리는 것이 가능할 것입니다. 먼저 원하는 이미지를 잘 그릴 수 있을지에 대한 호기심으로 과학 논문에서 수시로 등장하는 화학 구조들을 한 번 테스트 해봤습니다.
위에서부터 순서대로 프롬프트에 atomic bonds, benzene rings, benzene structures, single layer graphene, graphene being detached with scotch, naphthalene 등의 키워드를 포함하여 SDXL 모델로 그림을 그려본 결과입니다.
첫 atomic bonds를 그릴 때만해도, 다른 특정 상황을 주지 않았기 때문인지 그럴듯한 그림이 생성되었습니다. 이때 스테이블 디퓨전만으로 논문 커버 이미지 그림을 생성할 수 있을 지도 모른다는 희망으로 곧바로 초록색 형광빛을 내는 벤젠고리 일러스트를 그려달라했더니, 벤젠은 모르겠고 그냥 링을 그려줍니다.
벤젠임을 다시 한 번 명시하기 위해 이번에는 벤젠 구조를 그려달라했더니, 정말 구조체를 그려주긴 했지만, 사실 누가 봐도 벤젠은 아닙니다. 아무래도 특정 물질의 화학구조식 까지 알아서 재현하는 것은 힘들겠구나 싶어 포기하는 마음으로 이번에는 그래핀을 그려달라 요청했습니다. 그런데, 또 그래핀은 꽤 그럴듯하게 그려냅니다. 카본 아톰 6개가 제대로 고리를 이루기도 하고, 중간중간 5개만 연결되거나 연결이 안된 부위가 있거나 하는 등 완벽한 그래핀은 아닙니다. 하지만 실제로 실험실에서 만든 그래핀도 절대 완벽하지 않기 때문에 오히려 굉장히 현실적인 이미지가 탄생해버립니다.
탄력을 받아 내친김에 그럼 그래핀을 스카치테입으로 박리하는 이미지를 그려달라 했더니, 또다시 이상한 그림을 그려냅니다. 그래핀도 아닌 것이 검은 레이어에 격자무니만 간 테입을 그려냅니다. 아, 여기까지가 한계이구나 싶어 마지막으로 혹시나 하는 마음으로 나프탈렌 구조를 요청했지만 역시나 그냥 무작위로 연결된 구조체를 그려낼 뿐이었습니다.
Img2Img로는 어떨까?
프롬프트만으로는 어렵다면 늘 Img2Img에서는 어떻게든 더 개선이 되지 않을까 싶어 당장 떠오르는 방법만 한 번 도전해봤습니다. 일단 앞서 그렸던 그림 중 마지막 나프탈렌을 조금더 이쁘게 원하는대로 그릴 수 있지않을까 하는 바람으로 밑그림을 대충 그린 뒤 Img2Img 탭에서 그림을 한 번 생성해봤습니다.
가장 왼쪽의 원본 이미지를 미리캔버스에서 대충 도형들로 직접 그린 뒤 img2img를 한 모습입니다. 원본 이미지를 그리면서 기대했던 것은 2가지인데요, 하나는 슬쩍 드리운 초록의 형광 배경이고, 또 하나는 우측하단의 2중결합을 일부러 비워두고 이를 스테이블 디퓨전이 혹시나 알아서 채워주면 좋겠다는 마음이었습니다.
하지만 그 건 헛된 바람이었나봅니다. 아무래도 화학 구조식까지는 아직 파악을 못하는 눈치입니다. 디노이즈 강도를 적당히 조절했을 때(중), 디노이즈 강도를 강하게 조절했을 때(우) 모두 기대했던 2가지가 제대로 반영되지 않은 모습입니다. 다행히 초록빛의 형광 배경은 어느정도 재현을 해주는 모습이지만 여전히 논문 커버 이미지를 제작하는데는 부족한 모습입니다. 아무래도 화학구조에 대해 따로 학습을 진행하거나 이미 학습된 로라 모델 등을 활용해야 해결이 가능한 부분인 것 같습니다.
도전 결과
스테이블 디퓨전으로 논문 커버 이미지 생성해보자는 도전은 보기좋게 실패로 끝났습니다. 하지만 도전해보는 과정 중에서 아래와 같은 사항을 보완해서 잘 활용하면 그럴듯한 이미지를 만들 수도 있겠다는 생각이 들었습니다.
- 로라 학습 : 논문 커버 이미지를 중심적으로 학습시키거나, 화학식 또는 구조 등을 추가로 학습
- 컨트롤넷 + 인페인트 활용 : IP-Adapter, Tile Resample 등 컨트롤넷과 인페인트로 부분부분 그림을 만들거나 수정
- 포토샵 등과 함께 활용 : 스테이블 디퓨전을 보조적인 툴로 활용
아쉽게도 첫도전은 실패했지만 재도전 할때는 멋진 논문 커버 이미지를 만들어 돌아오도록 하겠습니다.