Show HN: Txt2plotter – Flux.2를 사용하여 펜 플로터용 실제 중심선 벡터 생성
요약
Txt2plotter는 Flux.2와 LLM을 활용하여 텍텍스트 프롬프트를 펜 플로터용 SVG 벡터 파일로 변환하는 파이프라인입니다. 프롬프트 강화부터 이미지 생성, 골격화 기반의 벡터화 및 경로 최적화 과정을 거쳐 실제 플로팅이 가능한 결과물을 출력합니다.
핵심 포인트
- LLM을 통한 프롬프트 최적화 및 Flux.2 기반 라인 아트 생성
- 골격화(Skeletonization) 기술을 이용한 정밀한 중심선 벡터 추출
- 효율적인 플로팅을 위한 경로 병합 및 단순화 최적화 단계 포함
- NVIDIA GPU(24GB VRAM 이상) 환경에서 구동 가능한 Python 기반 도구
txt2plotter
AI 이미지 생성 및 중심선 벡터화 (centerline vectorization)를 사용하여 텍스트 프롬프트를 펜 플로터(pen-plotter)용 SVG 파일로 변환합니다.
파이프라인 (Pipeline)
- 프롬프트 강화 (Prompt Enhancement) - LLM이 최적의 라인 아트 생성을 위해 프롬프트를 재작성합니다.
- 래스터 생성 (Raster Generation) - Flux.2-dev가 고대비 라인 아트 이미지를 생성합니다.
- 벡터화 (Vectorization) - 골격화 (Skeletonization) 및 그래프 추출을 통해 깨끗한 경로를 생성합니다.
- 최적화 (Optimization) - 효율적인 플로팅을 위해 경로를 병합, 단순화 및 정렬합니다.
- 출력 (Output) - 구성 가능한 크기를 가진 플로터용 SVG를 출력합니다.
예시 (Examples)
<p align="center"> <img src="examples/fox.svg" width="200" alt="fox"> <img src="examples/cat_silhouette.svg" width="200" alt="cat"> <img src="examples/hummingbird.svg" width="200" alt="hummingbird"> </p> <p align="center"> <img src="examples/jellyfish.svg" width="200" alt="jellyfish"> <img src="examples/monstera.svg" width="200" alt="monstera"> <img src="examples/coffee_cup.svg" width="200" alt="coffee cup"> </p> <p align="center"> <img src="examples/mountain_pines.svg" width="200" alt="mountain"> <img src="examples/waves.svg" width="200" alt="waves"> <img src="examples/leaf.svg" width="200" alt="leaf"> </p>플로팅 결과 (Plotted)
<p align="center"> <img src="examples/plotted_overview.jpg" width="400" alt="plotter overview"> <img src="examples/plotted_cat_closeup.jpg" width="300" alt="cat closeup"> </p>요구 사항 (Requirements)
- Python 3.10+
- 24GB VRAM을 갖춘 NVIDIA GPU (RTX 3090/4090)
- CUDA 12.x
- 프롬프트 강화를 위한 OpenRouter API key
- Flux.2-dev 접근 권한이 있는 HuggingFace token
설치 (Installation)
git clone https://github.com/malvarezcastillo/txt2plotter.git
cd txt2plotter
...
사용법 (Usage)
# 기본 사용법 (A3 크기)
python main.py "a geometric skull"
...
배치 파일 형식 (Batch File Format)
prompts.txt 파일을 생성합니다 (한 줄당 하나의 프롬프트, 주석 지원):
# 내 프롬프트들
"Minimalistic isometric impossible cube, thick black lines, technical drawing."
"Single continuous line drawing of a greyhound, Picasso style."
...
출력물은 프롬프트별로 정리됩니다: output/<prompt_slug>/
출력물 (Output)
output/*.svg- 최종 플로터용 SVG 파일output/debug/- 디버깅을 위한 중간 파일:01_prompt_enhanced.txt- 강화된 프롬프트 (Enhanced prompt)02_raster_raw.png- 생성된 이미지 (Generated image)02_raster_binary.png- 임계값 처리된 이진 이미지 (Thresholded binary)03_skeleton.png- 골격화된 경로 (Skeletonized paths)03_graph_*.png- 그래프 시각화 (Graph visualization)03_paths.svg- 원시 경로 (Raw paths)04_optimized.svg- 최적화 후 파일 (After optimization)
라이선스 (License)
MIT
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Design Systems의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기