Photoshop互換のPhotoCraftをAIから操作:CLI・MCPで試して見つけた良い点と不具合

ArtCraftが、Adobe Creative Cloudの各アプリに相当するオープンソースのアプリ7本「Crafting Apps」を公開しました。その中でいちばん開発が進んでいるPhotoCraft(Photoshop相当)を、AI(Claude Code)からCLIとMCPで操作してみました。
結果を先にまとめます。AIから操作する道具としての作りは、期待以上でした。700以上のコマンドに引数の説明が付いていて、MCPサーバーも最初から入っています。ブログのヘッダー画像からX用の画像(1200×675)を組み立てる作業は、コマンド1回・約0.36秒で終わりました。手元にあったPhotoshop製のPSD 4つも、読み込み・保存し直しともピクセル単位で正しく扱えました。一方で、「可変フォントの太さがPSDに保存されない」「幅0を指定すると、エラーにならずに画像が1×1に潰れる」などの不具合も見つかりました。
作業日:2026年10月7日(日本時間)。
PhotoCraftとは(公式の情報)
ArtCraftは2026年10月5日に、次の7本をまとめて公開しました。すべてRustで書かれていて、ElectronやWebビューは使っていません。ライセンスはMITまたはApache-2.0で、Windows・macOS・Linuxで動き、WebAssemblyでブラウザでも動きます。
| アプリ | 相当するAdobe製品 | 公式サイトでの状態 |
|---|---|---|
| PhotoCraft | Photoshop | 初期アルファ |
| PrintCraft | Acrobat | 初期アルファ |
| VectorCraft | Illustrator | 開発中 |
| FilmCraft | Premiere Pro | 開発中 |
| LightCraft | Lightroom | 開発中 |
| EffectCraft | After Effects | 開発中 |
| DesignCraft | InDesign | 開発中 |
PhotoCraftについて、公式は次のように説明しています(いずれも公式の主張で、今回すべてを確かめたわけではありません)。
- レイヤー、マスク、調整レイヤー、レイヤースタイル、文字、ベクター、ブラシに対応する
- 実際のPSD 135個のうち134個が、読み込んで保存し直してもバイト単位で同じになる
- テストは1,700件以上ある
- メニューやツールの操作はすべて1つのコマンド登録簿(500以上)を通る。GUI、CLI、JSONの制御チャネル、MCPサーバーのどれからでも同じコマンドを呼べる
- まだ初期アルファで、毎日の仕事でPhotoshopの代わりに使える段階ではない。AI機能、約20のツール、文字組み、プラグイン互換が足りない(開発元自身の説明)
なお、PhotoCraftはAdobeとは関係のない独立したプロジェクトです。
検証環境
| 項目 | 内容 |
|---|---|
| OS | Windows 11 Pro(10.0.26200) |
| PhotoCraft | 0.2.0(ad8632173、2026-10-05)Windows x64 ポータブル版(zip 28.5MB) |
| AI | Claude Code(デスクトップアプリ) |
| 比較・集計 | Python 3.11、numpy 2.4.6、Pillow 12.3.0 |
画面を持つアプリ本体(photocraft.exe)は起動していません。試したのはCLI(photocraft-cli.exe)と、そこから起動するMCPサーバーだけです。
セットアップ
GitHubのリリースページからポータブル版のzipを落として展開するだけです。インストーラーは使っていません。中身は、アプリ本体(46MB)、CLI(27MB)、ライセンス、READMEの5ファイルでした。
CLIには次のサブコマンドがあります。
| サブコマンド | 内容 |
|---|---|
convert | 形式の変換(PSD、PNG、JPEG、TIFF、WebP、EXR、独自形式の .pcraft など) |
info | ドキュメントの中身(サイズ、モード、レイヤー構造)をJSONで出す |
run | ファイルを開き、コマンドを順に実行して保存する |
batch / droplet | フォルダ内の画像に同じ処理をまとめてかける |
commands | コマンドの一覧(--json で引数の説明付き) |
mcp | MCPサーバーとして起動する |
serve | 画面なしのセッションを開いたまま、JSONの命令を受け付ける |
commands で数えると、登録されているコマンドは748個でした(公式の説明は「500以上」)。内訳は、レイヤー181、フィルター122、編集70、画像64、文字56などです。
検証結果
CLIだけでX用の画像を作る
このブログの「生成AIキャッチアップ」のヘッダー画像(1900×600)を、X用の1200×675に組み直しました。グラデーションの背景、縮小して配置したヘッダー画像、紺の角丸の帯と影、2行の日本語タイトル、黄色のラベルを、run の1回の呼び出しで作っています。
photocraft-cli run --new '{"width":1200,"height":675}' \
--cmd shape.create --params '{"kind":"rect","rect":[0,0,1200,675],"fill":{"gradient":{"stops":[[0,"#dcecff"],[1,"#ffffff"]],"angle":90}}}' \
--cmd file.placeEmbedded --params '{"path":"in/header.png","scale":63.158,"center":[600,200]}' \
--cmd shape.create --params '{"kind":"roundedRect","rect":[40,420,1120,220],"radii":28,"fill":"#0b2a6b"}' \
--cmd layer.layerStyle.dropShadow --params '{"color":"#000000","opacity":35,"distance":8,"size":18,"angle":90}' \
--cmd type.create --params '{"x":600,"y":512,"text":"PhotoCraft を\nAIエージェントで動かしてみた","align":"center","font":"Noto Sans JP","size":54,"color":"#ffffff"}' \
--cmd type.setStyle --params '{"variations":{"wght":900},"leading":72}' \
--out out/x-card.psd
(黄色のラベルを作る部分は省略しています。図形と文字を同じように2つ追加するだけです)

- 処理時間は約0.36秒でした
- 文字の中に
\nを入れるだけで改行できました。以前Canvaで同じような画像を作ったときは、文字に改行を入れられずに苦労した部分です - Windowsに入っているフォント177ファミリーを認識しました。Noto Sans JPのような可変フォントは、太さなどの軸を数値で指定できます
- 保存したPSDを開き直しても、文字・図形・画像のレイヤーはそのまま残っていました
引数の書き方は、commands --json を見れば分かるようになっています。たとえば image.imageSize には {"width":px,"height":px,"resolution":ppi,"resample":"bicubic|bilinear|…"} という説明が付いています。AIが説明を読んでから呼び出せるので、試行錯誤はほとんど要りませんでした。
MCPサーバーとして使う
photocraft-cli mcp で、標準入出力で話すMCPサーバーが起動します。ツールは18個で、大きく分けると次のとおりです。
- ドキュメント:開く、新規作成、中身の確認、プレビュー画像の取得、保存、閉じる
- コマンド:一覧、1つ実行、まとめて実行
- 画面の操作:起動中のアプリにつないだときだけ使える。画面の状態の取得、スクリーンショット、マウス操作、メニューの実行
接続すると、サーバーが「まずコマンド一覧で調べてから実行し、結果はプレビューで確かめ、最後に保存する」という使い方の説明を返してきます。AIが迷わないように考えられています。
花ロボの設定画(1900×2400)を開いて、600pxへの縮小と2つの調整レイヤー(色の鮮やかさ、トーンカーブ)をまとめて実行し、プレビューを受け取ってPSDとPNGで保存しました。各手順の時間は次のとおりです。
| 手順 | 時間 |
|---|---|
| 開く | 54ms |
| 縮小+調整レイヤー2つ(まとめて実行) | 38ms |
| プレビュー画像の取得 | 93ms |
| PSDで保存 | 37ms |
| PNGで保存 | 92ms |
間違った操作をしたときのエラーメッセージも具体的でした。たとえば文字レイヤーにぼかしをかけようとすると、「フィルターにはピクセルのレイヤーが必要(今選ばれているのは文字レイヤー)」と返ってきます。
読み書きできるフォルダを制限できる
MCPサーバーは、起動時に読み込み用と書き込み用のフォルダを指定できます(--automation-read-root、--automation-write-root)。AIに任せるときに、ほかのファイルを読まれたり上書きされたりしないための仕組みです。外に出ようとする指定を4通り試し、すべて拒否されました。
| 試したこと | 結果 |
|---|---|
../escape.png に保存 | 拒否(親フォルダへの移動は不可) |
C:/Users/…/Desktop/escape.png に保存 | 拒否(ドライブ名の指定は不可) |
../../../../../../README.md を開く | 拒否 |
F:/works/…/README.md を開く | 拒否 |
Photoshopで作ったPSDを読む
手元にあったPhotoshop製のPSD 4つ(2017年〜2025年に作った業務用のファイル。非公開)で試しました。3つはグレースケールでレイヤー1枚、1つはRGBで、非表示の文字レイヤーを含む3枚のレイヤーがあります。
- 4つともレイヤー構造を正しく読み取り、警告も出ませんでした
- 表示した画像は、ファイル内のデータとピクセル単位で一致しました
- PSDとして保存し直しても、レイヤーと合成画像のピクセルは元と完全に一致しました。ただし、
convertで書き出し直したため、ファイルのバイト列は同じになりません。公式の「バイト単位で一致」は確かめていません
見つかった不具合
1. 可変フォントの太さがPSDに保存されない
可変フォントの太さを "variations":{"wght":700} で指定した文字は、独自形式の .pcraft で保存すれば太さが残ります。ところが .psd で保存して開き直すと、太さの指定が消えています。開き直した直後は、PSDに入っている描画済みの画像が表示されるので太字に見えます。文字を編集した時点で描き直され、標準の太さになります。

"weight":700 という別の指定方法なら、PSDでも太さが残りました。PSDを使うなら、こちらで指定するのが回避策です。
2. 間違った値でもエラーにならない
| コマンド | 指定 | 結果 |
|---|---|---|
image.imageSize | {"width":0} | 成功扱いで、画像が1×1に潰れる |
image.imageSize | {"width":-5} | 同上 |
image.imageSize | {"widht":200}(綴り間違い) | 成功扱いで、何も変わらない |
image.imageSize | {"width":"huge"}(型の違い) | 成功扱いで、何も変わらない |
layer.newAdjustmentLayer.vibrance | {"vibrance":500}(説明では -100〜100) | 成功扱い |
type.create | 存在しないフォント名 | 成功扱いで、警告なしに別のフォントになる |
AIに操作させるときは、ここがいちばん困ります。間違いが「成功」として返ってくるので、AIが誤りに気づけません。幅0の指定は、実際に画像を壊します。一方で、図形の色に "red" と書くと「認識できない色」としてきちんと拒否されるので、チェックの厳しさがコマンドによってばらばらです。
3. 位置と大きさを返す値の形式がそろっていない
同じ文字レイヤーについて、作成したときの結果は bounds: [11, 35, 78, 51](左・上・右・下)、info の結果は bounds: [11, 35, 67, 16](x・y・幅・高さ)でした。キーの名前は同じなので、AIが取り違えやすい部分です。
つまずいた点
MCPの引数名
最初のMCPの呼び出しは、全部エラーになりました。コマンドをまとめて実行するツールの引数は commands ではなく steps、コマンド名は command ではなく id でした。また、ファイルのパスは、指定したフォルダからの相対パスで書く必要があります(in/hanarobo.png ではなく hanarobo.png)。どれもツールの説明に書いてあり、エラーメッセージ(「steps がない」など)を見ればすぐ直せました。
評価できる範囲(限界)
- 画面を持つアプリ本体は使っていません。Hacker Newsでは「不安定」「ほとんど動かない」という報告が出ていますが、確かめていません
- 試したのはPhotoCraftだけです。ほかの6本は使っていません
- Windowsだけで試しています
- Photoshop製のPSDは4つだけで、どれも単純な構造です。スマートオブジェクトや調整レイヤーを多く使ったPSDは試していません
- PhotoCraftで作ったPSDを、Photoshopで開けるかは確かめていません
- 処理時間は小さな画像で1回ずつ測っただけで、ベンチマークではありません
まとめ
PhotoCraftは、「人がGUIで使うPhotoshopの代わり」としてはまだ初期アルファです。ただ、「AIに画像を加工させる道具」としては、すでにかなり使いやすいと感じました。コマンドの説明、MCPの設計、フォルダの制限、エラーメッセージまで、AIから使うことを前提に作られています。ブログのアイキャッチやSNS用の画像のように、一から組み立てる画像なら実用に近いところまで来ています。
気をつけたいのは、間違った指定が黙って通ってしまう点です。AIに任せる場合は、プレビューで結果を確かめる手順を必ず入れるのがよさそうです。
参照資料
マックお宝鑑定団:ArtCraftシリーズのリリース / ArtCraft Crafting Apps / PhotoCraft 公式ページ / PhotoCraft(GitHub) / PhotoCraft リリース / IlSoftware.it の紹介記事(イタリア語)
