2023年3月10日金曜日

rinna株式会社のText to Image -v2のAPIを使用する

rinna株式会社が提供しているText to Image - v2のAPIをOracle APEXのアプリケーションから呼び出して、テキストから画像を生成してみます。音声か画像かの違いなので、以前のText to Speech - v2を呼び出すAPEXアプリケーションとほとんど同じです。


手順として異なる部分に絞って、アプリケーションの作成作業を紹介します。

生成した画像は表RINNA_TEXT_TO_IMAGESに保存します。以下のクイックSQLのモデルから作成します。
# prefix: rinna
# auditcols: true
text_to_images
    text clob
    content_type vc16
    image blob
    scale num
    nsfwContentDetected vc1
    type vc80
画像を取り出すRESTサービスのソースは以下になります。

select content_type, image from rinna_text_to_images where id = :id

テンプレートはimage、メソッドはGET、ソース・タイプはMedia Resourceです。完全なURLはコピーしておきます。


APEXアプリケーションを作成します。

名前はText to Image、追加する対話モード・レポートのページ名はImages、ソースとして表RINNA_TEXT_TO_IMAGESを指定します。


ホーム・ページにテキスト(APIの引数promptsになる)を入力するページ・アイテムを作成します。

識別の名前はP1_TEXT、タイプはテキスト領域、検証の必須の値はONにします。


スケールを指定するページ・アイテムを作成します。

識別の名前はP1_SCALE、タイプは数値フィールド、ラベルはscaleとします。設定の最小値に0、最大値に20を設定し、設定の必須の値をONにします。デフォルトの静的値として7.5を設定します。


Text to Imageを実行するボタンを作成します。

識別のボタン名はTEXT_TO_IMAGE、ラベルはText To Image、動作のアクションとして、デフォルトのページの送信を選択します。


生成された画像を表示するページ・アイテムを作成します。

識別の名前はP1_IMAGE、タイプとしてイメージの表示を選択します。ラベルは画像、設定の基準としてImage URL stored in Page Item Valueを選択します。


アイテムの配置は以上です。

ボタンTEXT_TO_IMAGEをクリックしたときに実行されるプロセスを作成します。

作成したプロセスの識別の名前はText to Imageとします。タイプはコードを実行です。ソースのPL/SQLコードとして、以下を記述します。ワークスペース名がapexdevと決め打ちにしているので、その部分は変更が必要です。

サーバー側の条件のボタン押下時にTEXT_TO_IMAGEを選択します。


ページ・デザイナで対話モード・レポートのページを開き、列IMAGEのタイプをイメージの表示に変更します。BLOB属性のMIMEタイプ列としてCONTENT_TYPEを指定します。


以上でアプリケーションは完成です。

アプリケーションを実行すると記事の先頭のような動作になります。

作成したAPEXアプリケーションのエクスポートを以下に置きました。
https://github.com/ujnak/apexapps/blob/master/exports/text-to-image.zip

rinna株式以外より提供されているAPIのTerms of UseおよびFAQなどは、利用者ご自身にて確認していだくようお願いします。FAQには、APIは現在、試験運用中で検証を除く業務用利用は禁止しております、と記載されています。

Oracle APEXのアプリケーション作成の参考になれば幸いです。

完