AI

오픈소스 RealVisXL V5.0으로 AI 버추얼 인물 생성 후기 — ComfyUI + PuLID + RunPod 실전 가이드

반응형

 

2026년 4월 · AI 버추얼 인플루언서 프로젝트

오픈소스 RealVisXL V5.0으로
AI 버추얼 인물 생성 후기

Flux.1 Dev + PuLID + InsightFace + ComfyUI + RunPod
6개 오픈소스 모델 조합 · 실제 프롬프트와 생성 결과를 모두 공개합니다

1. 프로젝트 배경과 동기

인공지능 기술이 급속도로 발전하면서 이미지 생성 분야에서도 놀라운 변화가 일어나고 있습니다. 특히 2024년부터 2026년 현재까지 스테이블 디퓨전 계열의 오픈소스 모델들이 상업용 서비스 못지않은 품질을 보여주면서 개인 개발자도 고품질 포토리얼 이미지를 만들 수 있는 시대가 되었습니다. 이 프로젝트는 완전히 오픈소스 도구만으로 상업 수준의 AI 버추얼 인플루언서를 만들 수 있는지 실험하기 위해 시작했습니다.

AI 버추얼 인플루언서 시장은 2025년 기준 약 138억 달러 규모로 성장했으며, 실제 인간 인플루언서 대비 35% 높은 참여율을 기록한다는 통계도 있습니다. 문제는 대부분의 상용 솔루션이 높은 비용을 요구한다는 것입니다. 미드저니나 달리 같은 서비스는 편리하지만 세밀한 제어가 어렵고 월 구독료가 지속적으로 발생합니다. 반면 오픈소스 모델을 직접 운용하면 초기 학습 비용이 있지만 장기적으로 훨씬 유연하고 경제적인 파이프라인을 구축할 수 있습니다.

이번 프로젝트의 핵심 과제는 3가지였습니다. 첫째, 실제 사진과 구분하기 어려운 포토리얼리스틱 수준의 이미지 품질 확보. 둘째, 여러 장의 이미지에서 동일한 인물로 인식될 수 있는 얼굴 일관성 유지. 셋째, 이 모든 것을 반복 가능한 자동화된 파이프라인으로 구축하는 것이었습니다. 결론부터 말하면 오픈소스 모델 조합만으로도 충분히 가능했고, 이 글에서 실제 사용한 프롬프트와 생성 결과물을 모두 공개하면서 그 전체 과정을 공유하겠습니다.

💡 TIP: 이 글에는 실제 프로젝트에서 사용한 프롬프트 원문과 그 결과로 생성된 이미지가 함께 포함되어 있습니다. 프롬프트를 복사해서 직접 테스트해 보실 수 있습니다.

2. 사용한 모델 총정리 — 이미지 4개 + 인프라 2개

이번 프로젝트에서 사용한 모델은 총 6개로, 이미지 생성 관련 모델 4개와 인프라 도구 2개의 조합입니다. 핵심은 단일 모델로 모든 것을 해결하려 하지 않고, 각 모델의 장점을 살려 역할을 분담시킨 것입니다.

모델 조합 비교표 — 이미지 모델 4개와 인프라 2개의 역할 정리

▲ 모델 조합 비교표 — 이미지 모델 4개와 인프라 2개의 역할 정리

메인 생성 모델: RealVisXL V5.0 + Flux.1 Dev

RealVisXL V5.0은 SG_161222 개발자가 여러 SDXL 기반 모델들을 체크포인트 머징 기법으로 합성하여 만든 포토리얼리스틱 전문 모델입니다. Civitai에서 월 58,000건 이상의 다운로드를 기록할 정도로 커뮤니티에서 높은 평가를 받고 있습니다. 특히 인물 사진에서의 피부 질감, 조명 처리, 눈동자 디테일이 탁월합니다. 파일 크기는 약 6.46기가바이트이며 realvisxlV50.safetensors 형태로 배포됩니다. SDXL 아키텍처 기반이라 기본 해상도가 1024x1024로 높고, 프롬프트에 실제 카메라와 렌즈 정보를 넣으면 해당 카메라 특유의 색감과 보케를 재현하는 능력이 뛰어납니다.

Flux.1 Dev는 Black Forest Labs에서 개발한 차세대 이미지 생성 모델로, SDXL보다 한 세대 앞선 아키텍처를 사용합니다. 23.8기가바이트에 달하는 거대한 모델 크기만큼 이미지 품질도 한 단계 높습니다. 이 프로젝트에서는 Flux를 PuLID와 조합하여 얼굴 일관성이 필요한 이미지를 생성할 때 주로 사용했습니다. 실제 루미의 전신 패션 포토는 대부분 Flux + PuLID 파이프라인으로 생성했습니다.

얼굴 일관성: PuLID Flux v0.9.1 + InsightFace AntelopeV2

PuLID는 Pure and Lightning ID Customization의 약자로, 별도의 학습 없이 레퍼런스 이미지 1장만으로 얼굴 특징을 주입할 수 있는 어댑터입니다. LoRA처럼 모델 가중치를 변경하는 방식이 아니라 생성 시점에 얼굴 정체성을 주입하는 방식이라 추가 학습 시간이 전혀 필요 없습니다. InsightFace AntelopeV2는 얼굴 감지와 특징 추출을 담당하며, 레퍼런스 이미지에서 512차원 얼굴 임베딩 벡터를 추출합니다. 4개의 ONNX 모델 파일로 구성되어 있으며 (1k3d68.onnx, 2d106det.onnx, genderage.onnx, glintr100.onnx), 8기가바이트 VRAM에서도 동작할 정도로 가벼워서 접근성이 좋습니다.

인프라: ComfyUI (RunPod) + SQLite

ComfyUI는 노드 기반의 스테이블 디퓨전 워크플로우 도구로, 이 프로젝트에서는 API 모드를 활용하여 Python 스크립트(comfy_client.py)에서 프로그래밍 방식으로 워크플로우를 실행했습니다. RunPod 클라우드 GPU 인스턴스에 ComfyUI를 올려서 원격으로 이미지를 생성하는 구조입니다. SQLite는 생성된 인플루언서 프로필과 이미지 메타데이터를 관리하는 경량 데이터베이스로 사용했습니다.

3. RunPod + ComfyUI 환경 구축

로컬 GPU가 없거나 VRAM이 부족할 때 클라우드 GPU는 훌륭한 대안입니다. RunPod에서 A40(48기가바이트 VRAM)을 사용했으며 커뮤니티 클라우드 옵션으로 시간당 약 0.39달러에 이용했습니다. 환경 구축은 의외로 간단합니다. PyTorch 이미지로 Pod를 생성하면 CUDA와 기본 라이브러리가 미리 설치되어 있습니다.

RunPod A40 GPU 인스턴스에서 ComfyUI 서버를 시작하는 화면

▲ RunPod A40 GPU 인스턴스에서 ComfyUI 서버를 시작하는 화면

아래는 실제 RunPod 인스턴스에서 실행한 설치 히스토리입니다. ComfyUI를 클론하고, 체크포인트와 IP-Adapter 관련 모델들을 다운로드했습니다. 특히 RealVisXL V5.0은 Hugging Face에서 FP16 버전을 받았는데, 전체 모델 다운로드에 총 32기가바이트 이상의 용량이 필요했습니다.

# 실제 RunPod에서 실행한 설치 커맨드 (runpod.txt 원본)
cd /workspace
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI && pip install -r requirements.txt

# 체크포인트 다운로드
cd /workspace/ComfyUI/models/checkpoints
wget -O realvisxlV50.safetensors

# CLIP Vision + IP-Adapter FaceID LoRA
wget -O /workspace/ComfyUI/models/clip_vision/clip-vit-h-14.safetensors
wget -O /workspace/ComfyUI/models/loras/ip-adapter-faceid-plusv2_sd15_lora.safetensors

# 서버 시작
python main.py --listen 0.0.0.0 --port 8188
체크포인트, 어댑터, 얼굴 인식 모델 등 다운로드 과정

▲ 체크포인트, 어댑터, 얼굴 인식 모델 등 다운로드 과정

⚠ 주의: RunPod 네트워크 볼륨은 Pod 종료 시에도 유지되지만, 용량을 반드시 확인하세요. Flux.1 Dev 단독 23.8GB, RealVisXL 6.46GB입니다. 최소 50GB 이상의 볼륨을 확보하는 것을 권장합니다.

4. 레퍼런스 얼굴 생성 — 모든 것의 시작점

PuLID 기반 얼굴 일관성의 출발점은 레퍼런스 얼굴 이미지입니다. 이 한 장의 이미지에서 InsightFace가 512차원 얼굴 임베딩 벡터를 추출하고, 이후 모든 생성 이미지에서 이 벡터를 기준으로 동일한 얼굴을 재현합니다. 레퍼런스 이미지의 품질이 최종 결과물의 얼굴 일관성을 결정하므로, 가장 신경 써야 하는 단계입니다.

루미(Rumi)의 레퍼런스 이미지는 정면 클로즈업으로 생성했습니다. 스튜디오 조명에 뉴트럴 배경, 미니멀 메이크업으로 얼굴 특징이 가장 명확하게 드러나도록 했습니다. 아래가 실제 사용한 프롬프트와 그 결과입니다.

레퍼런스 레퍼런스 얼굴 이미지 (정면)
레퍼런스 얼굴 이미지 (정면)

▲ PuLID에 입력할 기준 얼굴 — InsightFace로 512차원 임베딩 추출

사용된 프롬프트:

a close-up portrait of a 22-year-old Korean woman, tall slim model build, 170cm, long legs, sharp V-line jawline, cat-like almond eyes with sligh..., minimal makeup, studio lighting, neutral gray background, 8k, shot on Canon EOS R5, 85mm f/1.4

레퍼런스 이미지 생성 후 comfy_client.pyupload_image() 메서드로 ComfyUI 서버에 업로드합니다. 이후 모든 장면 생성 시 이 레퍼런스를 PuLID 노드에 연결하여 얼굴 일관성을 유지합니다. 코드에서는 generate_references() 함수가 이 과정을 담당합니다.

# generate_rumi.py — 레퍼런스 생성 핵심 코드
IDENTITY = (
    "22-year-old Korean woman, tall slim model build, 170cm, long legs, "
    "sharp V-line jawline, cat-like almond eyes with slight upward tilt, "
    "full lips with subtle confident smirk, high cheekbones, sculpted nose, "
    "flawless porcelain skin with natural glow, "
    "long sleek straight black hair with middle part, "
    "smoky eye makeup, nude lips, sharp contour"
)

# Flux + PuLID 파이프라인으로 레퍼런스 생성
wf = flux_pulid_ref_workflow(
    REF_PROMPT, seed=42,
    width=832, height=1216,  # 전신 세로 비율
    steps=20, prefix="rumi_ref"
)
client.generate(wf, "assets/rumi/references/reference.png")
client.upload_image(out_path, "ref_rumi.png")  # ComfyUI에 업로드
💡 TIP: 레퍼런스 이미지는 정면 얼굴이 가장 효과적입니다. 측면이나 얼굴이 작게 나온 사진보다는 얼굴이 크게 나온 정면 사진을 사용하세요. InsightFace 얼굴 감지 신뢰도가 0.99 이상인 이미지가 이상적입니다.

5. 프롬프트 설계와 실제 결과 — 프롬프트 원문 공개

프롬프트 설계가 AI 이미지 생성의 핵심입니다. RealVisXL V5.0과 Flux.1 Dev 모두 프롬프트에 실제 카메라와 렌즈 정보를 포함하면 품질이 크게 향상됩니다. 루미의 모든 이미지는 shot on Sony A7IV, 35mm lens, shallow depth of field를 공통으로 사용했습니다. 실제 코드에서는 IDENTITY 문자열과 QUALITY 문자열을 모든 장면 프롬프트에 공통으로 삽입하는 구조입니다.

루미의 비주얼 아이덴티티는 personas/rumi.yaml에 정의해 두었습니다. 22세 한국 여성, 168cm 슬림 모델 체형, V라인 턱선, 캣아이, 도자기 피부 등의 얼굴 특징을 고정하고, 의상과 장소만 장면별로 변경하는 방식입니다. 총 30개 장면을 4개 카테고리로 나누어 생성했습니다: Street/OOTD(8장), Elegant/Evening(6장), Lifestyle(8장), Editorial/Campaign(8장). 아래에 실제 프롬프트와 결과를 카테고리별로 공개합니다.

Street / OOTD — 스트릿 패션

스트릿 OOTD 카테고리에서는 서울의 강남, 홍대 등 도시 배경에서 다양한 캐주얼 럭셔리 스타일을 촬영했습니다. 골든아워 자연광과 도시 네온 조명을 활용한 장면들입니다. 프롬프트에서 가장 중요한 부분은 의상 디테일인데, oversized black blazer over white crop top처럼 각 아이템을 구체적으로 명시해야 원하는 스타일이 나옵니다.

Street / OOTD 블레이저 스트릿 룩
블레이저 스트릿 룩

▲ 강남 골든아워 — 오버사이즈 블랙 블레이저 + 와이드 진

사용된 프롬프트:

a full-body fashion photo of a 22-year-old Korean woman, tall slim model build, 170cm, long legs, sharp V-line jawline, cat-like almond eyes with slight upward tilt, full lips with subtle confident smirk, high cheekbones, sculpted nose, flawless porcelain skin with natural glow, long sleek straight black hair with middle part, smoky eye makeup, nude lips, sharp contour, wearing oversized black blazer over white crop top and low-rise wide-leg jeans, chunky white sneakers, chunky gold chain necklace, standing on Seoul Gangnam street at golden hour, one hand in pocket, full-body shot, fashion editorial photography, 8k uhd, ultra detailed, photorealistic, shot on Sony A7IV, 35mm lens, shallow depth of field
Street / OOTD 올블랙 모노크롬
올블랙 모노크롬

▲ 블랙 크롭 블레이저 + 블랙 하이웨이스트 숏츠, 미니멀 화이트 복도

사용된 프롬프트:

a full-body fashion photo of a 22-year-old Korean woman, tall slim model build, 170cm, long legs, sharp V-line jawline, cat-like almond eyes with slight upward tilt, full lips with subtle confident smirk, high cheekbones, sculpted nose, flawless porcelain skin with natural glow, long sleek straight black hair with middle part, smoky eye makeup, nude lips, sharp contour, wearing black structured crop blazer with gold buttons and matching black high-waisted tailored shorts, black pointed-toe mules, gold chain belt, standing in minimalist white corridor, dramatic directional light, full-body shot, fashion editorial photography, 8k uhd, ultra detailed, photorealistic, shot on Sony A7IV, 35mm lens, shallow depth of field

Beauty 클로즈업 — 피부 질감의 진수

RealVisXL V5.0과 Flux의 진가는 뷰티 클로즈업에서 드러납니다. 아래 글래스 스킨 이미지를 보면 모공, 피부결, 빛 반사까지 실제 뷰티 매거진 화보 수준의 디테일을 보여줍니다. ultra detailed skin textureglass skin finish 키워드가 핵심입니다.

Beauty 글래스 스킨 클로즈업
글래스 스킨 클로즈업

▲ RealVisXL V5.0의 피부 질감 표현력 — 유리알 같은 광채 피부

사용된 프롬프트:

a close-up beauty portrait of a 22-year-old Korean woman, tall slim model build, 170cm, long legs, sharp V-line jawline, cat-like almond eyes with slight upward tilt, full lips with subtle confident smirk, high cheekbones, sculpted nose, flawless porcelain skin with natural glow, long sleek straight black hair with middle part, smoky eye makeup, nude lips, sharp contour, glitter eye shadow, glass skin finish, ultra detailed skin texture, beauty magazine style, ring light

Lifestyle — 일상 속 자연스러운 장면

라이프스타일 카테고리는 카페, 루프탑, 서점, 호텔 등 일상적이면서도 감성적인 장소에서의 장면입니다. SNS 인플루언서의 핵심 콘텐츠인 카페 사진을 예시로 보겠습니다. soft window light, warm tones로 자연광 분위기를 연출했고, holding iced americano로 소품과의 상호작용까지 표현했습니다.

Lifestyle 미니멀리스트 카페
미니멀리스트 카페

▲ 한국 카페에서 아이스 아메리카노 — 자연광 창가 촬영

사용된 프롬프트:

a full-body fashion photo of a 22-year-old Korean woman, tall slim model build, 170cm, long legs, sharp V-line jawline, cat-like almond eyes with slight upward tilt, full lips with subtle confident smirk, high cheekbones, sculpted nose, flawless porcelain skin with natural glow, long sleek straight black hair with middle part, smoky eye makeup, nude lips, sharp contour, wearing black fitted ribbed knit top and cream wide-leg trousers, minimal gold rings, black leather tote bag on chair, sitting cross-legged at minimalist Korean cafe, holding iced americano, soft window light, warm tones, full-body shot, fashion editorial photography, 8k uhd, ultra detailed, photorealistic, shot on Sony A7IV, 35mm lens, shallow depth of field

Night Out & Editorial — 감각적인 무드

나이트 아웃과 에디토리얼 카테고리는 가장 드라마틱한 결과물이 나오는 장르입니다. 네온 조명이 피부에 반사되는 색감이나, 순백 스튜디오에서의 하이패션 포즈 등 다양한 무드를 만들 수 있습니다.

실전 비교 네온 에디토리얼 나이트 vs 보그 스튜디오 에디토리얼
네온 에디토리얼 나이트

서울 야간 네온사인 반사 — 핑크 블루 컬러 그레이딩

보그 스튜디오 에디토리얼

화이트 스튜디오 — 디스트럭처드 블레이저 드레스, 보그 코리아 스타일

네온 에디토리얼 장면에서는 neon signs reflecting pink and blue on skin and clothes가 핵심 키워드입니다. Flux 모델은 조명의 색온도와 반사를 매우 정교하게 처리하여 피부 위에 핑크와 블루가 자연스럽게 어우러지는 결과를 만들어냅니다. 보그 스튜디오 에디토리얼에서는 professional lighting with rim light, Vogue Korea style로 하이패션 매거진 느낌을 구현했습니다.

프롬프트 구조 — IDENTITY + 장면 + QUALITY 조합 패턴

▲ 프롬프트 구조 — IDENTITY + 장면 + QUALITY 조합 패턴

6. PuLID로 얼굴 일관성 확보하기

버추얼 인플루언서를 만들 때 가장 큰 기술적 장벽은 얼굴 일관성입니다. 단일 이미지를 만드는 것은 쉽지만, 수십 장의 이미지에서 같은 사람으로 인식되어야 하기 때문입니다. 기존에는 LoRA를 학습시키는 방법이 주류였지만, 가상 인물에 대해 학습용 이미지를 확보하는 것 자체가 닭이 먼저냐 달걀이 먼저냐의 문제입니다. PuLID는 이 문제를 우아하게 해결합니다.

PuLID + InsightFace로 얼굴 일관성을 유지하며 이미지를 생성하는 과정

▲ PuLID + InsightFace로 얼굴 일관성을 유지하며 이미지를 생성하는 과정

실제 코드에서는 comfy_client.pyflux_pulid_workflow() 함수가 이 전체 과정을 캡슐화합니다. 프롬프트, 레퍼런스 이미지명, PuLID 가중치를 인자로 받아 ComfyUI API 워크플로우 JSON을 생성합니다. pulid_weight=1.0으로 설정하여 얼굴 유사도를 최대화했고, 해상도는 832x1216으로 전신 세로 비율을 사용했습니다.

# comfy_client.py — Flux + PuLID 워크플로우 호출
wf = flux_pulid_workflow(
    prompt=scene["prompt"],
    ref_image="ref_rumi.png",       # 레퍼런스 얼굴 이미지
    seed=seed,
    width=832, height=1216,          # 전신 세로 비율
    steps=20,
    pulid_weight=1.0,                # 얼굴 유사도 최대화
    prefix=f"rumi_{idx:02d}",
)
client.generate(wf, out_path, timeout_s=360)

아래 3장의 이미지를 비교해 보세요. 각각 완전히 다른 장소, 의상, 조명이지만 얼굴의 전체적인 특징인 브이라인 턱선, 캣아이, 높은 광대뼈 등이 일관되게 유지되는 것을 확인할 수 있습니다. 이것이 PuLID의 위력입니다.

갤러리 얼굴 일관성 비교 — 다른 장소, 같은 얼굴
블레이저 스트릿 룩

블레이저 스트릿 룩

미니멀리스트 카페

미니멀리스트 카페

네온 에디토리얼 나이트

네온 에디토리얼 나이트

7. 실전 포스팅용 이미지 생성 — 인스타 콘텐츠 자동화

30장의 기본 이미지 세트를 확보한 후에는 실제 SNS 포스팅을 위한 장면별 이미지 세트를 생성했습니다. generate_post.py 스크립트가 이 역할을 담당하며, 날짜별로 장소 컨셉에 맞는 6장의 이미지를 자동으로 생성합니다. 각 세트는 전신 스탠딩, 워킹 캔디드, 앉은 포즈, 뒤돌아보기, 기대는 포즈, 디테일 순간 등 다양한 앵글을 포함합니다.

아래는 실제로 생성한 포스팅 이미지 중 성수동 카페와 청담동 거리 장면입니다. 하나의 컨셉에서 여러 장을 뽑아 인스타 캐러셀 형태로 올릴 수 있도록 설계했습니다. post.json 파일에는 포스트 날짜, 장소, 캡션, 해시태그, 이미지 수가 함께 저장됩니다.

실전 비교 성수동 카페 포스팅용 vs 청담동 거리 워킹 캔디드
성수동 카페 포스팅용

실제 인스타 포스팅을 위해 생성한 성수동 카페 장면 (전신 스탠딩)

청담동 거리 워킹 캔디드

청담동 거리에서 자연스러운 워킹 샷 — 캔디드 스타일

캡션도 자동으로 생성됩니다. rumi_system_prompt.yaml에 정의된 루미의 성격과 말투를 기반으로 LLM이 각 장면에 맞는 캡션을 만듭니다. 예를 들어 성수동 카페 포스팅의 캡션은 "아메리카노 한 잔의 여유 🖤"이었고, 해시태그로 #루미 #Rumi #OOTD #걸크러시 #성수동카페가 자동 생성되었습니다.

# post.json 예시 — 성수동 카페 포스팅
{{
  "post_date": "2026-04-08",
  "location": "성수동 카페",
  "caption": "아메리카노 한 잔의 여유 🖤",
  "hashtags": ["#루미", "#Rumi", "#OOTD", "#걸크러시",
               "#데일리룩", "#패션", "#GirlCrush", "#성수동카페"],
  "num_images": 6
}}
AI 버추얼 인플루언서 생성 파이프라인 전체 플로우

▲ AI 버추얼 인플루언서 생성 파이프라인 전체 플로우

8. 품질 평가와 데이터 관리

이미지를 대량으로 생성하면 품질이 들쭉날쭉해지는 것은 피할 수 없습니다. 그래서 생성된 이미지의 품질을 자동으로 평가하고 일정 기준 이하의 이미지를 걸러내는 파이프라인을 구축했습니다. FID(Frechet Inception Distance)와 CLIP Score를 주요 지표로 사용했으며, 얼굴 유사도는 InsightFace의 코사인 유사도로 평가했습니다.

FID와 CLIP Score 기반 이미지 품질 자동 평가 결과

▲ FID와 CLIP Score 기반 이미지 품질 자동 평가 결과

생성된 이미지와 메타데이터는 SQLite 데이터베이스로 관리했습니다. influencers 테이블은 각 버추얼 인플루언서의 프로필 정보를, generated_images 테이블은 이미지 파일 경로, 사용 모델, 시드값, 품질 점수를 기록합니다. 시드값을 저장해 두면 나중에 동일한 결과를 재현하거나, 비슷한 스타일로 변형 생성할 수 있어서 매우 유용합니다.

SQLite 데이터베이스에 인플루언서 프로필과 이미지 메타데이터를 저장하는 과정

▲ SQLite 데이터베이스에 인플루언서 프로필과 이미지 메타데이터를 저장하는 과정

# SQLite 데이터베이스 스키마
CREATE TABLE influencers (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    concept TEXT,
    style TEXT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE generated_images (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    influencer_id INTEGER REFERENCES influencers(id),
    path TEXT NOT NULL,
    model TEXT NOT NULL,
    seed INTEGER,
    prompt_id INTEGER,
    fid_score REAL,
    clip_score REAL,
    face_similarity REAL,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

9. 트러블슈팅과 비용 분석

CUDA Out of Memory 해결

A40의 48기가바이트 VRAM이면 충분할 줄 알았는데, Flux.1 Dev와 PuLID를 동시에 로드하고 832x1216 이미지를 생성하면 VRAM이 부족해지는 상황이 발생했습니다. 해결 방법은 VAE를 FP32에서 FP16으로 전환하여 VRAM 사용량을 약 40% 절감하고, 배치 크기를 1로 줄여 순차 생성 모드로 전환하는 것이었습니다.

CUDA OOM 에러 발생과 FP16 VAE 전환으로 해결하는 과정

▲ CUDA OOM 에러 발생과 FP16 VAE 전환으로 해결하는 과정

손가락 기형 문제

SDXL 모델의 고질적인 손가락 기형은 RealVisXL V5.0에서도 완전히 해결되지 않았습니다. 10장 중 2~3장에서 발생했으며, 네거티브 프롬프트에 extra fingers, mutated hands, fused fingers를 포함하고, 손이 보이는 포즈를 최소화하는 전략으로 대응했습니다. 실제 코드의 NEG_PROMPT 변수에 이 키워드들이 포함되어 있습니다.

VRAM 요구량Flux+PuLID 조합은 최소 24GB VRAM 필요, A40(48GB) 이상 권장
손가락 품질SDXL 모델 특유의 손가락 기형 약 20~30% 발생, 네거티브 프롬프트로 완화
생성 속도Flux 모델 기준 장당 약 18초, 대량 생성 시 RunPod 비용 계산 필요

비용 분석

RunPod A40 기준 시간당 0.39달러입니다. RealVisXL SDXL 모드로 장당 약 12초, Flux+PuLID 모드로 장당 약 18초가 소요됩니다. 1시간에 SDXL은 약 300장, Flux는 약 200장 생성이 가능합니다. 장당 비용으로 환산하면 0.001~0.002달러 수준으로, 달리 3의 장당 0.04달러 대비 약 20배 저렴합니다. 물론 초기 설정 시간과 프롬프트 엔지니어링 시간을 고려해야 하지만, 수백 장 이상 생성하는 프로젝트라면 오픈소스 파이프라인이 압도적으로 경제적입니다.

RealVisXL V5.0 (SDXL)

생성 속도: 장당 12초
VRAM 사용량: ~8GB
장당 비용: ~0.0013달러
최적 용도: 빠른 포토리얼 대량 생성

Flux.1 Dev + PuLID

생성 속도: 장당 18초
VRAM 사용량: ~26GB
장당 비용: ~0.002달러
최적 용도: 얼굴 일관성 필요 시

프로젝트 최종 요약 — 6개 모델 조합으로 완성한 AI 인플루언서 파이프라인

▲ 프로젝트 최종 요약 — 6개 모델 조합으로 완성한 AI 인플루언서 파이프라인

10. 마무리 — 느낀 점과 앞으로의 방향

약 4주간의 프로젝트 기간 동안 루미라는 버추얼 인플루언서를 위해 기본 30장의 패션 포토와 날짜별 포스팅 세트(3일치 x 6장 = 18장)를 생성했습니다. 오픈소스 AI 이미지 생성 기술이 이미 상업적으로 충분히 활용 가능한 수준에 도달했다는 것을 확인할 수 있었습니다.

특히 인상적이었던 조합은 Flux.1 Dev + PuLID입니다. 레퍼런스 이미지 1장만으로 학습 없이 얼굴 일관성을 확보할 수 있다는 것은 버추얼 인플루언서 제작의 진입 장벽을 크게 낮춰줍니다. RealVisXL V5.0의 피부 질감 표현력도 놀라웠고, ComfyUI의 API 모드를 활용한 자동화 파이프라인은 한 번 구축해 놓으면 새로운 인플루언서를 추가하는 것이 프롬프트 작성과 레퍼런스 이미지 준비만으로 가능합니다.

물론 한계도 있습니다. 손가락 기형, 전신 체형 일관성, 다양한 표정 생성 등은 아직 개선이 필요한 영역입니다. 앞으로는 ControlNet을 추가하여 포즈 제어를 자동화하고, 영상 생성으로 확장하여 숏폼 콘텐츠까지 만들 수 있는 파이프라인을 목표로 하고 있습니다. 최종적으로는 이미지 생성부터 캡션 작성, SNS 포스팅까지 완전 자동화하는 것이 꿈입니다.

💡 TIP: 이 프로젝트의 전체 코드와 워크플로우는 추후 GitHub에 공개할 예정입니다. 관심 있으신 분들은 댓글로 남겨주시면 공개 시 알려드리겠습니다.

자주 묻는 질문 (FAQ)

Q1. RealVisXL V5.0과 Flux.1 Dev 중 어떤 모델을 먼저 사용해야 하나요?+

용도에 따라 다릅니다. 빠른 포토리얼 이미지가 필요하고 VRAM이 제한적이라면 RealVisXL V5.0(SDXL)을 추천합니다. 약 8기가바이트 VRAM으로도 동작하며 장당 12초로 빠릅니다. 최고 수준의 이미지 품질과 PuLID 얼굴 일관성을 적용해야 한다면 Flux.1 Dev를 사용하세요. 이 프로젝트에서는 Flux+PuLID를 메인 파이프라인으로, RealVisXL을 폴백으로 사용했습니다.

Q2. PuLID 없이 LoRA로 얼굴 일관성을 확보하는 것은 어떤가요?+

LoRA는 여전히 유효한 방법이지만 학습용 이미지가 최소 20장 이상 필요하고 학습 시간이 30분에서 수 시간 걸립니다. 가상 인물의 경우 학습용 이미지를 확보하는 것 자체가 어렵습니다. PuLID는 레퍼런스 1장으로 즉시 적용 가능하여 신규 인물 추가 비용이 거의 없습니다. 장기 운영 인플루언서라면 PuLID로 초기 이미지를 확보한 뒤 LoRA를 학습하는 하이브리드 전략도 고려해 볼 만합니다.

Q3. RunPod 말고 로컬 GPU로도 가능한가요?+

가능합니다. RealVisXL V5.0만 사용한다면 RTX 3060 12GB로도 동작합니다. Flux+PuLID 조합은 최소 RTX 3090(24GB) 이상이 필요합니다. RTX 4090(24GB)이면 전체 파이프라인을 로컬에서 구동할 수 있습니다. 로컬 GPU가 부족하다면 RunPod 커뮤니티 클라우드(A40 시간당 0.39달러)가 가장 경제적인 대안입니다.

Q4. 생성된 이미지의 저작권과 라이선스는 어떻게 되나요?+

RealVisXL V5.0은 CreativeML Open RAIL-M 라이선스를 따르며 상업적 사용이 허용됩니다. 다만 Flux.1 Dev는 Non-Commercial License로 비상업적 용도로만 사용 가능합니다. 상업적 용도라면 Flux.1 Pro API를 이용하거나 RealVisXL(SDXL) 모드만 사용해야 합니다. 프로젝트 시작 전에 모든 모델의 라이선스를 반드시 확인하세요.

Q5. 이 파이프라인으로 실제 수익을 낼 수 있나요?+

기술적으로는 가능합니다. AI 버추얼 인플루언서 시장은 급성장 중이며, 실제로 많은 기업들이 가상 인물을 마케팅에 활용하고 있습니다. 다만 수익화에는 이미지 품질 외에도 콘텐츠 전략, 팔로워 확보, 브랜드 협업 등의 요소가 필요합니다. 이 파이프라인은 이미지 생성과 자동화 부분을 해결하므로, 콘텐츠 기획과 마케팅에 집중할 수 있다는 것이 장점입니다. 상업용이라면 Flux.1 Dev의 라이선스 제한에 주의하세요.

읽어주셔서 감사합니다

궁금한 점이나 피드백은 댓글로 남겨주세요.
비슷한 프로젝트를 진행 중이시라면 경험을 공유해 주시면 큰 도움이 됩니다.

반응형
소개 | 개인정보처리방침 | 문의

Categories