[深度學習]利用Stable Diffusion輸入文字生成圖片

更新於 發佈於 閱讀時間約 5 分鐘

本文下方連結的文章,利用Stable Diffusion生成512 * 512大小的圖片。

輸入的文字是 dog flying in space,此模型需輸入英文句子才會準確生成。

Stable Diffusion生成的圖片

Stable Diffusion生成的圖片


參考文獻

連結該作者在Hugging Face公開的模型去做使用。


本文是在Colab上執行。Python版本及套件版本

Python version: 3.10.12
diffusers version: 0.29.2
transformers version: 4.42.4
scipy version: 1.14.0

程式範例

1.安裝套件

!pip install --upgrade diffusers transformers scipy &> /dev/null

2. 程式碼

短短幾行程式碼,即可載入Stable Diffusion模型來生成圖片。

只要修改prompt就可以改變要生成的圖片。

import torch
from diffusers import StableDiffusionPipeline

#設定模型 ID 和設備
model_id = "CompVis/stable-diffusion-v1-4"
device = "cuda"

#載入模型
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe = pipe.to(device)
#torch_dtype=torch.float16 :單精度,較不佔記憶體

#生成圖像的描述
prompt = "dog flying in space"

#生成圖片
image = pipe(prompt).images[0] ##預設圖片大小:512*768
#儲存圖片
image.save("dog_flying_in_space.png")

'''
高度和寬度都是8的倍數
低於 512 可能會導致影像品質降低, 超過 512 會出現重複影像區域(遺失全域一致性)
非正方形影像最佳方法:一個維度為 512px,另一維度大於512px。
'''



程式碼詳細說明

  • 1. 導入相關套件
    import torch
    from diffusers import StableDiffusionPipeline
    • import torch:引入 PyTorch 庫,這是用於深度學習的熱門框架。
    • from diffusers import StableDiffusionPipeline:從 diffusers 庫中引入 StableDiffusionPipeline,這是用於圖像生成的管道。


  • 2. 設定模型和設備
    model_id = "CompVis/stable-diffusion-v1-4"
    device = "cuda"
    • model_id:指定要使用的模型 ID,此處是 CompVis/stable-diffusion-v1-4
    • device:此處設為 "cuda",表示使用 GPU。


  • 3. 載入模型
    # torch_dtype=torch.float16 :單精度,較不佔記憶體
    pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
    pipe = pipe.to(device)
    • StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16):從預訓練模型載入管道,並設定 torch_dtypetorch.float16。使用 float16 可以減少記憶體佔用。
    • 這行程式碼會從 Hugging Face 下載並載入 CompVis/stable-diffusion-v1-4 模型,然後你可以使用這個模型進行圖像生成任務。
    • pipe.to(device):指定設備(GPU)。


  • 4. 生成圖像
    prompt = "dog flying in space"

    # 預設圖片大小:512*768
    '''
    高度和寬度都是8的倍數
    低於 512 可能會導致影像品質降低, 超過 512 會出現重複影像區域(遺失全域一致性)
    非正方形影像最佳方法:一個維度為 512px,另一維度大於512px。
    '''
    image = pipe(prompt).images[0]
    • prompt = "dog flying in space":設置文本提示詞,這是生成圖像的描述。
    • image = pipe(prompt).images[0]:使用管道生成圖像。 pipe(prompt) 會返回一個結果對象, images[0] 表示取第一張生成的圖像。


  • 5. 保存圖像
    image.save("astronaut_rides_horse.png")
    • image.save("astronaut_rides_horse.png"):將生成的圖像保存為 astronaut_rides_horse.png 文件。


若要在本地端跑,需確保是有網路的,才可以從Hugging Face 下載並載入模型喔







avatar-img
128會員
215內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
螃蟹_crab的沙龍 的其他內容
長短期記憶(英語:Long Short-Term Memory,LSTM)是一種時間循環神經網路(RNN),論文首次發表於1997年。 LSTM(長短期記憶)是一種特定類型的遞歸神經網絡(RNN),在許多需要處理時間序列數據或順序數據的應用中非常有用。 以下是一些常見的 LSTM 應用:
先前上一篇是使用NLT內置的電影評論數據集 movie_reviews,來訓練出情感分析模型,此篇文章介紹可以導入自己的訓練資料集來建立情感分析模組。 [Python][自然語言]NLTK 實現電影評論情感分析 所需套件 pip install pandas pip install sci
情感分析是一種自然語言處理技術,用於自動識別和分析文本中的情感傾向,通常是正向、負向或中性。 我們可以使用 NLTK 來實現一個基於單純貝斯分類器的情感分析模型。
本文介紹了流行的Python套件NLTK(Natural Language Toolkit)的主要特點、功能和在中文和英文語料上的應用。從安裝到實際應用,深入介紹了分詞、停用詞去除、詞性標註、命名實體識別等NLP任務的具體實現和步驟,幫助讀者理解和應用NLTK。
本文利用pyqt5,使用pyttsx3將QLineEdit(單行輸入框)的字串,轉成語音呈現出來。
本文主要使用SpeechRecognition來做一個簡單的語音辨識,使用pyqt5介面呈現。 按下Start Recording,開始錄音,並顯示請開始說話。然後按鈕名改名Stop 在按下Stop Recording,稍等片刻後就會呈現出辨識結果​ 程式範例 import sys i
長短期記憶(英語:Long Short-Term Memory,LSTM)是一種時間循環神經網路(RNN),論文首次發表於1997年。 LSTM(長短期記憶)是一種特定類型的遞歸神經網絡(RNN),在許多需要處理時間序列數據或順序數據的應用中非常有用。 以下是一些常見的 LSTM 應用:
先前上一篇是使用NLT內置的電影評論數據集 movie_reviews,來訓練出情感分析模型,此篇文章介紹可以導入自己的訓練資料集來建立情感分析模組。 [Python][自然語言]NLTK 實現電影評論情感分析 所需套件 pip install pandas pip install sci
情感分析是一種自然語言處理技術,用於自動識別和分析文本中的情感傾向,通常是正向、負向或中性。 我們可以使用 NLTK 來實現一個基於單純貝斯分類器的情感分析模型。
本文介紹了流行的Python套件NLTK(Natural Language Toolkit)的主要特點、功能和在中文和英文語料上的應用。從安裝到實際應用,深入介紹了分詞、停用詞去除、詞性標註、命名實體識別等NLP任務的具體實現和步驟,幫助讀者理解和應用NLTK。
本文利用pyqt5,使用pyttsx3將QLineEdit(單行輸入框)的字串,轉成語音呈現出來。
本文主要使用SpeechRecognition來做一個簡單的語音辨識,使用pyqt5介面呈現。 按下Start Recording,開始錄音,並顯示請開始說話。然後按鈕名改名Stop 在按下Stop Recording,稍等片刻後就會呈現出辨識結果​ 程式範例 import sys i
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
最近在嘗試使用不同的AI生圖方式混合出圖的方式,採用A平台的優點,並用B平台後製的手法截長補短,創造出自己更想要的小說場景,效果不錯,現在以這張圖為例,來講一下我的製作步驟。
Thumbnail
Enhance This HiDiffusion SDXL是一個AI模型,結合HiDiffusion和SDXL兩種圖像生成模型,可以根據既有影像和文字描述生成新的圖像,可用來提高圖像解析度、修復瑕疵、轉換風格和自由創造新的圖像。
Thumbnail
隨著人工智能技術的發展,AI 繪圖已經變得常見。Fast Stable Diffusion XL on TPUv5e 是在 Hugging Face 平臺上建立的演示模型,使用 TPU v5e 運行 SDXL 模型,大幅提高了圖像生成速度,生成一張 1024x1024 圖像只需約 10 秒。
Thumbnail
Tensor Art 使用 Stable Diffusion 的各種模型,也能使用ControlNet 和 LoRA功能,根據使用者的輸入來文生圖、圖生圖,生成各種風格的高質量圖像,包括人像、動人的風景、創意的抽象畫等。
Thumbnail
Stable Diffusion Online是網頁版的Stable Diffusion AI圖像生成工具,省去了繁瑣的安裝和設定步驟,可以無限生成圖片,且不用註冊就可以免費使用,更棒的是還可以商業使用,為使用者提供更便捷的圖像生成體驗。
Thumbnail
這篇要來分享一下學習了一些攝影的知識後,用於改良AI生圖的經驗。 AI生圖可以藉由少少的幾個句子產生出非常美麗的圖片,事實上,很多時候AI生圖的極限是卡在人類使用者的想像力之下。
Thumbnail
這篇要來分享使用Stable Diffusion加上拼貼擴展技巧如何製作自己想要的情境圖。以用於日後的小說封面
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
最近在嘗試使用不同的AI生圖方式混合出圖的方式,採用A平台的優點,並用B平台後製的手法截長補短,創造出自己更想要的小說場景,效果不錯,現在以這張圖為例,來講一下我的製作步驟。
Thumbnail
Enhance This HiDiffusion SDXL是一個AI模型,結合HiDiffusion和SDXL兩種圖像生成模型,可以根據既有影像和文字描述生成新的圖像,可用來提高圖像解析度、修復瑕疵、轉換風格和自由創造新的圖像。
Thumbnail
隨著人工智能技術的發展,AI 繪圖已經變得常見。Fast Stable Diffusion XL on TPUv5e 是在 Hugging Face 平臺上建立的演示模型,使用 TPU v5e 運行 SDXL 模型,大幅提高了圖像生成速度,生成一張 1024x1024 圖像只需約 10 秒。
Thumbnail
Tensor Art 使用 Stable Diffusion 的各種模型,也能使用ControlNet 和 LoRA功能,根據使用者的輸入來文生圖、圖生圖,生成各種風格的高質量圖像,包括人像、動人的風景、創意的抽象畫等。
Thumbnail
Stable Diffusion Online是網頁版的Stable Diffusion AI圖像生成工具,省去了繁瑣的安裝和設定步驟,可以無限生成圖片,且不用註冊就可以免費使用,更棒的是還可以商業使用,為使用者提供更便捷的圖像生成體驗。
Thumbnail
這篇要來分享一下學習了一些攝影的知識後,用於改良AI生圖的經驗。 AI生圖可以藉由少少的幾個句子產生出非常美麗的圖片,事實上,很多時候AI生圖的極限是卡在人類使用者的想像力之下。
Thumbnail
這篇要來分享使用Stable Diffusion加上拼貼擴展技巧如何製作自己想要的情境圖。以用於日後的小說封面