見出し画像

キャラ固定でポーズ違いを一括生成するGUIツールを作ってみた【A1111 / ComfyUI対応】

「同じプロンプト、また打ち直すの…?」
そう思ったことはありませんか。

キャラ固定でポーズ違いを量産したいとき、私がやっていたのはかなり原始的な方法でした。
キャラのプロンプトを書いた欄に、ポーズ部分のプロンプトをそのまま貼り付けて生成。
ポーズを変えるたびに、その部分を書き換える。
それだけです。

「別に不可能じゃない。でも毎回これをやるのは面倒くさい」
そのラインを越えたので、専用のGUIツールを作ることにしました。

今回はStable Diffusion AUTOMATIC1111とComfy UI仕様を作成しました。
ForgeNeoや他のツールにも応用可能かと思われます。


何に困っていたか

実は標準機能にも、似たことをやる prompt from file or textbox というものがあります。
(知らない人も多いと思います)

でも実際にやってみると、地味に手間な部分がいくつか出てきました。

・UIがわかりづらい
・txtファイル作成時のルールを覚えるのがめんどくさい

「別に無理じゃないけど、毎回はしんどい」
このモヤモヤを解消したくて、自作することにしました。

作成したツールの解説

今回作ったのは、シンプルなGUI付き生成補助ツールです。
ツール側でAUTOMATIC1111 WebUIのAPIに直接リクエストを送って、キャラ設定を固定したままポーズ違いをまとめて生成します。

考え方はシンプル。
txtファイルの中にキャラ設定(共通のプロンプト)を[CHARACTER]として一箇所にまとめて書いておき、ポーズ(差分プロンプト)ごとに[POSE1][POSE2]…と並べていくだけです。

実際のtxtファイルの中身の例はこんな感じ👇

[PARAMS]
steps:25
cfg_scale:5

[CHARACTER]
masterpiece, best quality, high quality, highres, 1girl, silver hair, blue eyes, school uniform, skirt

[NEGATIVE]
worst quality, bad quality, extra fingers, missing fingers, bad hands,

[POSE1 1]
smile, upper body,  looking at viewer,
ADD:hair ribbon, wind
DEL:skirt

[POSE2 1]
arms raised,
full body, outdoors,
REPLACE:blue eyes=closed eyes
NEG_ADD:open eyes, looking at viewer

ADD: 追加(小物・雰囲気)
DEL: 削除(完全一致のトークン)
REPLACE: 置き換え(A=B の形)
NEG_ADD: このポーズだけネガティブに追加

これで「このポーズだけ表情を変えたい」がその場で完結します。

生成枚数もポーズごとに[POSE1 5]のように指定可能。
気に入ったポーズだけ多めに回す、みたいな使い方もできます。

生成が始まったら上から順にポーズを処理していき、ログ欄に進捗が流れます。
途中で止めたくなったら停止ボタンで、生成中の画像も含めてすぐに中断できます。

【ツールの画面】

使ってみた実感

一番良かったのは、放置できることです。

以前作ったプロンプトをtxtファイルに直しておいて、キャラの部分だけ変える。
あとは生成ボタンを押したら、ポーズの数だけ自動で回してくれます。

複数枚まとめて生成しておけば、あとは自分がその中から選ぶだけ。
「これいいな」を選ぶ作業に集中できるので、地味にストレスが減りました。

今までは1枚出すたびに次のプロンプトをコピーして、生成を待つ……という感じでしたが、今は生成中に他のことができます。

キャラプロンプトだけ置き換えて生成した例

ポーズ量産だけじゃない、使い道

これ「ポーズ違い」以外にも結構使えます。

キャラLoRAの学習用差分を一気に用意する
LINEスタンプを、キャラだけ変えて量産する
・構図やストーリーはそのままに、キャラや服装だけ丸ごと置き換える

要は「共通部分は固定して、変えたいところだけ差分で回す」という発想なので、応用範囲は広いです。
[CHARACTER]を別キャラに差し替えるだけで、同じポーズ集がそのまま別キャラ版になります。

あと、今回はAUTOMATIC1111とComfy UI用で作りましたが、送信先を書き換えればForge NEOなどにも応用できます。
「うちA1111じゃないから無理か」と諦めなくて大丈夫です。

コード公開

作るのは難しそう、仕様やフォーマットが思いつかないと思う方向けに、Pythonは公開しておきます。
良ければ参考にしてみてください。自分の環境に合わせて、改造して使っても構いません。

ちなみに「コーディングってClaude CodeやChatGPTの有料アカウントがいるんでしょ?」と思う方もいるかもしれません。
でも今回のツール、私はClaudeとChatGPTの無料枠で作れました。
凝ったことをしないなら、無料のAIアカウントでも十分に組めます。

何もわからない方は下記のファイルをChatGPTなどに渡してみてください。

なお、今回のバッチはローカル環境での利用を前提にしています。

Stable Diffusion

▶ sd_batch_gui.pyの詳しい使い方
このツールの全機能と、txtの書き方の詳細はマニュアルにまとめました。
細かく知りたい方はこちら👇

使う前に(補足)

ここは細かい注意なので、実際に触る人だけ読めばOKです。

▶ バッチ起動前準備

①起動するwebui-user.batの中身に--apiを付与する。
このツールはapiにて操作を指示するため、それを許可する起動バッチにする必要があります。

@echo off

set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--api

call webui.bat

②requestsをpipでインストールをする。
このツールはrequestsというライブラリを使います。
入っていない場合は、これをcmdで一度実行してください。

pip install requests

Comfy UI

▶ comfyui_batch_gui.pyの詳しい使い方
このツールの全機能と、txtの書き方の詳細はマニュアルにまとめました。
細かく知りたい方はこちら👇ここまでご覧いただきありがとうございました。

▶ 今回使用したワークフロー
このツールにはご自身のワークフローが必要になります。
今回テストで使用したワークフローを添付します。
Anima仕様になります。ご注意ください。

注意点

Comfy UIのワークフローは人によって大きく異なります。そのため、今回のツールはすべてのワークフローに対応するものではありません。

特にプロンプトが3つ以上入力できるワークフローには対応しておりません。ご了承ください。


▶ エラーが出たとき
Python初心者だと身構えるかもしれませんが、対処はシンプルです。
エラー画面をスクショするか、エラー文をコピーして、そのままAIに貼って「これ直して」と渡すだけ。
だいたいそれで解決します。

▶ バイブコーディングについて(正直な注意)
このコード、私自身が中身を隅々まで理解して書いたわけではありません。
AIと対話しながら組んだ、いわゆるバイブコーディングです。
なので本来意図しない動きが出る可能性はゼロではない、という前提で使ってもらえると安心です。

▶ もっと改造したい人へ
コードを触れる人は、こんな拡張もおすすめです。

・ポーズごとに画像の名前を変える(後で整理しやすい)
画像の出力先フォルダを変更できるようにする

今は画像がWebUI、Comfy UI側の通常の出力先に保存されるので、このあたりを自分好みにすると一気に使いやすくなります。

【使用環境】
・AUTOMATIC1111 WebUI
・Comfy UI

本記事は上記の環境で検証しています。

改変・再配布、すべて自由です。
ただし無保証なので、利用は自己責任でお願いします。

あとがき

繰り返しになりますが、今回のPythonは万人向けではありません。
みなさんが使いやすいように改造してもらう前提の、参照用コードです。
不備があったら、優しく教えてもらえると嬉しいです。

ちなみに今回「API」という言葉が何度か出てきますが、追加課金は一切なしです。
Stable Diffusion WebUIを--api付きで起動するだけ。
無料でそのまま使える標準機能です。
「APIって聞くとお金かかりそう」と身構えなくて大丈夫です。

それと、このtxtファイル、フォーマットに合わせてプロンプトを貼り付けるのが面倒という人もいますよね。
画像から自動でプロンプトを抜き取って、バッチツール用のtxtフォーマットに直してくれるツール——これも、そのうち紹介します。

ここまでご覧いただきありがとうございました。


いいなと思ったら応援しよう!