Ollama 로컬 LLM 설치하고 llava-llama3 모델을 StableDiffusion 프롬프트에 활용하는 방법

Ollama는 사용자의 로컬 PC에서 설치하여 사용할 수 있는 LLM(Large Language Model)입니다. LLM은 언어모델을 의미합니다. 이해를 위해 ChatGPT를 예로 들면, 웹을 통해 사용자가 질문을 하면, 인공지능 모델(GPT 모델)이 답변을 사용하는 것과 같이 Ollama를 PC에 설치하고, 사전에 학습된 모델을 다운받아두면, 인터넷에 접속하지 않고도, 인공지능 모델에게 질문을 던지고, 답변을 들을 수 있습니다. 본문에서는 Ollama를 설치하고, 이를 ComfyUI에서 사용하는 방법에 대해 살펴보겠습니다.

Ollama 설치 및 Model 다운로드 방법

먼저 Ollama를 설치하기 위해서는 Ollama 자체를 구동하기 위한 프로그램 설치프로그램 내에서 사용할 특정 모델을 다운받는 작업을 모두 진행해야 합니다. 아래에서는 이 두 가지에 대해 차근차근 살펴봅니다.

Ollama 설치

먼저 Ollama 설치를 위해 아래의 공식 홈페이지로 이동합니다.

Ollama 공식 홈페이지

공식 홈페이지의 첫 대문에 Download라고 적힌 버튼을 누르면, 사용중인 운영체제(OS)에 맞게 설치파일을 다운받을 수 있도록 안내하고 있습니다.

Ollama Setup download

OS에 맞게 설치파일을 받은 뒤, 실행하여 Ollama를 설치합니다. 예를 들어 윈도우 사용자는, Ollamasetup.exe 파일을 실행하여 간단하게 설치를 완료할 수 있습니다.

OllamaSetup.exe

Model 다운로드

Ollama 설치가 완료되었다 하더라도, 사용할 모델을 다운받지 않으면 아무 기능도 활용할 수 없습니다. 공식 홈페이지의 상단 메뉴에서 Models로 이동하면, 아래와 같이 Ollama에서 사용할 수 있는 다양한 인공지능 모델이 나타납니다.

Ollama Model list

필요에 따라 다양한 모델을 설치하고 사용할 수 있지만, 본문에서는 스테이블 디퓨전의 프롬프트를 작성하는 용도로 설치하는 중이므로, 인공지능 모델이 직접 이미지를 보고(Vision), 해당 이미지를 기준으로 프롬프트 작성이 가능한 llava-llama3 모델을 다운로드합니다.

llava-llama3 model explanation

모델 목록에서 위의 llava-llama3 모델을 찾아 클릭해줍니다.

llav-llama3 model download

그럼 위와 같이, 해당 모델에 대한 설명과 함께, 우측에 “ollama run llava-llama3″이란 명령어를 발견할 수 있습니다. 명령어는 llava-llama3을 실행하라는 의미이지만, 최초 실행시, 모델이 없어 실행이 불가할 때는 알아서 모델을 다운로드 받습니다. 따라서 사용자가 직접 인공지능 모델을 다운받아 직접 옮길 필요가 없습니다.

llava-llama3 model install and running

커맨드창을 열고 위 명령어를 입력하면, 해당 모델을 실행하기 위해, 알아서 Ollama가 해당 모델을 다운받습니다. 모델 다운로드가 완료되고, 실행할 준비가 되면 아래와 같이, 인공지능에게 어떤 메세지를 보낼 것인지 묻습니다.

windows commandline for sending a message to llava-llama3

모델 다운로드 후, 위 예시처럼 Send a message가 정상적으로 출력되면 제대로 설치가 된 것이므로, 일단 실행을 멈추기 위해 /bye를 입력합니다.

exit llava-llama3

ComfyUI에서 Ollama 이용하기

ollama icon on the windows tray

Ollama를 설치 및 실행한 상태라면, 위와 같이 윈도우 시작표시줄에 라마 아이콘이 표시됩니다. 해당 아이콘이 실행된 상태에서 ComfyUI를 실행합니다. ComfyUI Manager를 실행하고 아래 이미지를 참고하여 별점이 가장 높은 ComfyUI Ollama(stavsap) 커스텀 노드를 설치합니다.

comfyui custom nodes installation for ollama

수동으로 설치를 진행하실 분은 아래의 깃허브 주소를 이용해 설치하시기 바랍니다.

커스텀노드 주소 : https://github.com/stavsap/comfyui-ollama

ComfyUI 커스텀노드 설치가 익숙하지 않거나, ComfyUI Manger 사용이 처음이신 분들은 아래 글을 참고하시기 바랍니다.

커스텀노드가 정상적으로 설치되었다면, 이제 Ollama를 활용해 llava-llama3 모델을 사용할 준비가 완료된 것입니다.

Ollama Vision (Image to Text prompt)

이제 ComfyUI에서 이미지를 보여주고, llava-llama3모델이 해당 이미지를 읽어 프롬프트로 작성해주도록 워크플로우를 구성해보겠습니다. 아래와 같이 간단하게 Load Image로 이미지를 불러온 뒤, 해당 이미지를 Ollama Vsion노드로 입력해줍니다. Ollama Vision노드의 출력단은 Show Text 노드로 연결해 llava-llama3 모델이 이미지를 보고 생성한 텍스트를 확인합니다.

ollama vision workflow

Ollama Vision노드는 총 5개의 Widget으로 구성되어 있습니다. 먼저 가장 처음 빈 칸에는 사용자의 프롬프트를 입력할 수 있도록 되어 있는데요, 여기서, 인공지능 모델에게 어떤 작업을 할지 메세지를 전달할 수 있습니다. 위의 예시에서는 단순하게 describe the image라고 작성되 있습니다. 즉, “이미지를 보고 해당 이미지를 묘사해줘”라는 명령어를 llava-llama3 모델에게 전달하는 것입니다.

두번째 debug가 기본 enable로 설저되어 있으면, 콘솔창에 인공지능 모델의 작업과정이 기록됩니다.

세번째 url의 경우, 실행중인 Ollama 서버의 기본 주소가 적혀있습니다. 앞서 말씀드린 것처럼 윈도우 시작표시줄 우측에 라마 아이콘이 표시된다면, 정상적으로 Ollama가 동작중인 상태이고, 이 상태에서 웹 브라우저에 http://127.0.0.1:11434로 접속하면 아래와 같이 Ollama is runnning이라는 문구가 나타납니다.

ollama running test

마치 ComfyUI가 서버를 실행하고, 내부 IP로 포트를 잡아 접속하듯, Ollama 또한 서버-클라이언트 형태로 동작하기 때문입니다.

그 아래 model은 앞서 다운로드 받은 llava-llama3 모델을 선택해주시면 됩니다. 만약 다른 모델들도 다운받았다면, llava-llama3외의 다른 모델들도 선택할 수 있습니다.

마지막으로 keep_alive는 모델을 VRAM 위에 올려두는 횟수를 의미합니다. VRAM 용량이 넉넉하지 않거나, 기타 워크플로우 상 무거운 작업이 진행되어 VRAM을 조금이라도 더 확보해야하는 상황이라면, 해당 값을 0으로 두어, 프롬프트를 생성할 때만 모델을 로딩해서 사용하고, 바로 VRAM을 비워주는 형태로 관리할 수 있습니다.

예시에서는 Ollama에게 간단한 명령만 주었지만, 여기서 프롬프트를 조금 더 상세하게 작성하고 싶다면, Ollama에 입력하는 명령어를 더욱 구체적으로 수정하면 됩니다.

detailed prompting for ollama vision

위의 예시 이미지에서는 기존의 “describe the image”라는 간단한 프롬프트 대신, 아래와 같이 구체적인 프롬프트를 입력한 결과입니다.

“Describe the image as if you are a professional photographer. Description contains detailed explation about the subject, lighting, colors, hue and ambiance in several paragraphes”

그 결과, 앞서 단순히 이미지를 묘사해달라고 했던때와 달리, 훨씬 구체적이고 풍부한 내용을 담은 프롬프트를 생성해주는 모습입니다. 이처럼 Ollama를 이용해 이미지로부터 자세한 정보를 취득한 후 해당 텍스트를 스테이블 디퓨전 또는 Flux 모델의 긍정 프롬프트로 입력하는 방식으로, 이미지를 생성하는 다양한 워크플로우에 활용할 수 있습니다.