rinna社が公開した日本語に特化した画像生成モデル「Japanese Stable Diffusion」のAPIをPostmanで試してみる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/29452/106d4075-6f9a-c792-d464-e676ae504ba7.png)
今年の8月8日、rinna社のテクノロジーから生まれた様々なプロダクトをAPIで試すことができる[rinna Developers](https://developers.rinna.co.jp/)をα版として公開しました。
rinna Developersでは、rinnaが提供しているプロダクトの説明や使い方、ご自身のAPI管理まで、rinna APIを活用した開発に関する情報の取得や管理ができます。
今現在、rinnaがだしているプロダクト、詳細は[こちら。](https://developers.rinna.co.jp/products)

こちらの記事では、「Japanese Stable Diffusion」をインストールして使える説明が詳しく書いてありますので、ご自身の環境で実施したい方は、こちらの記事を参考にしてください。
[【日本語を呪文に使える】Japanese Stable Diffusionのインストール](https://self-development.info/%E3%80%90%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%82%92%E5%91%AA%E6%96%87%E3%81%AB%E4%BD%BF%E3%81%88%E3%82%8B%E3%80%91japanese-stable-diffusion%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/29452/ccc0b8c8-72d5-09ae-c6b2-d071875ab6f5.png)


このブログでは、先日rinna社が公開した、[日本語に特化した画像生成モデル「Japanese Stable Diffusion」](https://rinna.co.jp/%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9/f/rinna%E7%A4%BE%E3%80%81%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%81%AB%E7%89%B9%E5%8C%96%E3%81%97%E3%81%9F%E7%94%BB%E5%83%8F%E7%94%9F%E6%88%90%E3%83%A2%E3%83%87%E3%83%AB%E3%80%8Cjapanese-stable-diffusion%E3%80%8D%E3%82%92%E5%85%AC%E9%96%8B)とそのモデルを使用したAPIも公開してあるので、APIを簡単に実行できる「[Postman](https://www.postman.com/)」を使って、試してみたいと思います。

今回公開されたモデルは[Hugging Face](https://huggingface.co/rinna/japanese-stable-diffusion)や[GitHub](https://github.com/rinnakk/japanese-stable-diffusion)に公開されているので、皆さんの環境や方法で自由にご利用いただけます。
すでにいろんな方が、Cloudサービスやrinna社が公開してある[Text to Image API](https://developers.rinna.co.jp/product#product=text-to-image-api)（Japanese Stable Diffusionは、Text to Image - v2）を使って、試していただきましたが、rinna社が提供している様々なAPIを試していただきたく、rinna DevelopersのAPIを中心にご紹介できればと思います。

先日、モデルの公開をtwitterで投稿をしたところ、多くの方が興味を持ってくれたので、開発者の皆さん及びご興味のある方は、ぜひ、お試しいただけたらなと思ってます。
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">本日、日本語に特化した画像生成モデル「Japanese Stable Diffusion」を公開しました！<br><br>日本語のキャプション付き画像を用いて追加学習することで、日本語に特化した画像生成モデル「Japanese Stable Diffusion」は、Hugging Faceやgithubにて公開してあります！<a href="https://t.co/AQBPKlflF3">https://t.co/AQBPKlflF3</a></p>&mdash; joohoun (@joohounsong) <a href="https://twitter.com/joohounsong/status/1568068066482999297?ref_src=twsrc%5Etfw">September 9, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

## ようこそ、rinna Developersへ
TOP画面のメニューの「sign in」から、rinna idを取得してログインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/29452/4518b93c-be5b-6ae0-ddce-ad8af49716cc.png)

## rinna APIを選択
メニューの[products](https://developers.rinna.co.jp/products)から、現在公開されているrinna APIと簡単な説明が確認できます。
ページのdescriptionを確認して、興味のあるAPIを選んで試してみるのはいかがでしょうか。
今回は、「Text to Image API」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/29452/f2dcad9a-9709-e4bb-e5c9-3d0103fde794.png)

## APIの確認とAPI Subscription登録
それぞれのAPIを選択すると、APIの詳細画面に遷移します。この画面でAPIのSubscriptionを登録して、API Keyを取得できます。
① 管理用のAPI名を入力します。
② Subscribeすると自分のAPI管理ページ（Profile）に遷移します。
③ Text to Imageは、今現在、「Text to ImageとText to Image - v2」２つのAPIを公開しており、モデルが違います。今回は、「Japanese Stable Diffusion」モデルを試したいので、Text to Image - v2を選びます。
※ API Kyeは「Text to Image」一つで、両方使えます。（EndPointで分かれています。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/29452/a4c6df3b-04b2-08b4-a497-8e8e3a1c37f4.png)

## アカウントのAPIを確認＆管理する
上で「Subscribe」すると、アカウントのプロファイル画面に遷移します。
この画面で、登録済みのAPIの確認や管理ができます。
① ログインできていれば、TOPメニューに「Profile」が表示され、この管理画面に移動できます。
② 登録済みAPI一覧を確認できます。
③ 今回追加した「Text to Image API」が確認できます。
④ Rename：管理用のAPI名を変更できます。
　Show：API Keyを確認できます。（PrimaryとSecondaryがありますが、どちらか一つを使います。）
　Regenerate：API Keyを再発行します。
⑤ Cancel：APIを削除します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/29452/58a448cf-ee86-0aab-4c6f-36c62464d02b.png)

ここまで出来たら、rinna APIを使う準備完了となります。

## rinna DevelopersでAPIを試す（try it）
上記の「APIの確認とAPI Subscription登録」でAPIを選択すると、API Docsに遷移します。
① 選択されたAPIのEndPointの確認ができます。
② 「try it」から、APIを試したり、様々なプログラミング言語のサンプルコードや設定方法などが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/29452/7cfc2b7b-c2ed-0d61-b97a-787e51e7ee4a.png)
※「try it」の「HTTP request」から選択可能な言語やCLIなどの確認もできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/29452/e027138a-b79e-e943-5281-24a203d53c0f.png)

## Postmanを準備する
Postmanは、API開発用コラボレーションプラットフォームとして、APIの開発に必要な機能を幅広く提供しています。今回のようにAPIを試す際にも有効に使えます。
Postmanが初めての方は、Postmanで検索するといろんな情報が出てきますが、そのなか、WorkSpaceの生成方法や使い方が親切に説明されている記事を見つかりましたので、共有します。

https://qiita.com/sabewe/items/a9aa46c19938fdc80187

## Postmanを使ってrinna APIをたたいてみる。
最初にご自身のPostman Workspace > Collactionsに移動してください。

#### EndPoint設定
上記の手順「rinna DevelopersでAPIを試す（try it）」で確認できる、rinna APIのEndPoint（Request）の「https://」から始まる、文字列を設定します。
Text to Image V2は、POSTでやりとりをします。
Postmanで「Add request」すると、デフォルト「GET」になっているので「POST」に変えてrinna APIのEndPointを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/29452/4a3c2e7b-6467-667b-29d2-bac8382c54b7.png)


#### API認証キー設定
rinna APIにアクセスするための認証キーを設定します。

① Authorizationに移動
② Type：API Keyを選択
③ Value：SubscribeのAPIから確認できます。
  Key、Add to：上記手順「rinna DevelopersでAPIを試す（try it）」の「try it」> 「HTTP Request」を参考にして入力してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/29452/5d967f45-c5ad-2b5c-79cc-9771f89ffce0.png)


#### Header情報追加
① Headeraに移動
② 上記手順「rinna DevelopersでAPIを試す（try it）」の「try it」> 「HTTP Request」を参考にして、「Content-Type」と「Cache-Control」を追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/29452/b6500c5b-7494-7a03-807f-d58fd46ec06f.png)


#### Bodyの設定とSend
① Bodyに移動します。
② 上記手順「rinna DevelopersでAPIを試す（try it）」の画面（API Docs）の「Request body」を参考にして、リクエストを送信する内容を入れます。
③ リクエストを送信する準備（設定）完了ですので、「Send」をクリック！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/29452/82614ae4-0d13-d6e2-0c6a-4e856f3605e5.png)


#### Base64文字列抽出
上記手順「rinna DevelopersでAPIを試す（try it）」（API Docs）の画面にも書いてある通り、Text to ImageのResponseは、Base64エンコード文字列となります。
今回は、使い方の説明となるので、生成された画像のBase64の文字列を画像変換（Base64デコード）してみたいと思います。
下の画像の「黒文字」が今回生成された画像のBase64文字列なので、赤の部分は不要となります。
※ 「中略」の部分は長いので、切り出す際にご注意ください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/29452/f74a82a4-f0c1-7217-fbd6-60a8fa573787.png)


#### 結果確認
今回は、[Web ToolBox](https://web-toolbox.dev/)で提供されている「[画像Base64デコード](https://web-toolbox.dev/tools/base64-decode-image)」を使ってみました。
上の手順「Base64文字列抽出」で取り出した、Base64エンコード文字列を入力して「Base64 デコード」すると画像が出力されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/29452/9d2a060a-643e-ce6a-c795-8b1984a214da.png)

## 最後に
rinna Developersは、ブログの冒頭でも紹介したように、いまのところ「α版」として提供されていますので、UIや機能など変更となる可能性が高いです。
今後のrinna Developersのアップデートにもご期待ください！

今回は、Postmanを使って、rinnaのAPIを実行する方法を紹介しましたが、上記手順「rinna DevelopersでAPIを試す（try it）」の「trya it」から、みなさんが登録したAPIを試すことも可能です。
try it > 必要情報入力（デフォルト入力あり）> HTTP Request > HTTP > Send すると、上記、Postmanで得られた画像のBase64エンコード文字列が戻ってきます。
このように、rinnda Developersでは、別の環境構築なしでもrinna APIを試すことができるので、Text to Image以外のAPIもぜひ、試してみてください！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/29452/fc355482-5dc5-3c8e-dd59-47eb7301de26.png)