見出し画像

まだ手作業で消耗してる?LINEスタンプの面倒な分割・リサイズをGeminiと自動化した、究極の効率化ツールの話

こんにちは華音です。
数ある投稿の中から見つけていただきありがとうございます。
最後までお付き合いいただけると幸いです。



「LINEスタンプ作り、楽しいけど……面倒くさい作業が……ちょっと……」

AIツールでスタンプ作成する方なら一度は思ったことあるのでは?
Nano Banana などで複数枚一気に作成すると、一枚絵で出てきますよね?
1個ずつ切り抜いて、サイズを調整して、透過を確認して……
正直、この単純作業……「めっちゃだるくないですか??」
そこでひらめきました。
これが全部できるツール作ろう!!(お気楽)


1. なぜ作ろうと思ったか:「効率化」の向こう側へ

スタンプ作成はだいたい以下の流れ(あくまで華音の作業フローの場合)

  • 画像作成: NanoBananaPro一括作成

  • 分割: 均等に切るだけではサイズがばらばら。

  • リサイズ: LINE規定(最大370×320)に合わせつつ、最大のインパクトを与えるサイズへ調整。

  • 文字入れ:リサイズ時に必要に応じてCanvaで作成。

  • 透過処理: 本来は非常に重い処理。これをいかにスマートに扱うか。

  • 登録: 必要な画像が揃ったら登録してリクエスト

この分割・リサイズ・文字入れ・透過処理の作業が結構時間がかかる。
「もっと楽に、もっと速く、もっと効率よくスタンプ作りしたい!」
この思いが開発のスタートラインでした。


2. 制作環境

開発に使用したのは、決して最新のモンスターマシンではありません。
数年前にネットがストレスなく動けばいいレベルのノートPCです。

  • CPU: Intel(R) Core(TM) i3-8130U @ 2.20GHz

  • RAM: 4.00 GB (実質3.89 GB)

  • Storage: 224 GB SSD (WDC WDS240G2G0B)

  • GPU: Intel(R) UHD Graphics 620

  • OS:Windows10(危ないw)

  • 言語: Python 3.12

  • AI: Gemini 3 Flash / NanoBanana

こんな感じ。
スマホで完結やMacの人も多いのかな?
みんなもっといいの使ってるよね?(笑)



3. デバッグ地獄:AIとの奇妙な攻防

とは言え、プログラムは超素人の華音。
ゼロからGeminiに聞きながらの開発で、何度もAIとのすれ違いに頭を抱え、上手くいかない仕様に頭を抱え、何故か笑い、そして学びがありました。


① 画像解析を頼んだら「絵」を描き始めた事件

不具合のスクリーンショットをGeminiに送り、「ここを解析して」と依頼した際、画像生成AI(NanoBanana)が「画像に関する依頼」と判定。
バグ画面を模した新しいアートを生成し始める事態に。
「頼んでない!」というシュールなやり取りも、アプリ開発というより漫才ですwww


急にぶっこんで来た画像1
急にぶっこんで来た画像2


② 理想を求めて捨てた「透過機能」

当初は、話題のrembg(AI背景削除)を組み込んでいました。
先に紹介した通り、最新ツールを動かすには非力過ぎました。
Geminiが言うには「超ハードな筋トレ」「動かしてる時は他のアプリを全部閉じてマウスから手を放して全集中させて」だそう。
しかも透過の精度がいまいち気に入らない。
動いて無いのかな?と思うほど処理が遅く、ツール壊れてる?と不安になるレベルでした。

元々はWindows標準のフォトアプリを使用しており、これが超優秀。
ほぼ手直しなしで、文字も残して透過処理ができていて、このクオリティができないならツールからは切り捨てて、一枚絵をまるっとフォトで透過処理してから分割だけツールでした方が…と思い、透過処理を切り捨てる決断をしました。
フォトアプリだと分割はひとつずつなんです…40回繰り返すのは苦痛…ww

左が元/右がツールで透過処理
フォトアプリは文字も綺麗に残る


4. 最後の最後で待ち構えていた「巨大な罠」

ツールが完成し、透過済みの規定サイズ画像が次々と生成されていく様子を眺めながら、「完成だ…」と確信しました。
しかし、登録画面で待っていたのは無慈悲な「エラーの嵐」でした。

「スタンプのサイズは、縦横ともに偶数で指定してください」

頭の中は?でいっぱい。それもそのはず。
手作業の時は370px×320pxか320px×320pxのキャンパス目一杯に広げてたので、奇数にならなかったんです。
無意識に避けていた「奇数サイズ」の罠。
アスペクト比を維持してどちらかの限界まで拡大すると、計算上「319px」などの奇数が高確率で発生します。
急遽、1ピクセルを削ってでも偶数に揃える「偶数化ロジック」を実装し、ようやく完成へと漕ぎ着けました。
ついでに分割したファイル名も「01」からの連番でリネーム不要にしました。


5. 技術的ブレイクスルー:ここが「現場仕様」

今回のアプリのポイントを
主席エンジニア「Gemini」に解説していただきますw

A. 空白ピクセル走査による「適応型自動分割」
左上の1ピクセルを背景色と定義し、5pxステップで高速スキャン。

Python

# 背景色との差分が閾値以下なら「隙間」とみなす
def is_bg(c1, c2, threshold=30):
    return sum(abs(a - b) for a, b in zip(c1, c2)) < threshold


B. 座標情報のリセットを伴う「偶数フィット・リサイズ」
.copy()でメモリを独立させ、計算結果を確実に偶数(Even-size)へ変換。

Python

# 奇数なら -1 して偶数に揃える
if new_w % 2 != 0: new_w -= 1
if new_h % 2 != 0: new_h -= 1

これにより、LINEのトーク画面で最も大きく、かつ審査に確実に通るサイズを自動生成します。


C. 管理を楽にするシンプルなネーミング
ファイル名を「stamp_001」から「01.png」へ。登録画面での視認性を極限まで高めました。

D. Undo(ひとつ戻る)のスタック実装
self.history リストに操作(軸・座標)をスタックし、LIFO(後入れ先出し)で取り消しを実行。
手動分割時のストレスをゼロにしました。


6. まとめ:AIは最高の「開発パートナー」

今回の開発を通して感じたのは、AIは単なる「回答機」ではなく、超優秀な仲間であり、ある意味「戦友」
自分で言うのもあれですが、知識ゼロから形になったことが嬉しくてGeminiには99点と伝えましたw
残りの1点は本当の意味で理想のツールにたどり着けなかった分のマイナスです。

ここまでお付き合いありがとうございます!
スキ&フォローお願いいたします!!
この先はコード大公開!
初の有料noteとなっております!!

AI使ってLINEスタンプ作ってます。作成したツールも使ってます!
覗くだけならタダですよwww



【有料公開】LINEスタンプ作成・完全自動化ツール

ここからは、実際に完成させた「最終版ソースコード」を公開します。 Python環境さえあれば、あなたのスタンプ制作効率は今日から次元が変わるはず!?

この記事の元



ここから先は

12,392字 / 1画像 / 1ファイル

¥ 200

ここまで読んでいただけて感謝!チップはAIツールに課金させていただきます!!