Goens株式会社のCloudflare AIによる画像生成機能の構築
Goens株式会社 / chimame
CTO・VPoE / CTO / 従業員規模: 10名以下 / エンジニア組織: 10名以下
利用プラン | ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
---|---|---|---|
Workers Paid | 10名以下 | 2022年6月 | C to C |
利用プラン | Workers Paid |
---|---|
ツールの利用規模 | 10名以下 |
ツールの利用開始時期 | 2022年6月 |
事業形態 | C to C |
アーキテクチャ
アーキテクチャの意図・工夫
今回のAIで画像を生成する際の構成の工夫
前提条件
- Cloudflare Workersが使用できるメモリは最大128MB(リクエスト単位ではなく、Workersのインスタンス単位)
- 生成の元画像および生成画像も大きくても1MB前後
- Cloudflare AIのベータモデルが安定しない
構築方法
今回のAIを使用して画像を生成する処理はGraphQL ServerとなるCloudflare Workersとは別のCloudflare Workersで生成しております。
また、安定しないAIのモデルため、生成処理を1回ではなく、複数回を並列で実施しており、その中で成功したものを取得しております。
構築理由
本体のAPIとなるGraphQL ServerのCloudflare Workersの使用メモリは大きいものではありませんが、画像生成でメモリ容量がオーバーしてしまって、他の処理に影響しないように別のCloudflare Workersに切り離して構築しています。
Cloudflare WorkersにはService BindingsというCloudflare Workers同士を通信させる機能がありますが、これを使用して生成結果のURLなどを受け渡ししています。さらに、Cloudflare Workers間の連携を容易にするためRPCを使用して結果の型などがスムーズに取得できるように開発を工夫しております。
また、AIによる画像生成を一度に作成した結果の一部を使用しますが、大部分は不要となります。そこで生成した画像が自動的に削除される設定を行ったR2に保存することでR2の容量削減を行っています。
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
Goens(ゴエンズ)というシニア向けのマッチングサービスを運営しております。
運営の中で様々な課題が存在しますが、シニアらしい課題も存在しております。
その課題の中でマッチングサービスをご利用になった方ならわかると思うのですが、自身のプロフィールに設定する画像を登録しますが、どのような画像を登録すると良いのかというのがよくわかっていらっしゃらないお客様が少なからずいらっしゃいます。
せっかく登録してもらったからには良いご縁があるように相手方から見たらいい印象となる画像を設定して頂きたい思いがあります。ですが、なかなかご自身の画像を撮るということに慣れていない方がいらっしゃるので、その課題を何とか出来ないかと考えておりました。
また、そもそも自身の画像を登録することに抵抗があるという方も一定数いらっしゃいます。そんな方でも気軽にプロフィールの画像を設定して頂けないか考えておりました。
どのような状態を目指していたか
Goens(ゴエンズ)を利用するユーザとして良いご縁を助けるために、簡単に自身の特徴を捉えたプロフィール画像を設定して頂き以下の状態を目指しております。
- プロフィール画像を設定して頂き、良いご縁に巡り合うようにして頂きたい
- プロフィール画像に自身の顔を載せることに抵抗がある方でも、登録する心理的ハードルを下げたい
- Goens(ゴエンズ)ユーザを見た時に、素晴らしい人達が集まっているサービスだと認識して頂きたい
そこでプロフィールの画像をAIによる生成を行い、上記の課題を解決できないと考え機能を開発しました。
比較検討したサービス
- Cloudflare AI
- Midjourney
- DALL-E 3
- Replicate
比較した軸
今回でいうとユーザ自身のプロフィール画像ということで、ご自身の特徴を反映した画像だったり、デフォルメされた画像を登録してほしいという自身の画像をインプットにユーザの特徴を捉えた画像を生成するというImg2Imgが行えるということが実現できるサービスを検討しました。
選定理由
課題ではあるもの、そこまで大きく工数をかけれる余裕もないというのが実情でした。またあくまで実験的な試みであったため、素早く実装出来てユーザの反応を見たいという考えもありました。
そこでMidjournyやDALL-E 3もしくは独自のモデルを使用するReplicateなどを使用すると生成する画像の精度は上がりますが、費用などもそれなりにかかってきます。今回は実験的な機能ということでCloudflare AIを採用してユーザの反応を見つつ、反響があれば生成画像の精度を上げていくという考えの元、Cloudflare AIを選択しました。
導入の成果
どのような成果が得られたか
機能として提供して、ユーザには画像を生成するということ自体はそこそこ使用されています。
また、その中でも少ないですが、生成した画像をプロフィール画像に設定してくれているユーザも存在しております。
プロフィール画像を生成して登録しようというユーザが一定数上がったことは成果として考えられます。
導入時の苦労・悩み
Cloudflare AIでもモデルによってはまだベータとして提供されているものが数多くあります。そして今回生成に使用するStable Diffusion v1.5もベータということでした。
ベータはベータで料金面でメリットはあるのですが、デメリットとして出力面の安定性がなく、サービスの機能として生成した画像をユーザに提供するという点で苦労しました。
導入に向けた社内への説明
上長・チームへの説明
基本的にはユーザプロフィールの充実というのはサービス開始当初から課題であり、数年運用している今でもサービス運用メンバー共通の課題です。その課題を解決するべき機能の提案と生成するAIサービスの質や料金からメンバーには説明しております。
- Cloudflare AIで使用するモデルがベータ版であるため、生成に関する料金は現状かからない
- 生成画像の質自体は高いものではないが、まずは機能としてユーザに提供して反応をみる
- 感触が良ければ生成画像の質をあげるように使用するサービスなどを再度検討する
などを検討して、機能を開発して提供しております。
活用方法
よく使う機能
- Cloudflare Wokers: サーバAPIの大部分はこちらで構築しています
- Cloudflare R2: 画像の保存や配信を行うためにとても便利なサービスです
ツールの良い点
- Cloudflare Workersを使用しているサービスであればCloudflare AIの導入が簡単であること
ツールの課題点
- ベータ版を使用する場合は生成の安定性をプログラム側で制御する必要があること
- どんなモデルを使用しようとしても現状日本語という言語は扱えないということ
ツールを検討されている方へ
それなりの精度や開発速度を求めているのあればとても有力な選択肢に入ってきます。
Goens株式会社 / chimame
CTO・VPoE / CTO / 従業員規模: 10名以下 / エンジニア組織: 10名以下
よく見られているレビュー
Goens株式会社 / chimame
CTO・VPoE / CTO / 従業員規模: 10名以下 / エンジニア組織: 10名以下
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法