日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

(跨模态)AI作画——使用stable-diffusion生成图片

發布時間:2023/12/20 ChatGpt 104 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (跨模态)AI作画——使用stable-diffusion生成图片 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

AI作畫——使用stable-diffusion生成圖片

  • 0. 簡介
  • 1. 注冊并登錄huggingface
  • 2. 下載模型
  • 3. 生成

0. 簡介

自從DallE問世以來,AI繪畫越來越收到關注,從最初只能畫出某些特征,到越來越逼近真實圖片,并且可以利用prompt來指導生成圖片的風格。

前不久,stable-diffusion的v1-4版本終于開源,本文主要面向不熟悉huggingface的同學,介紹一下stable-diffusion如何使用(非常簡單)。

1. 注冊并登錄huggingface

直接打開compvis的stable-diffusion:
https://huggingface.co/CompVis/stable-diffusion-v1-4
然后,去找它的模型,想給它下載下來,但是進入下載界面,會顯示404。沒關系,如果沒注冊過huggingface,需要先注冊一個賬號,一分鐘搞定。

然后回到model card,有一個用戶協議,點擊接受:

2. 下載模型

在切回模型文件,發現就可以下載了:

點擊每個文件后邊的小箭頭,就可以下載了,把所有下載的文件扔到一個文件夾里,你可以把這個文件夾命名為stable_diffusion,注意里邊的這些文件夾的名稱也要與項目里保持一致。

其實在這里我們也可以大概看到整個模型的基本結構:

  • 一個自編碼器VAE:用于重構模型(所以在使用的時候只調用了它的解碼器);
  • 一個U型網絡;
  • 一個Clip:用于對輸入的文本進行編碼;
  • 還有一個safty checker暫時不太清楚是做什么用的。
  • 官方文檔里對模型結構的整體介紹如下:

    由于模型我目前也不是很熟,就不多介紹了,怕講錯了。直接進入下一個環節,生成。

    3. 生成

    首先安裝一下環境依賴:

    pip install transformers pip install diffusers

    在配置好環境之后,模型的調用非常方便:

    import torch from diffusers import StableDiffusionPipeline

    然后建立模型,這里的模型路徑可以選擇之前下載的所有文件存放的路徑。

    pipe = StableDiffusionPipeline.from_pretrained('xxxxxx/huggingface/stable-diffusion-v1-4', use_auth_token=True) # cpu會很慢所以最好在GPU上運行,大概需要10G顯存 pipe.to('cuda:0')

    輸入一句話,直接調用這個類,就可以生成了,生成的圖片是PIL格式,可以直接保存。

    prompt = "a photo of an astronaut riding a horse on mars" image = pipe(prompt, guidance_scale=7.5)["sample"][0] image.save("test_1.png")


    然后看一下這個類調用方法可以傳入的參數都有什么:

    help(pipe.__call__) # __call__(prompt: Union[str, List[str]], height: Union[int, NoneType] = 512, width: Union[int, NoneType] = 512, num_inference_steps: Union[int, NoneType] = 50, guidance_scale: Union[float, NoneType] = 7.5, eta: Union[float, NoneType] = 0.0, generator: Union[torch._C.Generator, NoneType] = None, output_type: Union[str, NoneType] = 'pil', **kwargs)

    查看官方文檔可知:

    參數含義默認值
    height生成圖片的高度512
    width生成圖片的寬度512
    num_inference_steps預測步數50
    guidance_scale指導度7.5
    generator生成器None
    output_type輸出的類型pil

    其中,預測的步數,一般來說步數越大,圖片效果越好,但是耗時就越長(調用的時候那個tqdm條就是步數);
    guidance_scale,用來控制生成的一個參數,暫時不太了解,官方說設置為7.5-8效果最好。感興趣的話可以參考:https://arxiv.org/abs/2207.12598

    關于生成器參數,主要可以用來生成VAE模型的初始潛在噪聲,由于VAE的初始化是采樣出來的,具有隨機性,所以如果想確保生成的圖片一樣的話,可以設置seed:

    import torchgenerator = torch.Generator("cuda").manual_seed(1024) image = pipe(prompt, generator=generator)["sample"][0]

    本文就先介紹到這里,后續如果有更多好玩的text-to-image模型,可能會繼續介紹。

    總結

    以上是生活随笔為你收集整理的(跨模态)AI作画——使用stable-diffusion生成图片的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。