博主原文鏈接:https://www.yourmetaverse.cn/nlp/409/
Gradio庫中的Model3D模塊:實時上傳和展示3D模型
Gradio是一個功能強大的Python庫,用于構(gòu)建用戶界面,特別適用于機器學(xué)習(xí)和深度學(xué)習(xí)任務(wù)。它提供了多種組件和模塊,使開發(fā)人員能夠輕松創(chuàng)建交互式界面,并與模型進行實時交互。其中一個引人注目的模塊是Model3D,它提供了一種簡單的方法來上傳和展示3D模型。本文將介紹Gradio庫中的Model3D模塊以及其change、edit、clear和upload方法的使用。
Gradio的Model3D模塊是一個用于上傳和展示3D模型文件的組件。通過該組件,用戶可以上傳包含3D模型的文件,如.obj、.glb或.gltf文件,并在界面上實時查看和交互。下面是Model3D模塊的示例代碼:
import gradio as gr
import os
def load_mesh(mesh_file_name):
return mesh_file_name
demo = gr.Interface(
fn=load_mesh,
inputs=gr.Model3D(),
outputs=gr.Model3D(
clear_color=[0.0, 0.0, 0.0, 0.0], label="3D Model"),
examples=[
[os.path.join(os.path.dirname(__file__), "files/Bunny.obj")],
[os.path.join(os.path.dirname(__file__), "files/Duck.glb")],
[os.path.join(os.path.dirname(__file__), "files/Fox.gltf")],
[os.path.join(os.path.dirname(__file__), "files/face.obj")],
],
)
if __name__ == "__main__":
demo.launch()
上述代碼創(chuàng)建了一個Gradio界面,其中包含一個Model3D組件,用于上傳和展示3D模型文件。load_mesh
函數(shù)是一個示例函數(shù),用于處理上傳的模型文件,并返回模型文件的路徑。在界面的示例部分,提供了一些示例模型文件的路徑,用戶可以點擊示例以查看相應(yīng)的3D模型。
Model3D模塊具有以下方法:
-
change(fn, inputs=None, outputs=None, ...)
:當組件的值發(fā)生變化時觸發(fā)的方法??梢杂糜谠贕radio Blocks中使用。參數(shù)fn
是一個函數(shù),代表處理模型預(yù)測的函數(shù)。inputs
和outputs
分別指定輸入和輸出組件。 -
edit(fn, inputs=None, outputs=None, ...)
:當用戶使用內(nèi)置編輯器編輯組件(如圖片)時觸發(fā)的方法??梢杂糜谠贕radio Blocks中使用。參數(shù)和用法與change
方法相似。 -
clear(fn, inputs=None, outputs=None, ...)
:當用戶點擊組件的清除按鈕(如圖片或音頻的X按鈕)時觸發(fā)的方法??梢杂糜谠贕radio Blocks中使用。參數(shù)和用法與change
方法相似。 -
upload(fn, inputs=None, outputs=None, ...)
:當用戶上傳文件到組件時觸發(fā)的方法??梢杂糜谠贕radio Blocks中使用。參數(shù)和用法與change
方法相似。
這些方法提供了靈活的方式來響應(yīng)用戶與Model3D組件的交互,可以根據(jù)具體需求編寫對應(yīng)的處理函數(shù)。
Gradio庫中的Model3D模塊為開發(fā)人員提供了一種簡單的方法來上傳和展示3D模型。通過該模塊,用戶可以實時查看和交互3D模型文件。使用change、edit、clear和upload等方法,可以自定義對用戶交互的響應(yīng)行為,從而實現(xiàn)更豐富的功能。Gradio的Model3D模塊為構(gòu)建交互式的機器學(xué)習(xí)應(yīng)用提供了強大的工具。
參數(shù)詳解
Model3D模塊的參數(shù)
參數(shù) | 數(shù)據(jù)類型 | 默認值 | 描述 |
---|---|---|---|
value | str/Callable/None | None | 要顯示在模型3D視圖器中的文件(.obj、.glb或.gltf)的路徑。如果是可調(diào)用對象,則在應(yīng)用程序加載時調(diào)用該函數(shù)以設(shè)置組件的初始值。 |
clear_color | list[float]/None | None | 場景的背景顏色。 |
label | str/None | None | 組件在界面中的名稱。 |
every | float/None | None | 如果value 是可調(diào)用對象,則在客戶端連接開啟時每隔“every”秒運行一次該函數(shù)。 |
show_label | bool | True | 如果為True,則顯示標簽。 |
container | bool | True | 如果為True,則將組件放置在容器中,提供一些額外的邊框填充。 |
scale | int/None | None | 相對于相鄰組件在一行中的寬度比例。例如,如果組件A的scale=2,組件B的scale=1,則A的寬度是B的兩倍。應(yīng)為整數(shù)。 |
min_width | int | 160 | 最小像素寬度,如果屏幕空間不足以滿足此值,則換行。如果某個比例值導(dǎo)致該組件寬度小于min_width,則首先尊重min_width參數(shù)。 |
visible | bool | True | 如果為False,則隱藏組件。 |
elem_id | str/None | None | 可選的字符串,用作此組件在HTML DOM中的id??捎糜卺槍SS樣式進行定位。 |
elem_classes | list[str]/str/None | None | 可選的字符串列表,用作此組件在HTML DOM中的類??捎糜卺槍SS樣式進行定位。 |
change方法參數(shù)
參數(shù) | 數(shù)據(jù)類型 | 默認值 | 描述 |
---|---|---|---|
fn | Callable/None | 必填 | 要封裝接口的函數(shù),通常是機器學(xué)習(xí)模型的預(yù)測函數(shù)。函數(shù)的每個參數(shù)對應(yīng)一個輸入組件,并且函數(shù)應(yīng)該返回一個值或一個值的元組,元組中的每個元素對應(yīng)一個輸出組件。 |
inputs | Component/list[Component]/set[Component]/None | None | 要用作輸入的Gradio組件列表。如果函數(shù)不接受輸入,則應(yīng)為空列表。 |
outputs | Component/list[Component]/None | None | 要用作輸出的Gradio組件列表。如果函數(shù)不返回輸出,則應(yīng)為空列表。 |
api_name | str/None | None | 定義此參數(shù)可將端點暴露在API文檔中。 |
status_tracker | None | None | 無效。 |
scroll_to_output | bool | False | 如果為True,在完成時將滾動到輸出組件。 |
show_progress | ‘full’/‘minimal’/‘hidden’ | ‘full’ | 如果為True,在等待期間顯示進度動畫。 |
queue | bool/None | None | 如果為True,則將請求放入隊列中(如果隊列已啟用)。如果為False,則不會將此事件放入隊列中,即使隊列已啟用。如果為None,則使用Gradio應(yīng)用程序的隊列設(shè)置。 |
batch | bool | False | 如果為True,則函數(shù)應(yīng)該處理一批輸入,這意味著它應(yīng)該接受每個參數(shù)的輸入值列表。列表應(yīng)該長度相等(并且最多為max_batch_size 的長度)。然后,該函數(shù)必須返回一個元組列表(即使只有1個輸出組件),其中元組中的每個列表對應(yīng)一個輸出組件。 |
max_batch_size | int | 4 | 如果從隊列調(diào)用此方法,則最多將一起批處理的輸入數(shù)量。僅當batch=True時才相關(guān)。 |
preprocess | bool | True | 如果為False,則在運行“fn”之前不會運行組件數(shù)據(jù)的預(yù)處理(例如,如果使用“Image”組件調(diào)用此方法,則將其保留為base64字符串)。 |
postprocess | bool | True | 如果為False,則在將’fn’的輸出返回給瀏覽器之前不會運行組件數(shù)據(jù)的后處理。 |
cancels | dict[str, Any]/list[dict[str, Any]]/None | None | 在此偵聽器觸發(fā)時取消其他事件的列表。例如,設(shè)置cancels=[click_event]將取消click_event,其中click_event是另一個組件的.click方法的返回值。尚未運行的函數(shù)(或正在迭代的生成器)將被取消,但當前正在運行的函數(shù)將被允許完成。 |
every | float/None | None | 在客戶端連接開啟時每隔“every”秒運行此事件。以秒為單位解釋。隊列必須已啟用。 |
edit方法參數(shù)
參數(shù) | 數(shù)據(jù)類型 | 默認值 | 描述 |
---|---|---|---|
fn | Callable/None | 必填 | 要封裝接口的函數(shù),通常是機器學(xué)習(xí)模型的預(yù)測函數(shù)。函數(shù)的每個參數(shù)對應(yīng)一個輸入組件,并且函數(shù)應(yīng)該返回一個值或一個值的元組,元組中的每個元素對應(yīng)一個輸出組件。 |
inputs | Component/list[Component]/set[Component]/None | None | 要用作輸入的Gradio組件列表。如果函數(shù)不接受輸入,則應(yīng)為空列表。 |
outputs | Component/list[Component]/None | None | 要用作輸出的Gradio組件列表。如果函數(shù)不返回輸出,則應(yīng)為空列表。 |
api_name | str/None | None | 定義此參數(shù)可將端點暴露在API文檔中。 |
status_tracker | None | None | 無效。 |
scroll_to_output | bool | False | 如果為True,在完成時將滾動到輸出組件。 |
show_progress | ‘full’/‘minimal’/‘hidden’ | ‘full’ | 如果為True,在等待期間顯示進度動畫。 |
queue | bool/None | None | 如果為True,則將請求放入隊列中(如果隊列已啟用)。如果為False,則不會將此事件放入隊列中,即使隊列已啟用。如果為None,則使用Gradio應(yīng)用程序的隊列設(shè)置。 |
batch | bool | False | 如果為True,則函數(shù)應(yīng)該處理一批輸入,這意味著它應(yīng)該接受每個參數(shù)的輸入值列表。列表應(yīng)該長度相等(并且最多為max_batch_size 的長度)。然后,該函數(shù)必須返回一個元組列表(即使只有1個輸出組件),其中元組中的每個列表對應(yīng)一個輸出組件。 |
max_batch_size | int | 4 | 如果從隊列調(diào)用此方法,則最多將一起批處理的輸入數(shù)量。僅當batch=True時才相關(guān)。 |
preprocess | bool | True | 如果為False,則在運行“fn”之前不會運行組件數(shù)據(jù)的預(yù)處理(例如,如果使用“Image”組件調(diào)用此方法,則將其保留為base64字符串)。 |
postprocess | bool | True | 如果為False,則在將’fn’的輸出返回給瀏覽器之前不會運行組件數(shù)據(jù)的后處理。 |
cancels | dict[str, Any]/list[dict[str, Any]]/None | None | 在此偵聽器觸發(fā)時取消其他事件的列表。例如,設(shè)置cancels=[click_event]將取消click_event,其中click_event是另一個組件的.click方法的返回值。尚未運行的函數(shù)(或正在迭代的生成器)將被取消,但當前正在運行的函數(shù)將被允許完成。 |
every | float/None | None | 在客戶端連接開啟時每隔“every”秒運行此事件。以秒為單位解釋。隊列必須已啟用。 |
clear方法參數(shù)文章來源:http://www.zghlxwxcb.cn/news/detail-535215.html
參數(shù) | 數(shù)據(jù)類型 | 默認值 | 描述 |
---|---|---|---|
fn | Callable/None | 必填 | 要封裝接口的函數(shù),通常是機器學(xué)習(xí)模型的預(yù)測函數(shù)。函數(shù)的每個參數(shù)對應(yīng)一個輸入組件,并且函數(shù)應(yīng)該返回一個值或一個值的元組,元組中的每個元素對應(yīng)一個輸出組件。 |
inputs | Component/list[Component]/set[Component]/None | None | 要用作輸入的Gradio組件列表。如果函數(shù)不接受輸入,則應(yīng)為空列表。 |
outputs | Component/list[Component]/None | None | 要用作輸出的Gradio組件列表。如果函數(shù)不返回輸出,則應(yīng)為空列表。 |
api_name | str/None | None | 定義此參數(shù)可將端點暴露在API文檔中。 |
status_tracker | None | None | 無效。 |
scroll_to_output | bool | False | 如果為True,在完成時將滾動到輸出組件。 |
show_progress | ‘full’/‘minimal’/‘hidden’ | ‘full’ | 如果為True,在等待期間顯示進度動畫。 |
queue | bool/None | None | 如果為True,則將請求放入隊列中(如果隊列已啟用)。如果為False,則不會將此事件放入隊列中,即使隊列已啟用。如果為None,則使用Gradio應(yīng)用程序的隊列設(shè)置。 |
batch | bool | False | 如果為True,則函數(shù)應(yīng)該處理一批輸入,這意味著它應(yīng)該接受每個參數(shù)的輸入值列表。列表應(yīng)該長度相等(并且最多為max_batch_size 的長度)。然后,該函數(shù)必須返回一個元組列表(即使只有1個輸出組件),其中元組中的每個列表對應(yīng)一個輸出組件。 |
max_batch_size | int | 4 | 如果從隊列調(diào)用此方法,則最多將一起批處理的輸入數(shù)量。僅當batch=True時才相關(guān)。 |
preprocess | bool | True | 如果為False,則在運行“fn”之前不會運行組件數(shù)據(jù)的預(yù)處理(例如,如果使用“Image”組件調(diào)用此方法,則將其保留為base64字符串)。 |
postprocess | bool | True | 如果為False,則在將’fn’的輸出返回給瀏覽器之前不會運行組件數(shù)據(jù)的后處理。 |
cancels | dict[str, Any]/list[dict[str, Any]]/None | None | 在此偵聽器觸發(fā)時取消其他事件的列表。例如,設(shè)置cancels=[click_event]將取消click_event,其中click_event是另一個組件的.click方法的返回值。尚未運行的函數(shù)(或正在迭代的生成器)將被取消,但當前正在運行的函數(shù)將被允許完成。 |
every | float/None | None | 在客戶端連接開啟時每隔“every”秒運行此事件。以秒為單位解釋。隊列必須已啟用。 |
upload方法參數(shù)文章來源地址http://www.zghlxwxcb.cn/news/detail-535215.html
參數(shù) | 數(shù)據(jù)類型 | 默認值 | 描述 |
---|---|---|---|
fn | Callable/None | 必填 | 要封裝接口的函數(shù),通常是機器學(xué)習(xí)模型的預(yù)測函數(shù)。函數(shù)的每個參數(shù)對應(yīng)一個輸入組件,并且函數(shù)應(yīng)該返回一個值或一個值的元組,元組中的每個元素對應(yīng)一個輸出組件。 |
inputs | Component/list[Component]/set[Component]/None | None | 要用作輸入的Gradio組件列表。如果函數(shù)不接受輸入,則應(yīng)為空列表。 |
outputs | Component/list[Component]/None | None | 要用作輸出的Gradio組件列表。如果函數(shù)不返回輸出,則應(yīng)為空列表。 |
api_name | str/None | None | 定義此參數(shù)可將端點暴露在API文檔中。 |
status_tracker | None | None | 無效。 |
scroll_to_output | bool | False | 如果為True,在完成時將滾動到輸出組件。 |
show_progress | ‘full’/‘minimal’/‘hidden’ | ‘full’ | 如果為True,在等待期間顯示進度動畫。 |
queue | bool/None | None | 如果為True,則將請求放入隊列中(如果隊列已啟用)。如果為False,則不會將此事件放入隊列中,即使隊列已啟用。如果為None,則使用Gradio應(yīng)用程序的隊列設(shè)置。 |
batch | bool | False | 如果為True,則函數(shù)應(yīng)該處理一批輸入,這意味著它應(yīng)該接受每個參數(shù)的輸入值列表。列表應(yīng)該長度相等(并且最多為max_batch_size 的長度)。然后,該函數(shù)必須返回一個元組列表(即使只有1個輸出組件),其中元組中的每個列表對應(yīng)一個輸出組件。 |
max_batch_size | int | 4 | 如果從隊列調(diào)用此方法,則最多將一起批處理的輸入數(shù)量。僅當batch=True時才相關(guān)。 |
preprocess | bool | True | 如果為False,則在運行“fn”之前不會運行組件數(shù)據(jù)的預(yù)處理(例如,如果使用“Image”組件調(diào)用此方法,則將其保留為base64字符串)。 |
postprocess | bool | True | 如果為False,則在將’fn’的輸出返回給瀏覽器之前不會運行組件數(shù)據(jù)的后處理。 |
cancels | dict[str, Any]/list[dict[str, Any]]/None | None | 在此偵聽器觸發(fā)時取消其他事件的列表。例如,設(shè)置cancels=[click_event]將取消click_event,其中click_event是另一個組件的.click方法的返回值。尚未運行的函數(shù)(或正在迭代的生成器)將被取消,但當前正在運行的函數(shù)將被允許完成。 |
every | float/None | None | 在客戶端連接開啟時每隔“every”秒運行此事件。以秒為單位解釋。隊列必須已啟用。 |
到了這里,關(guān)于Gradio庫中的Model3D模塊:實時上傳和展示3D模型的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!