有時候英文影片沒有字幕,我們可以使用 Chrome 來播放它,並產生即時字幕。
這個功能預設是不開啟的,以下說明如何開啟。
在 Chrome 瀏覽器位置輸入 chrome://settings
,進入設定畫面,找到 無障礙設定
將 無障礙設定
中的 即時字幕
開啟,他會自動下載語言,你可以選擇添加自己想要的語言。
之後,將影片檔案拖入到 Chrome 中,它就會為你即時產生字幕了。
有時候英文影片沒有字幕,我們可以使用 Chrome 來播放它,並產生即時字幕。
這個功能預設是不開啟的,以下說明如何開啟。
在 Chrome 瀏覽器位置輸入 chrome://settings
,進入設定畫面,找到 無障礙設定
將 無障礙設定
中的 即時字幕
開啟,他會自動下載語言,你可以選擇添加自己想要的語言。
之後,將影片檔案拖入到 Chrome 中,它就會為你即時產生字幕了。
以下紀錄使用 LTX-Video
的筆記
https://github.com/Lightricks/LTX-Video
首先要將它從 GitHub 拉下來
1 | git clone https://github.com/Lightricks/LTX-Video.git |
切換到他的資料夾下
1 | cd LTX-Video |
建立 Python 虛擬環境
1 | python -m venv env |
前往 https://huggingface.co/Lightricks/LTX-Video 下載 Model
使用 文字生成影片
1 | python inference.py --ckpt_path /Volumes/test/video/ltx-video-2b-v0.9.1.safetensors --prompt "A monkey dance" --height 768 --width 1024 --num_frames 10 --seed 2 |
使用 圖片生成影片
1 | python inference.py --ckpt_path /Volumes/test/video/ltx-video-2b-v0.9.1.safetensors --prompt "A monkey dance" --input_image_path /Volumes/test/video/8e5352fc-70b0-41cd-9a9a-704445df7ab0.png --height 768 --width 1024 --num_frames 200 --frame_rate 20 --seed 3 |
以下紀錄在 Mac 上安裝 ComfyUI 的步驟
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install cmake protobuf rust python@3.10 git wget
./venv/bin/pip install torch torchvision torchaudio
./venv/bin/pip install -r requirements.txt
.ckpt
或 .safetensors
/models/checkpoints
的路徑./venv/bin/python main.py
若想與 AUTOMATIC1111 Stable Diffusion WebUI 一起使用相同的模型的話,可以找到 extra_model_paths.yaml.example
這個檔案,他應該直接在 ComfyUI 的目錄下。
將檔案複製一份,並更改檔名為 extra_model_paths.yaml
打開後會看到
1 | a111: |
把 base_path: 更改為你AUTOMATIC1111 Stable Diffusion WebUI的位置。
1 | a111: |
最後重新啟動 ComfyUI 就可以了。
想更新的話,在資料夾中執行 git pull
,然後在執行 ./venv/bin/python main.py
即可
以下紀錄如何使用 Spring Boot 作為 Console Line App
Spring Boot 的版本是 3.4.2
在 application.properties 中加入 spring.main.web-application-type=NONE
, 告訴 Spring Boot 不啟動 Web 環境
1 | spring.main.web-application-type=NONE |
新增一個實作 CommandLineRunner
的類,並標記上 @Component
,
之後你就可以在這個類的 run() 方法中寫你的 Console Line App 邏輯並使用 Spring 的依賴注入了
1 |
|
如果你每次在執行 Console Line App 時,不想要顯示 Spring banner 的訊息的話,可以在 application.properties 中加入
1 | spring.main.banner-mode=off |
GMT(Greenwich Mean Time): GMT 是格林威治標準時間,基於地球自轉,定義為通過倫敦格林威治天文台的子午線(本初子午線)的時間。
UTC(Coordinated Universal Time):UTC 是全球協調時間,基於原子鐘的精確計時,與 GMT 基本一致。
在 Java 等程式語言中,通常使用 UTC 作為標準時間,如 Instant.now() 獲取的是 UTC 時間。
台灣的時區是 GMT+8,這表示台灣的時間比格林威治標準時間(GMT)快 8 小時
而英國的時區為 GMT+0 ,這意味著英國的時間與 GMT 相同。
而這兩個地區的時間差了 8 小時 。
如果在台灣的時間是 2025年2月19日 15:30(GMT+8),那麼同一個時間裡,在英國(GMT+0)看到的時間會是 2025年2月19日 15:30 - 8小時 = 2025年2月19日 07:30
Timestamp(時間戳) 是一個整數,代表著從 UTC 1970 年 1 月 1 日 0 時 0 分 0 秒 起至現在的總秒數。
Java 8 以前, 使用 Date ,而 Date 有以下缺陷,不建議使用
Java 8 推出了 java.time
。
LocalDate
1 | LocalDate date = LocalDate.now(); |
LocalTime
1 | LocalTime time = LocalTime.now(); |
LocalDateTime
LocalDate
和 LocalTime
代表日期時間1 | LocalDateTime dateTime = LocalDateTime.now(); |
DateTimeFormatter
1 | var formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); |
ZonedDateTime
ZoneId
ZoneId.getAvailableZoneIds()
取得支援的 key 值。1 | ZonedDateTime now = ZonedDateTime.now(); |
亦可直接使用偏移量即 UTC/GMT,來定義 ZoneId
1 | var dateTime = LocalDateTime.now(); |
參考
以下將使用 Shader Graph 建立一個簡單的 Shader , 這個 Shader 能夠正常接收 Sprite Renderer 的 Sprite,並允許透過 Sprite Renderer 的 Color 來調整顏色。
Color Shader Graph
。並雙擊打開 Shader Graph 編輯器。+
, 點擊 +
並選擇 Texture2D,將其命名(Name)為 MainTex。為什麼需要建立一個 Vertex Color ?
為什麼要用相乘 (Multiply)?
在 Shader Graph 中,Properties(屬性)是用來設定和控制著色器的外部變量,這些變量可以從 Unity 的材質面板中進行調整,並影響著色器的輸出。這些屬性讓你在不修改 Shader Graph 設定的情況下,動態改變材質的外觀。它們通常用來創建可調整的材質效果,並且可以進行繫結到 Shader Graph 中的不同節點,以控制最終渲染結果。
在 Unity 中,屬性有 Name
和 Reference
兩種名稱,其中
Name
這是人類可讀的屬性名稱,會在 Unity Editor 的 Inspector 視窗中顯示,供設計師或開發者查看和修改。Reference
這是 C# 腳本 中引用該屬性的名稱。在編寫腳本時,會使用這個名稱來取得和設置該屬性的值。Shader Graph Properties 的種類
使用 Keyword 創建不同的 Shader Graph 變體 (variants),這些特性可以根據需求開啟或關閉,並可以針對不同的平台或條件進行調整。這些變體可以增加 Shader 的複雜度,也能根據設定的條件進行縮放。
Global
則表示在整個專案中所有 Shaders 皆可使用此屬性。–
參考
在 頂點階段(Vertex Stage),著色器(shader)會對網格 (mesh) 上的每個頂點(vertex)進行處理,並將它們移動到螢幕(screen)上的正確位置。我們可以對頂點進行操作,例如移動它們,或改變光照與它們的互動方式。
環境遮蔽(Ambient Occlusion,簡稱 AO) 是一種測量像素受到其他場景物體(如牆壁)遮擋,從而減少光源照射的程度。這是一個 浮點數(float) 值,當值為 0 時,該像素應該完全根據照射到它的光源來顯示照明效果;當值為 1 時,光照會被人為減少到最小值。
Alpha 是衡量像素透明度的數值,它的範圍從 0 到 1,其中 0 代表完全透明(totally transparent),而 1 代表完全不透明(fully opaque)。渲染透明物體比渲染不透明物體更消耗計算資源,因此在 Unity 中,我們需要在 Graph Settings 中選擇 Transparent Surface 選項,讓 Unity 正確處理這個著色器。
Alpha 剪裁(Alpha Clipping),當像素的 alpha 值低於特定閾值時,這些像素會被剔除(culling)。我們可以通過在 Graph Settings 中勾選 Alpha Clip 選項來啟用 Alpha Clip Threshold 區塊。這項技術無論是物體表面設置為透明(Transparent)還是完全不透明(Opaque)都可以使用,因此 Alpha 區塊在不透明材質上也不一定是完全無用的!這在模擬透明效果時非常有用,通常會使用不透明渲染,但會根據一定模式剔除像素,從而創造出透明的假象。
參考
Object Space
World Space
Absolute World Space 與 World Space
Tangent Space
View/Eye Space
Clip space