본문 바로가기
AI Project/On Device AI 프로젝트

[Edge AI] 삼성갤럭시(안드로이드)에서 ComfyUI 설치/실행

by 으노으뇨 2026. 4. 20.
728x90
반응형
SMALL

안녕하세요! 제목을 보고 "뭐? 폰에서 무거운 컴피유아이가 돌아간다고?" 하며 헐레벌떡 들어오셨죠?

결론부터 말씀드리자면 

절반은 맞고 절반은 틀리다.

여러분의 소중한 시간을 아껴드리기 위해 컴피유아이를 그대로 설치하면 안 되는지, 그리고 우리가 진짜로 사용할 비밀무기는 무엇인지 짚고 가곘슴다. 우선 먼저 결과부터 보여드리고 시작하곘습니다.

1. 왜 스마트폰에서 '찐' ComfyUI는 무리일까?

안드로이드 터뮤즈(Termux) 환경에 파이썬(Python)을 깔고 ComfyUI나 WebUI를 억지로 구동은 가능

  • 무자비한 메모리(RAM) 먹방: 파이썬 기반의 AI 환경은 기본적으로 엄청나게 무겁습니다. 갤럭시의 6GB~8GB 램으로는 모델을 불러오기도 전에 메모리 부족(OOM)으로 앱이 픽픽 꺼져버립니다.
  • 성능 누수: PC 환경에 맞춰진 프로그램을 모바일로 억지로 번역해서 돌리다 보니, 스마트폰이 불타는 고구마가 되어도 그림 한 장 뽑는 데 세월아 네월아 걸립니다.

2. 그래서 우리는 'stable-diffusion.cpp'를 씁니다!

우리의 목표는 "스마트폰에서 이미지를 뽑아내는 것"이지, 무거운 파이썬을 돌리는 게 아니죠. 그래서 이 글에서는 ComfyUI 대신, 폰에서도 쌩쌩하게 돌아가는 stable-diffusion.cpp를 이용할 겁니다.

  • 초경량 C++ 기반: 파이썬의 무거운 짐을 다 버리고, C++로 가볍게 짜여 있어 모바일 CPU 환경에 찰떡같이 호환됩니다.
  • 영혼까지 압축한 GGUF 양자화 모델: 2~4GB짜리 무거운 모델 대신, 화질은 유지하면서 용량을 확 줄인 GGUF 포맷을 사용하여 램 부족 현상을 완벽하게 회피합니다.

3. 앞으로

이 포스팅을 끝까지 따라오시면, 인터넷이 끊긴 비행기 안에서도 내 폰으로 실사 AI 이미지를 뽑아낼 수 있습니다. 진행 순서는 다음과 같습니다.

  1. 터뮤즈(Termux) 순정 환경 세팅: 오버헤드를 줄이기 위해 리눅스(Ubuntu)를 덧깔지 않고 네이티브 환경으로 직진합니다.
  2. 가상 메모리(SWAP) 확보: 앱이 튕기지 않도록 스마트폰의 넉넉한 저장 공간을 램(RAM)처럼 끌어다 쓰는 비기를 적용합니다.
  3. C++ 빌드 및 GGUF 모델 다운로드: 뼈대를 세우고 고품질 실사 모델을 폰에 집어넣습니다.
  4. 대망의 첫 이미지 출력!

준비되셨나요? 배터리 든든하게 충전하시고, 바로 다음 단계로 넘어가 보겠습니다!


대상 삼성 갤럭시 기종 : A35

 

항목 세부 사양
모델명 삼성 갤럭시 A35 5G
프로세서 (AP) 삼성 엑시노스 1380 (5nm)
디스플레이 6.6인치 FHD+ Super AMOLED (2340 x 1080)
주사율 120Hz
메모리 (RAM) 6GB / 8GB
저장 용량 128GB / 256GB (microSD 최대 1TB 지원)
후면 카메라 5,000만(광각, OIS) + 800만(초광각) + 500만(접사)
전면 카메라 1,300만 화소
배터리 5,000mAh
충전 속도 최대 25W 유선 충전
방수방진 IP67 등급
보안 기술 삼성 녹스, 광학식 온스크린 지문 인식
크기 161.7 x 78.0 x 8.2 mm
무게 209g
운영체제 안드로이드 14 기반 One UI 6.1

이 스펙에서 중요한건 볼드처리했습니다.


2. 모델선택

모델 구분 파일 크기 (Q4 기준) RAM 점유율 특징 및 한계
Realistic Vision v6.0 약 2.1GB 약 3GB 이상 실사 중심, 고품질 결과물, 생성 속도 느림
SD Turbo / Lightning 약 2.0GB 약 3GB 1~4 Step 내 생성 완료, 속도 위주
SDXS / SD Small 약 1.0GB 이하 약 1.5GB 미만 초경량화 모델, 모바일 최적화, 디테일 부족
FastSD CPU 가변적 최소화 CPU 환경 전용 최적화 모델

저는 차이를 좀 극명하게 보기위해 Realistic_Vision와 SD Turbo / Lightning를 이용해서 진행할거에요.


3. 설치 및 셋팅 시작

Step 1. 터뮤즈(Termux) 제대로 설치하기

# 1. 패키지 목록을 최신 상태로 업데이트
pkg update && pkg upgrade -y

# 2. 스마트폰 내부 저장소 접근 권한 허용 (팝업이 뜨면 '허용' 클릭)
termux-setup-storage

그럼이렇게 설치가 우다다다 진행됩니다.

termux-wake-lock

이걸써서 화면꺼짐 방지 락 걸어주세요

# 1. 컴파일에 필요한 필수 도구 설치
pkg install git cmake clang wget -y

# 2. 작업할 폴더(경로) 생성 및 이동 (★경로 수정됨)
# mkdir -p 명령어는 폴더가 없으면 만들고, 이미 있으면 무시하는 아주 유용한 명령어입니다.
mkdir -p ~/projects/ai-workspace
cd ~/projects/ai-workspace

# 3. stable-diffusion.cpp 소스코드 가져오기
# ai-workspace 폴더 안에 소스코드를 다운로드합니다.
git clone https://github.com/leejet/stable-diffusion.cpp
cd stable-diffusion.cpp

# 4. 빌드 준비 및 실행 (폰 사양에 따라 5~10분 정도 소요됩니다. 꾹 참고 기다리세요!)
mkdir build && cd build
cmake ..
make -j4

이걸 그대로 투하해 줍니다. 저의경우 깃과 씨메이크 씨랭 wget 모두 설치되어있지만 다시 돌려보곘습니다.

그리고 저는 따로 프로젝트 / ai-workspace 라는 폴더를 만들고 진행할수있게해보곘습니다.

원래경로에 있어서..

설치가 진행됩니다.

더보기
~/.../stable-diffusion.cpp/build $ cmake ..
-- The C compiler identification is Clang 21.1.8
-- The CXX compiler identification is Clang 21.1.8
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /data/data/com.termux/files/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /data/data/com.termux/files/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- stable-diffusion.cpp version master-585-44cca3d
-- stable-diffusion.cpp commit 44cca3d
-- Build static library
CMake Error at CMakeLists.txt:254 (add_subdirectory):
  The source directory

    /data/data/com.termux/files/home/projects/ai-workspace/stable-diffusion.cpp/ggml

  does not contain a CMakeLists.txt file.


CMake Warning at examples/server/CMakeLists.txt:58 (message):
  pnpm not found; frontend build disabled.


-- HAVE_INDEX_HTML disabled
-- Configuring incomplete, errors occurred!
~/.../stable-diffusion.cpp/build $
~/.../stable-diffusion.cpp/build $ make -j4

설치중 이런 오류를 만나게 됩니다. 

# 1. 현재 build 폴더에 있으므로, 한 칸 위인 메인 폴더로 빠져나옵니다.
cd ..

# 2. 누락된 서브모듈(핵심 부품들)을 마저 다운로드합니다. (가장 중요★)
git submodule update --init --recursive

# 3. 다운로드가 쭉 진행된 후 완료되면, 다시 build 폴더로 들어갑니다.
cd build

# 4. 아까 실패했던 조립(빌드) 준비를 다시 실행합니다.
cmake ..

# 5. 이제 에러 없이 끝날 것입니다! 조립을 다시 시작합니다.
make -j4

 그럼 그 자리에서 저위에 꺼를 그대로 눌러서 진행히킵니다.

이렇게 현재 진행중이면 두손모아 기도합시다 ㅠㅠ 저도 지금 오류를 만나서 ... 기도중입니다...

중간중간

이렇게 워닝뜨는데 조금 후달리네요...

워닝이면 다행이고 에러면 큰일입니다! 워닝이니까 우선 계속 기도하면서 넘어갈게요.

후아 정상빌드된 모습입니다... 진짜 잘되었는지 진짜 확인만이 답입니다.

이제 우리의 테스트를 위해 2가지 GGUF 모델을 다운로드 받아봅시다

mkdir models
cd models
pip cache purge

pip install huggingface-hub==0.23.2

먼저 허깅페이스 가입을 하시고 해당 라이브러리도 설치합니다.

허깅페이스 가입은 5초면됩니다.!!!! 

그리고 이제 허깅페이스 가입한정보로 터뮤즈 환경에도 로그인해줍니다.

huggingface-cli login

이럼 뭔가 무서운게 뜹니다.

https://uno-kim.tistory.com/448

 

[Hugging Face] 허깅페이스 토큰발급받기

허깅페이스 화면에서 우측 상단 메뉴에서 엑세스 토큰을 누릅니다.따끈따끈한 뉴비 계정이라면 우측상단의 컨퍼메이션 이메일을 눌러서 확인을 해줍니다.메일에서 컨펌 승낙하면 위처럼 나오

uno-kim.tistory.com

여기처럼 토큰까지 발행해서 해당 토큰을 밀어넣어줍니다.

그리고 반드시 n으로 해야합니다. Y로 하면 뭔가 귀찮아저요!

뭔가성공! 이제 아래는 허깅페이스 버전이 안맞을수있습니다. 

이걸 작성하는 현재 26년 4월 20일 기준으로 다운로드 명령어 이며 만약 안된다면 허깅페이스 직접 들어가셔서 

검색후 찾으시면됩니다...검색은 second-state/Realistic_Vision_ 이렇게나 -GGUF 가 들어간것으로 하셔야합니다..

만약 이것도 변경된다면... AI...AI 검색...

# [선수 1] Realistic Vision V6.0 (Q4_K 양자화) - 실존하는 정확한 주소
huggingface-cli download second-state/Realistic_Vision_V6.0_B1-GGUF realisticVisionV60B1_v51HyperVAE-Q4_k.gguf --local-dir .

mv realisticVisionV60B1_v51HyperVAE-Q4_k.gguf realistic.gguf

# [선수 2] gpustack 저장소의 SD 1.5 기본 모델 (Q4_1 양자화) 다운로드
huggingface-cli download gpustack/stable-diffusion-v1-5-GGUF stable-diffusion-v1-5-Q4_1.gguf --local-dir .

# 이름을 쓰기 편하게 변경
mv stable-diffusion-v1-5-Q4_1.gguf lightning.gguf

이걸 그대로 복붙하시면됩니다. 이때 용량은 좀 넉넉히 있어야하고 인터넷환경도 충분해야합니다.

둘다 기가급이 넘어가서 좀 오래걸립니다.

둘다 1.6, 1.7 기가급이라 오랜시간과 빵빵한 인터넷 환경이 중요합니다.!!

휴....중간중간 뻗긴헀는데 우여곡절끝에 일단 성공;;


4. 대망의 이미지 출력

실행전 확인

더보기

메이크인지 케이크인지가 꺼져있을수있습니다.

그래서 다시 빌드를 돌리고 실행해야할 수있어 아래와 같은 명령어를 한번 더 돌리고 진행하시면 되곘습니다.

cd ..
ls -R | grep sd
#이때 쭉뜨는지 바ㅗ야합니다.!!!

# 1. 혹시 모르니 부품(서브모듈) 다시 한번 체크
cd ..
git submodule update --init --recursive

# 2. 다시 조립 공장(build)으로 입장
cd build
cmake ..

# 3. 진짜 조립 시작! (여기서 100% 완료되는지 꼭 보세요)
make -j4

ls bin/sd
#이건 확인용

아마 화면에 sd-cli 와 sd-server 라는 이름이 뜰 겁니다.

 

# 1. 실행 파일이 있는 build 폴더로 이동
cd ..

# 2. 방금 다운받은 realistic.gguf 모델로 30대 안경 쓴 개발자 그리기!
./bin/sd-cli -m models/realistic.gguf -p "RAW photo, portrait of a happy smiling young Korean man in his 30s, wearing rectangular glasses, casual developer attire like a hoodie, currently working on a laptop, close-up, authentic expression, natural lighting, sharp focus on face, realistic skin texture, film grain, photorealistic, cinematic" -n "woman, girl, cartoon, anime, 3d render, plastic, illustration, b&w, lowres, blur, deformed hands, extra fingers, messy face, horror" --steps 10 --cfg-scale 4.0 -o output_real.png

먼저 리얼리스틱모델로 돌려보겠습니다.

# 방금 다운받은 lightning.gguf (가벼운 기본 모델)로 똑같은 프롬프트 실행!
./bin/sd-cli -m models/lightning.gguf -p "RAW photo, portrait of a happy smiling young Korean man in his 30s, wearing rectangular glasses, casual developer attire like a hoodie, currently working on a laptop, close-up, authentic expression, natural lighting, sharp focus on face, realistic skin texture, film grain, photorealistic, cinematic" -n "woman, girl, cartoon, anime, 3d render, plastic, illustration, b&w, lowres, blur, deformed hands, extra fingers, messy face, horror" --steps 10 --cfg-scale 4.0 -o output_speed.png

드디어 갤럭시 A35의 두뇌(CPU)가 AI 모델을 한 땀 한 땀 계산해서 그림을 그리기 시작했네요.

갤럭시 A35의 엑시노스 1380 칩셋이 그래픽카드(GPU) 없이 순수 CPU 힘으로만 돌리고 있어서 속도는 조금 느린 편이지만, 멈추지 않고 아주 정상적으로 연산 중입니다.

현재 속도(84초 x 10단계)로 계산하면, 첫 번째 사진이 완성되는 데 약 14~15분 정도 소요될 것으로 보입니다.

FIN. 확인

그리고 이제 스토리지에 복사시킵니다. 참고로 documents가 있어야합니다!!! 내부저장소에!

# 1. 퀄리티 몰빵 이미지를 내 폰의 다운로드 폴더로 복사!
cp output_real.png ~/storage/documents/

# 2. 스피드 몰빵 이미지를 내 폰의 다운로드 폴더로 복사!
cp output_speed.png ~/storage/documents/

나왔습니다.... 왼쪽이 리얼리스틱 비전, 왼쪽이 SD1.5 베이스입니다.

끔찍해라,., 실무에선 조금 쓰기어려울것같네요 ㅎㅎ

구분 테스트 A: Realistic Vision (고퀄리티) 테스트 B: SD 1.5 Base (스피드)
모델 파일명 realistic.gguf lightning.gguf
파일 용량 약 1.62 GB 약 1.59 GB
생성 시간 약 25분 (10 Steps 기준) 약 15분 (10 Steps 기준)
모델 방식 Fine-tuned (실사 특화) Base Model (범용 표준)
이미지 특징 극사실적인 피부 질감, 자연스러운 조명 빠르고 명확한 형태, 다소 플랫한 질감
추천 용도 포트폴리오, 고화질 프로필 사진 아이디어 스케치, 구도 확인용

총평

1. Realistic Model (realistic.gguf): 25분의 기다림이 아깝지 않은 장인정신

왼쪽 사진을 보십시오. 피부의 미세한 모공과 질감, 안경테에 맺힌 조명의 자연스러운 반사광, 그리고 뻗친 잔머리의 디테일까지... 

스마트폰에서 CPU만으로 이런 극사실주의(Photorealistic) 이미지를 만들어냈다는 사실이 믿기지 않습니다. Euler A 샘플링 10단계라는 짧은 스텝에도 불구하고, 모델이 가진 'RAW 포토' 데이터를 완벽하게 활용했습니다.

2. Speed Model (lightning.gguf): 10분을 아꼈지만 타협한 현실

오른쪽 사진은 속도를 위해 품질을 다소 희생했습니다. 생성 시간은 15분으로 10분이나 단축되었지만, 비주얼적인 차이는 큽니다.

피부가 너무 매끈하게 보정되어 플라스틱 같은 인형 느낌을 지울 수 없습니다. 특히 안경 렌즈 부분이 뭉개지거나 어색한 현상이 나타났습니다.

PC에서는 '초안(Draft)' 모드로 쓰기 좋겠지만, 15분도 긴 시간이라 품질 하락이 더 아쉽게 느껴집니다.

두 테스트의 결과는 명확합니다. 최종 승자는 Realistic Model입니다.

10분의 생성 시간 차이는 큽니다. 하지만 15분도 결코 짧은 시간이 아닙니다. 15분을 투자해서 어색한 초안을 얻느니, 차라리 25분을 투자해서 내 실제 모습과 완벽하게 일치하는, 고품질의 실사 초상화를 얻는 것이 훨씬 더 가치 있는 일입니다.

갤럭시 A35라는 보급형 기기의 CPU 힘만으로 Realistic Vision의 극한 품질을 뽑아낸 것은
우리의 뚝심이 만들어낸 결과입니다.

이것으로 저는 온-디바이스 AI의 매운맛을 제대로 봤습니다... ㅎㅎㅎ

 

728x90
반응형
LIST

댓글