Photoshop UXP画像生成機能(Firefly)にアクセスする

UXP

最近どこもかしかもAI、AIと騒がれていますが実は私はどちらかというとAIの活用自体あまり積極的ではなくそこまで熱を入れていませんが色々事情もあって最近ちょいちょい触り始めています。ということでAdobeの画像生成人工知能、Fireflyについてです。

Adobe FireflyといえばFirefly APIだが

実はAdobe Firefly APIというリクエストを投げると生成画像を返してくれるWebAPIでNode.jsからも簡単にできそうな感じではあるのですが実は2025年1月現在、エンタープライズ版という法人向けのアカウントでなければ利用できません。また運よく所属の会社がエンタープライズ版を契約していてもアカウント管理者から権限を付与してもらう必要があるので一社員がシステム管理部とやりとして許可を、というのもなかなかハードルが高いでしょう。というわけで個人単位ではテストさえもできる気配がありません。
API access for individuals for Firefly?

PhotoshopからはUXPのコードからアクセス可能

おそらくExtendScriptからも操作できるのでしょうがUXPから生成コマンドの実行が可能です。AlchemistでListenerをオンにして画像生成を実行すると見事コードが記録されます。

画像生成後のコードの記録
batchPlayで実行できです。でもその前に画像生成をそのままアプリケーションから実行した時の場合を見ます。

画像生成パネル

ご存知の通りテキストによるプロンプトを入力する部分とアート調なのか写実的なのか、どちらでもないのか選ぶ項目があります。その他シネマチックなどのエフェクトを選ぶ項目もあります。画像の参照もできて自分のローカルの画像をアップしてそれを生成の時に参照してもらう機能です。そして以下のコードが実行した時のコードです。

一部の項目を引数化していますがそれ以外は生成時の状態のままです。不明な項目もありますが以下の引数化した項目はコード上で調整できます生成結果にどのように影響を与えるか確認しています。

textPrompt

そのまま生成時のキーワードのプロンプトを受け取る項目。string型でテキストのプロンプトをそのままスペース含めて渡せば大丈夫です。例えばcatとjumpを渡したい場合はそのまま”cat jump”になります。

imgType

パネル上でアート、写真の項目にあたる部分。それぞれ”art”と”photo”でどちらも選択してない場合はnoneになるようです。

referenceImages

参照画像の値ですがこれはちょっと変わったオブジェクトになっています。referenceImageListのプロパティに配列形式で渡すようになってはいますが複数参照画像を渡してもどう見てもそのうちの一枚の画像しか参照されていないように感じました。将来複数画像の参照の機能とか実装されるのでしょうか?中身は以下のようなオブジェクト形式になっているので注意。何も参照しない場合はreferenceImageListのプロパティ自体消去しても動きます。

fileのpathの項目にTokenの画像ファイルパスを渡します。tokenify関数でstring型のファイルパスをTokenに変換しています。その他項目はそこまでわかっていませんがreferenceImageTypeの感じとか見ると他の値も渡せそうな感じもして、そのうち他の機能も追加されるのか?

effects

以下のパネルの右側の効果というものを配列形式で渡します。

generateEffects

以下のような配列になっていました。

どの項目がどの効果に該当するのか、効果の詳細はよくわかっていません。(一つづず確認していけばわかるにはわかる)配列の最後にnoneという値が必ず三つ入りますが何も効果を選択していなくても入るので理由はわかりませんが必要みたいです。

というわけで色々触ってみて最低限のことはできそうな感じです。ただこの機能自体最近実装されたということもあってまだまだオプションも強化されそうな雰囲気があります。ともあれScriptで手軽にアクセスできる生成画像の機能、Photoshopなら試すことができます。

Beer 寄付してサイトを応援する。