簡介
Dall-E 由 OpenAI 釋出,是一種基於深度學習的生成模型,它是一種改進的 GPT 模型,專門用於影像生成。Dall-E 可以根據文字描述生成與之相符合的原創性、真實的影像。
Dall-E 透過一個擁有 120 億引數的 Transformer 模型來理解自然語言的輸入,並生成相應的圖片。這些圖片不僅限於現實中已存在的影像,還包括虛擬的、現實中不存在的影像。
Dall-E 發展
Dall-E 和 Dall-E 2
Dall-E 最早釋出於 2021 年 1 月 5 日由 OpenAI 釋出,它具備生成逼真影像的能力。一年後的 2022 年 4 月 OpenAI 宣佈了新版本的 DALL-E 2,這一版本具備更為強大的功能,並且在解析度方便也提高了 4 倍。以下是 Dall-E 所具備的擴充套件的功能:
- 影像生成。
- 擴充套件影像。
- 修改已有影像。
- 根據已有的影像生成新的影像。
Dall-E 2 的侷限性
儘管 Dall-E 2 的功能已經非常強大,然而開發者也公開提出了它的侷限性,對於影像的屬性,Dall-E 2 是沒有一個很準確的判斷的,並且細節方面還有很多的欠缺。
並且基於安全考慮,Dall-E 2 是不會生成包含暴力、政治等敏感圖片的。
Dall-E 3 的增強
相比較 Dall-E 2 的影像生成,Dall-E 3 對影像的增強有以下幾個方面:
- 提示最佳化:詳細的提示會帶來更為準確的圖片結果。
- 清晰度:可選擇standard標準與HD高畫質兩種。
- 多尺寸:接受三種尺寸(1024px x 1024px、1792px x 1024px 和 1024px x 1792px)。
- 多風格:natural 自然和 vivid 生動兩種。
應用場景
- 定製化影像生成
- 虛擬設定和遊戲開發
- 產品設計和廣告營銷
- 自然語言處理和計算機視覺研究
實戰示例
OpenAI 提供了三種 API 呼叫的方式,如下所示:
- Dall-E 3 和 Dall-E 2:根據文字提示從頭開始建立影像。
- Dall-E 2:根據新的文字,替換預先存在的影像的某些區域。
- Dall-E 2:根據影像生成影像的變體。
生成影像
前提:已安裝 openai 庫
儲存圖片需要提前下載 requests 庫:pip install requests
# 例項化 openai 的物件
client = OpenAI(base_url="xxx",api_key="xxxx")
def generate_image_path():
# 生成圖片路徑
return os.path.join("img_" + datetime.datetime.now().strftime("%Y%m%d%H%M%S") + ".png")
def test_image_normal():
# 文生圖,指定模型,給出提示語和大小限制
response = client.images.generate(
model="dall-e-3",
prompt="一隻貓在窗戶邊睡覺",
size="1024x1024",
)
# 得到生成的圖片連結
image_url = response.data[0].url
print(image_url)
# 下載並儲存影像
image_response = requests.get(image_url)
with open(generate_image_path(), 'wb') as f:
f.write(image_response.content)
增加影像生成的條件
def test_image_style():
# 文生圖
response = client.images.generate(
model="dall-e-3",
prompt="一隻貓在窗戶邊睡覺",
size="1024x1024",
style="natural",
quality="standard",
n=1
)
image_url = response.data[0].url
print(image_url)
生成多個影像
def test_image_num():
response = client.images.generate(
model="dall-e-2",
prompt="一隻貓在窗戶邊睡覺",
n=3
)
for i, image in enumerate(response.data):
image_response = requests.get(image.url)
with open(generate_image_path(), 'wb') as f:
f.write(image_response.content)
print(f"生成的第{i}張圖片地址是:{image.url}")
修改影像
下載 img1.png 下載 img2.png
def test_change_image():
# 將圖1根據提示在圖2的標記上進行修改
response = client.images.edit(
model="dall-e-2",
image=open("img1.png", "rb"),
mask=open('img2.png', 'rb'),
prompt="A sunlit indoor lounge area with a pool containing a flamingo",
n=1,
size="256x256"
)
# 生成的影像路徑
image_url = response.data[0].url
# 儲存圖片
image_response = requests.get(image_url)
with open(generate_image_path(), 'wb') as f:
f.write(image_response.content)
生成變體影像
下載ori_img.png
def test_variation_image():
response = client.images.create_variation(
model="dall-e-2",
# 給出原影像
image=open("ori_img.png", "rb"),
n=1,
size="1024x1024",
)
# 獲取生成的圖片路徑
image_url = response.data[0].url
# 儲存圖片
image_response = requests.get(image_url)
with open(generate_image_path(), 'wb') as f:
f.write(image_response.content)
總結
- 瞭解 Dall-E 的功能。
- 瞭解 Dall-E 的用法。
【霍格沃茲測試開發】7天軟體測試快速入門帶你從零基礎/轉行/小白/就業/測試用例設計實戰
【霍格沃茲測試開發】最新版!Web 自動化測試從入門到精通/ 電子商務產品實戰/Selenium (上集)
【霍格沃茲測試開發】最新版!Web 自動化測試從入門到精通/ 電子商務產品實戰/Selenium (下集)
【霍格沃茲測試開發】明星講師精心打造最新Python 教程軟體測試開發從業者必學(上集)
【霍格沃茲測試開發】明星講師精心打造最新Python 教程軟體測試開發從業者必學(下集)
【霍格沃茲測試開發】精品課合集/ 自動化測試/ 效能測試/ 精準測試/ 測試左移/ 測試右移/ 人工智慧測試
【霍格沃茲測試開發】騰訊/ 百度/ 阿里/ 位元組測試專家技術沙龍分享合集/ 精準化測試/ 流量回放/Diff
【霍格沃茲測試開發】Pytest 用例結構/ 編寫規範 / 免費分享
【霍格沃茲測試開發】JMeter 實時效能監控平臺/ 資料分析展示系統Grafana/Docker 安裝
【霍格沃茲測試開發】介面自動化測試的場景有哪些?為什麼要做介面自動化測試?如何一鍵生成測試報告?
【霍格沃茲測試開發】面試技巧指導/ 測試開發能力評級/1V1 模擬面試實戰/ 衝刺年薪百萬!
【霍格沃茲測試開發】騰訊軟體測試能力評級標準/ 要評級表格的聯絡我
【霍格沃茲測試開發】Pytest 與Allure2 一鍵生成測試報告/ 測試用例斷言/ 資料驅動/ 引數化
【霍格沃茲測試開發】App 功能測試實戰快速入門/adb 常用命令/adb 壓力測試
【霍格沃茲測試開發】阿里/ 百度/ 騰訊/ 滴滴/ 位元組/ 一線大廠面試真題講解,卷完拿高薪Offer !
【霍格沃茲測試開發】App自動化測試零基礎快速入門/Appium/自動化用例錄製/引數配置
【霍格沃茲測試開發】如何用Postman 做介面測試,從入門到實戰/ 介面抓包(最新最全教程)