
【AIでLINEスタンプ68日目】「キャラと文字の分離」を中心とした現在の作り方をまとめてみる。
【AIによるこの記事の3行まとめと解説】
noteでの他のクリエイターさんとの交流をきっかけに、現在のLINEスタンプ作成の全貌(全9ステップ)を改めて整理・大公開します。
文字の表現力を劇的に高めるため、あえてキャラクターと文字を別々の画像として生成し、後から合体させる「分離作戦」の理由と裏側を解説。
AI(プロンプト)の豊かな発想力と、プログラム(物理的な計算)の正確な処理を適材適所で使い分ける、これまでの泥沼の集大成となる記録です。
あらすじ
とりあえず「静的解析」を実施するだけしたのだった。
1. なぜ「キャラクター」と「文字」を分けるのか?
画一的な表現からの脱却
今日は作業のお話ではなく、現状スタンプをどのように作っているのか、全体の流れを纏めてみたいと思います。
と言うのも、noteを徘徊中に「キャラクターと文字を別々に作成する」ということを書いている方がいらっしゃり、コメント欄で少し会話をさせて頂いた経緯があったため、ちょっとその辺りを纏めた1日があっても良い気がしたからです。
まず、私がキャラクターと文字を別画像にした方が良いと思った最大の理由は、「文字は文字だけで生成した方が表現の幅が広がる」と考えたからです。
元々、1枚の画像の中にキャラクターと一緒に書き出される文字表現が、常に画一的で面白くないと思っていました。
別生成から「合成」への道筋
これを解決できないか?と考え、文字だけの画像を作ってみると言うことをやってみた経緯があります。
これが思いの外面白く、それまでのスタンプ作成で出来てきたことのない文字表現での画像が次々と生成されて来ました。
このことから「キャラクターと文字を分けて、さらに、辻褄を合わせた内容で生成することができれば、それらを合成した方が面白い画像になるはずだ」と仮定し、現在の方式に至っています。
2. 現状のスタンプ作成・全9ステップ
プロンプトによる段階的な落とし込み
モチーフを選ぶ:AIを使ってモチーフ、感情表現のギミック、代表フレーズ(参考)、ターゲット層(年齢/性別/集団)の候補を15個あげてもらう。その中から、もしくはその他思いついたもののうち、どれを使用するか決める
テーマとスタイルを決める:スタンプ全体に適用するテーマとスタイルをAIに決めてもらう
サブカテゴリーを決める:AIに、テーマを元に5つのサブカテゴリーに細分化してもらう
タイトルと説明文をざっくり決める:ここまでの情報を元にAIにタイトルと詳細を書いてもらう(ただし、文字数問題がしばしば発生するので微調整が必要)
スタンプ40個分の詳細設計:フレーズやポーズ、シチュエーション、文字の表現方法など、1個ずつの設計をAIに決めてもらう
スタンプ40個ぶんのタグを決める:LINEストア申請時に1つずつのスタンプに付けるタグをAIに決めてもらう
キャラクター画像作成:1回に20個ずつのキャラクター画像を最大2回作成する
文字画像作成:1回に20個ずつの文字画像を最大2回作成する
main/tab画像選択とzipファイル化:LINEストア申請時に使用するmain/tabの両画像を選択し、そのまま使うことができるようにzipファイルとして纏める
3. 自動化を支える自作プログラムたち
AIの苦手な「正確な処理」を肩代わり
上記の「手順の7〜9」において、複数のプログラムを作成し組み合わせることで、ファイルのアップロードやボタンを押すだけの作業で一気にスタンプ化しています。
境界線を消す:AIにグリッド状で絵を描いてもらうと、頑張ってプロンプトを書いても、「グリッド」などのキーワードに引きずられて線が引かれてしまうことがあります。いっとき上手く制御できていた時期もありますが、それでも少し修正を入れると上手く行かなくなることを繰り返しました。これをAI任せで100%解消するのは不可能だと割り切り、プログラムを使って塗りつぶすようにしました。
ウォーターマークを消す:一番苦労して、上手く行ったり行かなかったり。大量の時間を投入し、一瞬うまく行ったように思えたものの、現状またうまく行かなくなっている悲しい処理です。Geminiで画像を生成したときに右下に入る星型です。このウォーターマーク、構造的には本体部分が白っぽくなっているのでちょうど良い色調まで濃くし、あとは完全にレリーフ表現で元の色を潰されてしまう境界線をどう処理するのか、が基本的なポイントです。
背景色の色取得と画像透過用パラメータのチューニング:背景色を1系統に絞りたくない事情があったため、その処理に合わせた事前処理として背景色の分析を行うようにしています。
背景透過:画像外側から順次背景を透過していくとともに、文字の中身など飛び石状態になっている部分の背景色も透過するようにしています。
画像全体のサイズ合わせ:これも、AI任せだとどうしてもサイズがピタッと合う保証がなく、ほんの少しのサイズの違いでその後の処理が上手く動かない状況が多発しました。このため、あらかじめ決めたサイズの空の画像を作っておき、キャラクターもしくは文字の画像を1つずつ切り出し、所定の位置に収まるように貼り付けることによって画像のサイズを固定しています。
キャラクターと文字の画像合成:手作業だと1つずつ縮小したり位置を変えたりしながら1枚の画像にしていくべきところですが、あらかじめ決めたルールに従って合成した1枚画像を作るようにしています。
スタンプ画像の切り出し:20個のスタンプ画像として1枚に纏まったものをスタンプサイズに切り出します。
main/tab画像の作成:選んだ画像をmain画像とtab画像用にコピーしてサイズ変更します。
zipファイル化:ファイル名を01.png〜必要な番号のファイル名とし、main.pngおよびtab.pngを加えてzipファイル化します。これにより、LINEストア申請時に作成済みのzipファイルをアップロードすれば一括でスタンプ画像の登録ができるようになります。
4. 文字表現を充実させるためのアプローチ
AIの「段階化」とプログラムによる「ルール化」
全体の流れの2,3,5が一番大きなポイントです。
作成するスタンプの詳細を順次落とし込んで行き、最終的にキャラクター画像と文字表現をセットで決定しています。
AIの使用を段階化することで、各工程で少しずつ「大きなプロンプト」にすることができます。
精度を上げるためにいろんなオーダーを入れやすくしており、前工程から結果を反映していくことで「分割を原因とするブレ」が発生し辛いようにしています。
パターンごとの配置ルール
文字画像を生成するとき、どうしてもグリッドの各枠できるだけいっぱいに文字の画像が描かれます。
これを単純にキャラクター画像と合成すると、どちらかが表示されない(隠れてしまう)画像が出来上がってしまいます。
これでは困りますので、それぞれの画像の縮小と配置を「一定のルール」に従って行います。
このような処理はAIには不向きです(全く違う画像にされたり、ごった煮状態で合成されてしまったりします)。
ですので、手作業でやらないとなると、AIではなくプログラム的な解決が向いています。
例えば、
縦書き1行なら「左右どちらかランダムで寄せた上で傾ける」
横書き2行で行ごと分割可能だと判断した場合、「キャラクターの上下に配置する」 といった具合に、パターンごとにルールを決めてキャラクターと文字を合成するようにしています。そのように、パターンごとにルールを決めてキャラクターと文字を合成するようにしています。
このような作業の流れを考え、必要なら足し不要なら引くを繰り返しています。
また、そのような状況ですから、機能的にどうしても変えなければならない問題が発生した場合には、大きく変更を入れる可能性もあります。
私の場合はAIとAI作プログラムを組み合わせていますが、プログラム部分を手作業に置き換えることは十分に可能です。
問題は、どれが必要でどれが不要なのかの取捨選択の難しさなのかもしれないと思っています。
次回、ツールの移植方針の概要をまとめる。
何でもどうぞ!答えられるものは全て答えます!
メンバーシップ始めました!
まだ手探りですが、ご要望/無茶振り/質問、可能な限りお受けします!
参加させて頂いています!是非チェックしてみてください😆
有料記事、今回は問題提起と警告!
note生活1ヶ月の総括記事を書きました!大事な部分は全て無料公開中!
何を考え何をしてきたのか、500人記念のワンコインで公開します!
公開中の全記事はこちら!
記事作成のお供に!お役立ちツール!
その他、こんなことやってみてます!
気に入ったらスキ、フォローよろしくお願いします!
note外から見にきてくださったかたも、もしよければハートマーク押して頂けたら励みになります😊