發佈日期:

ControlNet使用的錯誤排解

無法載入ControlNet

錯誤訊息如下:

*** Error loading script: face_manipulation_extras.py
Traceback (most recent call last):
File “C:\Users\clairechang\stable-diffusion-webui-master\modules\scripts.py”, line 515, in load_scripts
script_module = script_loading.load_module(scriptfile.path)
File “C:\Users\clairechang\stable-diffusion-webui-master\modules\script_loading.py”, line 13, in load_module
module_spec.loader.exec_module(module)
File “”, line 883, in exec_module
File “”, line 241, in call_with_frames_removed File “C:\Users\clairechang\stable-diffusion-webui-master\extensions\sd-webui-face-manipulation-extras\scripts\face_manipulation_extras.py”, line 4, in from face_manipulation.main import process, alignImage File “C:\Users\clairechang\stable-diffusion-webui-master\extensions\sd-webui-face-manipulation-extras\face_manipulation\main.py”, line 6, in from face_manipulation.zerodim.network.training import Model File “C:\Users\clairechang\stable-diffusion-webui-master\extensions\sd-webui-face-manipulation-extras\face_manipulation\zerodim\network\training.py”, line 18, in from face_manipulation.zerodim.network.modules import BetaVAEGenerator, BetaVAEEncoder File “C:\Users\clairechang\stable-diffusion-webui-master\extensions\sd-webui-face-manipulation-extras\face_manipulation\zerodim\network\modules.py”, line 10, in from face_manipulation.zerodim.stylegan2_pytorch.model import ConstantInput, ToRGB, ModulatedConv2d, FusedLeakyReLU File “C:\Users\clairechang\stable-diffusion-webui-master\extensions\sd-webui-face-manipulation-extras\face_manipulation\zerodim\stylegan2_pytorch\model.py”, line 11, in from face_manipulation.zerodim.stylegan2_pytorch.op import FusedLeakyReLU, fused_leaky_relu, upfirdn2d, conv2d_gradfix File “C:\Users\clairechang\stable-diffusion-webui-master\extensions\sd-webui-face-manipulation-extras\face_manipulation\zerodim\stylegan2_pytorch\op__init_.py”, line 1, in
from .fused_act import FusedLeakyReLU, fused_leaky_relu
File “C:\Users\clairechang\stable-diffusion-webui-master\extensions\sd-webui-face-manipulation-extras\face_manipulation\zerodim\stylegan2_pytorch\op\fused_act.py”, line 19, in
fused = load(
File “C:\Users\clairechang\AppData\Local\Programs\Python\Python310\myenv\lib\site-packages\torch\utils\cpp_extension.py”, line 1308, in load
return _jit_compile(
File “C:\Users\clairechang\AppData\Local\Programs\Python\Python310\myenv\lib\site-packages\torch\utils\cpp_extension.py”, line 1710, in _jit_compile
_write_ninja_file_and_build_library(
File “C:\Users\clairechang\AppData\Local\Programs\Python\Python310\myenv\lib\site-packages\torch\utils\cpp_extension.py”, line 1823, in _write_ninja_file_and_build_library
_run_ninja_build(
File “C:\Users\clairechang\AppData\Local\Programs\Python\Python310\myenv\lib\site-packages\torch\utils\cpp_extension.py”, line 2077, in _run_ninja_build
vc_env = distutils._msvccompiler._get_vc_env(plat_spec)
File “C:\Users\clairechang\AppData\Local\Programs\Python\Python310\myenv\lib\site-packages\setuptools\msvc.py”, line 230, in msvc14_get_vc_env
return _msvc14_get_vc_env(plat_spec)
File “C:\Users\clairechang\AppData\Local\Programs\Python\Python310\myenv\lib\site-packages\setuptools\msvc.py”, line 187, in _msvc14_get_vc_env
raise distutils.errors.DistutilsPlatformError(“Unable to find vcvarsall.bat”)
distutils.errors.DistutilsPlatformError: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools”: https://visualstudio.microsoft.com/visual-cpp-build-tools/

這個錯誤訊息顯示在運行 face_manipulation_extras.py 腳本時,遇到了一個與編譯 C++ 擴展模組相關的問題,具體來說是缺少 Microsoft Visual C++ 編譯工具。解決這個問題的方法如下:

  1. 安裝 Microsoft C++ Build Tools:前往 Microsoft Visual C++ Build Tools 的官方網站,下載並安裝最新版本的 C++ 編譯工具。這是你系統編譯某些擴展模組所必需的。
  2. 設定 Visual Studio 的環境變數:安裝完成後,必須確保 vcvarsall.bat 已正確配置到你的系統環境變數中,通常這是自動處理的。你可以嘗試重新啟動你的終端機或電腦來使變更生效。

模型版本不相容

錯誤訊息如下:

*** Error running process: C:\Users\clairechang\stable-diffusion-webui-master\extensions\sd-webui-controlnet\scripts\controlnet.py
Traceback (most recent call last):
File “C:\Users\clairechang\stable-diffusion-webui-master\modules\scripts.py”, line 832, in process
script.process(p, *script_args)
File “C:\Users\clairechang\stable-diffusion-webui-master\extensions\sd-webui-controlnet\scripts\controlnet.py”, line 1228, in process
self.controlnet_hack(p)
File “C:\Users\clairechang\stable-diffusion-webui-master\extensions\sd-webui-controlnet\scripts\controlnet.py”, line 1213, in controlnet_hack
self.controlnet_main_entry(p)
File “C:\Users\clairechang\stable-diffusion-webui-master\extensions\sd-webui-controlnet\scripts\controlnet.py”, line 898, in controlnet_main_entry
Script.check_sd_version_compatible(unit)
File “C:\Users\clairechang\stable-diffusion-webui-master\extensions\sd-webui-controlnet\scripts\controlnet.py”, line 827, in check_sd_version_compatible
raise Exception(f”ControlNet model {unit.model}({cnet_sd_version}) is not compatible with sd model({sd_version})”)
Exception: ControlNet model control_v11p_sd15_inpaint ebff9138 is not compatible with sd model(StableDiffusionVersion.SDXL)

所選擇的模型與ControlNet的模型不相容。可以確認一下所選擇的 Stable Diffusion 1.x 版本的模型(例如 v1-5-pruned.ckpt 或類似名稱的模型)和ControlNet的版本是否有對應。

關於版本,我們可以根據CivitAI網站去找到適合你的版本的模型

然後關於ControlNet的模型,

SD2.X可在此下載: https://huggingface.co/thibaud/controlnet-sd21/tree/main

SD1.X可在此下載: https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/tree/main

將下載的 .ckpt 模型文件放入 Stable Diffusion WebUI 的 models/Stable-diffusion 資料夾中。通常你按了Control Type的按鈕之後,Model應該要自動跳到相對應的模型,如果按了Control Type後Model還是空的,很大的可能你所抓的模型的版本不一致,所以web-ui才會抓不到。

尺寸不一樣的錯誤

*** Error running process: C:\Users\clairechang\stable-diffusion-webui-master\extensions\sd-webui-controlnet\scripts\controlnet.py
Traceback (most recent call last):
File “C:\Users\clairechang\stable-diffusion-webui-master\modules\scripts.py”, line 832, in process
script.process(p, *script_args)
File “C:\Users\clairechang\stable-diffusion-webui-master\extensions\sd-webui-controlnet\scripts\controlnet.py”, line 1228, in process
self.controlnet_hack(p)
File “C:\Users\clairechang\stable-diffusion-webui-master\extensions\sd-webui-controlnet\scripts\controlnet.py”, line 1213, in controlnet_hack
self.controlnet_main_entry(p)
File “C:\Users\clairechang\stable-diffusion-webui-master\extensions\sd-webui-controlnet\scripts\controlnet.py”, line 919, in controlnet_main_entry
model_net, control_model_type = Script.load_control_model(p, unet, unit.model)
File “C:\Users\clairechang\stable-diffusion-webui-master\extensions\sd-webui-controlnet\scripts\controlnet.py”, line 436, in load_control_model
control_model = Script.build_control_model(p, unet, model)
File “C:\Users\clairechang\stable-diffusion-webui-master\extensions\sd-webui-controlnet\scripts\controlnet.py”, line 465, in build_control_model
control_model = build_model_by_guess(state_dict, unet, model_path)
File “C:\Users\clairechang\stable-diffusion-webui-master\extensions\sd-webui-controlnet\scripts\controlnet_model_guess.py”, line 218, in build_model_by_guess
p_new = p + unet_state_dict[key].clone().cpu()
RuntimeError: The size of tensor a (1024) must match the size of tensor b (768) at non-singleton dimension 1

此錯誤可能是由於所使用的 ControlNet 模型與你正在運行的 Stable Diffusion 模型之間的尺寸不匹配。Stable Diffusion 1.x 模型的特徵圖通常是 768×768,而 SDXL(Stable Diffusion 2.x)模型的特徵圖大小通常是 1024×1024。因此,如果你在 SDXL 模型中使用了為 Stable Diffusion 1.x 設計的 ControlNet 模型,會導致張量尺寸不匹配。

發佈日期:

ADetailer: 自動人臉檢測和高品質修復

在AI繪圖領域中,Stable Diffusion已成為一個強大的工具,但它在生成人臉和手部細節時常常會出現畸形問題。為了解決這個困擾,ADetailer這個Stable Diffusion插件應運而生,它專門針對AI圖像修復,特別是在人臉優化和手部修正方面表現出色。

ADetailer的核心功能

ADetailer是一款功能強大的AI圖像修復工具,它的主要特點包括:

  1. 自動人臉檢測:利用先進的YOLO模型,ADetailer能夠精確定位圖像中的人臉。
  2. 局部重繪:通過生成精確的遮罩,ADetailer可以只對需要修復的區域進行重繪,保留原圖其他部分的完整性。
  3. 高解析度修復:對於低解析度圖像,ADetailer能夠進行優化,提升圖像質量。
  4. 多模型支援:除了YOLO模型,ADetailer還支援MediaPipe模型,為用戶提供更多選擇。
  5. 一鍵修復:簡化了複雜的修復流程,使用者只需點擊幾下就能完成高質量的圖像修復。

使用ADetailer的優勢

相比手動修復,ADetailer在效率和效果上都有顯著優勢。它不僅能夠快速處理全身圖像生成中的細節問題,還可以輕鬆實現表情調整和年齡變化等高級效果。

ADetailer的功能

  • 使用檢測模型自動識別人臉和手部。
  • 面部和手部的識別部分使用穩定擴散進行裁剪和校正。
  • 將校正後的面部和手部圖像小心地重新置放到其原始位置。

Adetailer 不僅可以用於修復扭曲的臉部。以下是一些其他用途:

  • 改變面部表情
  • 更改一個人的年齡
  • 改變外觀以類似於不同的種族或氛圍
  • 僅將LoRA增強功能應用於面部

Stable Diffusion 專注於面部和手部的再生,從而改善了結果。在再生過程中,裁剪區域具有更高的解析度,可以詳細呈現眼睛和鼻子等各個特徵,最終產生精美的面部描繪。

ADetailer 在三個關鍵方面超越了其他技術,使其成為面部矯正的首選:

  • 便利性:啟動「啟用 ADetailer」選項可啟動自動面部矯正,確保使用者友好且無憂的體驗。
  • 記憶體消耗和生成時間優化:與涉及放大原始圖像的許多其他方法不同,這些方法會導致更大的檔大小和更長的處理時間,ADetailer 只關注面部圖像。這種方法可以在不影響圖像解析度的情況下進行有效的校正。
  • 將 LoRA 應用於面部的靈活性: ADetailer 允許在矯正過程中進行微小調整, 為使用者提供更大的靈活性和便利性

安裝 ADetailer

以下為GitHib的位置: https://github.com/Bing-su/adetailer

這邊是使用Stable Diffusion Web-ui的ADetailer安裝教學:

  • 按下Apply and restart UI按鈕

此時我們進入擴展插件>已安裝,應該要可以看到adetailer

接著確認是否在首頁有出現adetailer的設定欄位

ADetailer 的模型列表

ADetailer 提供用於檢測人臉、手和身體的模型。可根據想要生成的圖像或您想要校正的特定部分(例如,面部、手部、身體)選擇適當的模型。

ModelTarget 目標
face_yolov8n.pt臉部(插圖/真實)
face_yolov8s.pt臉部(插圖/真實)
hand_yolov8n.pt手(插圖/真實)
person_yolov8n-seg.pt人物(插圖/真實)
person_yolov8n-seg.pt全身(插圖/真實)
person_yolov8s-seg.pt全身(插圖/真實)
person_yolov8s-seg.pt全身(插圖/真實)
mediapipe_face_full人臉(真實)
mediapipe_face_short 人臉(真實)
mediapipe_face_mesh人臉(真實)

在 ADetailer 選單中輸入提示

以下為一個範例

Prompt: (8k, RAW photo, best quality, masterpiece:1.2), (realistic, photo-realistic:1.4), (extremely detailed 8k wallpaper), cheerleader outfit, 20-year-old woman, detailed face

Negative Prompt: EasyNegative, deformed face, ugly, bad face, deformed eyes

左邊的圖片沒有使用 ADetailer,右邊的圖片應用了 ADetailer。可以觀察到 ADetailer 可以糾正面部的任何扭曲。

用ADetailer改變表情

  1. 切換到「圖像信息(PNG Info)」選項
  2. 選擇要修改的圖片
  3. 輸入提示詞

若想檢查是否為五根手指,則可使用以下設定

提示的關鍵字:

  • five fingers

否定提示的關鍵詞:

  • deformed hand
  • extra_fingers
  • bad fingers
  • missing fingers
  • fewer digits, extra digit
  • liquid fingers
發佈日期:

Stable Diffusion主要功能和應用

官方網站

https://stability.ai

可看見現在這個平台所提供的相關工具包括: 圖像生成、影像生成、音樂生成、3D模型生成、文字生成

開源社群

https://civitai.com

可下載許多人自己生成的模型和相關微調模型,還有許多澀澀的(?)圖片

主要功能 – 圖像生成

根據文本生成圖像

  • 描述生成:用戶可以輸入一段文字描述,Stable Diffusion 模型會根據這段描述生成對應的圖像。例如,輸入“日落下的山脈”,模型會生成一幅描繪日落下山脈的圖像。

創意生成

  • 藝術創作:藝術家可以使用 Stable Diffusion 生成具有特定風格或主題的圖像,從而激發創意和靈感。
  • 概念設計:設計師可以快速生成概念草圖,用於產品設計或廣告創意。

圖像生成使用模型為: SD1.x, SD2.x, SDXL

SDXL 是目前 Stable Diffusion 系列中最新的模型之一。它在 SD2.x 的基礎上進一步提升了圖像的品質和細節,尤其是在處理複雜的場景和人物時表現更加出色。SDXL 還能夠生成更加多樣化的圖像風格,為用戶提供了更多的創作可能性。

更多資訊: https://chrislee0728.medium.com/stable-diffusion-xl-%E8%AA%AA%E6%98%8E%E5%8F%8A-sdxl1-0-%E5%AE%89%E8%A3%9D%E6%95%99%E5%AD%B8-b2f7648d49ff

主要功能 – 圖像修改和增強

圖像修復

  • 缺損修復:模型可以自動填補和修復圖像中缺失或損壞的部分,恢復圖像的完整性。
  • 品質增強:提高低解析度圖像的質量,使其更加清晰和細緻。

圖像編輯

  • 局部修改:用戶可以指定圖像的某個區域進行修改,例如改變圖像中的顏色、形狀或添加新的元素。
  • 風格轉換:將圖像轉換為不同的藝術風格,如將照片變為素描或油畫效果。

技術介紹

要使用Stable Diffusion來做到圖像修復或者是圖像編輯,需要安裝相關ADetailer的外掛,以下為一個範例

https://blog.csdn.net/2401_84250575/article/details/138863838

以Web ui為例,可以安裝ADetailer的擴展套件,就可以讀取相關的模型來修復圖片

主要功能 – 多模態應用

圖像-文本匹配

  • 圖像標註:根據圖像生成相應的文本描述,適用於自動標註和圖像檢索。
  • 文本生成圖像:根據文本描述生成圖像,用於多模態數據集的構建和應用。

文本-圖像交互

  • 文本驅動的圖像編輯:用戶可以通過文本指令對圖像進行特定修改,例如“將天空變成藍色”或“在圖像中添加一棵樹”。

主要功能 – 創意應用

動畫生成

遊戲開發

主要功能 – 科學研究

醫學圖像分析

  • 醫學影像生成:根據描述生成醫學影像,輔助醫學研究和診斷。
  • 圖像合成:生成合成的醫學圖像,用於訓練和測試醫學影像分析模型。

自然科學模擬

  • 氣象模擬:生成氣象圖像,用於天氣預測和氣候研究。
  • 地理模擬:根據描述生成地理景觀圖像,幫助地理研究和模擬。
發佈日期:

Kling – 文生影片大模型

Kling簡介

Kling是由快手大模型團隊自主研發的視頻生成大模型,擁有強大的視頻生成能力,能輕鬆高效地完成藝術視頻創作。

官方網站: https://klingai.com/

現在有【文生圖片】、【文生影片】兩種服務,未來還會再推出影片編輯的服務

使用範例

原圖如下

提示詞:

The character turns his face toward the viewer and stares point-blank. birds fly toward the viewer.

成果

核心特點

  • 大幅度的合理運動: 採用 3D 時空聯合注意力機制,能夠生成大幅度運動的視頻內容,同時符合運動規律。
  • 長時長高幀率視頻生成: 能夠生成長達 2 分鐘、幀率達 30fps 的高品質視頻。
  • 模擬真實物理特性: 基於自研模型架構,能夠生成符合物理規律的視頻。
  • 強大的概念組合能力: 能夠將用戶豐富的想像力轉化為具體畫面,虛構真實世界中不會出現的場景。
  • 電影級畫質: 能夠生成 1080p 分辨率的電影級視頻。
  • 支持多種寬高比: 能夠根據需求輸出多種多樣的視頻寬高比。

應用場景

可靈大模型的應用場景非常廣泛,包括但不限於:

  • 視頻內容創作: 廣告、電影、動畫、遊戲等視頻內容的生成。
  • 虛擬現實/增強現實: 虛擬世界的場景生成。
  • 教育培訓: 互動式教學內容的生成。
  • 藝術設計: 概念設計、視覺效果圖等。
發佈日期:

Animate Anyone: 圖片+骨架動畫產生動態影片

模型介紹頁面

https://humanaigc.github.io/animate-anyone

Animate Anyone 是一個工具,可以將靜態圖片和骨架動畫結合起來,生成動態影片。它使用先進的 AI 技術,保留圖片細節並保持動畫的連貫性。這個工具適合用於人類角色、動漫和時尚視頻等的動畫製作。

模型概念

  1. 使用 Pose Guider 編碼姿勢序列並融合多幀噪音。
  2. 使用 Denoising UNet 去噪並生成視頻。
  3. Denoising UNet 包含空間、交叉和時間注意力模塊。
  4. 參考圖像的詳細特徵通過 ReferenceNet 提取,語義特徵通過 CLIP 圖像編碼器提取。
  5. 最後,VAE 解碼器將結果解碼為視頻片段。

GitHub位置

https://github.com/HumanAIGC/AnimateAnyone

不過我們可以看到現在這個Github上只有介紹而已,但是他們說因為他們正在把原始碼改得更易讀,所以仍需一些時間才能夠把開源代碼上傳上來,就讓我們持續等待吧~

發佈日期:

Mixamo:你的3D角色動畫工廠

3D 角色動畫服務的線上平台

可以在此試用你的3D模型mixamo: https://www.mixamo.com/

Mixamo 是一個提供自動 3D 角色動畫服務的線上平台。它讓使用者能夠選擇並自定義 3D 角色,並應用各種預設的動畫。該平台支持從現有的 3D 模型中生成動畫,並提供動畫調整功能,以滿足不同的需求。Mixamo 對於遊戲開發者、動畫製作人和其他 3D 創作者非常實用,能夠顯著加快製作流程。

可以上傳自己的fbx模型檔案套用線上多樣的動作
也可以直接拿線上提供的腳色,套入Animation裡面的腳色動作

Mixamo 的主要功能

  • 龐大的動作資料庫: Mixamo 提供了數千種預製的動畫,涵蓋了各種角色、動作和風格。
  • 自動套用: 你只需上傳你的3D模型,選擇想要的動畫,Mixamo就會自動將動畫套用到你的模型上,並進行調整,使其符合模型的比例和骨架結構。
  • 客製化: 你可以對動畫進行調整,例如改變動畫的速度、調整角色的姿勢等,以達到你想要的效果。
  • 匯出多種格式: Mixamo 支援多種3D軟體常用的檔案格式,方便你將動畫匯出到你的專案中。
  • 社群功能: Mixamo 有一个活躍的社群,你可以分享你的作品、與其他使用者交流,並獲得啟發。

Mixamo 的優勢

  • 節省時間: 相較於傳統的動畫製作方式,Mixamo 可以大幅縮短動畫製作的時間。
  • 降低成本: 你不需要雇用專業的動畫師,就能製作出高品質的動畫。
  • 易於使用: 即使你不是動畫專業人士,也能輕鬆上手。
  • 靈活性: Mixamo 提供了高度的客製化功能,讓你能夠創造出獨特的動畫。

Mixamo 的應用場景

  • 遊戲開發: 為遊戲角色製作各種動作,如走路、跑步、跳躍、戰鬥等。
  • 虛擬實境/增強現實: 為虛擬角色製作動畫,使其更生動。
  • 動畫製作: 快速製作短片、動畫廣告等。
  • 電影特效: 為電影中的角色製作動作捕捉動畫。
發佈日期:

SF3D: Stable Fast 3D Mesh 生成工具

SF3D: https://stable-fast-3d.github.io

SF3D 是一個快速生成3D網格模型的模型,它可以在不到一秒鐘的時間內從單一圖片輸出一個帶有UV展開和材質的3D模型。這個模型基於大型重建模型(LRM),專門針對網格生成進行訓練,並且包含快速UV展開技術和去光照步驟,從而提升重建模型的視覺質量,使其在新的光照條件下也能使用。

Github網站

詳情請參閱:GitHub – Stability-AI/stable-fast-3d

Stable Fast 3D模型基於 TripoSR,但進行了改進,專注於生成無瑕疵的網格和帶有UV展開的紋理。SF3D 可以快速進行推理,並且生成的3D模型可以輕鬆整合到遊戲中。安裝環境需要 Python >= 3.8 和 CUDA,並且需要安裝 PyTorch。支持手動推理和本地 Gradio 應用的運行。

要安裝 SF3D,請按照以下步驟操作:

  1. 確保環境:
    • Python 版本 >= 3.8
    • 有 CUDA
    • 安裝 PyTorch,確保 CUDA 版本匹配 PyTorch 安裝指南
    • 更新 setuptools:pip install -U setuptools==69.5.1
  2. 安裝需求:
    • 執行:pip install -r requirements.txt
    • 若要使用 Gradio demo,則執行:pip install -r requirements-demo.txt
  3. 手動推論:
    • 執行:python run.py demo_files/examples/chair1.png --output-dir output/
  4. 本地 Gradio App:
    • 執行:python gradio_app.py

線上demo

https://huggingface.co/spaces/stabilityai/stable-fast-3d

我拿這張圖做為輸入,可以很不錯的生成3D模型

發佈日期:

AI技術於3D模型領域的應用

Meshy – 線上圖片轉3D模型fbx檔案

網站: https://www.meshy.ai/

Meshy 是您的 3D 生成式 AI 工具箱,用於輕鬆從文本或圖像創建 3D 資產,從而加速您的 3D 工作流程。使用 Meshy,您可以在幾分鐘內創建高品質的紋理和 3D 模型。

Meshy的功能

Meshy是一個創新的 3D 模型生成平台,提供以下強大的功能

文字轉紋理 (Text-to-Texture):

  • 透過簡單的文字描述,快速生成符合要求的紋理。
  • 例如:輸入「磨損的木頭紋理」,Meshy 能夠在短時間內生成逼真的木頭紋理。

圖片轉紋理 (Image-to-Texture):

  • 將概念圖或參考圖片轉換成可套用的 3D 模型紋理。
  • 這對於藝術家和設計師來說,能大幅提升工作效率。

文字轉 3D 模型 (Text-to-3D):

  • 僅需一段文字描述,就能生成完整的 3D 模型。
  • 即使沒有 3D 建模經驗,也能輕鬆創造出想要的模型。

圖片轉 3D 模型 (Image-to-3D):

  • 這對於將 2D 概念快速轉換成 3D 模型非常有用。
  • 從單張圖片中提取 3D 資訊,生成具體的 3D 模型。

探索社區資源

社區資源: https://docs.meshy.ai/web-app-interface#explore-community-resources

嘗試使用圖片產生3D模型

操作網址: https://www.meshy.ai/workspace/image-to-3d

操作非常的簡單,可直接按最右邊的下載來下載fbx檔案

發佈日期:

Stable Diffusion常用操作介面

Easy Diffusion

下載位置: https://easydiffusion.github.io/

特色:

  • 簡易操作: 介面直觀,即使是新手也能快速上手。
  • 模型豐富: 支援多種模型,可根據需求選擇。
  • 擴充性強: 可透過外掛擴展功能。

優點:

  • 學習曲線平緩,適合初學者。
  • 功能齊全,能滿足大部分的繪圖需求。

缺點:

相較於其他工具,客製化選項可能較少。

ComfyUI

下載位置: https://github.com/comfyanonymous/ComfyUI

特色:

  • 高度客製化: 提供極高的自由度,可打造專屬的工作流程。
  • 功能強大: 除了繪圖,還能進行影像處理、動畫製作等。
  • 社群活躍: 有龐大的社群提供支援和資源。

優點:

  • 適合有經驗的使用者,可實現複雜的創作。
  • 功能多樣,能滿足專業人士的需求。

缺點:

  • 配置較為複雜。
  • 學習曲線較陡峭,需要花時間熟悉。

Stable Diffusion web UI

下載位置: https://github.com/AUTOMATIC1111/stable-diffusion-webui

特色:

  • 基於瀏覽器: 不需安裝軟體,直接在瀏覽器中使用。
  • 社群豐富: 有大量的模型和腳本可供選擇。
  • 擴充性強: 可透過擴充套件增加功能。

優點:

  • 使用門檻低,適合初學者。
  • 功能豐富,能滿足多種需求。

缺點:

相較於本地端軟體,速度可能較慢。

安裝指南

最終我選擇Stable Diffusion web UI,因為教學文章最多

發佈日期:

Jōtai 介紹

什麼是 Jōtai?

Jōtai 是一個輕量級、易於使用的 JavaScript 狀態管理庫,特別設計來與 React 無縫整合。它提供了一種簡單而直觀的方式來管理應用程式中的狀態,並讓這些狀態在不同的組件之間共享。

Jōtai 的核心概念

  • Atom: Jōtai 中最基本的單位,用來儲存一個單一的狀態值。你可以將 Atom 視為一個可變的變數,但它具有反應式特性,當 Atom 的值改變時,所有訂閱它的組件都會自動更新。
  • 用於訂閱的 Hook: useAtom 是一個 React Hook,用來訂閱一個 Atom。當你使用 useAtom 時,你會得到兩個值:當前的 Atom 值和一個用於更新 Atom 值的函數。

Jōtai 的優勢

  • 狀態共享: Jōtai 可以輕鬆地將狀態共享給應用程式中的任何組件。
  • 反應式更新: 當 Atom 的值改變時,訂閱它的組件會自動更新。
  • 避免 prop drilling: 你不再需要通過層層嵌套的組件來傳遞 props。
  • 可測試性: Jōtai 的狀態是可測試的,這有助於你寫出更可靠的應用程式。

安裝Jōtai

# npm
npm i jotai

# yarn
yarn add jotai

# pnpm
pnpm add jotai

基本用法

import { atom } from 'jotai'

const countAtom = atom(0)

const countryAtom = atom('Japan')

const citiesAtom = atom(['Tokyo', 'Kyoto', 'Osaka'])

const animeAtom = atom([
  {
    title: 'Ghost in the Shell',
    year: 1995,
    watched: true
  },
  {
    title: 'Serial Experiments Lain',
    year: 1998,
    watched: false
  }
])

從同一元件讀取和寫入

當原子在同一元件中同時讀取和寫入時,為簡單起見,請使用組合 useAtom 鉤子。

import { useAtom } from 'jotai'

const AnimeApp = () => {
  const [anime, setAnime] = useAtom(animeAtom)

  return (
    <>
      <ul>
        {anime.map((item) => (
          <li key={item.title}>{item.title}</li>
        ))}
      </ul>
      <button onClick={() => {
        setAnime((anime) => [
          ...anime,
          {
            title: 'Cowboy Bebop',
            year: 1998,
            watched: false
          }
        ])
      }}>
        Add Cowboy Bebop
      </button>
    <>
  )
}

從單獨的元件讀取和寫入

當僅讀取或寫入原子值時,可使用 useAtomValue 和 useSetAtom hooks 。

import { useAtomValue, useSetAtom } from 'jotai'

const AnimeList = () => {
  const anime = useAtomValue(animeAtom)

  return (
    <ul>
      {anime.map((item) => (
        <li key={item.title}>{item.title}</li>
      ))}
    </ul>
  )
}

const AddAnime = () => {
  const setAnime = useSetAtom(animeAtom)

  return (
    <button onClick={() => {
      setAnime((anime) => [
        ...anime,
        {
          title: 'Cowboy Bebop',
          year: 1998,
          watched: false
        }
      ])
    }}>
      Add Cowboy Bebop
    </button>
  )
}

const ProgressTracker = () => {
  const progress = useAtomValue(progressAtom)

  return (
    <div>{Math.trunc(progress * 100)}% watched</div>
  )
}

const AnimeApp = () => {
  return (
    <>
      <AnimeList />
      <AddAnime />
      <ProgressTracker />
    </>
  )
}