次の方法で共有


クイック スタート: Azure AI Foundry モデルで Azure OpenAI を使用してイメージを生成する

画像生成 API は、テキスト プロンプトから画像を作成します。 これが、既存の画像からバリエーションを編集または作成することはありません。

ブラウザーで、Azure AI Foundry と共に Azure OpenAI を使用して画像を生成する基本的な方法については、このガイドを参考にしてください。

前提条件

Azure AI Foundry に移動する

Azure AI Foundry にアクセスし、Azure OpenAI リソースに関連付けられている資格情報でサインインします。 サインイン ワークフローの途中または後で、適切なディレクトリ、Azure サブスクリプション、Azure OpenAI リソースを選択します。

Azure AI Foundry ランディング ページから、新しいプロジェクトを作成または選択します。 左側のナビゲーションで [モデル + エンドポイント] ページに移動します。 [モデルのデプロイ] を選択し、一覧から DALL-E モデルのいずれかを選択します。 デプロイ プロセスを完了します。

モデルのページで、[プレイグラウンドで開く] を選択します。

画像生成を試す

イメージ プレイグラウンドを使用すると、コードなしのアプローチで Azure OpenAI 機能の探索を開始できます。 テキスト ボックスに画像プロンプトを入力し、[生成] を選択します。 AI によって生成された画像の準備ができたら、ページに表示されます。

Image API には、コンテンツ モデレーション フィルターが付属しています。 Azure OpenAI がプロンプトを有害なコンテンツとして認識した場合、生成画像は返されません。 詳細については、「コンテンツ フィルター」を参照してください。

イメージ プレイグラウンドでは、設定に従って事前に入力された Python と cURL コードのサンプルを表示することもできます。 ページの上部付近にある [コードの表示] を選択します。 このコードを使用して、同じタスクを完了するアプリケーションを記述できます。

リソースをクリーンアップする

Azure OpenAI リソースをクリーンアップして削除したい場合は、リソースまたはリソース グループを削除できます。 リソース グループを削除すると、それに関連付けられている他のリソースも削除されます。

次のステップ

このガイドを使用して、Python を使用して Azure AI Foundry Models イメージ生成 REST API で Azure OpenAI の呼び出しを開始します。

前提条件

セットアップ

キーとエンドポイントを取得する

Azure OpenAI API を正常に呼び出すには、Azure OpenAI リソースに関する次の情報が必要です。

変数 名前
エンドポイント api_base エンドポイント値は、Azure portal のリソースの [キーとエンドポイント] にあります。 また、Azure AI Foundry ポータルの [デプロイ] ページからエンドポイントを見つけることもできます。 エンドポイントの例: https://docs-test-001.openai.azure.com/
キー api_key キー値は、Azure portal のリソースの [キーとエンドポイント] にあります。 Azure では、リソースに対して 2 つのキーが生成されます。 いずれかの値を使用できます。

Azure portal でリソースに移動します。 ナビゲーション ウィンドウで、[リソース管理] [キーとエンドポイント] を選択します。 [エンドポイント] の値とアクセス キーの値をコピーします。 KEY 1 または KEY 2 のいずれかの値を使用できます。 常に 2 つのキーを用意しておくと、サービスを中断させることなく、キーのローテーションと再生成を安全に行うことができます。

Azure portal で Azure OpenAI リソース用のキーとエンドポイント ページを示すスクリーンショット。

環境変数

キーとエンドポイントの永続的な環境変数を作成して割り当てます。

重要

Microsoft Entra 認証と Azure リソースのマネージド ID を併用して、クラウドで実行されるアプリケーションに資格情報を格納しないようにすることをお勧めします。

API キーは慎重に使用してください。 API キーは、コード内に直接含めないようにし、絶対に公開しないでください。 API キーを使用する場合は、Azure Key Vault に安全に格納し、キーを定期的にローテーションし、ロールベースのアクセス制御とネットワーク アクセス制限を使用して Azure Key Vault へのアクセスを制限してください。 アプリで API キーを安全に使用する方法の詳細については、Azure Key Vault を使用した API キーに関する記事を参照してください。

AI サービスのセキュリティの詳細については、「Azure AI サービスに対する要求の認証」を参照してください。

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

新しい Python アプリケーションを作成する

quickstart.py という名前の新しい Python ファイルを作成します。 好みのエディターまたは IDE で新しいファイルを開きます。

  1. quickstart.py の内容を次のコードで置き換えます。 prompt の値を任意のテキストに変更します。 また deployment GPT-image-1 モデルのデプロイ時に選択したデプロイ名に設定します。

    import os
    import requests
    import base64
    from PIL import Image
    from io import BytesIO
    
    # set environment variables
    endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    subscription_key = os.getenv("AZURE_OPENAI_API_KEY")
    
    deployment = "gpt-image-1" # the name of your GPT-image-1 deployment
    api_version = "2025-04-01-preview" # or later version
    
    def decode_and_save_image(b64_data, output_filename):
      image = Image.open(BytesIO(base64.b64decode(b64_data)))
      image.show()
      image.save(output_filename)
    
    def save_all_images_from_response(response_data, filename_prefix):
      for idx, item in enumerate(response_data['data']):
        b64_img = item['b64_json']
        filename = f"{filename_prefix}_{idx+1}.png"
        decode_and_save_image(b64_img, filename)
        print(f"Image saved to: '{filename}'")
    
    base_path = f'openai/deployments/{deployment}/images'
    params = f'?api-version={api_version}'
    
    generation_url = f"{endpoint}{base_path}/generations{params}"
    generation_body = {
      "prompt": "girl falling asleep",
      "n": 1,
      "size": "1024x1024",
      "quality": "medium",
      "output_format": "png"
    }
    generation_response = requests.post(
      generation_url,
      headers={
        'Api-Key': subscription_key,
        'Content-Type': 'application/json',
      },
      json=generation_body
    ).json()
    save_all_images_from_response(generation_response, "generated_image")
    
    # In addition to generating images, you can edit them.
    edit_url = f"{endpoint}{base_path}/edits{params}"
    edit_body = {
      "prompt": "girl falling asleep",
      "n": 1,
      "size": "1024x1024",
      "quality": "medium"
    }
    files = {
      "image": ("generated_image_1.png", open("generated_image_1.png", "rb"), "image/png"),
      # You can use a mask to specify which parts of the image you want to edit.
      # The mask must be the same size as the input image.
      # "mask": ("mask.png", open("mask.png", "rb"), "image/png"),
    }
    edit_response = requests.post(
      edit_url,
      headers={'Api-Key': subscription_key},
      data=edit_body,
      files=files
    ).json()
    save_all_images_from_response(edit_response, "edited_image")
    

    このスクリプトは、同期イメージ生成 API 呼び出しを行います。

    重要

    終わったらコードからキーを削除し、公開しないよう注意してください。 運用環境では、資格情報を安全に保存してアクセスできる方法を使用してください。 詳しくは、Azure Key Vault に関する記事をご覧ください。

  2. python コマンドを使用してアプリケーションを実行します。

    python quickstart.py
    

    応答が返されるまで少し時間がかかります。

出力

成功した画像生成 API 呼び出しからの出力は次の例のようになります。 url フィールドには、生成画像をダウンロードできる URL が含まれています。 URL は 24 時間アクティブなままです。

{ 
    "created": 1698116662, 
    "data": [ 
        { 
            "url": "<URL_to_generated_image>",
            "revised_prompt": "<prompt_that_was_used>" 
        }
    ]
} 

Image API には、コンテンツ モデレーション フィルターが付属しています。 サービスがプロンプトを有害なコンテンツとして認識した場合、画像は生成されません。 詳細については、「コンテンツ フィルター」を参照してください。 エラー応答の例については、 画像生成のハウツー ガイドを参照してください。

システムは Failed の操作状態を返し、メッセージ内の error.code 値は contentFilter に設定されます。 次に例を示します。

{
    "created": 1698435368,
    "error":
    {
        "code": "contentFilter",
        "message": "Your task failed as a result of our safety system."
    }
}

生成画像自体がフィルター処理される可能性もあります。 この場合、エラー メッセージは Generated image was filtered as a result of our safety system. に設定されます。 次に例を示します。

{
    "created": 1698435368,
    "error":
    {
        "code": "contentFilter",
        "message": "Generated image was filtered as a result of our safety system."
    }
}

リソースをクリーンアップする

Azure OpenAI リソースをクリーンアップして削除したい場合は、リソースまたはリソース グループを削除できます。 リソース グループを削除すると、それに関連付けられている他のリソースも削除されます。

次のステップ

このガイドを使用して、Python 用の Azure OpenAI SDK を使用して画像の生成を開始します。

ライブラリ ソース コード | パッケージ | サンプル

前提条件

セットアップ

キーとエンドポイントを取得する

Azure OpenAI API を正常に呼び出すには、Azure OpenAI リソースに関する次の情報が必要です。

変数 名前
エンドポイント api_base エンドポイント値は、Azure portal のリソースの [キーとエンドポイント] にあります。 また、Azure AI Foundry ポータルの [デプロイ] ページからエンドポイントを見つけることもできます。 エンドポイントの例: https://docs-test-001.openai.azure.com/
キー api_key キー値は、Azure portal のリソースの [キーとエンドポイント] にあります。 Azure では、リソースに対して 2 つのキーが生成されます。 いずれかの値を使用できます。

Azure portal でリソースに移動します。 ナビゲーション ウィンドウで、[リソース管理] [キーとエンドポイント] を選択します。 [エンドポイント] の値とアクセス キーの値をコピーします。 KEY 1 または KEY 2 のいずれかの値を使用できます。 常に 2 つのキーを用意しておくと、サービスを中断させることなく、キーのローテーションと再生成を安全に行うことができます。

Azure portal で Azure OpenAI リソース用のキーとエンドポイント ページを示すスクリーンショット。

環境変数

キーとエンドポイントの永続的な環境変数を作成して割り当てます。

重要

Microsoft Entra 認証と Azure リソースのマネージド ID を併用して、クラウドで実行されるアプリケーションに資格情報を格納しないようにすることをお勧めします。

API キーは慎重に使用してください。 API キーは、コード内に直接含めないようにし、絶対に公開しないでください。 API キーを使用する場合は、Azure Key Vault に安全に格納し、キーを定期的にローテーションし、ロールベースのアクセス制御とネットワーク アクセス制限を使用して Azure Key Vault へのアクセスを制限してください。 アプリで API キーを安全に使用する方法の詳細については、Azure Key Vault を使用した API キーに関する記事を参照してください。

AI サービスのセキュリティの詳細については、「Azure AI サービスに対する要求の認証」を参照してください。

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Python SDK のインストール

コマンド プロンプトを開き、プロジェクト フォルダーにアクセスします。 次のコマンドを使用して、OpenAI Python SDK をインストールします。

pip install openai

次のライブラリもインストールします。

pip install requests
pip install pillow 

DALL-E を使用して画像を生成する

quickstart.py という新しい Python ファイルを作成します。 好みのエディターまたは IDE で開きます。

quickstart.py の内容を次のコードで置き換えます。

from openai import AzureOpenAI
import os
import requests
from PIL import Image
import json

client = AzureOpenAI(
    api_version="2024-02-01",  
    api_key=os.environ["AZURE_OPENAI_API_KEY"],  
    azure_endpoint=os.environ['AZURE_OPENAI_ENDPOINT']
)

result = client.images.generate(
    model="dalle3", # the name of your DALL-E 3 deployment
    prompt="a close-up of a bear walking throughthe forest",
    n=1
)

json_response = json.loads(result.model_dump_json())

# Set the directory for the stored image
image_dir = os.path.join(os.curdir, 'images')

# If the directory doesn't exist, create it
if not os.path.isdir(image_dir):
    os.mkdir(image_dir)

# Initialize the image path (note the filetype should be png)
image_path = os.path.join(image_dir, 'generated_image.png')

# Retrieve the generated image
image_url = json_response["data"][0]["url"]  # extract image URL from response
generated_image = requests.get(image_url).content  # download the image
with open(image_path, "wb") as image_file:
    image_file.write(generated_image)

# Display the image in the default image viewer
image = Image.open(image_path)
image.show()
  1. エンドポイント URL とキーを適切なフィールドに入力します。
  2. prompt の値を任意のテキストに変更します。
  3. model の値を、デプロイされた DALL-E 3 モデルの名前に変更します。

重要

終わったらコードからキーを削除し、公開しないよう注意してください。 運用環境では、資格情報を安全に保存してアクセスできる方法を使用してください。 詳しくは、Azure Key Vault に関する記事をご覧ください。

python コマンドを使用してアプリケーションを実行します。

python quickstart.py

応答が返されるまで少し時間がかかります。

出力

Azure OpenAI は、指定したディレクトリ内の generated_image.png ファイルに出力イメージを格納します。 また、スクリプトによって既定の画像ビューアーにも画像が表示されます。

Image API には、コンテンツ モデレーション フィルターが付属しています。 サービスがプロンプトを有害なコンテンツとして認識した場合、画像は生成されません。 詳細については、「コンテンツ フィルター」を参照してください。

リソースをクリーンアップする

Azure OpenAI リソースをクリーンアップして削除したい場合は、リソースまたはリソース グループを削除できます。 リソース グループを削除すると、それに関連付けられている他のリソースも削除されます。

次のステップ

このガイドを使用して、C# 用の Azure OpenAI SDK を使用して画像の生成を開始します。

ライブラリのソース コード | パッケージ (NuGet) | サンプル

前提条件

Microsoft Entra ID の前提条件

Microsoft Entra ID で推奨されるキーレス認証の場合、次のことを行う必要があります。

  • Microsoft Entra ID でのキーレス認証に使われる Azure CLI をインストールします。
  • ユーザー アカウントに Cognitive Services User ロールを割り当てます。 Azure portal の [アクセス制御 (IAM)]>[ロールの割り当ての追加] で、ロールを割り当てることができます。

セットアップ

  1. vision-quickstart新しいフォルダーを作成し、次のコマンドを使用してクイック スタート フォルダーに移動します。

    mkdir vision-quickstart && cd vision-quickstart
    
  2. 次のコマンドを使用して新しいコンソール アプリケーションを作成します。

    dotnet new console
    
  3. dotnet add package コマンドを使用して、OpenAI .NET クライアント ライブラリをインストールします。

    dotnet add package Azure.AI.OpenAI --version 1.0.0-beta.6
    
  4. Microsoft Entra ID を使用する推奨されるキーレス認証の場合、次のコマンドを使用して Azure.Identity パッケージをインストールします。

    dotnet add package Azure.Identity
    
  5. Microsoft Entra ID を使用する推奨されるキーレス認証の場合、次のコマンドを使用して Azure にサインインします。

    az login
    

リソース情報の取得

Azure OpenAI リソースでアプリケーションを認証するには、次の情報を取得する必要があります。

変数名
AZURE_OPENAI_ENDPOINT この値は、Azure portal からリソースを調べる際の キーとエンドポイント セクションにあります。
AZURE_OPENAI_DEPLOYMENT_NAME この値は、モデルのデプロイ時にデプロイに対して選択したカスタム名に対応します。 この値は、Azure portal の [リソース管理]>[モデル デプロイ] にあります。
OPENAI_API_VERSION API バージョンの詳細を参照してください。

コードでバージョンを変更することも、環境変数を使用することもできます。

キーレス認証環境変数の設定の詳細を参照してください。

クイック スタートを実行する

このクイックスタートのサンプル コードでは、推奨されるキーレス認証に Microsoft Entra ID を使用します。 API キーを使用する場合は、 DefaultAzureCredential オブジェクトを AzureKeyCredential オブジェクトに置き換えることができます。

AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()); 

クイック スタートを実行するには、次の手順に従います。

  1. Program.cs の内容を次のコードに置き換え、プレースホルダーの値を自分の値で更新します。

    using Azure;
    using Azure.AI.OpenAI;
    using OpenAI.Images;
    using static System.Environment;
    
    string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? "https://<your-resource-name>.openai.azure.com/";
    string key = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY") ?? "<your-key>";
    
    // Use the recommended keyless credential instead of the AzureKeyCredential credential.
    AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()); 
    //AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new AzureKeyCredential(key));
    
    // This must match the custom deployment name you chose for your model
    ImageClient chatClient = openAIClient.GetImageClient("dalle-3");
    
    var imageGeneration = await chatClient.GenerateImageAsync(
            "a happy monkey sitting in a tree, in watercolor",
            new ImageGenerationOptions()
            {
                Size = GeneratedImageSize.W1024xH1024
            }
        );
    
    Console.WriteLine(imageGeneration.Value.ImageUri);
    
  2. アプリケーションを実行するには、Visual Studio の上部にある dotnet run コマンドまたは実行ボタンを使用します。

    dotnet run
    

出力

生成された画像の URL がコンソールに出力されます。

<SAS URL>

Image API には、コンテンツ モデレーション フィルターが付属しています。 サービスがプロンプトを有害なコンテンツとして認識した場合、生成画像は返されません。 詳しくは、コンテンツ フィルターに関する記事を参照してください。

リソースをクリーンアップする

Azure OpenAI リソースをクリーンアップして削除したい場合は、リソースを削除できます。 リソースを削除する前に、まずデプロイされたモデルを削除する必要があります。

次のステップ

このガイドを使用して、Java 用の Azure OpenAI SDK を使用して画像の生成を開始します。

ライブラリ ソース コード | 成果物 (Maven) | サンプル

前提条件

Microsoft Entra ID の前提条件

Microsoft Entra ID で推奨されるキーレス認証の場合、次のことを行う必要があります。

  • Microsoft Entra ID でのキーレス認証に使われる Azure CLI をインストールします。
  • ユーザー アカウントに Cognitive Services User ロールを割り当てます。 Azure portal の [アクセス制御 (IAM)]>[ロールの割り当ての追加] で、ロールを割り当てることができます。

セットアップ

  1. vision-quickstart新しいフォルダーを作成し、次のコマンドを使用してクイック スタート フォルダーに移動します。

    mkdir vision-quickstart && cd vision-quickstart
    
  2. Apache Maven をインストールします。 次に mvn -v を実行して、インストールが成功したことを確認します。

  3. プロジェクトのルートに新しい pom.xml ファイルを作成し、その中に以下のコードをコピーします:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
         <modelVersion>4.0.0</modelVersion>
         <groupId>com.azure.samples</groupId>
         <artifactId>quickstart-dall-e</artifactId>
         <version>1.0.0-SNAPSHOT</version>
         <build>
             <sourceDirectory>src</sourceDirectory>
             <plugins>
             <plugin>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <version>3.7.0</version>
                 <configuration>
                 <source>1.8</source>
                 <target>1.8</target>
                 </configuration>
             </plugin>
             </plugins>
         </build>
         <dependencies>    
             <dependency>
                 <groupId>com.azure</groupId>
                 <artifactId>azure-ai-openai</artifactId>
                 <version>1.0.0-beta.3</version>
             </dependency>
             <dependency>
                 <groupId>com.azure</groupId>
                 <artifactId>azure-core</artifactId>
                 <version>1.53.0</version>
             </dependency>
             <dependency>
                 <groupId>com.azure</groupId>
                 <artifactId>azure-identity</artifactId>
                 <version>1.15.1</version>
             </dependency>
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-simple</artifactId>
                 <version>1.7.9</version>
             </dependency>
         </dependencies>
     </project>
    
  4. Azure OpenAI SDK と依存関係をインストールします。

    mvn clean dependency:copy-dependencies
    
  5. Microsoft Entra ID を使用する推奨されるキーレス認証の場合、次のコマンドを使用して Azure にサインインします。

    az login
    

リソース情報の取得

Azure OpenAI リソースでアプリケーションを認証するには、次の情報を取得する必要があります。

変数名
AZURE_OPENAI_ENDPOINT この値は、Azure portal からリソースを調べる際の キーとエンドポイント セクションにあります。
AZURE_OPENAI_DEPLOYMENT_NAME この値は、モデルのデプロイ時にデプロイに対して選択したカスタム名に対応します。 この値は、Azure portal の [リソース管理]>[モデル デプロイ] にあります。
OPENAI_API_VERSION API バージョンの詳細を参照してください。

コードでバージョンを変更することも、環境変数を使用することもできます。

キーレス認証環境変数の設定の詳細を参照してください。

アプリを実行する

このクイックスタートのサンプル コードでは、推奨されるキーレス認証に Microsoft Entra ID を使用します。 API キーを使用する場合は、 DefaultAzureCredential オブジェクトを AzureKeyCredential オブジェクトに置き換えることができます。

OpenAIAsyncClient client = new OpenAIClientBuilder()
    .endpoint(endpoint)
    .credential(new DefaultAzureCredentialBuilder().build())
    .buildAsyncClient();

以下の手順に従って、音声認識のためのコンソール アプリケーションを作成します。

  1. 同じプロジェクト ルート ディレクトリ に Quickstart.java という名前の新しいファイルを作成します。

  2. 次のコードを Quickstart.javaにコピーします。

    import com.azure.ai.openai.OpenAIAsyncClient;
    import com.azure.ai.openai.OpenAIClientBuilder;
    import com.azure.ai.openai.models.ImageGenerationOptions;
    import com.azure.ai.openai.models.ImageLocation;
    import com.azure.core.credential.AzureKeyCredential;
    import com.azure.core.models.ResponseError;
    
    import java.util.concurrent.TimeUnit;
    
    public class Quickstart {
    
        public static void main(String[] args) throws InterruptedException {
    
            String endpoint = System.getenv("AZURE_OPENAI_ENDPOINT");
    
            // Use the recommended keyless credential instead of the AzureKeyCredential credential.
    
            OpenAIAsyncClient client = new OpenAIClientBuilder()
                .endpoint(endpoint)
                .credential(new DefaultAzureCredentialBuilder().build())
                .buildAsyncClient();
    
            ImageGenerationOptions imageGenerationOptions = new ImageGenerationOptions(
                "A drawing of the Seattle skyline in the style of Van Gogh");
            client.getImages(imageGenerationOptions).subscribe(
                images -> {
                    for (ImageLocation imageLocation : images.getData()) {
                        ResponseError error = imageLocation.getError();
                        if (error != null) {
                            System.out.printf("Image generation operation failed. Error code: %s, error message: %s.%n",
                                error.getCode(), error.getMessage());
                        } else {
                            System.out.printf(
                                "Image ___location URL that provides temporary access to download the generated image is %s.%n",
                                imageLocation.getUrl());
                        }
                    }
                },
                error -> System.err.println("There was an error getting images." + error),
                () -> System.out.println("Completed getImages."));
    
            // The .subscribe() creation and assignment isn't a blocking call.
            // The thread sleeps so the program does not end before the send operation is complete. 
            // Use .block() instead of .subscribe() for a synchronous call.
            TimeUnit.SECONDS.sleep(10);
        }
    }
    
  3. 新しいコンソール アプリケーションを実行してイメージを生成します。

    javac Quickstart.java -cp ".;target\dependency\*"
    java -cp ".;target\dependency\*" Quickstart
    

出力

生成された画像の URL がコンソールに出力されます。

Image ___location URL that provides temporary access to download the generated image is <SAS URL>.
Completed getImages.

Image API には、コンテンツ モデレーション フィルターが付属しています。 サービスがプロンプトを有害なコンテンツとして認識した場合、生成画像は返されません。 詳しくは、コンテンツ フィルターに関する記事を参照してください。

リソースをクリーンアップする

Azure OpenAI リソースをクリーンアップして削除したい場合は、リソースを削除できます。 リソースを削除する前に、まずデプロイされたモデルを削除する必要があります。

次のステップ

このガイドを使用して、JavaScript 用の Azure OpenAI SDK を使用して画像の生成を開始します。

リファレンス ドキュメント | ソース コード | パッケージ (npm) | サンプル

前提条件

Microsoft Entra ID の前提条件

Microsoft Entra ID で推奨されるキーレス認証の場合、次のことを行う必要があります。

  • Microsoft Entra ID でのキーレス認証に使われる Azure CLI をインストールします。
  • ユーザー アカウントに Cognitive Services User ロールを割り当てます。 Azure portal の [アクセス制御 (IAM)]>[ロールの割り当ての追加] で、ロールを割り当てることができます。

セットアップ

  1. image-quickstart新しいフォルダーを作成し、次のコマンドを使用してクイック スタート フォルダーに移動します。

    mkdir image-quickstart && cd image-quickstart
    
  2. 次のコマンドで package.json を作成します。

    npm init -y
    
  3. 次を使用して JavaScript 用の OpenAI クライアント ライブラリをインストールします。

    npm install openai
    
  4. 推奨されるパスワードレス認証は次のとおりです。

    npm install @azure/identity
    

リソース情報の取得

Azure OpenAI リソースでアプリケーションを認証するには、次の情報を取得する必要があります。

変数名
AZURE_OPENAI_ENDPOINT この値は、Azure portal からリソースを調べる際の キーとエンドポイント セクションにあります。
AZURE_OPENAI_DEPLOYMENT_NAME この値は、モデルのデプロイ時にデプロイに対して選択したカスタム名に対応します。 この値は、Azure portal の [リソース管理]>[モデル デプロイ] にあります。
OPENAI_API_VERSION API バージョンの詳細を参照してください。

コードでバージョンを変更することも、環境変数を使用することもできます。

キーレス認証環境変数の設定の詳細を参照してください。

注意事項

SDK で推奨されるキーレス認証を使用するには、AZURE_OPENAI_API_KEY 環境変数が設定されていないことを確認します。

DALL-E を使用して画像を生成する

  1. 次のコードを使用して index.js ファイルを作成します。

    const { AzureOpenAI } = require("openai");
    const { 
        DefaultAzureCredential, 
        getBearerTokenProvider 
    } = require("@azure/identity");
    
    // You will need to set these environment variables or edit the following values
    const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "Your endpoint";
    
    // Required Azure OpenAI deployment name and API version
    const apiVersion = process.env.OPENAI_API_VERSION || "2024-07-01";
    const deploymentName = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "dall-e-3";
    
    // The prompt to generate images from
    const prompt = "a monkey eating a banana";
    const numberOfImagesToGenerate = 1;
    
    // keyless authentication    
    const credential = new DefaultAzureCredential();
    const scope = "https://cognitiveservices.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
    function getClient(): AzureOpenAI {
      return new AzureOpenAI({
        endpoint,
        azureADTokenProvider,
        apiVersion,
        deployment: deploymentName,
      });
    }
    async function main() {
      console.log("== Image Generation ==");
    
      const client = getClient();
    
      const results = await client.images.generate({
        prompt,
        size: "1024x1024",
        n: numberOfImagesToGenerate,
        model: "",
        style: "vivid", // or "natural"
      });
    
      for (const image of results.data) {
        console.log(`Image generation result URL: ${image.url}`);
      }
    }
    
    main().catch((err) => {
      console.error("The sample encountered an error:", err);
    });
    
  2. 次のコマンドを使用して Azure にサインインします。

    az login
    
  3. JavaScript ファイルを実行します。

    node index.js
    

出力

生成された画像の URL がコンソールに出力されます。

== Batch Image Generation ==
Image generation result URL: <SAS URL>
Image generation result URL: <SAS URL>

Image API には、コンテンツ モデレーション フィルターが付属しています。 サービスがプロンプトを有害なコンテンツとして認識した場合、生成画像は返されません。 詳しくは、コンテンツ フィルターに関する記事を参照してください。

リソースをクリーンアップする

Azure OpenAI リソースをクリーンアップして削除したい場合は、リソースを削除できます。 リソースを削除する前に、まずデプロイされたモデルを削除する必要があります。

次のステップ

このガイドを使用して、JavaScript 用の Azure OpenAI SDK を使用して画像の生成を開始します。

リファレンス ドキュメント | ソース コード | パッケージ (npm) | サンプル

前提条件

Microsoft Entra ID の前提条件

Microsoft Entra ID で推奨されるキーレス認証の場合、次のことを行う必要があります。

  • Microsoft Entra ID でのキーレス認証に使われる Azure CLI をインストールします。
  • ユーザー アカウントに Cognitive Services User ロールを割り当てます。 Azure portal の [アクセス制御 (IAM)]>[ロールの割り当ての追加] で、ロールを割り当てることができます。

セットアップ

  1. image-quickstart新しいフォルダーを作成し、次のコマンドを使用してクイック スタート フォルダーに移動します。

    mkdir image-quickstart && cd image-quickstart
    
  2. 次のコマンドで package.json を作成します。

    npm init -y
    
  3. 次のコマンドを使用して、package.json を ECMAScript に更新します。

    npm pkg set type=module
    
  4. 次を使用して JavaScript 用の OpenAI クライアント ライブラリをインストールします。

    npm install openai
    
  5. 推奨されるパスワードレス認証は次のとおりです。

    npm install @azure/identity
    

リソース情報の取得

Azure OpenAI リソースでアプリケーションを認証するには、次の情報を取得する必要があります。

変数名
AZURE_OPENAI_ENDPOINT この値は、Azure portal からリソースを調べる際の キーとエンドポイント セクションにあります。
AZURE_OPENAI_DEPLOYMENT_NAME この値は、モデルのデプロイ時にデプロイに対して選択したカスタム名に対応します。 この値は、Azure portal の [リソース管理]>[モデル デプロイ] にあります。
OPENAI_API_VERSION API バージョンの詳細を参照してください。

コードでバージョンを変更することも、環境変数を使用することもできます。

キーレス認証環境変数の設定の詳細を参照してください。

注意事項

SDK で推奨されるキーレス認証を使用するには、AZURE_OPENAI_API_KEY 環境変数が設定されていないことを確認します。

DALL-E を使用して画像を生成する

  1. 次のコードを使用して index.ts ファイルを作成します。

    import { AzureOpenAI } from "openai";
    import { 
        DefaultAzureCredential, 
        getBearerTokenProvider 
    } from "@azure/identity";
    
    // You will need to set these environment variables or edit the following values
    const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "Your endpoint";
    
    // Required Azure OpenAI deployment name and API version
    const apiVersion = process.env.OPENAI_API_VERSION || "2024-07-01";
    const deploymentName = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "dall-e-3";
    
    // keyless authentication    
    const credential = new DefaultAzureCredential();
    const scope = "https://cognitiveservices.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
    function getClient(): AzureOpenAI {
      return new AzureOpenAI({
        endpoint,
        azureADTokenProvider,
        apiVersion,
        deployment: deploymentName,
      });
    }
    async function main() {
      console.log("== Image Generation ==");
    
      const client = getClient();
    
      const results = await client.images.generate({
        prompt,
        size: "1024x1024",
        n: numberOfImagesToGenerate,
        model: "",
        style: "vivid", // or "natural"
      });
    
      for (const image of results.data) {
        console.log(`Image generation result URL: ${image.url}`);
      }
    }
    
    main().catch((err) => {
      console.error("The sample encountered an error:", err);
    });
    
  2. TypeScript コードをトランスパイルするために tsconfig.json ファイルを作成して、ECMAScript 向けの次のコードをコピーします。

    {
        "compilerOptions": {
          "module": "NodeNext",
          "target": "ES2022", // Supports top-level await
          "moduleResolution": "NodeNext",
          "skipLibCheck": true, // Avoid type errors from node_modules
          "strict": true // Enable strict type-checking options
        },
        "include": ["*.ts"]
    }
    
  3. TypeScript から JavaScript にトランスパイルします。

    tsc
    
  4. 次のコマンドを使用して Azure にサインインします。

    az login
    
  5. 次のコマンドを使用して、コードを実行します。

    node index.js
    

出力

生成された画像の URL がコンソールに出力されます。

== Batch Image Generation ==
Image generation result URL: <SAS URL>
Image generation result URL: <SAS URL>

Image API には、コンテンツ モデレーション フィルターが付属しています。 サービスがプロンプトを有害なコンテンツとして認識した場合、生成画像は返されません。 詳しくは、コンテンツ フィルターに関する記事を参照してください。

リソースをクリーンアップする

Azure OpenAI リソースをクリーンアップして削除したい場合は、リソースを削除できます。 リソースを削除する前に、まずデプロイされたモデルを削除する必要があります。

次のステップ

このガイドを使用して、Go 用の Azure OpenAI SDK を使用して画像の生成を開始します。

ライブラリ ソース コード | パッケージ | サンプル

前提条件

Microsoft Entra ID の前提条件

Microsoft Entra ID で推奨されるキーレス認証の場合、次のことを行う必要があります。

  • Microsoft Entra ID でのキーレス認証に使われる Azure CLI をインストールします。
  • ユーザー アカウントに Cognitive Services User ロールを割り当てます。 Azure portal の [アクセス制御 (IAM)]>[ロールの割り当ての追加] で、ロールを割り当てることができます。

セットアップ

  1. dall-e-quickstart新しいフォルダーを作成し、次のコマンドを使用してクイック スタート フォルダーに移動します。

    mkdir dall-e-quickstart && cd dall-e-quickstart
    
  2. Microsoft Entra ID を使用する推奨されるキーレス認証の場合、次のコマンドを使用して Azure にサインインします。

    az login
    

リソース情報の取得

Azure OpenAI リソースでアプリケーションを認証するには、次の情報を取得する必要があります。

変数名
AZURE_OPENAI_ENDPOINT この値は、Azure portal からリソースを調べる際の キーとエンドポイント セクションにあります。
AZURE_OPENAI_DEPLOYMENT_NAME この値は、モデルのデプロイ時にデプロイに対して選択したカスタム名に対応します。 この値は、Azure portal の [リソース管理]>[モデル デプロイ] にあります。
OPENAI_API_VERSION API バージョンの詳細を参照してください。

コードでバージョンを変更することも、環境変数を使用することもできます。

キーレス認証環境変数の設定の詳細を参照してください。

クイック スタートを実行する

このクイックスタートのサンプル コードでは、推奨されるキーレス認証に Microsoft Entra ID を使用します。 API キーを使用する場合は、 NewDefaultAzureCredential の実装を NewKeyCredentialに置き換えることができます。

azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")
credential, err := azidentity.NewDefaultAzureCredential(nil)
client, err := azopenai.NewClient(azureOpenAIEndpoint, credential, nil)

サンプルを実行するには

  1. quickstart.go という名前の新しいファイルを作成します。 quickstart.go ファイルに次のコードをコピーします。

     package main
    
    import (
    	"context"
    	"fmt"
    	"net/http"
    	"os"
    	"log"
    
    	"github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai"
    	"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
    	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
    )
    
    func main() {
    	azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")
    	modelDeploymentID := "dall-e-3"
    
    	credential, err := azidentity.NewDefaultAzureCredential(nil)
    	if err != nil {
    		log.Printf("ERROR: %s", err)
    		return
    	}
    
    	client, err := azopenai.NewClient(
    		azureOpenAIEndpoint, credential, nil)
    	if err != nil {
    		log.Printf("ERROR: %s", err)
    		return
    	}
    
    	resp, err := client.GetImageGenerations(context.TODO(), azopenai.ImageGenerationOptions{
    		Prompt:         to.Ptr("A painting of a cat in the style of Dali."),
    		ResponseFormat: to.Ptr(azopenai.ImageGenerationResponseFormatURL),
    		DeploymentName: to.Ptr(modelDeploymentID),
    	}, nil)
    
    	if err != nil {
    		// Implement application specific error handling logic.
    		log.Printf("ERROR: %s", err)
    		return
    	}
    
    	for _, generatedImage := range resp.Data {
    		// The underlying type for the generatedImage is determined by the value of
    		// ImageGenerationOptions.ResponseFormat. 
    		// In this example we use `azopenai.ImageGenerationResponseFormatURL`,
    		// so the underlying type will be ImageLocation.
    
    		resp, err := http.Head(*generatedImage.___URL)
    
    		if err != nil {
    			// Implement application specific error handling logic.
    			log.Printf("ERROR: %s", err)
    			return
    		}
    
    		fmt.Fprintf(os.Stderr, "Image generated, HEAD request on URL returned %d\nImage URL: %s\n", resp.StatusCode, *generatedImage.___URL)
    	}
    }
    
  2. 次のコマンドを実行して、新しい Go モジュールを作成します。

     go mod init quickstart.go
    
  3. go mod tidyを実行して、必要な依存関係をインストールします。

    go mod tidy
    
  4. 次のコマンドを実行してサンプルを実行します。

     go run quickstart.go
    

出力

生成された画像の URL がコンソールに出力されます。

Image generated, HEAD request on URL returned 200
Image URL: <SAS URL>

Image API には、コンテンツ モデレーション フィルターが付属しています。 サービスがプロンプトを有害なコンテンツとして認識した場合、生成画像は返されません。 詳しくは、コンテンツ フィルターに関する記事を参照してください。

リソースをクリーンアップする

Azure OpenAI リソースをクリーンアップして削除したい場合は、リソースまたはリソース グループを削除できます。 リソース グループを削除すると、それに関連付けられている他のリソースも削除されます。

次のステップ

このガイドを使用して、PowerShell で Azure AI Foundry Models イメージ生成 API で Azure OpenAI の呼び出しを開始します。

前提条件

Microsoft Entra ID の前提条件

Microsoft Entra ID で推奨されるキーレス認証の場合、次のことを行う必要があります。

  • Microsoft Entra ID でのキーレス認証に使われる Azure CLI をインストールします。
  • ユーザー アカウントに Cognitive Services User ロールを割り当てます。 Azure portal の [アクセス制御 (IAM)]>[ロールの割り当ての追加] で、ロールを割り当てることができます。

リソース情報の取得

Azure OpenAI リソースでアプリケーションを認証するには、次の情報を取得する必要があります。

変数名
AZURE_OPENAI_ENDPOINT この値は、Azure portal からリソースを調べる際の キーとエンドポイント セクションにあります。
AZURE_OPENAI_DEPLOYMENT_NAME この値は、モデルのデプロイ時にデプロイに対して選択したカスタム名に対応します。 この値は、Azure portal の [リソース管理]>[モデル デプロイ] にあります。
OPENAI_API_VERSION API バージョンの詳細を参照してください。

コードでバージョンを変更することも、環境変数を使用することもできます。

キーレス認証環境変数の設定の詳細を参照してください。

画像を生成する

  1. Microsoft Entra ID を使用する推奨されるキーレス認証の場合、次のコマンドを使用して Azure にサインインします。

    az login
    
  2. quickstart.ps1という名前の新しい PowerShell ファイル 作成します。 次に、任意のエディターまたは IDE で開きます。

  3. quickstart.ps1 の内容を次のコードで置き換えます。 エンドポイント URL とキーを適切なフィールドに入力します。 prompt の値を任意のテキストに変更します。

     # Azure OpenAI metadata variables
     $openai = @{
         api_base    = $Env:AZURE_OPENAI_ENDPOINT 
         api_version = '2023-06-01-preview' # This can change in the future.
     }
    
     # Use the recommended keyless authentication via bearer token.
     $headers = [ordered]@{
         #'api-key' = $Env:AZURE_OPENAI_API_KEY
         'Authorization' = "Bearer $($Env:DEFAULT_AZURE_CREDENTIAL_TOKEN)"
     }
    
     # Text to describe image
     $prompt = 'A painting of a dog'
    
     # Adjust these values to fine-tune completions
     $body = [ordered]@{
         prompt = $prompt
         size   = '1024x1024'
         n      = 1
     } | ConvertTo-Json
    
     # Call the API to generate the image and retrieve the response
     $url = "$($openai.api_base)/openai/images/generations:submit?api-version=$($openai.api_version)"
    
     $submission = Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Post -ContentType 'application/json' -ResponseHeadersVariable submissionHeaders
    
     $operation_location = $submissionHeaders['operation-___location'][0]
     $status = ''
     while ($status -ne 'succeeded') {
         Start-Sleep -Seconds 1
         $response = Invoke-RestMethod -Uri $operation_location -Headers $headers
         $status   = $response.status
     }
    
     # Set the directory for the stored image
     $image_dir = Join-Path -Path $pwd -ChildPath 'images'
    
     # If the directory doesn't exist, create it
     if (-not(Resolve-Path $image_dir -ErrorAction Ignore)) {
         New-Item -Path $image_dir -ItemType Directory
     }
    
     # Initialize the image path (note the filetype should be png)
     $image_path = Join-Path -Path $image_dir -ChildPath 'generated_image.png'
    
     # Retrieve the generated image
     $image_url = $response.result.data[0].url  # extract image URL from response
     $generated_image = Invoke-WebRequest -Uri $image_url -OutFile $image_path  # download the image
     return $image_path
    

    重要

    運用環境では、Azure Key Valut を使用した PowerShell Secret Management のような安全な方法で認証情報を保存し、アクセスしてください。 資格情報のセキュリティの詳細については、この セキュリティ に関する記事を参照してください。

  4. PowerShell を使用してスクリプトを実行します。

    ./quickstart.ps1
    

    生成された画像の準備ができるまで、スクリプトはループします。

出力

PowerShell によって、Azure OpenAI からのイメージが要求され、指定したディレクトリ内の generated_image.png ファイルに出力イメージが格納されます。 便宜上、ファイルの完全なパスはスクリプトの最後に返されます。

Image API には、コンテンツ モデレーション フィルターが付属しています。 サービスがプロンプトを有害なコンテンツとして認識した場合、画像は生成されません。 詳細については、「コンテンツ フィルター」を参照してください。

リソースをクリーンアップする

Azure OpenAI リソースをクリーンアップして削除したい場合は、リソースまたはリソース グループを削除できます。 リソース グループを削除すると、それに関連付けられている他のリソースも削除されます。

次のステップ