FLUX.2-klein-4B 순수 C 구현: 텍스트/이미지 기반 이미지 생성 엔진
FLUX.2-klein-4B 모델을 Python 없이 순수 C로 구현한 텍스트·이미지 기반 이미지 생성 엔진 및 라이브러리로, Mac/Linux에서 BLAS·Metal 가속을 활용해 재현 가능하고 확장 가능한 이미지 생성 파이프라인을 제공한다.
Black Forest Labs의 FLUX.2-klein-4B를 순수 C로 구현한 오픈소스 인퍼런스 엔진으로, PyTorch·CUDA·Python 런타임 없이 safetensors 모델을 바로 사용.
빌드 백엔드 선택:
make generic: 순수 C, 의존성 없음(매우 느림)make blas: OpenBLAS/Accelerate 기반 CPU 가속(약 30배 속도)make mps: Apple Silicon Metal GPU 가속(가장 빠름, macOS arm64)
기능:
텍스트 투 이미지(text-to-image):
-p "prompt"로 바로 이미지 생성이미지 투 이미지(img2img):
-i input.png -t strength로 스타일 변환/재생성통합 텍스트 인코더(Qwen3-4B) 내장 → 별도 임베딩 사전 계산 불필요
사용 예:
모델 다운로드:
python download_model.py(약 16GB: VAE, Transformer, Qwen3-4B, 토크나이저)생성:
./flux -d flux-klein-model -p "A woman wearing sunglasses" -o output.png
성능/리소스:
권장 샘플링 스텝: 4단계 (distilled 모델)
메모리: 텍스트 인코딩 ~8GB, 디퓨전 ~8GB, 피크 ~16GB (인코더 자동 해제)
해상도: 최소 64x64, 최대 1024x1024, 16 배수 권장
CLI 옵션:
필수:
-d모델 디렉토리,-p프롬프트,-o출력 경로해상도/스텝/시드:
-W/-H/-s/-Simg2img:
-i입력 이미지,-t강도(0.0–1.0, 기본 0.75)출력 제어:
-q조용 모드,-v상세 로그
재현 가능성: 실행 시 항상 시드를 출력하고(
Seed: ...), 동일 시드로 동일 이미지 재생성 가능.C 라이브러리 API 제공:
모델 로드/해제:
flux_load_dir,flux_free생성:
flux_generate(text2img),flux_img2img(img2img)이미지 입출력:
flux_image_load/save/resize/free유틸:
flux_set_seed,flux_get_error,flux_release_text_encoder
설계 포인트:
라이브러리는 출력/로그를 하지 않는 헤드리스 구조, CLI에서만 UI 처리 → GUI/내부 서비스 통합에 적합.
누락 텐서, 로딩 실패 등 에러 검출 강화로 배포 환경에서 디버깅 및 안정성 확보 용이.
라이선스: MIT – 상용 제품/서비스에 통합 가능하며, 스타트업에서 자체 이미지 생성 기능을 내장하기에 적합.
출처 및 참고 : antirez/flux2.c: Flux 2 image generation model pure C inference
이 노트는 요약·비평·학습 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.