ComfyUI 사용기: 이미지 기반 3D 캐릭터 생성

by Matcha UX

안녕하세요. 이번 글에서는 제가 직접 사용해본 ComfyUI 경험을 공유해보려고 합니다.



저는 플러스엑스 변사범 님의 강의(ComfyUI를 활용한 브랜드 광고/모델/제품/비주얼 제작)를 통해 본격적으로 입문했는데요. 기초를 차근차근 배우는 방식은 아니었지만, 디자이너 입장에서 ComfyUI를 어떤 방식으로 활용할 수 있을지를 다양한 워크플로우로 보여주셔서 큰 도움이 되었습니다.


완전 입문자라면 DigiClau Lab의 유튜브 영상으로 초기 세팅을 먼저 익히는 것도 추천드립니다.


세팅을 마친 뒤에는 여러 워크플로우를 직접 시도해봤는데, 이때 ComfyUI Docs가 큰 도움이 되었습니다.

사용자들이 만든 워크플로우와 튜토리얼이 잘 정리된 아카이브라 따라 해보면서 자연스럽게 익히기에 좋았습니다.




Flux.1 Kontext Dev Basic Workflow 써보기


ComfyUI Docs에서 Flux.1 Kontext Dev Basic Workflow를 다운받아 실행해봤습니다.



해당 워크플로우는 기본적으로 이미지 편집을 위한 구조인데, 특징은 Load Image(from output)노드를 활용한다는 점입니다. 덕분에 이전에 생성한 이미지를 바로 불러와서 다시 편집할 수 있어서 여러 번 반복 작업을 할 때 훨씬 편리합니다.


전체 구조는 크게 네 단계로 나눌 수 있었습니다.


1. 모델 로드

확산 모델(Flux.1 Kontext), 텍스트 인코더(CLIP, T5), 그리고 VAE를 불러옵니다.

이미지 생성의 뼈대가 되는 부분이라 여기서 세팅이 제대로 돼야 워크플로우가 돌아갑니다.


2. 이미지 업로드

새로운 이미지를 불러오거나, Load Image(from output) 노드를 이용해 이전에 만든 이미지를 다시 불러옵니다.

결과물을 이어서 수정할 수 있어, 반복 편집에 강점이 있습니다.


3. 프롬프트 입력

영어 프롬프트를 CLIP 인코더에 넣어 원하는 스타일이나 속성을 지정합니다.

긍정 프롬프트/부정 프롬프트를 따로 줄 수 있지만 해당 워크플로우에서는 긍정 프롬프트만 사용했습니다.


4. 샘플링 & 출력

KSampler에서 시드(seed), 스텝 수, CFG 같은 파라미터를 조정해 최종 이미지를 생성합니다.

마지막에는 VAE가 잠재 공간(latent) 데이터를 실제 이미지로 변환합니다.


이 워크플로우는 캐릭터나 제품처럼 일관성을 유지하면서 스타일을 바꾸는 데 강점이 있습니다. 반대로, 실사 사진을 섬세하게 수정하는 작업에는 아직 조금 한계가 있는 것 같았습니다.




용어 정리

ComfyUI는 처음 접하면 생소한 용어가 많습니다.

처음 쓰시는 분들을 위해 몇 가지 자주 보이는 용어를 간단히 정리해봤습니다.


VAE: 잠재 공간(latent space)에 있는 데이터를 실제 이미지로 바꾸는 모델.

CLIP: 텍스트를 숫자 벡터로 바꿔주는 인코더. “문장을 이미지 조건으로 바꿔주는 번역기” 같은 역할.

T5: 대규모 텍스트 인코더 모델. CLIP과 함께 쓰여 더 정교한 텍스트 인식 가능.

KSampler: 이미지 샘플링 단계. 시드(seed), 스텝 수, CFG 같은 수치를 바꿔 결과를 조정할 수 있음.

시드(seed): 이미지 생성의 시작점 같은 랜덤 값. 같은 시드를 쓰면 비슷한 이미지를 재현 가능.

CFG (Classifier-Free Guidance): 텍스트 프롬프트를 얼마나 강하게 반영할지 조절하는 값.




Test 1: 2D 캐릭터 > 3D 캐릭터로 변환


GPT와 함께 워크플로우를 분석해보니, 실사 제품 사진보다는 2D 기반의 단순한 이미지 변환과 생성에 더 강점이 있는 것 같아, 먼저 간단히 2D 캐릭터를 3D로 변환하는 테스트를 해봤습니다.


세팅은 기본값(케이 샘플러 등)을 그대로 두고, 프롬프트 변주만으로 3D 느낌을 바꿔봤습니다.

첫 시도는 당근 마스코트 이미지를 넣어보았고, 여기에 젤리·슬라임 같은 3D 스타일을 지시하는 프롬프트를 사용했습니다.


프롬프트: a cute 3D jelly-like character, translucent, glossy surface, soft and squishy, vibrant colors, toy figure style, adorable and shiny, stylized Pixar render


워크플로우 캡쳐


좌: 원본 / 우: 생성된 이미지


결과물이 꽤 잘 나온 편이었습니다. 제가 사용한 Flux.1 Kontext Dev Basic Workflow는 원본 캐릭터의 특징(얼굴, 표정, 소품 등)을 그대로 유지하면서 3D 질감과 입체감을 입히는 데 강점이 있더라고요. 복잡한 실사 편집은 다소 어려운 편이지만, 이렇게 단순한 2D 캐릭터를 입체적으로 변환하는 작업에는 특히 안정적으로 결과를 내는 것 같습니다.






다음으로는 신한은행의 마스코트 이미지를 넣어보았습니다. 이번 테스트에서는 프롬프트를 통해 얼마나 다양한 스타일 변환이 가능한지 확인하고 싶었어요. 그래서 이번에는 하리보 젤리 특유의 투명함과 빛 반사, 말랑한 곰젤리 질감을 떠올리며 프롬프트를 작성했습니다. 프롬프트 외 세팅은 이전과 동일하게 유지했습니다.


프롬프트: A cute 3D jelly-like character, translucent and glossy surface with soft and squishy texture, vibrant candy colors, resembling Haribo gummy bear style, toy figure aesthetic, adorable and shiny, Pixar-style render with stylized lighting and reflections


좌: 원본 / 우: 생성된 이미지


다만 결과는 예상했던 것과는 조금 다르게 나왔습니다. 특히 색감이 강하게 노란빛으로 표현되었는데, 이는 프롬프트에 넣었던 'vibrant candy colors'와 'Haribo gummy bear style'이 모델 해석에 크게 작용했기 때문으로 보입니다.


실제 하리보 젤리의 대표적인 이미지가 노랑·초록 계열에 가깝다 보니, 모델이 이를 가장 자연스럽게 연결한 것 같습니다. 만약 특정 색감을 원한다면 프롬프트에 원하는 컬러를 명시적으로 적어주는 게 좋을 것 같아요. 예를 들어 blue gummy bear나 transparent pink처럼 색을 지정해주면 결과가 훨씬 안정적으로 나올 수 있습니다. 반대로 원치 않는 색을 배제하려면 부정 프롬프트에 yellow, green처럼 걸러낼 수도 있겠죠.





Test 2: 2D 캐릭터 > 3D 캐릭터로 변환 + 포즈 변형 및 아이템 추가


세 번째 테스트부터는 부정 프롬프트도 함께 넣고, 케이샘플러(KSampler)의 값을 조정해보았습니다.
실험하면서 가장 크게 느낀 점은 CFG 값을 일정 수준 이상 높이면 이미지가 쉽게 깨진다는 점이었습니다.


이번에는 “퐁실퐁실 봉제인형 느낌”을 내고 싶어 아래와 같이 프롬프트를 작성했습니다. 그리고 캐릭터가 단순히 서 있는 것만이 아니라 포즈까지 변형될 수 있는지 확인하기 위해, 점프 동작을 지시하는 프롬프트를 추가했습니다


긍정 프롬프트 : a cute 3D squishy mascot character, soft and puffy plush texture, chubby and rounded body, smooth matte surface, fluffy and squeezable look, kawaii toy figure style, adorable and charming, stylized Pixar/Disney render, studio lighting, soft shading, joyful pose, jumping in the air with both arms raised up, both hands in the air


부정 프롬프트: blurry, low quality, deformed, bad anatomy, extra limbs, bad hands, extra fingers, cropped, watermark, text


부정 프롬프트는 기본적인 오류(저화질, 번짐)를 막는 용도 외에도, 포즈 변형 시 자주 생기는 손가락·팔다리 오류를 줄이고자 bad hands, extra fingers같은 설정을 넣었습니다.



좌: 기본 세팅 / 우: 세팅 값 조정


케이샘플러 값은 CFG를 기본 1.0에서 4.0까지 높이고, 다른 파라미터들도 조금씩 조정해보았습니다.

스텝 수(20 → 25) : 더 많은 반복 과정을 거치면 이미지 디테일이 살아날 거라 기대하고 높였습니다.

CFG (1.0 → 4.0) : 프롬프트 반영률을 높여 “포즈”와 “질감” 같은 디테일을 더 강하게 반영하려고 조정했습니다.

스케줄러 (simple → karras) : karras가 복잡한 디테일과 색감 표현에 유리하다고 알려져 있어 테스트 차원에서 변경했습니다.



좌: 원본 / 우: 생성된 이미지


하지만 실제 결과는 기대와 달리, CFG 값을 높이는 순간 이미지가 깨지거나 왜곡이 심해졌습니다.
즉, 스텝 수와 스케줄러 변경만으로는 큰 문제가 없었지만, CFG를 과도하게 높이면 워크플로우 안정성이 떨어진다는 점을 확인할 수 있었습니다.






앞선 테스트를 통해 포즈 변형은 쉽지 않다는 점과 CFG 값을 높일수록 이미지가 깨진다는 점을 확인했습니다. 그래서 이번에는 CFG를 비롯한 케이샘플러 값은 모두 기본 세팅으로 두고, 프롬프트만으로 간단한 오브젝트를 추가하거나 변경할 수 있는지를 테스트해보았습니다.


“퐁실퐁실 봉제인형 느낌” 프롬프트에 holding a strawberry 라는 요소를 덧붙였고,

이전과 동일하게 부정 프롬프트도 함께 사용했습니다.


긍정 프롬프트: a cute 3D squishy mascot character, soft and puffy plush texture, chubby and rounded body, smooth matte surface, fluffy and squeezable look, vibrant pastel colors, kawaii toy figure style, adorable and charming, stylized Pixar/Disney render, studio lighting, soft shading, holding a strawberry


부정 프롬프트: blurry, low quality, deformed, bad anatomy, extra limbs, bad hands, extra fingers, cropped, watermark, text


좌: 원본 / 우: 생성된 이미지


스타일 관련 프롬프트는 잘 적용되었고, 전체적으로 이미지도 꽤 만족스럽게 나왔습니다. 다만 이미지 왜곡과 변형을 막기 위해 CFG 값을 1.0으로 고정해둔 탓인지, 추가한 holding a strawberry 프롬프트는 전혀 반영되지 않는 것을 확인할 수 있었습니다.


이 테스트를 통해 CFG 값이 낮을수록 프롬프트 반영력이 약해져, 새로운 오브젝트를 추가하는 데에는 한계가 있다는 점을 확인할 수 있었습니다.






마지막으로는 오브젝트 추가를 한 번 더 시도해보았습니다. 다른 이미지에 동일한 프롬프트를 사용하고, 마지막에 모자를 씌우는 프롬프트만 덧붙였습니다. 이번 테스트에서는 부정 프롬프트가 크게 필요하지 않을 것 같아 제외했습니다.


프롬프트: a cute 3D squishy mascot character, soft and puffy plush texture, chubby and rounded body, smooth matte surface, fluffy and squeezable look, vibrant pastel colors, kawaii toy figure style, adorable and charming, stylized Pixar/Disney render, studio lighting, soft shading, wearing a cute pastel bucket hat, kawaii accessory style


케이샘플러의 다른 설정값은 모두 기본 세팅으로 두고, CFG 값만 1.0에서 3.0으로 조정해보았습니다.

좌: 원본 / 우: 생성된 이미지


이번에도 CFG 값을 높인 탓인지 이미지가 깨져서 출력되었습니다.


다만 프롬프트에 적은 대로 모자가 추가되긴 했습니다. 이번 테스트를 통해, 이미지 변형에서는 프롬프트 반영 강도와 화질 유지 사이에서 케이샘플러 값을 균형 있게 조절하는 것이 중요하다는 점을 알 수 있었습니다.





이번 글에서는 Flux.1 Kontext Dev Basic Workflow를 활용해 2D 캐릭터를 3D 캐릭터로 변환하고 변형하는 테스트를 진행해보았습니다. 포즈나 아이템을 크게 바꾸는 데에는 한계가 있었지만, 2D 이미지를 3D로 입체감 있게 바꿔주는 데에는 확실히 강점이 있는 워크플로우라는 점을 확인할 수 있었습니다.


좌: 원본 / 우: 생성된 이미지



ComfyUI에서 생성한 이미지를 Midjourney로 옮겨 간단하게 모션 효과를 추가할 수 있습니다.


정적인 이미지를 움직임 있는 비주얼로 바꾸는 과정이 생각보다 간단해서, 온라인 브랜드 채널을 운영하는 기업이라면 콘텐츠 확장에 꽤 효과적으로 활용할 수 있을 것 같았습니다.




다음 글에서는 같은 워크플로우를 이용해 실사 이미지를 아이콘 스타일로 변환하는 테스트를 다뤄보려고 합니다. 감사합니다.




※ 본 글에서 사용한 기업의 마스코트 이미지는 순수히 테스트 및 학습 목적으로만 활용되었으며, 이외 상업적·홍보적 용도에는 일절 사용되지 않았음을 밝힙니다.

keyword