Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ultimate-addons-for-gutenberg domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /opt/bitnami/wordpress/wp-includes/functions.php on line 6114
AI 本地模型 – Stable Diffusion - 八寶周的研究小屋

AI 本地模型 – Stable Diffusion

Stable Diffusion 在圖像生成領域長期展現卓越的成績,甚至引起繪畫市場的洗板與恐慌,如今已然到第三代。那如果只是基礎功能的使用,實際上不用費工的安裝 Web UI 並透過 API 進行呼叫。

0. 前言


Stable Diffusion 在圖像生成領域長期展現卓越的成績,甚至引起繪畫市場的洗板與恐慌,如今已然到第三代。那如果只是基礎功能的使用,實際上不用費工的安裝 Web UI 並透過 API 進行呼叫。

在本篇文章我們將探討在不安裝 AUTOMATIC1111 的 Web UI 的情況下,如何在專案中直接使用。

1. 重點


需要準備至少 7 GB 的磁碟空間

2. 內容


2.1. 準備環境

各位可以回顧【PyTorch 環境安裝】事前在 venv 中安裝所需之環境。

由於 SD2 與 SD3 擁有極大的 GPU 要求,範例這邊採用基礎的 SDXL 1.0,從官方的範例稍作修改增加更多的調整項目。

Python
from diffusers import AutoPipelineForText2Image
import torch

pipeline_text2image = AutoPipelineForText2Image.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0",
    torch_dtype=torch.float16,
    variant="fp16",
    use_safetensors=True,
).to("cuda")

# The positive prompt
pos_prompt = "Futuristic city skyline with flying cars, cutting-edge AI technology, holographic interfaces, sleek designs, vibrant and glowing, 8k, highly detailed"
# The negative prompt
neg_prompt = "dystopian, dark, old technology, broken machines, messy environment"

# The number of denoising steps
num_inference_steps = 20
#
guidance_scale = 7.0
# The size of the result
width = 768
height = 768
# The number of images generated
num_images_per_prompt = 1


image = pipeline_text2image(
    prompt=pos_prompt,
    negative_prompt=neg_prompt,
    guidance_scale=guidance_scale,
    width=width,
    height=height,
    num_inference_steps=num_inference_steps,
    num_images_per_prompt=num_images_per_prompt,
).images[0]

image.save("result.png")

此時我們需要另外安裝 diffusers 套件,在專案 Terminal 內輸入以下指令進行安裝 or 更新。

Python
pip install -U diffusers

2.2. 嘗試生圖

在 HuggingFace 下載模型前,由於該模型屬於受管控的,我們必須填寫頂層的表單後才擁有權限使用。

在 CLU 有登入 HuggingFace 的情況下,複製剛才頁面上的程式實際跑一次,便會開始下載模型。設備偏弱的讀者可以另外調整圖片的寬高,減少系統的負擔,不過記得 SDXL 在 768 到 1024 pixels 的範圍效果較佳。

當完成後就能看看最終成效如何囉!

3. 後話


事實上 SDXL 還是多數用戶使用的模型,不僅僅在於設備的限制,同時也歸咎於【Civitai】過往累積的大量偏旁模型可以進行調整。

但總歸來說最基礎的引入就足以包辦許多的業務,雖然許多網頁提供免費生圖,但在開發層面則可以省下許多呼叫的生成費用。

4. 參考


[1] SDXL 1.0 — Official Docs on HuggingFace
https://huggingface.co/docs/diffusers/using-diffusers/sdxl

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.