ゼロからAI画像生成アプリの構築方法
著者:Steven Lynn. Difyのテクニカルライター
画像生成技術の発展に伴い、Dall-e、Flux、Stable Diffusionなどの優れた画像生成ツールが多数登場しています。
本記事では、Difyを使用してAI画像生成アプリを開発する方法について学びます。

今回の学ぶポイント
Difyを使用してエイジェントの作り方
エイジェントの基本的なコンセプト
プロンプトエンジニアリングの基本
ツールの使用方法
大規模モデルの幻覚の概念
1. Stablility API キーの設定
こちら をクリックして、ステイビリティAPIキー管理ページに移動します。
まだ登録していない場合は、API管理ページに入る前に登録を求められます。
管理ページに入ったら、キーをコピーするためにコピー
をクリックします。

次に、Dify - ツール - Stability にキーを入力する必要があります。以下の手順に従ってください:
Difyにログインする
ツールに入る
ステイビリティを選択する
承認をクリック
キーを入力して保存
2. モデルプロバイダの設定
インタラクションを最適化するために、ユーザーの指示を具体化するための大規模言語モデル(LLM)が必要です。つまり、画像生成のためのプロンプトを記述します。次に、Difyでモデルプロバイダを設定します。
Difyの無料版では、200回の無料のOpenAIメッセージクレジットが提供されます。
メッセージクレジットが不足している場合は、以下の手順に従って他のモデルプロバイダをカスタマイズできます:
あなたのアバター - 設定 - モデルプロバイダの順にクリックします。
適切なモデルプロバイダが見つからない場合は、groqプラットフォームがLlamaなどのLLM用に無料のコールクレジットを提供しています。
groq API管理ページにログインします。
API Keyの作成をクリックし、希望の名前を設定してAPIキーをコピーします。
Dify - モデルプロバイダに戻り、groqcloudを選択し、設定をクリックします。

API Keyを貼り付けて保存します。

3. エイジェントを作る
Dify - スタジオに戻り、最初から作成を選択します。

この実験では、エージェントの基本的な使用方法を理解するだけで十分です。
エージェントを選択し、名前を入力します。

以下のようにエージェントのオーケストレーションインターフェースに入ります。

LLMを選択します。このチュートリアルでは、groqが提供するLlama-3.1-70Bを例にします:

ツールでステイビリティを選択します:


プロンプトの書き方
プロンプトはエージェントの核心であり、出力結果に直接的な影響を与えます。一般的に、プロンプトが具体的であればあるほど、出力も向上しますが、過度に長いプロンプトは逆効果になることもあります。
プロンプトを調整する技術は「プロンプトエンジニアリング」と呼ばれています。
この実験では、プロンプトエンジニアリングを完全に習得していなくても心配する必要はありません。後で段階的に学ぶことができます。
まずは、最もシンプルなプロンプトから始めましょう:
ユーザーのプロンプトに従って、指定された内容を stability_text2image を使用して描画してください。
ユーザーがコマンドを入力するたびに、エージェントはこのシステムレベルの指示を理解し、ユーザーの描画タスクを実行する際には、stabilityというツールを呼び出すことを認識します。
例:女の子が開いた本を持っているのを描く。

プロンプトを書くのかしなくても可能ですか?もちろん可能です!
プロンプトの上部にある自動をクリックしてください。

指示に要件を入力し、自動をクリックします。右側に生成されたプロンプトがAIによって作成されます。

ただし、プロンプトについての理解を深めるためには、初期段階ではこの機能に頼るべきではありません。
発表
右上の公開ボタンをクリックし、公開後にRunを選択して、オンラインで実行されるエージェント用のWebページを取得します。

このWebページのURLをコピーして、友人と共有することができます。
質問1:生成された画像のスタイルを指定する方法は?
ユーザーの入力コマンドにスタイル指示を追加することができます。例えば:「アニメスタイルで、女の子が開いた本を描いてください。」

ただし、デフォルトのスタイルをアニメスタイルに設定したい場合は、システムプロンプトにその旨を追加することができます。なぜなら、システムプロンプトはユーザーコマンドが実行されるたびに認識され、優先されるからです。
ユーザーのプロンプトに従って、指定された内容をstability_text2imageを使用して描画してください。画像はアニメスタイルです。
質問2:特定のユーザーからのリクエストを拒否する方法は?
多くのビジネスシナリオでは、いくつかの不適切なコンテンツの出力を避ける必要がありますが、LLMはしばしば「無知」であり、出力コンテンツが間違っていてもユーザーの指示に従います。このように、モデルが間違ったコンテンツを作り出してユーザーに答えようとする現象を「モデルの幻覚」と呼びます。したがって、必要に応じてモデルがユーザーのリクエストを拒否できることが重要です。
さらに、ユーザーがビジネスに関係のないコンテンツを要求することもあり、エージェントがそのようなリクエストを拒否する必要があります。
異なるプロンプトをカテゴリ別に整理するために、マークダウン形式を使用して、エージェントに不適切なコンテンツを拒否する方法を教えるプロンプトを「制約」のセクションに記述します。もちろん、このフォーマットは標準化のためのものであり、独自のフォーマットを持つこともできます。
## タスク
ユーザーのプロンプトに従って、指定された内容をstability_text2imageを使用して描画してください。画像はアニメスタイルです。
## 制約
もしユーザーが描画に関係のないコンテンツを要求した場合、「申し訳ありませんが、その内容は理解できません。」と返答してください。
例えば、今夜の夕食は何ですか?と聞いてみましょう。
よりフォーマルなビジネスシナリオでは、感情的な単語ライブラリを使用してユーザーのリクエストを拒否することができます。
Add Feature - Content Moderationにキーワード「dinner」を追加します。ユーザーがそのキーワードを入力すると、エージェントアプリは「申し訳ありませんが、その内容は理解できません。」と出力します。

Last updated