はじめに
先日、mojiart.comという「文字だけでつくる新しいアート」がコンセプトのWebサービスを個人開発でリリースしました。
この記事では「リリースまでにやったこと」をまとめます。これから個人開発やプロダクト開発に挑戦される方の参考になれば幸いです。
なにができるサービスなのか?
簡単なプロンプトでイケてる画像を生成できるサービスです。プロンプトエンジニアリングを意識する必要がなく、画像のスタイルを選択することで簡単な文章で画像を生成できます。
例えば、以下のような画像です。
プロンプト:人間っぽいサイ x スタイル:魔法使い
プロンプト:猫型ロボット x スタイル:ロボット
プロンプト:夏の思い出、手をつないで、歩いた海岸線 x スタイル:2000年代アニメ
アメコミっぽいスタイルからエモいスタイルまで幅広く生成ができます。 この記事では、上記のような画像を生成できる mojiart.com をリリースするまでについて書きます。
画像生成AIの衝撃
Stable DiffusionやMidjourney、Dalle2(Dalle3も続々とリリースされていますね)を利用するなかで適当な文章やテキストを入力するだけで、それがすぐにイケてる画像になったり、人間ですら考えたことのなかったいい意味でぶっ飛んだ個性的な作品が作れることに大きな衝撃を受けました。
これまで自分のアイデアを可視化するためには、絵を書くことが得意だったりデザインツールを使いこなすことができたり特別なスキルがないと難しかったと思います。 画像生成AIを利用すると文字を書くだけで自分のアイデアを可視化できる体験に衝撃を受けました。
ただ、画像生成を行うときのプロンプト作成が難しい
AIを使った画像を生成する際により高品質な画像を求める場合にはプロンプトエンジニアリングのスキルが必要になります。
例えば、かわいい猫の画像を作りたい場合
cute cat
よりも、
Cute and adorable cartoon fluffy baby black and white cat,fantasy, dreamlike, surrealism, super cute, trending on artstation
と記載したほうが生成AIがより理解しやすい指示になるため、高品質な画像が出力されます。
画像生成やプロンプトエンジニアリングに詳しい方であれば特に問題ないと思いますが、はじめて利用するには少しハードルが高いです。
さらに、画像生成の分野のサービスは海外サービスが多く、プロンプトを作成する際にも英語で入力をする必要があることから利用者層が限られていると感じました。
簡単に画像が作れたら楽しそう
日本語の入力だけで簡単にAIによる画像生成が楽しめるサービスを提供すれば、多くの人が楽しく使ってくれるのではないか?と思い、このプロジェクトをスタートさせました。
開発期間は約3ヶ月弱程度です。たまにあった連休は家に引きこもってChatGPTに助けてもらいながら開発を行いました。 余談ですが、Github CopilotやChatGPTを活用すると私のようなビギナーの開発者は開発効率が爆上がりします。控えめに言って3倍以上の効率(主観です)で開発できました。 まだ、使ったことがない方は是非使ってほしいです。
サービスを開発するまでの流れ
サービスを開発する時点で「だれでも簡単にイケてる画像をAIで生成できる」というコンセプトにすることは決まっていたため、実装する機能のスコープを決めることにしました。
個人や少数のチームでなにかを作る際に一番悲しいことは「リリースされずに終了してしまう」ということです。
そのため、まずは最低限の機能に絞って「サービスを作ってリリースする」ことを目標にサービスを開発するうえで「初期のリリースで諦めること」と「大変だけどやること」を決めました。
初期のリリースで諦めたこと
ユーザー投稿型の機能
ユーザーの方が作ったキャラクターや画像を投稿することができたりLikeをつけることができたりする機能があれば非常に楽しそうだと思いましたが、初期のリリースの機能提供としては諦めました。 実装が大変なことはもちろんですが、ユーザー投稿型の場合初期にある程度の利用が見込めないとサービス自体が過疎ってしまい、誰にも使われなくなっていまいます。マーケティングの観点でも大変だと思ったので諦めました。(使ってもらえるようになったら試してみたい)
細かいデザインの修正やパフォーマンス向上
細かいデザインの修正やパフォーマンスの向上などは、非常にこだわりたいところですが一定以上は諦めました。こだわりたいポイントではありますが、まずはユーザーの方からのフィードバックが欲しいということからあまり気にしすぎないようにしています。
今後、コツコツ修正していきたいです。
初期リリースに入れた機能
今回のサービスはStability.aiが提供するAPIやOpenAIが提供するAPIなど外部のサービスを利用しています。そのため、大量のリクエストを特定のユーザーから送信されると従量課金になるため課金金額が膨大になって、請求金額がえらいこっちゃになってしまいます。
そのため、APIの利用費対策として2つの機能を追加しました。
Rate limitの実装
もし、利用制限をつけずに画像の生成を無限に利用できるようにすると、大バズリしたときにAPIの利用料金で私が大借金を背負ってしまうようになります。そのため、upstash/ratelimit を利用してリクエストを送信できる回数のRate limitを設けました。
「未ログインユーザー」、「ログインユーザー」、「課金ユーザー」によって制限数を変更するようにしています。
有料プランの提供
Rate limitの制限のみだと特定回数(無料ユーザーは1日3枚まで)まで達したユーザーの方はそれ以上利用することができなくなってしまいます。よりたくさんの画像を作成してくださる方向けにStripeを使ってProプランの作成を行いました。
Stripeを使った決済の実装はStripe Connectを利用して行いましたが、豊富な設定項目とドキュメントが用意されています。 無料体験期間などの実現も簡単に実装することができ非常に良いサービスだと改めて実感しました。
このあたりの実装についても、今後記事にまとめてみたいと思います。
今後やりたいこと
利用者の方が作る作品をもっと見てみたい
リリースしてまだ間もないため、テストユーザーとして利用してもらった友人や限られたユーザーの方にしか利用されていません。ただ、生成された画像をみると、どの作品もアイデアや創造性にあふれていて非常に見ていて楽しいです。たくさんの人が自分の創造性を表現する機会になれば嬉しいと思っています。
多言語対応
日本語以外の英語を母語としない海外のユーザーの方にも需要があれば、多言語化対応を行なってサービスを提供したいと考えています。(Dall-e-3がChatGPT Proに搭載されたので、需要があるかは微妙ですが。。) アクセス元によっての言語の出し分けや決済プロセスの変更、規約やポリシーの見直し、ユーザーを集めるためのマーケティングの実施など提供までにやるべきことはたくさんありますが挑戦してみたいです。
画像生成AIの活用領域を増やしたい
ChatGPTなどの文章生成AIと同様に画像生成AIも大きなインパクトがあるものだと思っています。クリエイティブ領域やキャンペーン領域などの分野で、今後さらに活用されて世の中に面白いコンテンツが生まれると嬉しいです。利用者としても作る側としてもコンテンツを楽しみたいですね。
既存機能の修正
とりあえずリリースしましたが、パフォーマンス、デザイン、ユーザー体験などの部分で修正したい箇所がたくさんあります。手が回らず修正できていないところについてはコツコツ修正していきたいと思います。
まとめ
文章生成だけでなく画像生成AIも世の中に今後大きなインパクトをもたらす分野になると思います。 mojiart.comでは簡単な日本度でイケてる画像が生成できるため、是非試してみてください!
最後に今回のプロジェクトを経て感じたことは、「サービスを開発してリリースすることと同じぐらいサービスを育てることは重要」だと感じました。なにもしないと誰にも使われないサービスになってしまいますね。サービスを育てることについてもこれから試行錯誤してみたいと思います。
画像を作った方はX(旧Twitter)にもシェアいただけると嬉しいです! (バグの発見などあれば私のXにもご連絡いただけると助かります)
今回はポエム記事ですが、以上です!技術面についても機会があればまとめたいと思います。 是非、遊んでみてくださいー