見出し画像

#10分で学べるAI バッチファイルでバリエーション広告を生成しよう(2)解説編

前回紹介した、いろいろなスタイルの画像を生成しまくってくれるバッチファイル「Stable Image Core API Image Creator」の仕掛けを解説します!
概要や使い方は前回の記事をご覧ください


バッチファイルをダウンロード

このリンクでダウンロードして使える バッチファイルを配布しています。https://j.aicu.ai/SaiImgBat
これを無料で配ってしまうのはいかがなものか……という議論がありますが、今回はさらにこの中身を解説していきます。

バッチファイルの中身解説

このバッチファイルは以下の流れで動作しています

  • 設定を読み込む

  • APIキーの確認をする

  • 現在の設定を表示して確認を促す

  • APIを呼び出して生成する

  • 生成が完了したことを知らせる

これからそれぞれの動作について説明します
なお気になる場合はメモ帳やVisual Studio Codeなどでバッチファイルを開くと中身を直接見ることができます

このように開くことができます

設定を読み込む

バッチファイルが実行されると、ウィンドウタイトルなど、プログラムとして必要な機能を設定します

@ECHO OFF
title SIC_IMG_Creator
setlocal enabledelayedexpansion
cd /d %~dp0

また設定ファイル(SIC_setting.txt)を読み込んで生成に使うAPIキーやプロンプト、スタイルを変数として保存しています

for /f "tokens=1,* delims==" %%a in (SIC_setting.txt) do (
    set %%a=%%b
)
set STYLE_PRESET[1]=3d-model
set STYLE_PRESET[2]=analog-film
set STYLE_PRESET[3]=anime
set STYLE_PRESET[4]=cinematic
set STYLE_PRESET[5]=comic-book
set STYLE_PRESET[6]=digital-art
set STYLE_PRESET[7]=enhance
set STYLE_PRESET[8]=fantasy-art
set STYLE_PRESET[9]=isometric
set STYLE_PRESET[10]=line-art
set STYLE_PRESET[11]=low-poly
set STYLE_PRESET[12]=modeling-compound
set STYLE_PRESET[13]=neon-punk
set STYLE_PRESET[14]=origami
set STYLE_PRESET[15]=photographic
set STYLE_PRESET[16]=pixel-art
set STYLE_PRESET[17]=tile-texture
set STYLE_PRESETNOW=

APIキーの確認をする

プログラムの説明を表示し、APIキーの確認をします
設定ファイル保存されていたAPIキーが空だった場合、エラーとしてユーザーにAPIキーを設定ファイルに記入するよう促しプログラムを終了します

echo Stable Image Core API Image Creatorへようこそ!
echo このバッチファイルでは同じプロンプトで複数のスタイルの画像を連続で生成できます
:: STABILITY_API_KEY が設定されているか確認
if not defined STABILITY_API_KEY (
    echo エラー: APIキーがセットされていません、settings.txtに入力して保存してください
    echo APIキーを持っていない場合は https://platform.stability.ai/account/keys にアクセスしてAPIキーを取得してください
    GOTO :END_PROGRAM
    exit /b 1
)

現在の設定を表示して確認を促す

設定ファイルを読み込み、APIキーも確認すると現在の設定を表示してユーザーに確認してもらいます
さらにユーザーからの入力が「y」だった場合、次のフェーズに移ります

set /a all_img_num=%IMG_NUM%*17
:: 出力設定の確認
echo 以下の設定で出力します
echo プロンプト: %PROMPT%
echo ネガティブプロンプト: %NEG_PROMPT%
echo アスペクト比: %ASPECT_RATIO%
echo 保存フォーマット: %OUTPUT_FORMAT%
echo 出力サイクル数: %IMG_NUM%
echo 合計出力枚数: %all_img_num%

:INPUT_CONF
ECHO この設定で生成しますか? (同じプロンプトで生成する場合、上書きされてしまいます! )
ECHO (Y / N)
SET CONF_SELECT=
SET /P CONF_SELECT=

IF "%CONF_SELECT%"== SET CONF_SELECT=Y
IF /I NOT "%CONF_SELECT%"=="Y"  GOTO :END_PROGRAM

APIを呼び出して生成する

いよいよ Stable Image Core のAPIを呼び出して画像を生成します
Stable Image Core ではスタイルプリセットを指定できるので、スタイルプリセットだけ変更してAPIを繰り返し呼び出します
またAPIの呼び出しは指定されたサイクル数だけ行います

:: API呼び出し
:CREATE_IMG
ECHO 画像を %all_img_num%枚 生成中...
for /L %%n in (1,1,%IMG_NUM%) do (
    for /L %%i in (1,1,17) do (
        set STYLE_PRESET_NOW=!STYLE_PRESET[%%i]!
        echo !STYLE_PRESET_NOW!スタイル で生成中...
        curl -f -sS "https://api.stability.ai/v2beta/stable-image/generate/core" -H "authorization: %STABILITY_API_KEY%"   -H "accept: image/*"   -F prompt="%PROMPT%"  -F negative_prompt="%NEG_PROMPT%" -F style_preset="!STYLE_PRESET_NOW!" -F aspect_ratio="%ASPECT_RATIO%" -F output_format="%OUTPUT_FORMAT%" -o "./SIC_image/%PROMPT%_!STYLE_PRESET_NOW!_%%n.%OUTPUT_FORMAT%"
    )
    echo %%nサイクル 生成完了
)

APIはcurlを使って呼び出しています
この1行だけで画像生成をすることはできますが、コマンドプロンプト上でプロンプトを編集するのは至難の技なのでテキストで編集できるようにしました

curl -f -sS "https://api.stability.ai/v2beta/stable-image/generate/core" 
  -H "authorization: Bearer sk-MYAPIKEY" 
  -H "accept: image/*" 
  -F prompt="Lighthouse on a cliff overlooking the ocean" 
  -F output_format="webp" 
  -o "./lighthouse.webp"

APIについての詳しい仕様は Stability.ai Developer Platformを参照してください

生成が完了したことを知らせる

最後に生成が完了したことをユーザーに知らせ、プログラムを終了します

: 結果表示
:DISPRAY_IMG
ECHO 生成が完了しました SIC_imageフォルダを確認してください

:END_PROGRAM

PAUSE
EXIT


まとめ

いかがでしたか?
たったこれだけのバッチファイルで画像生成をすることができます!
SIC_IMG_Creator.bat に加えて、Stable Diffusion 3で画像生成ができる SD3_IMG_Creator.bat も同梱されているので、ぜひ高解像度・高品質・文字入れ可能な画像生成をお楽しみください。
ダウンロードはこちらから https://j.aicu.ai/SaiImgBat

次回予告

コト先輩「ルゥくん、すばらしいね!クライアントも大喜びだよ」
ルゥ「お役に立てたようで良かったです~」
コト先輩「で、今回の依頼があった不動産屋さんの紹介を受けて、新規の依頼が舞い込んだよ……!」
ルゥ「えー!トントン拍子じゃないすかぁ……🫠」

次回はEdit APIを用いて自撮り写真の顔を置き換えちゃいます!
お楽しみに!


AICUmediaでは今後もStable Diffusion 3.0 やStable Image Core を用いた記事を発信していく予定です

面白かったらぜひフォロー、いいねをお願いします!

✨️本記事が面白かったら、 X@AICUai, noteのフォロー、シェアをよろしくお願いいたします!

社内Slack等のシェアでも歓迎です。
また「こんな記事欲しい」といったリクエストがございましたら X@AICUai までメンションやDMでいただければ幸いです。

✨️AICU Inc.は Stability AI 公式パートナーです。
様々なアプリ開発のご相談も承っております!サービスに導入したい、使いこなせる社員をパッと育成したい!そんな需要がございましたら sai@aicu.ai までどうぞご相談ください。

生成AI時代に「つくる人をつくる」AICU社、生成AIリーディング企業「Stability AI」と戦略提携 


この記事が気に入ったらサポートをしてみませんか?