1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

話題の画像生成AIをあなたのアプリやサービスに取り込もう〜Stable DiffusionをiPhoneやMacbookでつかう〜

Posted at

画像生成AIをアプリに搭載する

今話題の画像生成AI文章から画像を生成するAI)ですが、サクッとご自身のアプリに取り込んでサービスに活かせるといいですよね。
たとえば、ユーザープロフィールのアイコンやヘッダーの画像を自動生成したりもできます。
でも、AIってどうやって取り入れればいいの?
実は、MacやiPhoneやiPad用のアプリに搭載することができます
こうすればサーバーを用意する必要もなく、ユーザーのデバイスで画像生成できるので、簡単にサービスに取り込めます。

(参考)iPhoneで「猫プリンセス」を生成してみた

(参考)Macbookで「スーパーヒーロー猫」を生成してみた↓

スクリーンショット 2023-03-13 15.52.51.png

サンプルアプリとして試してみたい方は、AppStoreにアップされているので、ダウンロードすることもできます。

画像生成AIをiPhone/Macアプリに取り入れてつかう方法

アプリに画像生成AIを入れるには、CoreMLという形式に変換します。
Appleが画像生成AI Stable DiffusionのCoreMLバージョンを提供してくれています。 これを使います。

HuggingFaceが提供しているサンプルプロジェクトをダウンロードして実行します。

テキストを入力して、Generateボタンを押すと画像が生成できます。

画像生成モデルはいくつかのバージョンから選ぶことができます。
アダルトコンテンツや有害コンテンツをブロックするSafetyCheckのオンオフ機能もあります。

スクリーンショット 2023-03-13 15.16.46.png

独自のアプリに取り込む方法

サンプルアプリのCoreMLモデルのダウンロード部分とAI実行部分のコードを抜き出して自身のアプリに取り込めば、簡単にAI画像生成機能が追加できます。

AI実行

以下で、入力されたテキストをtextEncoderモデルでベクトルにしています。

let promptEmbedding = try textEncoder.encode(prompt)
let negativePromptEmbedding = try textEncoder.encode(negativePrompt)

UNetでLatentとテキストベクトルからノイズを生成しています。

var noise = try unet.predictNoise(
    latents: latentUnetInput,
    timeStep: t,
    hiddenStates: hiddenStates
)

最後に、画像生成モデルで画像を生成します。

try decodeToImages(latents, disableSafety: disableSafety)

(参考)「暗黒の敵役猫」を生成してみた↓
スクリーンショット 2023-03-13 15.56.20.png

🐣


フリーランスエンジニアです。
もし以下のようなご要望をお持ちでしたらお気軽にご相談ください。
AIサービスを開発したい、ビジネスにAIを組み込んで効率化したい、AIを使ったスマホアプリを開発したい、
ARを使ったアプリケーションを作りたい、スマホアプリを作りたいけどどこに相談したらいいかわからない、画像生成AIやChatGPTを自社サービスに活かしたい…

いずれも中間コストを省いたリーズナブルな価格でお請けできます。

お仕事のご相談はこちらまで
rockyshikoku@gmail.com

機械学習やAR技術を使ったアプリケーションを作っています。
機械学習/AR関連の情報を発信しています。

Twitter
Medium
GitHub

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?