AI時代的網站與手機App建置與開發Part35 - 使用Azure OpenAI的圖片生成功能
l 摘要
Azure OpenAI支援的圖片生成功能可以用來生成企畫需要使用的海報, LOGO, 文宣或報告用的圖片, 網站使用的圖案, 或是日常生活需要用到的節日祝賀卡片, 既精巧又迅速確實, 短短幾分鐘就可以生出需要的圖片, 相較於人工繪製, 成本更是低廉. 例如輸入以下的內容當做提示:[LABUBU與台北101大樓], 或是[請生成包括企鵝, 駝鹿, 與聖誕老人的聖誕卡片]等等, 都是圖片生成的典型範例.
圖: 使用Azure OpenAI圖片生成功能生成的聖誕卡範例
l 使用Azure OpenAI服務
欲使用Azure OpenAI資源實踐文字生成, 首先要登入Microsoft Azure Portal(網址: https://portal.azure.com), 登入成功後您會看到如圖1的畫面:
點選圖1中的[建立資源], 螢幕就會出現如圖2的畫面
點選圖2畫面左方的[AI應用程式與代理程式], 再點選右邊的[Azure OpenAI], 您將會看到如圖3的畫面:
圖3: 輸入Azure OpenAI資源的基本資訊
請於圖3畫面建立新的或選擇資源群組或選擇現有的資源群組, 選擇建立群組的區域, 收費層級, 然後點選[下一頁]鍵, 您將會看到圖4的畫面:
圖4: 設定Azure OpenAI資源網路安全性的畫面
請於圖4畫面中選擇[所有網路], 點選[下一頁], 您就會看到設定分類標籤的畫面, 如圖5所示:
圖6: 建立Azure OpenAI資源的畫面
請點選[建立]鍵執行建立Azure OpenAI資源, 建立完成後請瀏覽至建立妥的Azure
OpenAI資源, 您將會看到如圖7的畫面
圖7: Azure
OpenAI資源管理畫面
點選[探索Azure AI Foundry入口網站], 再點選左邊功能表的[影像]功能, 您將會看到如圖8的畫面:
點選[建立部署]功能, 您會看到如圖9的畫面:
按下圖10畫面中的[部署到選取的資源]鍵進行部署, 部署完成後就會出現體驗影像生成功能的體驗畫面, 如圖11所示:
圖11: 體驗影像生成功能的體驗畫面
點選圖11畫面中的[檢視程式碼], 可以看到叫用影像生成功能的範例程式碼, 如圖12所示:
以下就是使用JavaScript叫用Azure OpenAI影像生成功能的網頁程式
<!DOCTYPE html>
<html>
<head>
<title>Azure OpenAI Image Example</title>
<link rel="stylesheet"
href="https://cdn.jsdelivr.net/
npm/bootstrap@5.3.3/dist/css/bootstrap.min.css"
>
</head>
<body>
<div class="container"
style="width:40%">
<h3 class="mb-3
text-center">圖片生成</h3>
<div class="form-floating
mb-3">
<input id="prompt"
class="form-control"
value="LABUBU與台北101大樓"
placeholder=""/>
<label
class="form-label">圖片生成提示</label>
</div>
<div class="mb-3">
<button id="generate"
class="btn btn-success"
onclick="generateImage()">圖片生成</button>
</div>
<div class="mb-3">
<img id="result"
width="512" />
</div>
</div>
<script>
const endpoint = "Azure OpenAI的圖片生成功能的端點";
const deployment = "dall-e-3";
const apiVersion = "2024-04-01-preview";
const apiKey = "Azure OpenAI的圖片生成功能金鑰";
// 叫用Azure OpenAI的圖片生成功能的函式
async function generateImage() {
// 取得使用者輸入的提示
const prompt =
document.getElementById("prompt").value;
// 叫用Azure OpenAI的圖片生成功能
try {
const response = await fetch(
`${endpoint}/openai/deployments/${deployment}/
images/generations?api-version=${apiVersion}`,
{
method:
"POST",
headers: {
"Content-Type": "application/json",
"api-key": apiKey
},
body: JSON.stringify({
prompt: prompt,
model:deployment,
n:1,
style:"vivid",
quality:"standard",
})
}
);
if (response.ok){
// 如果呼叫成功
const result = await
response.json(); // 取得呼叫結果
// 顯示Azure OpenAI生成的圖片
document.getElementById("result").src=result.data[0].url;
}
}
catch(err) {
// 捕捉呼叫 Azure OpenAI功能的錯誤
alert(err.message);
// 顯示呼叫 Azure OpenAI功能的錯誤
}
}
</script>
</body>
</html>
程式碼範例下載網址: https://github.com/CraigIII/AzureOpenAIImageGeneration.git













留言
張貼留言