Higgsfield API로 밈 영상 자동화하기, Genjutsu로 6편 만들어 본 과정과 한 편 비용
Higgsfield API와 Genjutsu로 레퍼런스 밈 영상에 제 사진을 넣어 새 밈을 자동으로 만든 과정을 정리했습니다. API 키 연결, 작업 폴더 구조, 검열 실패 사례, 최종 6편의 실제 비용표까지 담았습니다.

인스타그램 릴스에서 도는 밈 영상에 제 사진만 넣어 주인공을 바꾸는 작업을 몇 번 해봤습니다. 한 편씩 손으로 만들면 재밌고 끝이라, 레퍼런스 영상만 넣으면 밈을 계속 뽑아주는 시스템을 만들어 보기로 했습니다.
이번 글에서는 Higgsfield API와 Higgsfield의 자체 영상 모델 Genjutsu로 밈 영상 자동화 시스템을 만들고 실제로 6편을 만들어 보면서 들어간 비용까지 정리해 보겠습니다. 제가 하는 일은 영상과 사진을 넣는 것까지이고 분석부터 프롬프트 작성, 생성, 검수는 Claude Code가 스킬을 따라 진행합니다. (코드는 GitHub에 공개해 두었습니다.)
사용 도구 및 준비물
API와 Genjutsu란?
API(Application Programming Interface, 프로그램끼리 주고받는 주문 창구)는 식당 주문으로 생각하시면 됩니다. Higgsfield 사이트에 들어가 버튼을 눌러 영상을 만드는 건 식당에 직접 가서 먹는 것이고 API는 주방으로 바로 들어가는 주문서입니다. 내 프로그램이 모델, 프롬프트, 화면 비율을 적어 보내면 완성된 이미지나 영상이 돌아옵니다.
사이트에서는 사람이 버튼을 한 번 눌러야 한 개가 나오지만 API는 프로그램이 주문서를 대신 씁니다. 시트에 100줄을 적어두면 주문서 100장이 들어가는 식입니다. API 키는 그 주문서에 찍는 내 도장이라 절대 남에게 보여주면 안 됩니다.
요금은 월 정기 결제가 아니라 충전해 둔 금액에서 쓴 만큼 빠집니다. 이 점이 자동화와 잘 맞는다고 봤습니다.

콘솔의 Explore models에는 Seedance, Kling, MiniMax 같은 다른 회사 모델도 있지만 제가 고른 건 Higgsfield Exclusive 배지가 붙은 Genjutsu(Higgsfield 자체 영상 변환 모델)입니다. 기존 영상에 이미지를 넣어 인물이나 사물을 바꿔주는 모델이고 방식이 두 가지입니다.
- object-swap(대상 바꾸기): 원본 화면은 최대한 그대로 두고 지정한 인물·사물만 바꿉니다.
- motion-transfer(동작 옮기기): 원본의 동작·카메라 움직임만 가져와 화면을 새로 그립니다.

입력은 레퍼런스 영상 1개, 바꿔 넣을 이미지 최대 8장, 프롬프트 세 가지입니다. 오른쪽 아래 Price에는 1초당 480p $0.318, 720p $0.681, 1080p $1.632이고 길이는 초 단위로 올림한다고 적혀 있습니다. (작성일 기준 정가입니다.)
준비물과 API 키 연결
준비물은 Claude Code(터미널에서 쓰는 Claude 코딩 도구, Claude 유료 요금제 필요), Higgsfield 계정, 영상 자르기용 ffmpeg, 파이썬 환경을 알아서 잡아주는 uv입니다. 생성은 Higgsfield 서버에서 돌아서 GPU는 필요 없습니다(Windows·macOS 명령 동일).
키는 콘솔(console.higgsfield.ai)에서 발급합니다. 저는 이름을 youtube-demo로 만들었고 KEY_ID와 KEY_SECRET 두 값이 나옵니다. 콘솔이 Claude Code용 셋업 프롬프트도 주지만 저는 공식 문서 링크를 주고 시스템을 만들어 달라고 요청했습니다. 충전은 Top up에서 금액을 정해 결제합니다.
키는 코드에 직접 쓰지 않고 .env라는 설정 파일에 넣습니다. 저장소를 받아 한 줄만 채우고 연결을 확인합니다.
git clone https://github.com/hotorch/video-meme-generator.git
cd video-meme-generator
uv sync # 필요한 파이썬 패키지 설치 (1분 안쪽)
cp .env.example .env # .env를 열어 HF_KEY=KEY_ID:KEY_SECRET 한 줄만 채움
uv run memegen doctor # generation 줄이 "REST API ready"면 연결 완료
doctor 결과에서 generation이 REST API ready면 준비가 끝납니다.
.env와 얼굴 사진 폴더 assets/characters/, 작업 폴더 work/는 GitHub에 올라가지 않으니 본인 사진은 직접 넣어야 합니다. (Claude Code가 읽는 규칙 파일 점검은 CLAUDE.md 진단 글에서 다뤘습니다.)
밈 한 편이 만들어지는 과정
Claude Code에 "이 영상에 나 넣어줘 <영상 주소>"라고 하면 work/ 아래에 밈 하나당 폴더가 생기고 단계별로 채워집니다. 실제 폴더는 다음과 같습니다.
work/20260929-1741-kitchen-cat-dance/
├── 01_input 원본 영상, 정수 초로 맞춘 영상
├── 02_analysis 장면 분석, 캐스팅, Genjutsu 프롬프트
├── 03_assets 넣을 이미지 (내 캐릭터, 사물)
├── 04_renders 생성 테이크, 검수용 비교 시트
└── 05_final 원본 소리까지 입힌 완성본
폴더 이름이 곧 순서입니다. 누가 무엇을 하는지 분석하고, 바꿀 인물과 이미지를 정하고, 프롬프트를 검사기로 확인한 뒤 생성합니다. 마지막에 원본과 나란히 놓고 얼굴을 검수합니다. 대기열이 길면 한 편에 10~40분 걸렸습니다.
첫 예시는 저희 집 고양이입니다. 고양이가 두 발로 서서 춤추다 소리치는 29초짜리 영상에 고양이 이미지 2장을 넣어 object-swap, 480p로 돌렸습니다(예상 비용 $9.22).

무늬와 눈 색은 넣은 이미지대로 바뀌었고 앞발을 흔드는 동작과 주방 배경은 원본 그대로입니다. 동물은 생각보다 잘 됐습니다. 29초 결과 전체를 움직이는 이미지로 옮겼습니다(360px, 초당 6프레임, 소리 없음).

프롬프트는 Claude Code가 영상을 분석해 초안을 쓰고, 검사기를 거쳐 다시 고친 뒤에 보냈습니다. 두 버전을 모두 남겨 두었는데 비교해 보면 배울 게 있습니다. 먼저 초안입니다.
<<<video_1>>> is the source: keep its camera path, framing, cuts, timing and rhythm, lighting and background exactly. Replace a brown-tabby-and-white domestic cat with green eyes, a white blaze down the nose, a white chest and belly, dark tabby stripes with a few orange patches on the legs, pink paw pads, standing upright on its hind legs like a person (center of frame, standing in the kitchen facing the camera; drifts left/right and moves closer to the lens mid-clip) with the cat in <<<image_1>>> <<<image_2>>>. Each new person keeps the identity, face, hair and body type of their references for the whole clip while matching the original motion, gestures, lip movements and expressions. Natural fabric and hair motion, smooth grounded movement, consistent lighting. No identity drift, no face morphing, no extra people or limbs, no text, no logos, no watermark.
(번역) <<<video_1>>>이 원본이다. 카메라 경로, 구도, 컷, 타이밍과 리듬, 조명과 배경을 정확히 유지해. 초록 눈, 콧등의 흰 줄, 흰 가슴과 배, 진한 태비 줄무늬에 다리 쪽 주황 얼룩, 분홍 발바닥을 가진 갈색 태비·흰색 고양이(화면 중앙, 부엌에서 카메라를 보며 사람처럼 뒷발로 서 있음. 중간에 좌우로 움직이며 렌즈 쪽으로 다가옴)를 <<<image_1>>> <<<image_2>>>의 고양이로 바꿔. 새 인물은 클립 내내 참조의 정체성·얼굴·머리·체형을 유지하면서 원본의 동작·몸짓·입 모양·표정을 따라 한다. 자연스러운 옷감과 머리카락 움직임, 땅에 붙은 부드러운 움직임, 일관된 조명. 정체성 변화, 얼굴 변형, 추가 인물이나 팔다리, 글자, 로고, 워터마크 없음.
초안 뒤쪽에 "새 인물", "옷감과 머리카락", "추가 인물"이 남아 있습니다. 사람을 바꿀 때 쓰는 문장 틀을 그대로 가져온 흔적입니다. 실제로 보낸 최종본은 이렇습니다.
<<<video_1>>> is the source: keep its handheld camera, framing, the push-in to the extreme face close-up, timing and rhythm, the dark kitchen, the wire pendant lamps, the white chairs and the lighting exactly. Replace the tabby-and-white cat standing upright on its hind legs in the center of the kitchen with the cat from <<<image_1>>>, with the face of <<<image_2>>>: a tortoiseshell tabby with orange-brown and black stripes, a white chest bib, white front paws and olive-green eyes. In the close-up where the cat's face fills the frame and it paws at the lens, keep the face of <<<image_2>>> sharp and consistent. The new cat performs exactly the original movements: standing upright on its hind legs, the raised paw waves and boxing moves, walking up to the camera, pawing at the lens, then spreading both arms wide and opening its mouth to shout, in sync with the original timing, and keeps the same fur pattern for the whole clip. Natural fur motion, smooth grounded movement, consistent lighting. No identity drift, no face morphing, no extra cats or limbs, no text, no logos, no watermark.
(번역) <<<video_1>>>이 원본이다. 핸드헬드 카메라, 구도, 얼굴 극단 클로즈업으로 밀고 들어가는 움직임, 타이밍과 리듬, 어두운 부엌, 철사 펜던트 조명, 흰 의자, 조명을 정확히 유지해. 부엌 한가운데 뒷발로 서 있는 태비·흰색 고양이를 <<<image_1>>>의 고양이로 바꾸고 얼굴은 <<<image_2>>>를 따른다. 주황 갈색과 검은 줄무늬의 삼색 태비, 흰 가슴 턱받이, 흰 앞발, 올리브 초록 눈. 고양이 얼굴이 화면을 채우고 렌즈를 앞발로 건드리는 클로즈업에서 <<<image_2>>>의 얼굴을 선명하고 일관되게 유지해. 새 고양이는 원본 동작을 정확히 따라 한다. 뒷발로 서기, 앞발 흔들기와 복싱 동작, 카메라로 걸어오기, 렌즈 건드리기, 두 팔을 활짝 벌리고 입을 벌려 소리치기를 원본 타이밍에 맞춰 하고, 클립 내내 같은 털 무늬를 유지한다. 자연스러운 털 움직임, 땅에 붙은 부드러운 움직임, 일관된 조명. 정체성 변화, 얼굴 변형, 추가 고양이나 팔다리, 글자, 로고, 워터마크 없음.
달라진 점은 세 가지입니다. 사람용 단어를 고양이용(털 무늬, 추가 고양이)으로 바꿨고, 원본 고양이의 생김새를 길게 묘사하던 자리에 바꿔 넣을 고양이의 생김새를 적었고, 얼굴이 화면을 채우는 클로즈업 구간을 따로 짚어 그 구간의 얼굴을 지키라고 했습니다. 참고로 <<<image_1>>>은 앉아 있는 전신 정면 사진, <<<image_2>>>는 얼굴과 흰 가슴이 크게 나온 사진입니다.
생성 후에는 검수 단계가 원본과 결과에서 8프레임(2~27초)을 뽑아 비교하고 판정을 남깁니다. 이 한 편의 판정 기록을 옮기면 다음과 같습니다.
take 1 · gate passed · score 8
right_subject_swapped true (바꿀 대상이 제대로 바뀜)
identity_holds true (전신 춤 구간에서 무늬 유지)
identity_in_face_closeup true (16~23초 클로즈업에서도 얼굴 유지)
motion_sync true (동작이 원본 타이밍과 맞음)
background_unchanged true (부엌·조명·의자 그대로)
no_artifacts true
note: 결과 28.71초 vs 원본 29.0초라 일부 순간이 약 0.3초 어긋남, 빠른 동작에서 앞발이 흐림(480p)
(괄호 안 풀이와 마지막 줄은 원래 영어 기록을 제가 한국어로 옮긴 것입니다.)
두 번째는 의자에 앉은 여성 뒤로 픽업트럭이 점프하는 12초 영상에 "앉은 사람은 나로, 선글라스는 원본처럼, 트럭은 검정 SUV로"라고만 요청했습니다.

배경의 먼지와 차 움직임을 지켜야 해서 object-swap을 골랐고 차 이미지는 Codex CLI(OpenAI의 터미널 도구)로 만들어 넣었습니다. 재밌었던 건 선글라스였습니다. "시트에서 가져오지 않는 건 안경뿐"이라는 문장을 얼굴 설명 앞에 두지 않으면, 제 사진 속 맨눈을 그대로 가져와 선글라스가 사라졌습니다. (원본 영상은 다른 분의 저작물이라 이 글에는 결과 프레임만 싣습니다.)
실패 사례와 한계
잘 된 것보다 막힌 곳에서 배운 게 많았습니다. 이틀간 레퍼런스 6개로 80번 넘게 돌린 기록 중 비용과 직결되는 것만 추렸습니다.
생성 요청이 파일로 남은 작업 폴더 11개(고양이 두 편은 별도 경로로 돌려 제외)만 집계해도 66회입니다. 폴더별로 완료·실패·거절을 나누면 다음과 같습니다.

66회 중 56회가 완료(과금), 4회가 실패, 6회가 ip_detected 거절이었습니다. 해상도는 480p 34회, 720p 32회였습니다. 거절 6회는 전부 두 폴더(studio-duo-orange 3회, carpool-color-rap-v03 3회)에서 나왔습니다. 위에 쓴 "80번 넘게"는 영상 촬영 당시의 기억이고, 지금 파일로 확인되는 숫자는 이 66회와 고양이 두 편의 2회입니다.
| 겪은 일 | 결과 | 대응 |
|---|---|---|
| 처음 고른 레퍼런스 영상 | NSFW 검열로 거절 | 다른 바이럴 영상으로 교체 |
| 실제 방송 영상, 유명인 사진 투입 | nsfw·ip_detected로 거절, 크레딧 환불 | 모드나 입력을 바꿔 재시도 |
| object-swap에 유명인 사진 | 두 번은 "완료"로 끝나 과금됐는데 얼굴은 원본 그대로 | motion-transfer로 전환 |
| object-swap으로 내 얼굴 넣기 | 원본 배우의 턱·볼·머리 크기가 남음 | 얼굴이 크게 나오면 motion-transfer |
| 다른 인종 두 사람을 한 화면에 | 얼굴이 뭉개짐 | 프롬프트 보강 중 (미해결) |
| 4초 테스트 통과 후 18.5초 전체 생성 | 사람이 작아지는 구간에서 원본 얼굴로 돌아감 | 전체 테이크도 따로 검수 |
| 응답이 안 온 MCP(Claude용 커넥터) 요청 | 실제로는 생성·과금(140 크레딧) | 결과 확인 전 재요청 금지 |
영상에서 "검열에 걸리면 크레딧은 다 반환된다"고 말했는데 조금 정정합니다. 거절·실패로 끝난 요청은 환불됐지만, 완료로 끝났는데 결과가 엉뚱한 경우(표 세 번째 줄)와 마음에 안 드는 완성본은 과금됩니다. 샘 알트먼이 랩을 하고 제가 옆에서 더블링하는 듀오 버전은 얼굴이 뭉개져 만족도가 높지 않았습니다. 프롬프트를 다듬으면 나아질 것 같지만 아직 확인하지 못했습니다.
밈 한 편 비용
영상 마지막에 공개하겠다고 한 금액입니다. 최종본 6편의 청구 내역과 공식 가격을 한 장으로 정리했습니다.

| 영상 | 모드 | 해상도 | 길이 → 과금 | 크레딧 (Starter 환산) | API 정가 |
|---|---|---|---|---|---|
| school-crowd-walk | motion | 720p | 29.5초 → 30초 | 210 cr ($14.00) | $20.43 |
| park-walk-shoulder-tap | motion | 720p | 29.1초 → 30초 | 210 cr ($14.00) | $20.43 |
| chair-suv-jump | object | 720p | 12.0초 → 13초 | 91 cr ($6.07) | $8.85 |
| studio-duo-orange | motion | 480p | 24.1초 → 25초 | 75 cr ($5.00) | $7.95 |
| fight-cafeteria-dodge | motion | 480p | 23.1초 → 24초 | 72 cr ($4.80) | $7.63 |
| carpool-color-rap | motion | 480p | 20.1초 → 21초 | 63 cr ($4.20) | $6.68 |
| 합계 6편 | 2분 18초 | 721 cr ($48.07) | $71.97 |
과금 기준은 넣은 영상의 길이이고 초 단위로 올림합니다(12.04초도 13초 값). 이 6편은 월 요금제 크레딧(MCP 경유)으로 돌렸고 API 열은 같은 길이를 REST API 정가로 계산한 값입니다. 영상에서는 "API로 71달러 정도 소모됐다"고 말했는데 정확히는 정가 환산액입니다. (실험·재시도는 뺀 최종본만의 값입니다.)
글을 쓰면서 비용 계산 명령을 2026-10-01에 첫 줄 영상에 다시 돌려봤습니다(생성 요청 없이 계산만).
$ uv run memegen cost 20260930-0339-school-crowd-walk-v02
"clip_seconds": 29.458
"probe": {"seconds": 4, "resolution": "480p", "usd": 1.272, "credits": 12}
"full": {"480p": {"seconds": 30, "usd": 9.54, "credits": 90},
"720p": {"seconds": 30, "usd": 20.43, "credits": 210}}
29.458초가 30초로 올림되어 720p $20.43, 비용표와 같습니다.
체감으로 바꾸면 30초 720p 한 편이 월 $19 요금제 크레딧으로 약 $14, 한 달 요금의 4분의 3 정도입니다. 해상도가 가장 큰 레버였고 720p는 480p의 2.1~2.3배였습니다. 제가 비싸게 나온 건 영상을 길게 넣어서이고 밈은 10초 이내면 충분하다고 봅니다(10초 480p $3.18).
그래서 제가 권하는 순서는 이렇습니다.
- 하이라이트 4
10초만 잘라 480p로 테스트합니다 ($1.27$3.18). - 얼굴이 제대로 바뀌면 같은 설정으로 전체를 돌립니다.
- 실제로 올릴 영상만 해상도를 올립니다.
개인적인 생각 & 한계점
한계부터 적겠습니다. 이번 결과는 레퍼런스 6개, 제 얼굴과 저희 집 고양이 기준이고 영상마다 돌린 횟수도 다릅니다. 가격은 작성일 기준 정가이고 바뀔 수 있어 콘솔에서 다시 확인하시는 게 맞을 것 같습니다.
제 생각을 적으면, 바이럴을 노리는 영상이라면 이 정도 비용은 투자해 볼 만하다고 봅니다. 결과를 가른 건 모델보다 입력 세 가지, 넣는 이미지와 프롬프트와 소스 영상이었습니다.
상황별로 나누면 이렇습니다.
- 이미 Higgsfield 월 요금제를 쓰는 경우: 같은 6편 기준으로 크레딧 쪽이 API 정가보다 싸게 계산됐으니 MCP로 크레딧을 쓰는 편이 나을 것 같습니다. (웹 요금제의 무제한 혜택은 MCP 호출에 적용되지 않습니다.)
- 찍어 먹어보고 싶은 경우: 월 결제 없이 API에 조금 충전해 4초 480p 테스트부터 하는 게 부담이 적습니다.
- 쇼츠 소재를 꾸준히 뽑을 경우: 레퍼런스 목록만 쌓아두면 되는 게 API의 장점입니다. 대신 예산 상한을 걸어두는 게 안전합니다. (저장소 기본값은 한 번에 $25를 넘으면 생성을 멈춥니다.)
다른 사람 얼굴은 허락을 받고 실존 인물은 패러디·개인 용도로만 쓰시길 권합니다.
이 글을 마치며 & Reference
Reference
- video-meme-generator : 이 글의 코드와 스킬 5개. 겪은 함정은
docs/pitfalls.md에 모아두었습니다. - Higgsfield API 시작하기 : 키 발급과 충전을 시작하는 페이지입니다. (제 파트너 링크입니다.)
- Higgsfield Genjutsu 문서 : motion-transfer, object-swap 두 워크플로의 입력 형식. 가격은 문서가 아니라 콘솔 Playground 하단에 적혀 있습니다.
- Higgsfield Console : API 키 발급과 충전. 월 요금제 크레딧과 API 잔액은 따로입니다.
- Codex CLI : SUV처럼 없는 사물 이미지나 내 캐릭터의 새 각도를 만들 때 썼습니다.
긴 글 읽어주셔서 감사합니다 :)
추가 학습 자료 신청
ZEXEA 메인 사이트의 자료 신청 페이지로 이동합니다. 이름·이메일·전화번호 등의 입력이 필요합니다. 블로그 글과 실습 예제는 신청 없이 모두 읽을 수 있습니다.
관련 가이드

CLAUDE.md, 잘 쓰고 있는지 5가지 기준으로 진단하세요 (복붙용 개선 프롬프트 포함)
CLAUDE.md가 방치되는 이유는 관리 플러그인이 없어서가 아니라 진단이 없어서입니다. 프로젝트 지도부터 실행 모델까지 5가지 판정 기준과 200줄 룰 구조 점검, 그리고 진단에서 개선 실행까지 한 번에 굴리는 3-Phase 프롬프트 전문을 정리했습니다.
전체 과정 보기로컬 AI 모델 4종, 콘텐츠 자동화에 쓸 수 있을까? RTX 5090에서 잰 생성 시간과 VRAM
로컬 AI 모델 4종(Qwen Image 2.1, InfiniteTalk, MiniMax H3, YuE2)을 RTX 5090과 ComfyUI로 돌려 생성 시간과 VRAM을 실측했습니다. 한글 인포그래픽, 20분 립싱크, 양자화 품질 저하까지 자동화 합격선을 적었습니다.
전체 과정 보기오픈소스 TTS 보이스클론 5종 비교, 짧은 참조 18초와 긴 참조 30~180초 실측
오픈소스 TTS 5종에 제 음성 18초와 모델별 30~180초 참조를 넣어 보이스클론 결과를 화자 유사도와 STT 오류율로 실측했습니다. 긴 참조가 항상 낫지 않은 이유, Audio8 60초 실패 원인, 참조 음성 준비 요령까지 정리했습니다.
전체 과정 보기