[深度學習]利用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
留言分享你的想法!
avatar-img
螃蟹_crab的沙龍
147會員
262內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
螃蟹_crab的沙龍的其他內容
2024/07/27
呈上篇介紹如何訓練模型,此篇就主要介紹如何利用訓練好的模型來生成圖片 [深度學習][Python]DCGAN訓練生成手寫阿拉伯數字_生成篇 生成的結果 生成的圖片大小會根據,當初設置的生成器輸出大小來決定,當你使用生成對抗網絡(GAN)生成圖像時,生成器模型的最後一層通常會決定生成圖
Thumbnail
2024/07/27
呈上篇介紹如何訓練模型,此篇就主要介紹如何利用訓練好的模型來生成圖片 [深度學習][Python]DCGAN訓練生成手寫阿拉伯數字_生成篇 生成的結果 生成的圖片大小會根據,當初設置的生成器輸出大小來決定,當你使用生成對抗網絡(GAN)生成圖像時,生成器模型的最後一層通常會決定生成圖
Thumbnail
2024/07/27
本文參考TensorFlow官網Deep Convolutional Generative Adversarial Network的程式碼來加以實作說明。 示範如何使用深度卷積生成對抗網路(DCGAN) 生成手寫數位影像。
Thumbnail
2024/07/27
本文參考TensorFlow官網Deep Convolutional Generative Adversarial Network的程式碼來加以實作說明。 示範如何使用深度卷積生成對抗網路(DCGAN) 生成手寫數位影像。
Thumbnail
2024/07/26
本文將延續上一篇文章,經由訓練好的GAN模型中的生成器來生成圖片 [深度學習][Python]訓練MLP的GAN模型來生成圖片_訓練篇 [深度學習][Python]訓練CNN的GAN模型來生成圖片_訓練篇 相較之下CNN的GAN生成的效果比較好,但模型也相對比較複雜,訓練時間花的也比較
Thumbnail
2024/07/26
本文將延續上一篇文章,經由訓練好的GAN模型中的生成器來生成圖片 [深度學習][Python]訓練MLP的GAN模型來生成圖片_訓練篇 [深度學習][Python]訓練CNN的GAN模型來生成圖片_訓練篇 相較之下CNN的GAN生成的效果比較好,但模型也相對比較複雜,訓練時間花的也比較
Thumbnail
看更多
你可能也想看
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 129 中說,Bidirectional Encoder Representations from Transformers (BER
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 129 中說,Bidirectional Encoder Representations from Transformers (BER
Thumbnail
本文參考TensorFlow官網Deep Convolutional Generative Adversarial Network的程式碼來加以實作說明。 示範如何使用深度卷積生成對抗網路(DCGAN) 生成手寫數位影像。
Thumbnail
本文參考TensorFlow官網Deep Convolutional Generative Adversarial Network的程式碼來加以實作說明。 示範如何使用深度卷積生成對抗網路(DCGAN) 生成手寫數位影像。
Thumbnail
本文主要介紹,如何利用GAN生成對抗網路來訓練生成圖片。 利用tensorflow,中的keras來建立生成器及鑑別器互相競爭訓練,最後利用訓練好的生成器來生成圖片。 GAN生成對抗網路的介紹 它由生成網路(Generator Network)和鑑別網路(Discriminator Netwo
Thumbnail
本文主要介紹,如何利用GAN生成對抗網路來訓練生成圖片。 利用tensorflow,中的keras來建立生成器及鑑別器互相競爭訓練,最後利用訓練好的生成器來生成圖片。 GAN生成對抗網路的介紹 它由生成網路(Generator Network)和鑑別網路(Discriminator Netwo
Thumbnail
本文下方連結的文章,利用Stable Diffusion生成512 * 512大小的圖片。 輸入的文字是 dog flying in space,此模型需輸入英文句子才會準確生成。 參考文獻 連結該作者在Hugging Face公開的模型去做使用。 本文是在Colab上執行。
Thumbnail
本文下方連結的文章,利用Stable Diffusion生成512 * 512大小的圖片。 輸入的文字是 dog flying in space,此模型需輸入英文句子才會準確生成。 參考文獻 連結該作者在Hugging Face公開的模型去做使用。 本文是在Colab上執行。
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續 AI說書 - 從0開始 - 93 介紹了 The Corpus of Linguistic Acceptability (CoLA),其核心思想為:如果該句子在語
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續 AI說書 - 從0開始 - 93 介紹了 The Corpus of Linguistic Acceptability (CoLA),其核心思想為:如果該句子在語
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續 AI說書 - 從0開始 - 93 介紹了 The Corpus of Linguistic Acceptability (CoLA),其核心思想為:如果該句子在語
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續 AI說書 - 從0開始 - 93 介紹了 The Corpus of Linguistic Acceptability (CoLA),其核心思想為:如果該句子在語
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續 AI說書 - 從0開始 - 93 介紹了 The Corpus of Linguistic Acceptability (CoLA),其核心思想為:如果該句子在語
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續 AI說書 - 從0開始 - 93 介紹了 The Corpus of Linguistic Acceptability (CoLA),其核心思想為:如果該句子在語
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformer 可以透過繼承預訓練模型 (Pretrained Model) 來微調 (Fine-Tune) 以執行下游任務。 Pretrained Mo
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformer 可以透過繼承預訓練模型 (Pretrained Model) 來微調 (Fine-Tune) 以執行下游任務。 Pretrained Mo
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續xxxx,ChatGPT 產生的程式,我們將它匯入 Colab 執行看看 ( Colab 使用教學見 使用Meta釋出的模型,實作Chat GPT - Part 0
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續xxxx,ChatGPT 產生的程式,我們將它匯入 Colab 執行看看 ( Colab 使用教學見 使用Meta釋出的模型,實作Chat GPT - Part 0
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 75 ,我們在給定句子 「 Transformers possess surprising emerging features 」的情
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 75 ,我們在給定句子 「 Transformers possess surprising emerging features 」的情
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News