文生圖大模型

霍格沃兹测试学院發表於2024-11-07

簡介

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 做介面測試,從入門到實戰/ 介面抓包(最新最全教程)

相關文章