webtoon_cropper / README.md
wise-water's picture
init commit
13aa528

A newer version of the Gradio SDK is available: 5.29.0

Upgrade
metadata
title: Webtoon Lineart Cropper
emoji: ๐Ÿค—
colorFrom: yellow
colorTo: blue
sdk: gradio
sdk_version: 5.25.2
app_file: app.py
python_version: 3.12.10
pinned: false

Helix-Painting Data Tool

์›นํˆฐ PSD ํŒŒ์ผ์„ ์ด๋ฏธ์ง€ ํŒŒ์ผ(PNG)๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ์ปท ์ถ”์ถœ ๋ฐ ์ธ๋ฌผ ๊ฒ€์ถœ ๋“ฑ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

Prerequisites

Prerequisites

Setup a project

Setup a project

Features

  • PSD โ†’ PNG ๋ณ€ํ™˜
    ์›นํˆฐ PSD ํŒŒ์ผ์„ ๊ณ ํ•ด์ƒ๋„ PNG ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • ์ปท ์ถ”์ถœ ๋ฐ ํ•„ํ„ฐ๋ง
    ์ด๋ฏธ์ง€ ๋‚ด ํฐ์ƒ‰ ์˜์—ญ์„ ๊ธฐ์ค€์œผ๋กœ ์ปท ๋ฐ•์Šค๋ฅผ ์ถ”์ถœํ•˜๊ณ , ์ธ๋ฌผ ๊ฒ€์ถœ(face detector)๊ณผ ํƒœ๊น…(tagger) ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์ปท ๋ณ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ
    ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด Python์˜ multiprocessing์„ ์‚ฌ์šฉํ•œ ๋ณ‘๋ ฌ ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Usage

1. PSD ํŒŒ์ผ์„ PNG ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜

convert_psd_to_png.py ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ PSD ํŒŒ์ผ๋“ค์„ PNG ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

python scripts/convert_psd_to_png.py --directory <PSD_directory> --output <output_directory> [--visible_layers layer1 layer2 ...] [--invisible_layers layer3 layer4 ...]
  • --directory : PSD ํŒŒ์ผ์„ ๊ฒ€์ƒ‰ํ•  ๋””๋ ‰ํ† ๋ฆฌ
  • --output : ๋ณ€ํ™˜๋œ PNG ํŒŒ์ผ์„ ์ €์žฅํ•  ๋””๋ ‰ํ† ๋ฆฌ
  • --visible_layers / --invisible_layers : ๋ณด์ด๊ฑฐ๋‚˜ ์ˆจ๊ธธ ๋ ˆ์ด์–ด๋“ค์„ ์ง€์ •

2. ์ด๋ฏธ์ง€ ์ปท ์ถ”์ถœ ๋ฐ ํ•„ํ„ฐ๋ง

parse_cut_from_page.py ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปท ๋ฐ•์Šค๋ฅผ ์ถ”์ถœํ•˜๊ณ , ๊ฐ ์ปท์— ๋Œ€ํ•ด ํ•„ํ„ฐ๋ง๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

python scripts/parse_cut_from_page.py --lineart <lineart_directory> --flat <flat_directory> --segmentation <segmentation_directory> --color <color_directory> --output <output_directory> [--num_process <number_of_processes>]
  • --lineart : ๋ผ์ธ์•„ํŠธ ์ด๋ฏธ์ง€๊ฐ€ ์ €์žฅ๋œ ๋””๋ ‰ํ† ๋ฆฌ
  • --flat : ์ฑ„์ƒ‰ ์ „ ํ‰๋ฉด ์ด๋ฏธ์ง€๊ฐ€ ์ €์žฅ๋œ ๋””๋ ‰ํ† ๋ฆฌ
  • --segmentation : ์„ธ๋ถ„ํ™” ์ด๋ฏธ์ง€๊ฐ€ ์ €์žฅ๋œ ๋””๋ ‰ํ† ๋ฆฌ
  • --color : ์ปฌ๋Ÿฌ ์ด๋ฏธ์ง€๊ฐ€ ์ €์žฅ๋œ ๋””๋ ‰ํ† ๋ฆฌ
  • --output : ์ž˜๋ผ๋‚ธ ์ปท ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•  ๋””๋ ‰ํ† ๋ฆฌ
  • --num_process : ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ์— ์‚ฌ์šฉํ•  ํ”„๋กœ์„ธ์Šค ์ˆ˜ (์„ ํƒ๊ฐ’)

3. ํƒœ๊น… ๋ฐ ํ•„ํ„ฐ๋ง ์‹คํ–‰

run_tag_filter.py ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€์— ํƒœ๊น… ๋ฐ ํ•„ํ„ฐ๋ง์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

python scripts/run_tag_filter.py --input_dir <input_directory> --output_dir <output_directory> [--ext png jpg jpeg]
  • --input_dir : ํ•„ํ„ฐ๋งํ•  ์ด๋ฏธ์ง€๋“ค์ด ์ €์žฅ๋œ ๋””๋ ‰ํ† ๋ฆฌ
  • --output_dir : ํ•„ํ„ฐ๋ง ๊ฒฐ๊ณผ ์ด๋ฏธ์ง€ ๋ฐ ์บก์…˜ ํŒŒ์ผ์„ ์ €์žฅํ•  ๋””๋ ‰ํ† ๋ฆฌ
  • --ext : ์ฒ˜๋ฆฌํ•  ์ด๋ฏธ์ง€ ํ™•์žฅ์ž ๋ชฉ๋ก (๊ธฐ๋ณธ๊ฐ’: png)

์ด์™€ ๊ฐ™์ด ๊ฐ ์Šคํฌ๋ฆฝํŠธ๋Š” ๋ณ„๋„์˜ ์ธ์ž๋“ค์„ ๋ฐ›์•„์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์Šคํฌ๋ฆฝํŠธ ๋‚ด๋ถ€์˜ ๋กœ์ง์— ๋”ฐ๋ผ PSD ๋ณ€ํ™˜, ์ปท ์ถ”์ถœ, ์ธ๋ฌผ ๊ฒ€์ถœ/ํƒœ๊น…, ์บก์…˜ ํŒŒ์ผ ์ƒ์„ฑ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

4. Gradio ๋ฐ๋ชจ ํŽ˜์ด์ง€

์•„๋ž˜ ๋ช…๋ ์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ Gradio ๋ฐ๋ชจ ํŽ˜์ด์ง€๋กœ ์›ํ•˜๋Š” PNGํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜์—ฌ ํ•„ํ„ฐ๋ง๋œ ์ด๋ฏธ์ง€ ์ปท ์ถ”์ถœ ๊ฒฐ๊ณผ๋ฅผ ZIPํŒŒ์ผ ํ˜น์€ PSDํŒŒ์ผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

python app.py