이미지 스크래핑 및 분류, 캡셔닝 파이프라인을 위한 오픈 소스 데이터셋 도구 'Cull' 공유
요약
Cull은 AI 이미지 데이터셋을 위한 오픈 소스 머신 큐레이션 엔진으로, 다양한 웹사이트(Civitai, X/Twitter, Reddit 등 약 340개)에서 이미지를 스크래핑하고 출처의 프롬프트를 함께 저장하는 기능을 제공합니다. 이 도구는 LoRA 학습이나 대규모 아카이브 구축에 필요한 이미지와 메타데이터를 체계적으로 수집하며, 자동 캡셔닝 및 분류 기능을 통해 사용자가 수동으로 프롬프트를 큐레이팅할 필요 없이 방대한 데이터를 효율적으로 준비할 수 있게 합니다.
핵심 포인트
- 다양한 소스(Civitai, X/Twitter, Reddit 등 약 340개)에서 이미지와 출처의 프롬프트 메타데이터를 일괄 스크래핑합니다.
- LoRA 학습이나 대규모 파인튜닝 데이터셋 구축을 위해 이미지를 지정된 주제나 스타일로 필터링하고 분류할 수 있습니다.
- 프롬프트가 없는 기존 아카이브도 자동 캡셔닝 및 비전 호출(Vision Call)을 통해 SD-prompt, booru-tags 등 다양한 메타데이터를 자동으로 생성하여 학습에 활용 가능합니다.
- 플러그인 기반의 Vision Worker 백엔드를 지원하며, 복잡한 데이터 처리 과정을 간소화하고 자동화를 극대화했습니다.
제가 직접 만들고 유지보수하는 Cull이라는 도구를 오픈소스로 공개했습니다.
이것은 AI 이미지 데이터셋을 위한 머신 큐레이션 엔진입니다. LoRA를 학습시키거나, 레퍼런스 라이브러리를 구축하거나, 혹은 단순히 수만 개의 파일로 이루어진 아카이브를 분류하고 싶을 때마다 몇 시간을 잡아먹는 작업의 종류입니다.
전체 과정에서 수행하는 기능
-
Civitai(.com 및 .red), X/Twitter, Reddit, Discord, 그리고 gallery-dl이 지원하는 모든 URL(Pixiv, DeviantArt, booru 계열, ArtStation, Tumblr, FurAffinity / e621, Imgur, Flickr 등 약 340개)에서 스크래핑합니다.
-
이미지와 해당 출처의 프롬프트를 로컬 큐에 모두 저장합니다. 출처별 중복 제거(Per-source dedup), 아무것도
-
LoRA (300 images) & Finetune (100,000 images) 데이터셋 준비.
- '여성 인플루언서' 또는 {artist} 스타일 아트와 같은 주제를 지정합니다.
- 이미지 캡션을 원하면 AUTO_CAPTION_ENABLED=true로 설정하고, 이미지를 스크랩하려는 경우(스크랩한 게시물에서 발견된 모든 프롬프트는 여전히 저장됨) false로 설정하며 원하는 스타일 프롬프팅을 설정합니다.
- 자리를 비웁니다.
- 품질과 카테고리별로 분류된 이미지 폴더가 있는 곳으로 돌아오면, 각 이미지 옆에 생성된 SD-prompt .txt 파일이 있습니다.
- 필터링된 뷰를 트레이너(trainer)로 바로 ZIP 내보내기 합니다.
-
프롬프트가 없는 아카이브 가져오기. LOCAL_IMPORT_DIR을 순수한 JPEG 폴더(또는 gallery-dl URL 목록 붙여넣기)에 지정합니다.
- 프롬프트 요구 사항을 끄고, 자동 캡셔닝을 켭니다.
- 모든 이미지는 분류되고 정렬되며, 이를 분류한 동일한 비전 호출(vision call)에 의해 SD-prompt / booru-tags / 자연어 캡션이 작성됩니다.
- 따라서 수동으로 프롬프트를 큐레이팅할 필요 없이 몇 년 된 아카이브로 학습할 수 있습니다.
링크
Repo: https://github.com/tlennon-ie/cull
Screenshots: https://imgur.com/a/kSvsAW9
로드맵은 사람들이 실제로 무엇에 사용하는지에 초점을 맞춰 계속 개선될 예정입니다. 제가 목록으로 가지고 있는 것은 다음과 같습니다:
- 더 많은 비전 워커 백엔드(vision-worker backends)
- 개선된 적절한 재대기열화(requeue) UI
- 작은 헤드리스 CLI(CLI)
- 동영상 스크래핑, 분류 등
언급할 만한 몇 가지 사항:
Vision worker는 레지스트리를 통해 플러그인 방식으로 추가할 수 있습니다. BaseVisionWorker를 서브클래스하고 등록하기만 하면 됩니다. 두 개의 LM Studio 엔드포인트가 병렬로 실행될 수 있으며, 로컬 서버에 공격적인 유휴 언로드(idle-unload) 기능이 있는 경우 15초마다 핑을 보내는 keepalive worker와 VRAM을 확보하고 싶을 때 사용하는 idle-unloader가 있습니다.
Claude Code 스킬 번들(.claude/skills/) (cull-helper, lmstudio-vision, metadata-schema)과 세 개의 서브 에이전트(.claude/agents/)를 포함하여 배포됩니다. Claude Code, Cursor, Aider, Codex 또는 해당 파일을 준수하는 다른 도구를 사용하면, AI 어시스턴트는 어떤 작업을 수행하기 전에 cull의 핵심 구조(카테고리, 큐 프로토콜, vision-worker 기본 클래스, 엄격한 출력 스키마)를 이미 파악하고 있습니다.
셀프 업데이트 기능은 대시보드에 토스트 메시지로 표시되며, 'Update'를 클릭하면 origin/main에서 가져와 재실행됩니다.
스택: Python 3.10+, Flask, Alpine.js, Pillow, Playwright (X 스크래퍼용), gallery-dl. 단일 머신 환경입니다. Redis, DB, Docker는 필요하지 않습니다. MIT 라이선스를 따릅니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Reddit AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기