제가 직접 만들고 유지보수하는 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 라이선스를 따릅니다.