画像生成だけじゃない！ChatGPT-4で大量画像加工する方法

商業ディベロッパーに勤めるちいかわ好きの法務部員です。
過去記事では一切触れていませんが、実はイラストを描くのが少しだけ得意です。
今回は、自分で描いたイラストを使って、GPT-4の画像加工にチャレンジしました。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/7775d5c5-e5ff-aff3-b8a6-78603a843342.png" width="60%">

## 1.GPT-4は画像生成以外の画像処理もやってくれる
### 1-1.やったこと
* ChatGPT-4で大量の画像ファイルを一括編集
* 画像ファイル名を通し番号に変更
* 複数の画像ファイルを結合して1枚の画像に加工
* 結合した複数の画像ファイルをまとめてZIPファイルでダウンロード

:::note alert
この記事の加工方法は、自分で描いたイラストをChatGPTにアップロードします。
学習されるのが嫌な場合はオプトアウト設定をするか、それでも心配な場合はマネしないようご注意ください。
:::

### 1-2.きっかけ
自分が所属しているコミュニティのキャラクターを作りたくてDALL-Eで画像を生成したんですが、いまいち自分のイメージに近いものを出力できなかったので、自分で描いたほうが早いわ！と描いてみました。
<img src= "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/033b15b3-9bc5-0c1e-a9fc-0b32f2abec4b.png" width="50%">


沖中塾のキャラクターのジュクチョウくんです。
どうですか？かわいいでしょう。

コミュニティメンバーが、動画やスライドなどでこのキャラクターを使用できるよう、
表情を変えたアタマ24種類とポーズを変えたカラダ14種類を、ProcreateというiPadのお絵描きアプリで描きました。

このアタマとカラダ、それぞれのパーツをCanvaのスライドに素材として登録して、自由に組み合わせて使ってもらうおうとしましたが、ちょうど良いバランスで組み合わせるのが難しそうです。

だったら最初から組み合わせたものを用意してしまえと思ったのですが、
アタマ1種類にカラダ14種をそれぞれ組み合わせる労力を考えるだけで嫌になったので、
GPT-4にやってもらうことにしました。

## 2. 準備
### 2‐1.素材
アタマ　24種類　PNGファイル　背景透過　
<img src= "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/ad43aebb-27eb-cdc9-a19b-09e6665b6108.png" width="50%">

カラダ　14種類　PNGファイル　背景透過　
<img src= "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/abdbc787-c196-80dc-0ee5-e45f5346541f.png" width="50%">
キャンバスサイズはアタマとカラダともに同じサイズで作成しています。
まとめてZIPファイルにしたかったので、Procreateからダウンロードした後に、GoogleDriveにアップロードしました。

### 2‐2.使うもの
ChatGPT-4
私はChatGPT Plusに登録して利用しています。

## 3.画像処理の実行
### 3‐1.ファイル名の変更
Procreateから、レイヤーごとに画像をダウンロードすると、画像ファイルの名前がレイヤー名のままになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/fa5ea99e-2736-d89a-e16d-273b90dc8723.png)

Procreateはレイヤーをコピーすると全く同じ名前のレイヤーが作成されていきます。
<img src= "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/ffecf10e-a980-47ac-7a31-deccb7e3dc73.png" width="50%">

その都度レイヤー名をつければよいのですが、大量にコピーして一部のパーツを描き変えるという作業をしたので、いちいち直すのも面倒で全部同じ名前になってしまいました。
画像結合する際にChatGPTが画像ファイルを名前で識別できるよう、まずはファイル名の変更からします。

**プロンプト**
ファイル名を変更したい画像ファイルを入れたZIPファイルを、GPT-4にアップロードし、次のプロンプトで指示をします。

:::note info
指示内容に従ってファイル名を付けてください。
#指示内容　B_●　
●は数字を入れてください。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/bc9731b8-2fff-2c1f-9bac-abd338568ab2.png)

返答がこちら
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/92e283f7-abd9-47a2-ec1d-e21f5ecd9870.png)

ZIPファイルの中身を確認したうえで、ファイル名を変更した様子です。
ただ、これだとファイルをダウンロードが出来ないので、ダウンロードをしたいと追加で指示をした結果がこちら。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/87006a03-59af-f8d4-e0ea-d463b0ca1f5a.png)

ダウンロードしたZIPファイルの中に、名前の変更された画像ファイルがありました。

カラダとアタマを異なる通し番号にしたかったので、それぞれ分けて実施しましたが、雑なプロンプトでまとめてファイル名を変更できるのがとても便利です。


### 3‐2.画像の結合
次はアタマとカラダを1枚の画像なるように結合していきます。
Procreateでは、一つのキャンバスの中で各パーツをレイヤーごとに作成しています。
アタマとカラダの組み合わせした状態で画像をダウンロードするには、ダウンロードしたいレイヤーだけ表示した状態で１つずつダウンロードをするか、アタマとカラダを結合したレイヤーを、ダウンロードしたい組み合わせの数だけ作成しないといけません。
**単純計算24×14＝336**
うーーん、たのんだぞChatGPT！

#### アタマとカラダを1個ずつ結合
細かいことは考えず直感的にやってみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/8f425a86-e9cd-452f-02a4-6540f3d6f93f.png)

ダウンロードしてみると
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/c280ca5b-c1e3-9961-ab8f-a8bc68c35d61.png" width="60%">


できました！出来上がりの状態を心配していましたが、位置のズレもなく、想定通りの配置で結合されています。
パーツ同士の位置とそれぞれのファイルサイズは合わせた状態で用意したことも、簡単に結合できた要因と思います。


#### 複数ファイルまとめて結合
1つずつでは手作業でやるときと作業量が変わらないので、複数ファイルをまとめて結合が出来るかやってみます。
GPT-4に1度でアップロードできる上限が10ファイルまでなので、カラダ1、アタマ7をアップロードしました。

**プロンプト**

:::note info指示通りに画像を結合してください。
指示通りに画像を結合してください。
指示＃B_6に10から16のファイルをそれぞれひとつづつ結合してください。7枚の画像になります。
ファイル名はB_6_●のままにしてください。●は10から16の番号を入れてください。
リンクでダウンロードできるようにしてください。
:::
ファイル名を指定しないと、せっかく揃えた名前を勝手に変えるので指定をしました。

返答がこちら
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/91996b01-516b-2f8c-da8c-e8fe0186c3ab.png)

リンクをクリックすると、指示通りに結合とファイル名がついた画像をダウンロードすることができました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/e02966ac-22bd-7552-d325-673f7a20692b.png)

手作業よりもかなり早いです。らくちーん！

#### ZIPファイルを使って大量のファイルをまとめて結合
これでもまだ時間がかかるのでさらに大量のファイルを一気に処理してみます。
今度は単一ファイルではなく複数の画像ファイルをZIPファイルにし、まとめて結合してみます。
カラダ1、アタマ24〔Zipファイル〕でやってみます。
ChatGPTよ月額$20の力を見せてくれ。

**プロンプト**

:::note info
指示通りに画像を結合してください。
指示＃B_5にnumeric_named_files内のファイルをそれぞれひとつづつ結合してください。
ファイル名はB_5_●のままにしてください。●は番号を入れてください。
ZIPファイルでダウンロードできるようにしてください。
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/cdc8c3b3-9a46-e958-ca8c-30c37ab73917.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/cb40e02f-6453-452b-0739-77615170011f.png)

**いやーーーできたーーーーすんごーーーーーい！**
24枚の画像を一気に結合し、それぞれのファイル名設定もできました。
なんて楽ちんなんだ！これで差分画像作り放題では！？
もっとうまくプロンプトを考えればさらにまとめて画像加工が出来そうですが、今回はここまでとします。

### 3‐3.画像のレイヤー順を指定する
カラダ1、アタマ24の結合をやっているときに違和感のある画像が出来上がりました。
<img src= "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/25cdad32-8b7b-e01a-9664-b553c6081cb3.png" width="60%">
手がアタマの後ろに隠れてしまっています。
プロンプトで画像結合をするレイヤーの順番を指示します。カラダが手前、アタマが後ろにしたかったので次のようのプロンプトにしました。


:::note info
指示通りに画像を結合してください。
指示＃B_1にnumeric_named_files内のファイルをそれぞれひとつづつ結合してください。
＃numeric_named_filesが背面、B_1が前面になるように結合してください。
ファイル名はB_1_●のままにしてください。●は番号を入れてください。
ZIPファイルでダウンロードできるようにしてください。ZIPファイル名はB_1としてください
:::

<img src= "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/9ed596bf-a91e-c1ff-8c25-8521606d4f0a.png" width="60%">

今度は想定通りの順番で結合することが出来ました。

## 4.画像生成だけしている場合じゃない！
<img src= "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/359ea7be-7000-a8f2-9233-978304f470c7.png" width="100%">
今回処理した画像ファイルを俯瞰してみるとこんな感じ。壮観です。

GPT-4を使用することで、大量の画像ファイルの結合とファイル名の変更をまとめて実施することができました。
お絵描きアプリや画像加工アプリは色々ありますが、ファイル名の一括変更や画像結合などの作業を効率化できるアプリは聞いたことないので、良い発見でした。
簡単な作業に見えますが、これを誰かに頼もうとすると、イラスト専用のソフトやアプリの操作に慣れていたり、絵心のある人じゃないとできなかったりするので非常に助かります。


### 5.おまけ
GPT-4を使って、文字の作成とイラストの結合をしたものを小さくリサイズして、Discodeの絵文字をつくりました。
![discord_emoji_large_text.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/f3a1ab07-e6a9-34d6-f51c-a52787b64b51.png)

今回、GPT-4で画像加工できることを知るきっかけとなったこちらの本を参照にしています。

https://karaage.hatenadiary.jp/entry/chatgpt_book_intro

なんとこの本のプロンプトは全部YouTubeに公開されていますのでそちらもおすすめです。
6章 画像の多彩な加工・生成の6.4 高度な画像処理 のSlack・Discordの絵文字を作るに詳しいやり方が紹介されています。

https://note.com/currypurin/n/n18616b72e940



GPT-4での画像生成以外の画像処理について、もっと色々深堀出来そうです。