文生圖
文生圖,全稱“文字生成影像”(Text-to-Image),是一種AI技術,能夠根據給定的文字描述生成相應的影像。這種技術利用深度學習模型,如生成對抗網路(GANs)或變換器(Transformers),來理解和解析文字中的語義資訊,並將其轉化為視覺表現。文生圖可以用於創意設計、影像編輯、虛擬現實、遊戲開發等多個領域,為使用者提供了從文字到影像的創造性轉換工具。例如,使用者可以輸入“一隻藍色的貓坐在月球上”,AI將嘗試生成符合描述的影像。
Stable Diffusion
Stable Diffusion 是一種潛在的文字到影像擴散模型。得益於 Stability AI 慷慨的計算資源捐贈以及 LAION 的支援,我們得以使用 LAION-5B 資料庫的一個子集中的 512x512 影像來訓練一個潛在擴散模型。與 Google 的 Imagen 類似,此模型使用一個凍結的 CLIP ViT-L/14 文字編碼器來根據文字提示對模型進行條件設定。該模型擁有 8.6 億引數的 UNet 和 1.23 億引數的文字編碼器,相對輕量,只需要至少 10GB VRAM 的 GPU 即可執行。詳情請參閱以下部分和模型卡片。
簡而言之,Stable Diffusion 是一個由 Stability AI 和 LAION 支援的專案,使用 LAION-5B 資料庫中的影像訓練而成。它借鑑了 Google Imagen 的設計理念,使用 CLIP ViT-L/14 文字編碼器處理文字提示,具有相對較小的模型大小,使得它在普通 GPU 上即可執行。
Stable Diffusion 3 Medium 是目前 Stable Diffusion 3 系列中最新、最先進的文字到影像 AI 模型,包含 20 億個引數。它擅長照片級真實感,處理複雜的提示並生成清晰的文字。
stable-diffusion-3-medium模型開源地址:https://huggingface.co/stabilityai/stable-diffusion-3-medium
矽基流動
由於我目前硬體資源不行無法本地執行stable-diffusion-3-medium,但又想試試文生圖模型,因此現階段可以採用呼叫api的方式來使用。矽基流動平臺目前提供了stable-diffusion-3的呼叫介面,並且限時免費,因為選擇呼叫矽基流動提供的api。
Avalonia
基於Avalonia可以使用C#+Xaml構建跨平臺應用。
本專案或許不具備太大的實用價值,權且當做學習Avalonia的一個練手專案。
專案架構:
在使用Avalonia的模板建立專案之後,更改專案為.net8,並升級一下包,這樣可能會避免一些報錯。
由於發現不支援中文提示詞,因此還是使用SemanticKerenl基於LLM將中文提示詞翻譯為英文提示詞,然後根據英文提示詞繪圖。
觀察一下桌面端的依賴項,桌面端引用了核心專案,使用的包是Avalonia.Desktop。
桌面端實現效果如下所示:
觀察一下Android端的依賴項,Android端也引用了核心專案,使用的包是Avalonnia.Android與Xamarin.AndroidX.Core.SplashScreen。
Android端除錯可以選擇模擬器與物理機。
避坑
選擇物理機除錯時要開啟開發者模式,開啟USB除錯,最重要的是要允許透過USB安裝,我之前沒有設定這個,就會遇到一個被使用者取消的錯誤提示。
Android端不知道為什麼SenmanticKernel對提示模板不起作用如下所示:
現在只能自己寫英文提示詞繪圖。
Android端的實現效果如下:
以上就是動手學Avalonia:基於矽基流動構建一個文生圖應用(一)的內容,希望對使用C#構建跨平臺應用感興趣的小夥伴有所幫助。