Stable Diffusion API

APIとは?

API(Application Programming Interface )とは、アプリケーションが外部に公開している

  • サービス
  • プロトコル(通信プロトコル httpsとか、sshとか通信手順の取り決め)
  • リクエスト・パラメータ(検索エンジンだとキーワード)
  • 返信パラメーター(回答内容とフォーマット)

を言います。

郵便番号API

郵便番号を調べるAPIサービス「ポストくん」を例にします。

公開しているサービスに「住所から郵便番号を調べる」ものがあります。

  • サービスの住所: https://postcode.teraren.com
  • サービス名: postscode.json(郵便番号含むデータをJSON形式で出力)
  • プロトコル(通信手順): https
  • 入力パラメーター: 住所
  • 出力パラメーター: 郵便番号を含む住所

となります。

実際に問い合わせると以下のようになります。

リクエスト: URL、サービス名、入力パラメーター
https://postcode.teraren.com/postcodes.json?s=新橋&per=3

 プロトコル: https
 サービス名: postcodes.json
 入力パラメーター: s=新橋(住所) per=3(出力数)

試しに、以下をブラウザのアドレス欄に入れてみます。
https://postcode.teraren.com/postcodes.json?s=広島市中区

出力数を指定していないので、沢山出力されました。

APIの使い方

現在では、いろいろなサービスがAPIとして公開されています。

  • 楽天市場API
  • FANZA API
  • 郵便番号
  • 天気
  • XなどのSNS

それらのAPIを使うには、公開されているドキュメントに使い方があります。また、有料のAPIサービスもありますのでご注意ください。

Stable Diffusion API

それでは本命の「Stable Diffusion API」を使います。まずは、ドキュメントを読みます。

StabilityAIのAPIドキュメント

今回は、「Stable Diffusion 3」を使いますので、左側メニューから上記のように選択します。

表示されたドキュメントは全て英語ですので、Claude3に解説してもらうことにします。

添付してあるのは、上記APIのページをコピペしたものです。以下の回答をもらいました。

はい、Stable Diffusion 3 APIのドキュメントについて日本語で解説いたします。

このAPIは画像生成のためのものであり、主に2つのモードがあります:

  1. テキストから画像生成 (text-to-image)
  2. 画像から画像生成 (image-to-image)

APIの使用方法:

  1. POSTリクエストを送信します。
  2. ヘッダーには認証用のAPIキーを含める必要があります。
  3. リクエストのボディはmultipart/form-dataフォーマットです。
  4. Acceptヘッダーは以下のいずれかを指定します:
  • image/*: 指定したフォーマットで画像を受け取る
  • application/json: JSON形式でbase64エンコードされた画像を受け取る

主なパラメータ:

  1. prompt (必須): 生成したい画像の説明文
  2. mode: “text-to-image”か”image-to-image”を指定
  3. image: image-to-imageモード時の元画像
  4. strength: image-to-imageモード時の元画像の影響度 (0-1)
  5. aspect_ratio: 生成画像のアスペクト比 (デフォルトは1:1)
  6. model: 使用するモデル (SD3 Medium、SD3 Large、SD3 Large Turbo)
  7. output_format: 出力画像のフォーマット (jpeg or png)
  8. seed: ランダム性を制御するためのシード値
  9. negative_prompt: 画像に含めたくない要素を指定

出力:

  • 生成される画像の解像度は1MP (デフォルトは1024×1024)

クレジット消費:

  • SD3 Medium: 1回の生成につき3.5クレジット
  • SD3 Large: 1回の生成につき6.5クレジット
  • SD3 Large Turbo: 1回の生成につき4クレジット

注意点:

  • リクエストの最大サイズは10MiBです。
  • 失敗した生成に対しては課金されません。
  • SD3 Large Turboモデルではnegative_promptパラメータは機能しません。

このAPIを使用することで、テキストや既存の画像から新しい画像を生成することができます。詳細な説明文(プロンプト)を用いることで、より望ましい結果を得られる可能性が高くなります。

適当なプロンプトで画像を作成するリクエストまで作ってもらいたいところですが、APIドキュメントに例があります。

AIにGoogleスプレッドシートコードを書いてもらう

今回は、Claude3も比較のために使います。

ChatGPTとClaude3にGoogleスプレッドシートを使うプログラムコードを書いてもらいましょう。

ChatGPT、Claude3とも以下のプロンプトを入力しました。

プロンプト

Googleスプレッドシートのセル

A1: api key A2: prompt A3: アスペクト比

があります。Stable Diffusion3 APIを使うGoogleスクリプトを書いてください。

以下の入力パラメーターはも追加してください。

output_format: jpeg model: SD3Medium

ChatGPTの回答

Claude3の回答

まとめ

今回は、

  • APIとは、どのようなものか?。
  • APIを使うためにドキュメントを読む。
  • スプレッドシートから使うコードはAPIに書いてもらう。

を行いました。

AIを使うことで英語のドキュメントでも理解できますし、プログラムが分からなくでもコードを作ることができます。

ただし気を付けないといけないことは、「AIは正しいとは限らない」と、常に回答を疑うことです。

プログラムコードの場合には、「動かなければ間違い。」です。

次回は、Googleスプレッドシートを使いクリックで画像ができるようにします。

タイトルとURLをコピーしました