3D 機器學習課程文件
實戰(第2部分)
加入 Hugging Face 社群
並獲得增強的文件體驗
開始使用
實戰(第2部分)
是時候託管你自己的演示了!在此部分,你將:
- 使用你自己的模型重新執行筆記本。
- 使用 Gradio 建立一個演示。
- (可選)部署你的演示。
重新執行筆記本
在筆記本中,將模型名稱替換為你自己的模型名稱。
import torch
from diffusers import DiffusionPipeline
multi_view_diffusion_pipeline = DiffusionPipeline.from_pretrained(
"<your-user-name>/<your-model-name>",
custom_pipeline="dylanebert/multi-view-diffusion",
torch_dtype=torch.float16,
trust_remote_code=True,
).to("cuda")然後,重新執行筆記本。你應該會看到和之前相同的結果。

Gradio 演示
現在,我們來建立一個 Gradio 演示。
import gradio as gr
def run(image):
image = np.array(image, dtype=np.float32) / 255.0
images = multi_view_diffusion_pipeline("", image, guidance_scale=5, num_inference_steps=30, elevation=0)
images = [Image.fromarray((img * 255).astype("uint8")) for img in images]
width, height = images[0].size
grid_img = Image.new("RGB", (2 * width, 2 * height))
grid_img.paste(images[0], (0, 0))
grid_img.paste(images[1], (width, 0))
grid_img.paste(images[2], (0, height))
grid_img.paste(images[3], (width, height))
return grid_img
demo = gr.Interface(fn=run, inputs="image", outputs="image")
demo.launch()run 方法將之前的所有程式碼組合成一個函式。然後 gr.Interface 方法使用此函式建立一個具有影像輸入和影像輸出的演示。
恭喜!你已經為你的模型建立了一個 Gradio 演示。
(可選)部署你的演示
你可能希望在 Colab 之外執行你的演示。
有許多方法可以做到這一點。
選項 1:建立 Space
前往 Hugging Face Spaces 並建立一個新的 Space。選擇 Gradio Space SDK。在 Space 中建立一個名為 app.py 的新檔案,並貼上 Gradio 演示的程式碼。將演示的 requirements.txt 複製到 Space 中。
有關完整的示例,請檢視此 Space,然後單擊右上角的 Files 以檢視原始碼。
注意:此方法需要 GPU 才能公開託管,這需要付費。但是,你可以按照選項 3 中的說明免費在本地執行演示。
選項 2:Gradio 部署
Gradio 使用 gradio deploy 命令可以輕鬆地將你的演示部署到伺服器。
有關更多詳細資訊,請檢視 Gradio 文件。
選項 3:本地執行
要在本地執行,只需將程式碼複製到 Python 檔案中並在你的機器上執行。
完整的原始檔應如下所示:
import gradio as gr
import numpy as np
import torch
from diffusers import DiffusionPipeline
from PIL import Image
multi_view_diffusion_pipeline = DiffusionPipeline.from_pretrained(
"dylanebert/multi-view-diffusion",
custom_pipeline="dylanebert/multi-view-diffusion",
torch_dtype=torch.float16,
trust_remote_code=True,
).to("cuda")
def run(image):
image = np.array(image, dtype=np.float32) / 255.0
images = multi_view_diffusion_pipeline(
"", image, guidance_scale=5, num_inference_steps=30, elevation=0
)
images = [Image.fromarray((img * 255).astype("uint8")) for img in images]
width, height = images[0].size
grid_img = Image.new("RGB", (2 * width, 2 * height))
grid_img.paste(images[0], (0, 0))
grid_img.paste(images[1], (width, 0))
grid_img.paste(images[2], (0, height))
grid_img.paste(images[3], (width, height))
return grid_img
demo = gr.Interface(fn=run, inputs="image", outputs="image")
demo.launch()要在虛擬 Python 環境中設定並執行此演示,請執行以下命令:
# Setup
python -m venv venv
source venv/bin/activate
pip install -r https://huggingface.co/spaces/dylanebert/multi-view-diffusion/raw/main/requirements.txt
# Run
python app.py< > 在 GitHub 上更新注意:此測試使用 Python 3.10.12 和 CUDA 12.1 在 NVIDIA RTX 4090 上進行。