やりたいこと
画像を指定して、画像から色をピックアップしてクリップスタジオで使用できるカラーセットを自動的に抽出したい。https://img-to-aoc.herokuapp.com/ でクリップスタジオで読み込めるカラーセットのファイルをダウンロードできるようにしました。(アクセスのタイミングによっては十数秒ページのロード時間が発生します)
ほぼ個人用ですが画像からカラーセットのファイル作成できるようにしました。色の選び方はまた今度調整したいです。 https://t.co/1CcIqiNAlx pic.twitter.com/8oDTMh4j9d
— nanja (@nanjakorewa) July 31, 2020
カラーセット
クリップスタジオのカラーセットは独自の.cls
形式のファイルか、Adobe Color Swatches(.aco
ファイル)の読み込みに対応している。
CLIP STUDIO PAINT リファレンスガイド - カラーセットパレット
Adobe Color Swatches(.aco
ファイル)は以下のページに仕様がある。
Color Swatches : Color swatch files are loaded and saved in Photoshop's Color Swatches palette. These are typically stored in the Color Swatches sub-directory in the Presets directory....(省略)
.cls
形式のファイルは内部の仕様が不明だったため、.aco
ファイルでカラーセットを作成し、クリップスタジオで読み込む。
実装
カラーセットの出力
pythonにて実装。画像を読み込み、色をクラスタリングし、.aco
で出力する。出力する色の作り方については色についてもう少し勉強したり、他の方の作成したカラーセットを参考にしながら決めていきたい。作ると決めてからクリップスタジオで読み込んで動作確認するまで約1時間かかりました。
Webアプリとしてのリリース
Herokuで行います。
はじめに、documentation に従いHeroku CLIをインストール。 The Heroku CLI | Heroku Dev Center
以降はHerokuのドキュメント通りに実行まで行います。
色の抽出とカラーセットの作成
画像に対してクラスタリングを行い、そのセントロイドのデータを指定された基準でソートします。
colorsys --- 色体系間の変換 — Python 3.8.6 ドキュメント
完成したWebアプリケーション
画像の通信+画像処理が行われるため、一度の処理に数秒〜10秒前後待機時間が発生します。ウェブアプリケーションフレームワークはFlaskを使用しました。
https://img-to-aoc.herokuapp.com/
最後に.aco
ファイルをダウンロードし、クリップスタジオのカラーセットから読み込みを行います。クリップスタジオで先ほどプレビューした色が読み込めていることを確認します。
参考文献
sklearn.cluster.KMeans — scikit-learn 0.23.2 documentation