クリエイターの教科書

ChatGPT, Stable Diffusion, Visual Studio, Excelなど教科書

【Stable Diffsuion】Stability AIのAPI、種類は?サンプルは?

Stability AIのAPI、価格は?

Stability AIのAPIとは?

ML界注目のStability AIが提供するAPIサービス。

ざっくりいえばStability AIの画像生成などがAPIで自社サイトからも利用できるようになります。

 

https://platform.stability.ai/

 

テキストトゥイメージ

文字、プロンプトから画像を生成します。

 

イメージトゥイメージ

アップした画像をもとに新規画像を生成します。

 

インペインティング+マスキング

特定の部分だけ上書きのように画像を生成します。

 

Image Upscaling

画質のクォリティを落とさずにイメージを拡大します。

 

価格は?

一度クレジットという単位で購入。1000クレジットの場合は最低10ドルから。

 

あとは生成画像の画像サイズや生成するステップ数に応じて使われるクレジットがかわります。

ステップ数が多いほど画像の精度がアップしますが、コストや生成時間もアップします。

 

30ステップで512x512サイズの画像を生成する場足、 0.2クレジット、= $0.002 = 0.27円。

 

最近発表された高精度モデルSDXLの場合、30ステップで512x512サイズの画像を生成する場足、 0.25クレジット、= $0.0025 = 0.33円。

Platform (stability.ai)

 

一概に比較はできませんが、OpenAIのDall-e用APIだと1枚2円。しかも上限120ドルまで(それ以上の場合は追加申請が必要)。

【ChatGPT開発】ChatGPTのAPI利用方法 課金申し込みは?利用料金は? - ChatGPTの教科書

 

なので条件的にはこちらのほうがよさそうです。

 

制限は?

現在のレート制限は、10秒間に150リクエストです。

 

現状、自分のアカウントやAPIキーの利用状況の表示はないようです。クレジットの消費で確認する感じでしょうか。

 

クレジットの購入や確認は以下より行えます。

 

DreamStudio

 

購入は10ドルから。クレカのみ。

 

 

Stability AIのAPI、PHPのサンプルは?

プロンプトからイメージのサンプルです。

 

$apikey = '{取得したAPIキー}';

$steps = 15;//ステップ数
$num_samples=1;//作成する画像数
$width = 512;//はば
$height = 512;//高さ
$prompt = 'bikini girl';//プロンプト

$fn="stable.png";//保存する画像のファイル名

 

        $ch = curl_init();
        $headers  = array(
            'Accept: application/json',
            'Content-Type: application/json',
            'Authorization: Bearer ' . $apikey . ''
        );

        $postData = array(
            'text_prompts'=>[array('text'=>$prompt)],
            'cfg_scale'=>7,
            'clip_guidance_preset'=> 'FAST_BLUE',
            'height'=> $height,
            'width'=> $width,
            'samples'=> $num_samples,
            'steps'=> $steps
        );

        curl_setopt($ch, CURLOPT_URL, 'https://api.stability.ai/v1/generation/stable-diffusion-v1-5/text-to-image');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData));
        curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);

        $output = curl_exec($ch);


$joutput = json_decode($output,true);
if($joutput["artifacts"][0]["finishReason"] != "SUCCESS"){
    print $joutput["artifacts"][0]["finishReason"];
}

file_put_contents($fn, base64_decode($joutput["artifacts"][0]["base64"]));

 

戻ってくるデータは

Array ( [artifacts] => Array ( [0] => Array ( [base64] => iVBORw0......., [seed] => 3548414900 [finishReason] => SUCCESS ) ) )

のような内容です。

 

これで画像ファイルが保存できればOK。

候補は複数枚生成できるので、配列番号ごとに保存しましょう。

 

このブログは、ネットや書籍上の情報、個人の体験や感想を中心にまとめたものです。 正確性を期していはいますが、間違い・誤訳等あるかもしれません。 当サイトの情報によって生じたいかなる損失について一切の責任を負わないものとします. あらかじめご了承ください。

プライバシーポリシー |〇利用規約 |〇問い合わせ