1.1.1 Firefly Services快速入門
Firefly Services包含 Firefly API、Lightroom API、Photoshop API、InDesign API 和 內容標籤API。
這套API結合了Adobe創意工具(如Photoshop和Lightroom)的強大功能與尖端AI/ML功能,如內容標籤、產生式填色、文字轉影像等。
有了Firefly Services,您不僅要建立,還要自動化、擴展內容生產,並利用最新的AI/ML技術來強化工作流程。
在本練習中,您將瞭解如何使用Postman和Adobe I/O來使用各種Adobe Firefly Services API。
本練習特別針對Firefly API,例如:
- Firefly產生影像API:此API用於使用Firefly的模型產生影像
- Firefly產生類似影像API:此API用於產生與既有影像類似的影像
- Firefly展開影像API:此API用於將現有影像展開至更大的外觀比例/大小
- Firefly填滿影像API:此API會根據Firefly根據您的提示產生的影像,填滿現有影像的區域。 這是使用定義需要填滿區域的遮色片來達成。
- Firefly產生物件複合API:此API可讓您自行提供輸入影像,然後將影像與Firefly產生的影像結合,以建立影像複合或場景。
- Firefly自訂模型API:此API可讓您使用自己的Firefly自訂模型,根據您的Firefly自訂模型產生新影像
1.1.1.1必要條件
在繼續此練習之前,您必須先完成您的Adobe I/O專案的設定,而且您還需要設定應用程式以與API互動,例如Postman或PostBuster。
1.1.1.2 API基本知識
有多種型別的API請求:
- GET:嘗試從API端點擷取資訊時(例如取得狀態報告),就會使用此專案
- POST:當有新工作需要完成時(例如讓Adobe Firefly Services產生新影像),就會使用此專案
- PUT:這可用來完全更新現有的資料
- PATCH:這是用來選擇性更新現有資料
- DELETE:用於刪除資料
使用API時,您也會注意到各種API端點傳回回應代碼。
您可能會預期5種不同的回應類別:
- 1xx資訊回應:已收到要求,正在繼續處理
- 2xx成功:已成功接收、理解及接受要求
- 3xx重新導向:需要進一步的動作才能完成要求
- 4xx使用者端錯誤:要求包含錯誤的語法或無法完成
- 5xx伺服器錯誤:伺服器無法完成明顯有效的要求
以下是您可能會預期的常見回應程式碼範例:
- 200 OK:很好,您的要求已成功完成
- 201已建立:很好,舉例來說,您的影像已建立
- 202 Accepted:很好,您的要求已接受且將進行處理
- 401未獲授權:這不是好事,可能是您的存取權杖無效
- 403已禁止:這不是好事,您可能缺乏嘗試執行動作所需的許可權
- 404找不到:這不是好事,您嘗試存取的URL可能不存在
- 429太多要求:這不是好事,您可能已在短時間內傳送許多要求。 請稍後再試。
1.1.1.3探索firefly.adobe.com — 階段1
讓我們開始探索Adobe Firefly Services。 如需探索,您先從CitiSignal影像產生範例開始。 CitiSignal設計團隊想要產生CitiSignal品牌名稱的霓虹版本。 他們想要使用Adobe Firefly Services來做這件事。
要達到這個目標,首先需要的是CitiSignal品牌名稱的黑白版本,看起來像這樣:
1.1.1.3.1建立您的組合參考影像
您可以使用此範例影像,也可以建立自己的文字來進行實驗。 請依照下列Adobe Illustrator中的步驟,建立您自己的影像檔案。 如果您選擇使用預先定義的影像,請略過以下章節並移至步驟 1.1.1.3。2直接產生影像。
開啟 Adobe Illustrator。 按一下 新增檔案。
選取 網頁大1920 x 1080px。 按一下 建立。
然後您應該擁有此專案。 按一下 T 文字圖示。
然後您應該擁有此專案。
將字型型別變更為所選擇的字型,在此案例中,字型型別為 Adobe清除粗體。
將字型大小變更為選擇的大小,在此案例中為 250 pt。
然後您應該擁有此專案。
視需要變更文字,在此案例中為 CitiSignal。
將檔案中的文字置中。
移至 檔案>匯出>儲存以供網頁使用(舊版)
然後您應該擁有此專案。 按一下 儲存。
提供檔案名稱,並將其儲存至案頭。 按一下 儲存。
1.1.1.3.2產生您的影像
移至https://firefly.adobe.com。 按一下 設定檔 圖示,並確定您已登入右側的 帳戶,應為--aepImsOrgName--
。 如有需要,請按一下 切換設定檔 以切換至該帳戶。
輸入提示neon light lettering on a brick wall of a night club
。 按一下 產生。
之後,您應該會有類似的專案。 這些影像還無法使用。 在 構成 下,按一下 上傳影像。
選取您先前建立的影像,在此案例中為 CitiSignal.jpg。 按一下 開啟,然後按一下 產生。
之後,您應該會有類似的專案。 構成參考的應用程式還不完善。 若要變更,請將 強度 滑桿變更為最大值。 再按一下 產生。
您現在有數個影像顯示CitiSignal品牌名稱的新版本,您可以使用這些影像進一步反複運算。
您現在已學會使用Firefly在幾分鐘內解決設計問題。
1.1.1.4探索firefly.adobe.com — 階段2
移至https://firefly.adobe.com/generate/image。 您應該會看到此訊息。 按一下 模型 下拉式清單。 您會發現有3個可用版本的Adobe Firefly Services:
- Firefly Image 3
- Firefly Image 4
- Firefly Image 4 Ultra
按一下以針對此練習選取 Firefly Image 3。
輸入提示Horses in a field
並按一下 產生。
之後,您應該會看到類似以下內容。
接下來,在您的瀏覽器中開啟 開發人員工具。
您應該會看到此訊息。 移至 網路 標籤。 接著,再按一下[產生 ]。
輸入搜尋字詞 generate-async。 您應該會看到名稱為 generate-async 的請求。 選取該專案,然後移至 裝載,您將在其中檢視要求的詳細資料。
您在此看到的要求是傳送至Firefly Services伺服器端後端的要求。 它包含數個重要引數:
-
prompt:這是您的提示,要求Firefly應該產生何種影像
-
種子:在此要求中,種子是以隨機方式產生。 每當Firefly產生影像時,預設會透過挑選稱為種子的隨機數字來開始流程。 這個隨機數字有助於讓每個影像具有唯一性,如果您想要產生多種影像,這是很不錯的做法。 不過,您有時可能會想要產生多個請求中彼此相似的影像。 例如,當Firefly產生您要使用Firefly的其他選項(例如樣式預設集、參考影像等)修改的影像時,請在未來的HTTP要求中使用該影像的種子,以限制未來影像的隨機性,並接觸您想要的影像。
請再次檢視UI。 將 外觀比例 變更為 寬熒幕(16:9)。
向下捲動至 效果,移至 佈景主題 並選取 裝飾藝術效果 等效果。
請確定 開發人員工具 仍在您的瀏覽器中開啟。 然後,按一下[產生] 並檢查正在傳送的網路要求。
當您檢查網路請求的詳細資訊時,您現在會看到以下內容:
- 與先前的要求相比,prompt 未變更
- 與先前的請求相比,種子 已變更
- 根據 外觀比例 的變更,大小 已變更。
- 已新增 樣式,並參考您選取的 art_deco 效果
若要進行下一個練習,您需要使用 seed 數字之一。 寫下選擇的種子編號。
在下一個練習中,您將使用Firefly Services完成類似工作,但接著使用API而非UI。 在此範例中,第一個影像的種子編號為 142194,該影像有2匹馬互相注視,兩匹馬的頭朝彼此。
1.1.1.5 Adobe I/O - access_token
在 Adobe IO - OAuth 集合中,選取名為 POST - Get Access Token 的要求,並選取 傳送。 回應應包含新的 access_token。
1.1.1.6 Firefly Services API,文字2影像,影像3
現在您已具備有效且新的access_token,接下來就可以將您的第一個要求傳送至Firefly Services API了。
您在這裡使用的要求是 非同步 要求,此要求會提供您包含已提交之工作URL的回應,這表示您需要使用第二個要求來檢查工作狀態並存取產生的影像。
從 FF - Firefly Services Tech Insiders 集合中選取名為 POST - Firefly - T2I V3 async 的請求。 移至 Headers 並驗證索引鍵/值配對組合。
x-api-key
{{API_KEY}}
Authorization
Bearer {{ACCESS_TOKEN}}
此請求中的這兩個值都參照預先定義的環境變數。 {{API_KEY}}
參考您Adobe I/O專案的欄位 使用者端識別碼。 在本教學課程的 快速入門 章節中,您已在Postman中完成設定。
欄位 授權 的值是位元特殊: Bearer {{ACCESS_TOKEN}}
。 它包含您在上一步中產生的 存取權杖 的參考。 當您在 Adobe IO - OAuth 集合中收到使用要求 POST — 取得存取權杖 的 存取權杖 時,Postman中執行的指令碼會將欄位 access_token 儲存為環境變數,現在該指令碼會在要求 POST - Firefly - T2I V3 async 中參照。 請注意 Bearer 這個字的特定增加以及{{ACCESS_TOKEN}}
之前的空格。 不記名文字會區分大小寫,而且需要空格。 如果未正確處理此專案,Adobe I/O將會傳回 401 Unauthorized 錯誤,因為它無法正確處理您的 存取Token。
接著,前往 內文 並驗證提示。 按一下 傳送。
然後您會立即收到回應。 此回應不包含產生影像的影像URL,而是包含您啟動之工作的狀態報告URL,且包含另一個可讓您取消執行中工作的URL。
若要檢視執行中工作的狀態報告,請從 FF - Firefly Services技術內部人士 集合中選取名為 GET - Firefly — 取得狀態報告 的請求。 按一下以開啟它,然後按一下[傳送]。 選取所產生影像的URL,然後在瀏覽器中開啟。
您應該會收到類似的回應。 這是已執行工作的概述。 您可以看到包含產生影像的欄位 url。 從回應中複製(或按一下)影像URL,並在網頁瀏覽器中開啟以檢視影像。
您應該會看到描繪horses in a field
的美麗影像。
在您的請求 POST - Firefly - T2I V3 async 的 內文 中,在欄位"promptBiasingLocaleCode": "en-US"
下新增下列專案,並以Firefly Services UI隨機使用的其中一個種子數字取代變數XXX
。 在此範例中,seed 編號為142194
。
,
"seeds": [
XXX
]
按一下 傳送。 您會再次收到回應,其中包含您剛剛提交之工作的狀態報告的連結。
若要檢視執行中工作的狀態報告,請從 FF - Firefly Services技術內部人士 集合中選取名為 GET - Firefly — 取得狀態報告 的請求。 按一下以開啟它,然後按一下[傳送]。 選取所產生影像的URL,然後在瀏覽器中開啟。
之後,您應該會根據使用的 seed,看到稍有差異的新影像。 種子142194
有2匹馬相互注視,頭彼此對視。
接著,在您的要求 POST - Firefly - T2I V3 async 的 內文 中,將下列 樣式 物件貼到 種子 物件下。 這會將產生的影像樣式變更為 art_deco。
,
"contentClass": "art",
"styles": {
"presets": [
"art_deco"
],
"strength": 50
}
然後您應該擁有此專案。 按一下 傳送。 您會再次收到回應,其中包含您剛剛提交之工作的狀態報告的連結。
若要檢視執行中工作的狀態報告,請從 FF - Firefly Services技術內部人士 集合中選取名為 GET - Firefly — 取得狀態報告 的請求。 按一下以開啟它,然後按一下[傳送]。 選取所產生影像的URL,然後在瀏覽器中開啟。
您的影像現在已變更了一點。 套用樣式預設集時,種子影像的套用方式不再與之前相同。 整體而言,使用產生式AI,很難保證輸入引數的相同組合會產生相同的影像。
從 POST - Firefly - T2I V3非同步 請求的 內文 中移除 seed 物件的程式碼。 按一下 傳送,然後按一下您從回應中取得的影像URL。 您會再次收到回應,其中包含您剛剛提交之工作的狀態報告的連結。
,
"seeds": [
XXX
]
若要檢視執行中工作的狀態報告,請從 FF - Firefly Services技術內部人士 集合中選取名為 GET - Firefly — 取得狀態報告 的請求。 按一下以開啟它,然後按一下[傳送]。 選取所產生影像的URL,然後在瀏覽器中開啟。
您的影像現在已再次變更。
1.1.1.7 Firefly Services API,一般擴展
從 FF - Firefly Services技術人員 集合中選取名為 POST - Firefly - Gen Expand async 的請求,並移至請求的 Body。
-
大小:輸入所需的解析度。 此處輸入的值應大於影像的原始大小,且不能大於3999。
-
image.source.url:此欄位需要需要需要展開影像的連結。 在此範例中,變數是用來參照上一個練習中產生的影像。
-
水準對齊:接受的值為:
"center"
、"left
、"right"
。 -
垂直對齊:接受的值為:
"center"
、"top
、"bottom"
。
您會再次收到回應,其中包含您剛剛提交之工作的狀態報告的連結。
若要檢視執行中工作的狀態報告,請從 FF - Firefly Services技術內部人士 集合中選取名為 GET - Firefly — 取得狀態報告 的請求。 按一下以開啟它,然後按一下[傳送]。 選取所產生影像的URL,然後在瀏覽器中開啟。
您現在會看到上一個練習產生的影像現在已擴展到3999x3999的解析度。
使用 Firefly - T2I V3非同步 要求產生新影像。
若要檢視執行中工作的狀態報告,請從 FF - Firefly Services技術內部人士 集合中選取名為 GET - Firefly — 取得狀態報告 的請求。 按一下以開啟它,然後按一下[傳送]。 選取所產生影像的URL,然後在瀏覽器中開啟。
然後您應該會看到類似影像。
從 FF - Firefly Services技術人員 集合中選取名為 POST - Firefly - Gen Expand async 的請求,並移至請求的 Body。
當您變更位置對齊方式時,輸出也會稍有不同。 在此範例中,位置已變更為左下 的。 按一下 傳送。 您會再次收到回應,其中包含您剛剛提交之工作的狀態報告的連結。
若要檢視執行中工作的狀態報告,請從 FF - Firefly Services技術內部人士 集合中選取名為 GET - Firefly — 取得狀態報告 的請求。 按一下以開啟它,然後按一下[傳送]。 選取所產生影像的URL,然後在瀏覽器中開啟。
然後您應該會看到原始影像已用於不同的位置,這會影響整個影像。
1.1.1.8 Firefly Services API,文字2影像,影像4與影像4 Ultra
在最新版本的Firefly Image Model 4中,已提供幾項改善專案:
- Firefly Image Model 4提供2K解析度輸出,並具備增強的定義和細節。
- Firefly Image Model 4在文字轉譯、人類、動物和架構方面提供顯著改善。
- Firefly Image Model 4秉持Adobe對IP友好、商業上安全的創作AI的承諾。
Firefly Image Model 4提供您卓越的人類、動物和詳細場景影像,您可以使用Image Model 4 Ultra產生具有超逼真的人際互動、建築元素和複雜風景的影像。
1.1.1.8.1 image4_standard
從 FF - Firefly Services Tech Insiders 集合中選取名為 POST - Firefly - T2I V4 的請求,並移至請求的 Headers。
您會發現要求的URL與 Firefly Services API,文字2影像,影像3 要求不同,為 https://firefly-api.adobe.io/v3/images/generate。 此URL指向 https://firefly-api.adobe.io/v3/images/generate-async。 在URL中新增 -async 表示您使用的是非同步端點。
在 Header 變數中,您會發現名為 x-model-version 的新變數。 這是與Firefly Image 4和Image 4 Ultra互動時的必要標頭。 若要在產生影像時使用Firefly Image 4或Image 4 Ultra,則標頭的值應設為image4_standard
或image4_ultra
。 在此範例中,您將使用image4_standard
。
如果您未將 x-model-version 設定為image4_standard
或image4_ultra
,則Firefly Services目前將預設為使用image3
。
前往請求的 內文。 您應該會在內文中看到,正在要求4個影像變化。 提示與之前相同,且仍在要求產生欄位 中的 馬。 按一下 傳送
然後您會立即收到回應。 此回應不包含產生影像的影像URL,而是包含您啟動之工作的狀態報告URL,且包含另一個可讓您取消執行中工作的URL。
若要檢視執行中工作的狀態報告,請從 FF - Firefly Services技術內部人士 集合中選取名為 GET - Firefly — 取得狀態報告 的請求。 按一下以開啟它,然後按一下[傳送]。
之後,您將會看到剛啟動之影像產生工作的狀態報表。 驗證欄位 狀態,因為它可能設定為 正在執行,這表示工作尚未完成。 在此範例中,工作狀態設為 succeeded,表示已產生您要求的影像。
在回應中向下捲動一點,您應該就會看到Adobe Firefly Services傳回的共4種影像變化。 按一下(或複製)其中一個影像的URL,然後在瀏覽器中開啟。
然後您應該會在欄位 中看到 匹馬的超真實影像。
1.1.1.8.2 image4_ultra
從 FF - Firefly Services技術人員 集合返回名為 POST - Firefly - T2I V4 的請求,並轉到請求的 Headers。
將變數 x-model-version 變更為image4_ultra
。 在此範例中,您將使用image4_ultra
。
前往請求的 內文。 在內文中,將影像變化數變更為1,就像Firefly Image 4 Ultra一樣,一次只能產生1個影像。 提示與之前相同,且仍在要求產生欄位 中的 馬。 按一下 傳送
回應中再次包含您啟動之工作的狀態報告URL,而且包含另一個可讓您取消執行中工作的URL。
若要檢視執行中工作的狀態報告,請從 FF - Firefly Services技術內部人士 集合中選取名為 GET - Firefly — 取得狀態報告 的請求。 按一下以開啟它,然後按一下[傳送]。
之後,您將會看到剛啟動之影像產生工作的狀態報表。 驗證欄位 狀態,因為它可能設定為 正在執行,這表示工作尚未完成。 在此範例中,工作狀態設為 succeeded,表示已產生您要求的影像。
然後您應該會在欄位 中看到 匹馬的超真實影像。
負面提示
如果您想要求Firefly不要在即將產生的影像中包含某些專案,您可以在使用API時包含欄位negativePrompt
(此選專案前未公開給UI)。 例如,如果您不想在執行欄位 中的提示 馬時包含任何花,則您可以在API要求的 Body 中指定此專案:
"negativePrompt": "no flowers",
從 FF - Firefly Services技術人員 集合移至請求 POST - Firefly - T2I V4,並移至請求的 Body。 將以上文字貼到要求內文中。 按一下 傳送。
您應該會看到此訊息。
若要檢視執行中工作的狀態報告,請從 FF - Firefly Services技術內部人士 集合中選取名為 GET - Firefly — 取得狀態報告 的請求。 按一下以開啟它,然後按一下[傳送]。 選取所產生影像的URL,然後在瀏覽器中開啟。
然後您會看到產生的影像,該影像不應包含任何花。
後續步驟
移至使用Microsoft Azure和預先簽署的URL最佳化您的Firefly程式
返回所有模組