생성형 AI를 사용하여 이미지 생성하기 1
동화 만들기 프로젝트에서 동화의 삽화는 중요하다. 프로젝트의 완성도 측면도있고.
이번 프로젝트에서 생성형 AI를 통해 만들어야 할 이미지는 두가지이다.
캐릭터 이미지 생성하기 - 사용자의 그림을 입력받아 AI를 통해 높은 수준의 이미지로 변환하기
동화 삽화 생성하기 - 사용자의 동화 내용을 입력받아 이에 맞는 내용의 동화 삽화 만들기
생성형 AI 사용하기...
DALL-E는 open ai에서 제공하는 text to image 모델로 DALL-E-2 모델과 DALL-E-3 모델이 존재한다. 텍스트 이해도와 이미지의 완성도는 DALL-E-3가 압도적으로 높다.
DALL-E 모델을 사용하는 것은 그리 어렵지 않지만 스케치를 통해 이미지를 생성할 수는 없다. 따라서 이러한 image-to-image 를 지원하는 다른 모델을 추가적으로 사용해야 했다.
AI에 대한 지식이 많지 않았기에 직접적으로 모델을 찾아서 커스텀하여 사용하는것은 시간적으로 무리가 있었다. 최대한 공개되어있는 모델중에 선택해야 했고 무엇보다 사용자가 많아 레퍼런스가 많은 것을 찾는 것이 중요했다.
선택 기준은 다음과 같다.
- image-to-image를 지원하는가
- 일관된 그림체로 생성 가능한가
결국 stable-diffusion에 lora를 적용하여 사용하기로 결정하였다.
험난한 StableDiffusion 사용기
관련 지식 부족
AI에 관련하여 아는 것이 많지 않아 모델을 직접 학습시키고 원하는 방향으로 이미지를 생성하는 것에 어려움이 많았다. 관련 용어도 잘 몰랐고 생성이 어떤 과정을 통해서 이루어지는지 잘 알지 못하였기에 이미지를 생성함에 있어 여러가지 세부 사항을 완벽하게 조정하지 못하였다. 원하는 이미지를 생성하기까지에 많은 시간이 걸렸다.
높은 하드웨어 사양
DALL-E와 다르게 stable-diffusion은 특정 기업에서 엄청나게 좋은 컴퓨터를 사용하여 API로 제공하지 않았다. 결국 stable-diffusion을 실행해야하는 서버를 따로 구축하거나 stable-diffusion 기능을 제공하는 외부 호스팅 기업을 사용하여야 했다.
그러나 stable-diffusion을 통해 빠른 시간 내에 이미지를 생성하기에 현재 가지고 있는 컴퓨터로는 불가능하였다. 결국 stable-diffusion을 돌릴 컴퓨터를 대여하여 서버를 돌려야 하는 상황이었다. 그러나 AWS, google cloud platform에서 gpu서버를 사용하는데에는 제약이 있었다.
gpu 서버 구축하기(실패)
호스팅 업체 사용하기
aws, gcp 모두 gpu 서버를 이용하려면 gpu 인스턴스를 요청하고 검토 후 사용 가능하게 해준다. 그러나 일반적인 개인 사용자가 gpu 인스턴스를 요청하려면 꾸준히 서비스를 이용했거나, 그만큼 높은 수준의 인스턴스를 계속 사용했어야 허가를 해주는 것으로 보인다. 두 곳 모두 요청을 해보았으나 거절당했다.
그리고 비용 또한 만만치 않아 그 비용이면 차라리 중고 그래픽카드를 사서 stable-diffusion용 서버를 구축하는게 싸게 먹힐것 같았다. 서버 대여는 프로젝트 끝나면 남는게 없지만 컴퓨터를 사면 차라리 되팔수라도 있다.
직접 구축하기
gpu를 사서 직접 구축하는 방법도 가능하였다. 그러나 일단 프로젝트 진행 당시 수중에 그만큼의 돈이 없었다. 그래서 못했다.
아무튼 결국 이러한 문제들 때문에 직접 gpu서버를 호스팅 하여 stable-diffusion을 사용하는 것은 불가능하였다. 그래서 찾은 방법은 stable-diffusion을 호스팅해주는 기업에게 일정 이용료를 지불하고 api를 통해 이미지를 생성하는 방법만이 남았다.
결론 : 울며 겨자먹으며 Stable-diffusion 호스팅 업체 사용하기
stable-diffusion호스팅 업체
https://modelslab.com/dashboard
stable-diffusion을 자기네 gpu서버에서 돌려 호스팅 해주는 업체를 찾아내었다. 24.5월 기준 월 47$를 내면( 당시 한화 약 6만원정도) 2000번의 api 호출을 사용 가능했다.
울며 겨자를 먹는 심정으로 졸업 프로젝트 전시까지 월 47달러를 내며 사용했다. 학생 신분에서 비용적인 문제가 컸고, 서비스 측면에서도 안좋은 선택이었지만 마땅한 방법을 찾아내지 못하였다. 그래도 장점이 있다면 따로 서버를 구축하지 않고 api호출을 통해 이미지를 생성할 수 있어 프로젝트 진행 시간에서 이득을 볼 수는 있었다.