Spaces:
Running
Running
A newer version of the Gradio SDK is available:
5.44.1
metadata
title: Faster Layerdivider
emoji: 🖼️
colorFrom: blue
colorTo: pink
sdk: gradio
sdk_version: 5.25.0
app_file: app.py
pinned: false
Faster layerdivider
This is an optimized version of a part of the processing from the single-layer decomposition tool layerdivider by mattya_monaca.
A tool to divide a single illustration into a layered structure.
Install
Local Install
Windows Installation
Required Dependencies
Python 3.10.8 and Git
install Step
use uv (recommended)
- clone repository
git clone https://github.com/mattyamonaca/layerdivider
- run
install.ps1
first time use, waiting for installation to complete. - run
run_gui.ps1
to open local gui. - open website localhost:port to use(The default is localhost:7860).
Optional: For Python Launcher Users
If you use Python launcher (py command) for executing Python, you should use install_with_launcher.ps1 instead of install.ps1. The reason is install_with_launcher.ps1 uses py command for executing venv module, while install.ps1 uses python command.
処理内容
- 入力された画像をピクセル単位で RGB 情報に従いクラスタリング
- 色の類似度(CIEDE2000 基準)が近いクラスタを統合
- 入力された画像をブラー処理で平滑化
- クラスタごとにブラー処理後の色の平均値を出し、算出した平均値ですべてのピクセルを塗りなおし
- 2-4 を指定された回数繰り返し実行
- 最終的なクラスタリング結果に基づき、ベースとなるレイヤーを作成
- ベースレイヤーの各色を、入力された画像のクラスタ毎の平均色で塗りなおし
- ベースレイヤーとオリジナルの色差に基づいて効果レイヤーを算出
Processing content
- Cluster the input image based on RGB information at the pixel level.
- Merge clusters with similar color similarity (based on CIEDE2000 criteria).
- Smooth the input image using a blur process.
- For each cluster, calculate the average color value after blurring and repaint all pixels with this calculated value.
- Repeat steps 2-4 for a specified number of times.
- Create a base layer based on the final clustering result.
- Repaint each color in the base layer with the average color of each cluster in the input image.
- Calculate an effect layer based on differences between the base layer and original colors.
パラメータ説明
- loops: 処理 2-4 を繰り返す回数
- init_cluster: 処理 1 で生成するクラスタの数(大きいほど細かくレイヤー分けされる)
- ciede_threshold: 処理 2 でどの程度色が類似していたらクラスタを結合するか決める閾値
- blur_size: 処理 3 でかけるブラー処理の大きさ(大きいほど強くぼかす)
- output_layer_mode
- normal: 通常レイヤーのみで出力される PSD を構成
- composite: 通常レイヤー、スクリーンレイヤー、乗算レイヤー、減算レイヤー、加算レイヤーを組み合わせて出力される PSD を構成
Parameter Description
- loops: Number of times to repeat processing 2-4.
- init_cluster: Number of clusters generated in process 1 (the larger the number, the more finely layered it is).
- ciede_threshold: Threshold for determining when to combine clusters in process 2 based on how similar their colors are.
- blur_size: Size of the blur applied in process 3 (the larger the size, the stronger the blurring effect).
- output_layer_mode:
- normal: Constructs a PSD that only includes normal layers.
- composite: Constructs a PSD by combining normal layers with screen, multiply, subtract and add layers.
ライセンス
pytoshop/*
以外と pytoshop/packbits.py
については MIT ライセンス pytoshop/*
と ``pytoshop/packbits.py` については BSD ライセンス
詳細はライセンスファイルをご確認ください。
謝辞
以下のコードを参考にしました。
https://github.com/mattyamonaca/layerdivider
本リポジトリの元となるコード、理論はこのリポジトリを継承しています。
https://github.com/mdboom/pytoshop
psd ファイルへの書き込み
https://github.com/psd-tools/packbits
packbits.py
の元となるコード