Skip to content

namemechan/Prompt-Classifier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Prompt Classifier

AI 이미지 생성 도구(Stable Diffusion WebUI, ComfyUI, NovelAI 등)로 만들어진 이미지 파일에 내장된 프롬프트 및 해상도 정보를 읽어, 사용자가 정의한 규칙에 따라 자동으로 분류·정리하는 도구입니다.


목차


실행 방법

패키징된 Prompt-Classifier.exe 파일을 실행합니다.

참고 설정 및 프리셋은 exe 파일과 같은 폴더 안의 ImageClassifier 폴더에 저장됩니다.
C:\Program Files 등 쓰기 제한이 있는 위치에서는 설정이 저장되지 않으므로, 쓰기 가능한 폴더로 옮겨 사용하세요.


기본 설정

옵션 설명
소스 디렉토리 분류할 이미지가 들어 있는 폴더를 선택합니다.
이름 변경 분류된 파일명에 키워드가 포함되도록 자동 변경합니다. (예: fantasy_000001.png)
와일드카드 처리 키워드 입력란에서 __파일명__ 형식으로 외부 txt 파일의 키워드를 불러옵니다. (아래 와일드카드 처리 참조)
그 외 처리 어떤 규칙에도 매칭되지 않은 파일을 other 폴더로 이동하는 방식을 선택합니다. 세 가지 옵션이 있습니다. (아래 그 외 처리 참조)
동일명 숫자 추가 대상 폴더에 같은 이름의 파일이 이미 있으면 (01), (02) 형식으로 번호를 붙입니다. 끄면 동일명 파일은 건너뛰고 로그에 표시됩니다.
안전 모드 이동 대신 먼저 복사한 뒤, 원본을 [삭제 / 보존 / 실행 취소] 중 선택할 수 있는 팝업을 띄웁니다. 데이터 유실 방지에 가장 안전합니다.
복제 모드 이동 대신 복사만 합니다. 원본은 그대로 유지됩니다.
멀티코어 여러 CPU 코어를 사용해 프롬프트 분석 속도를 높입니다. 코어 수를 옆 스핀박스로 지정할 수 있습니다.

안전 모드복제 모드는 동시에 사용할 수 없습니다.


프롬프트 분류

와일드카드 처리

키워드 수가 많아 직접 관리하기 번거로울 때, 외부 txt 파일로 키워드 목록을 불러올 수 있습니다.

사용 방법:

  1. exe(또는 main.py)와 같은 위치에 wildcard 폴더를 만듭니다.
  2. 그 안에 키워드 목록을 담은 txt 파일을 저장합니다. (예: list.txt)
  3. 키워드 입력란에 __list__ 형식으로 입력합니다.

txt 파일 형식: 키워드를 줄바꿈으로 구분하여 작성합니다. 한 줄 안에 | 로 여러 키워드를 쓰거나, 다른 __와일드카드__ 를 중첩해서 사용할 수도 있습니다.

fantasy
cyberpunk
__another_list__
sci-fi | steampunk

입력 예시: a|b|__list__|ca, b, list.txt 안의 키워드 전체, c 순서로 처리됩니다.

와일드카드 처리를 끄면 __list__ 형식도 | 로 구분된 일반 키워드로 취급합니다. 프롬프트에 __ 를 실제로 사용하는 경우 꺼두세요.

전체추적 모드

소스 디렉토리와 그 하위 모든 폴더를 재귀적으로 탐색합니다.

  • 포함 키워드: | 로 구분하여 입력합니다. (예: fantasy | cyberpunk)
  • 제외 키워드: 프롬프트에 이 단어가 포함된 이미지는 건너뜁니다.

전체추적이 켜지면 레벨 1~5 옵션은 자동으로 비활성화됩니다.

사용자 폴더 사용

분류된 이미지를 키워드 이름의 하위 폴더 대신, 사용자가 직접 지정한 단일 폴더로 이동합니다. 모든 결과를 한 곳에 모을 때 유용합니다.

레벨 1~5

전체추적이 꺼진 상태에서만 작동합니다.

  • 레벨은 순서대로 적용되며, 앞 레벨에서 분류된 이미지는 다음 레벨 대상에서 제외됩니다.
  • 각 레벨마다 포함 키워드제외 키워드를 독립적으로 설정할 수 있습니다.
  • 키워드는 | 로 구분합니다. (예: 포함: landscape | nature, 제외: lowquality)

그 외 처리

어떤 레벨의 키워드에도 매칭되지 않은 파일을 other 폴더로 이동하는 타이밍을 선택합니다.

옵션 동작
안 함 미분류 파일을 따로 처리하지 않습니다.
후행 모든 레벨 분류가 완료된 후, 소스 폴더에 남아 있는 파일 전체를 other 폴더로 이동합니다.
각 레벨별 각 레벨 분류가 끝날 때마다 해당 레벨에서 매칭되지 않은 파일을 즉시 other 폴더로 이동합니다. 다음 레벨은 기존 분류 폴더와 other 폴더를 모두 대상으로 처리합니다.

각 레벨별 옵션 사용 시 other 폴더는 레벨이 진행될수록 파일이 누적됩니다. 마지막 레벨까지 어떤 키워드에도 매칭되지 않은 파일만 other에 최종적으로 남습니다.


해상도 분류

그룹박스 왼쪽의 체크박스로 기능 전체를 켜고 끌 수 있습니다.
해상도 분류는 파일명을 변경하지 않습니다 (이름 변경 옵션과 무관).

분류 타이밍

옵션 동작
선 (먼저) 해상도 분류 → 프롬프트 분류 순으로 진행합니다.
후 (나중에) 프롬프트 분류 → 해상도 분류 순으로 진행합니다. 프롬프트 분류로 이동된 파일이 각 폴더 안에서 다시 해상도 하위 폴더로 분리됩니다.

폴더명 형식

형식 예시
1216x832 너비×높이 숫자만 표기
1216x832_(가로/세로) 방향 정보를 괄호로 추가
16:9 비율 가장 단순화된 비율로 표기

비율 분류

켜면 해상도가 달라도 비율이 동일하면 같은 폴더로 묶습니다.
예) 608×416, 1216×832, 2432×1664 → 모두 같은 비율 그룹

가로세로 통일

켜면 1216×832 (가로)와 832×1216 (세로)를 같은 그룹으로 취급합니다.
폴더명은 항상 가로 ≥ 세로 기준으로 표기됩니다.

허용 오차

표준 해상도 기준셋에 완전히 일치하지 않아도, 설정한 오차 범위 안에 있으면 해당 표준 해상도 그룹으로 편입합니다.

모드 설명
% 설정 기준 해상도 대비 ±n% 이내의 오차를 허용합니다.
픽셀 설정 가로·세로 각 축의 픽셀 차이가 ±n 이내인 경우 허용합니다.

기준 해상도 예시: 1024×1024, 1216×832, 1920×1080, 3840×2160 및 이들의 0.25×~4× 배율 포함

최소 파일 수

특정 해상도 그룹의 파일 수가 설정한 값 미만이면, 해당 파일들을 res_below_min 폴더로 이동합니다. 극소수의 해상도가 파편화되어 폴더가 지저분해지는 것을 방지합니다.

해상도 컷오프

이미지의 총 픽셀 수(너비 × 높이)를 기준으로 범위를 벗어난 이미지를 별도 폴더로 분리합니다.

결과 폴더 조건
res_too_small 설정한 최솟값 미만인 이미지
res_too_large 설정한 최댓값 초과인 이미지

값을 0으로 두면 해당 방향 컷오프는 비활성화됩니다.

화이트/블랙리스트

편집... 버튼을 누르면 별도 창이 열립니다.
표에 너비(W)와 높이(H)를 입력해 목록을 관리하며, 자주 쓰는 표준 해상도는 빠른 추가 버튼으로 한 번에 넣을 수 있습니다. 목록은 설정 파일에 저장되어 프로그램을 다시 시작해도 유지됩니다.

모드 동작
화이트리스트 사용 목록에 있는 해상도만 분류 대상에 포함합니다. 나머지는 res_not_whitelisted 폴더로 이동합니다.
블랙리스트 사용 목록에 있는 해상도는 분류에서 제외하여 res_blacklisted 폴더로 이동합니다.

작업 관리

버튼 동작
분류 시작 현재 설정으로 분류를 시작합니다.
취소 진행 중인 작업을 즉시 중단합니다.
이전 작업 취소 가장 최근에 완료된 작업을 되돌립니다. 이동된 파일은 원래 위치로 복원되고, 비어 있는 생성 폴더는 자동으로 삭제됩니다.

진행 상황은 진행 표시줄과 로그 창에서 실시간으로 확인할 수 있으며, 완료 시 총 소요 시간과 처리 파일 수가 표시됩니다.


프리셋

현재 설정 전체(해상도 분류 옵션 포함)를 이름을 붙여 저장해두고 나중에 불러올 수 있습니다.

  • 저장: 현재 설정을 프리셋으로 저장합니다.
  • 드롭다운 선택: 저장된 프리셋을 불러옵니다.
  • 삭제: 선택된 프리셋을 제거합니다.

변경 내역

v4.2.0

  • 신규 기능: 와일드카드 처리 — 키워드 입력란에서 __파일명__ 형식으로 외부 txt 파일의 키워드를 불러올 수 있습니다.
    • exe(또는 main.py) 위치 기준 wildcard 폴더 안의 txt 파일을 자동으로 탐색
    • txt 파일 내부에서도 | 구분 및 __와일드카드__ 중첩 사용 가능
    • 순환 참조 자동 감지 및 방지
    • 이름 처리 행의 체크박스로 온/오프 전환 가능 — 꺼진 상태에서는 __태그__ 형식을 일반 키워드로 취급
    • 전체추적 모드, 레벨 1~5, 제외 키워드 모두 적용
  • 버그 수정: ComfyUI WebP 이미지에서 이스케이프된 괄호(\(, \))가 포함된 키워드 검색이 되지 않던 문제 — JSON 이중 인코딩으로 인한 \\(\( 불일치를 정규화하여 해결

v4.1.0

  • 기능 변경: 그 외 처리 — 체크박스에서 3단계 라디오버튼으로 교체
    • 안 함: 미분류 파일을 처리하지 않습니다.
    • 후행: 기존 동작과 동일. 모든 레벨 완료 후 소스 폴더에 남은 파일을 other로 이동합니다.
    • 각 레벨별: 각 레벨 분류 직후 미분류 파일을 other로 이동하고, 다음 레벨은 분류 폴더와 other 폴더를 모두 탐색합니다.
  • 버그 수정: 다중 레벨 분류 후 그 외 처리 실행 시 이미 분류된 파일이 other로 중복 이동되던 문제

v4.0.0

  • 신규 기능: 해상도 분류 — 이미지를 해상도별로 자동 분류합니다.
    • 분류 타이밍 설정 (프롬프트 분류 전/후 선택)
    • 폴더명 형식 선택 (1216x832 / 1216x832_(가로) / 16:9)
    • 비율 분류 — 동일 비율 이미지를 하나의 그룹으로 묶기
    • 가로세로 통일 — 방향(가로/세로)을 무시하고 같은 해상도로 처리
    • 허용 오차 — % 또는 픽셀 단위로 유사 해상도 허용
    • 최소 파일 수 — N개 미만 그룹을 res_below_min으로 이동
    • 해상도 컷오프 — 지정 픽셀 수 미만/초과 이미지 별도 분류
    • 화이트/블랙리스트 — 별도 편집 창에서 관리, 비휘발성 저장
  • UI 변경: 멀티코어 설정을 복제 모드 오른쪽으로 이동하여 공간 절약
  • 모든 신규 설정은 기존 프리셋 시스템과 완전 호환

v3.1.0

  • 기능 수정: WebP 지원 추가

v3.0.1

  • 기능 수정: ComfyUI 이미지 정보 탐색 방향을 역순으로 변경

v3.0.0

  • 신규 기능: 제외 키워드 지원 (레벨 1~5 및 전체추적 모드)
  • 버그 수정: 다중 레벨 + 그 외 처리 조합 시 이미 분류된 파일이 other로 중복 이동되던 문제
  • 버그 수정: 동일명 파일 건너뜀이 로그에 표시되지 않던 문제
  • 버그 수정: 프리셋 불러오기 시 안전 모드 / 복제 모드 체크 상태 오류
  • 버그 수정: exe 패키징 환경에서 설정 폴더가 생성되지 않던 문제

v2.0.0

  • ComfyUI 로직 개선 및 코드 전면 개편

About

Organizing AI-generated images by prompts.

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors

Languages