2023年4月10日 星期一

ComfyUI 安裝筆記

 https://github.com/comfyanonymous/ComfyUI 主程式

https://github.com/Fannovel16/comfy_controlnet_preprocessors Controlnet支援


安裝

git clone https://github.com/comfyanonymous/ComfyUI


cd ComfyUI\ -> pipenv --python 3.10

pipenv shell

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu118 xformers


cd ComfyUI/custom_nodes

git clone https://github.com/Fannovel16/comfy_controlnet_preprocessors

cd comfy_controlnet_preprocessors

python install.py --no_download_ckpts


放入各式模型位置

ComfyUI\models\checkpoints\

ComfyUI\models\loras\

ComfyUI\models\controlnet\


啟動

cd ComfyUI 

python main.py

2023年4月8日 星期六

sublime text 簡體中文檔案

使用package control安裝下面兩個套件

可避免簡體中文內容的檔案出現亂碼的情形。
ctrl+shift+p 開啟 package control 選擇 install package 安裝:


 

2023年4月6日 星期四

webui.bat 不爆顯存的設定

 4.在webui-user.bat加入下面的參數

set COMMANDLINE_ARGS=---medvram -precision full --no-half --skip-torch-cuda-test   #AMD

set COMMANDLINE_ARGS=--xformers --medvram --precision full --no-half               #NVIDIA 低階卡

set COMMANDLINE_ARGS=--xformers                                                    #NVIDIA 高階卡

如果 cuda 持續 out of memory 也可以試試加入 --opt-split-attention 或加入下面一行

set PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.6,max_split_size_mb:256 <-數字越小越安全

如果要使用ControlNet要移除 --medvram 不然會有錯誤如下:

Expected all tensors to be on the same device, but found at least two devices

目前設定:

set COMMANDLINE_ARGS=--xformers --opt-split-attention

set PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.6,max_split_size_mb:128

stable diffusion webui 必裝插件收集

 sd_web_ui_preset_utils #主要採樣配置設定儲存與讀取

controlnet 系列

    sd-webui-controlnet    #角色動作骨架主要插件

    openpose-editor        #在webui上設計骨架

    posex                  #3D設計骨架

    sd-webui-depth-lib     #手部造型depth庫

stable-diffusion-webui-localization-zh_TW    #中文化

sd-webui-bilingual-localization              #可同時顯示原文與中文化

a1111-sd-webui-tagcomplete                   #prompt自動補全

Stable-Diffusion-Webui-Civitai-Helper        #C站助手

multidiffusion-upscaler-for-automatic1111    #切片繪製大圖

stable-diffusion-webui-two-shot              #分區規劃構圖

stable-diffusion-webui-composable-lora       #使用AND分開lora互相污染

stable-diffusion-webui-rembg                 #AI去背摳圖

2023年3月15日 星期三

stable-diffusion 用 amd 卡太慢了

 
出一張圖要20分以上
還是放棄吧,下單買nvidia的卡了(笑死)

 

2023年3月14日 星期二

stable-diffusion 本機安裝筆記 - 適用 amd 顯卡

安裝

1.先安裝好 python 3.10.6 以上,git


2.git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui


3.cd stable-diffusion-webui 設置好 pipenv 虛擬環境為 3.10.6 以上,pipenv shell 開啟虛擬環境


4.在webui-user.bat加入下面的參數

set COMMANDLINE_ARGS=--precision full --no-half --skip-torch-cuda-test


5.在 pipenv shell下執行 webui-user.bat


6.開啟 http://127.0.0.1:7860


7.在網頁上安裝中文化擴展 https://github.com/VinsonLaro/stable-diffusion-webui-chinese

擴展插件頁面的Install form url 再回到Installed頁面reload重啟


8.安裝 https://github.com/Mikubill/sd-webui-controlnet.git 擴展 重啟


9.下載 https://huggingface.co/lllyasviel/ControlNet/tree/main/models 下的

control_sd15_openpose.pth 模型,放到 ./stable-diffusion-webui/extensions/sd-webui-controlnet/models裡


10.下載已訓練好的模型,https://civitai.com/api/download/models/6266 放到 .\stable-diffusion-webui\models\Stable-diffusion

civitai.com上有許多不同風格的模型


11.最後再重啟一次即可

2018年8月8日 星期三

空間結弦

一條弦就是一維空間,打結的空間就是物質
宇宙只有空間,沒有物質也沒有能量
空間是弦、物質是弦上的結、能量是結在弦上的滑動
弦的延伸就是宇宙的澎漲,弦如果收縮是宇宙的收縮

在空間上打了個結,結周圍的弦就被拉緊了一點
結越大,結周圍的弦就越緊,也就是引力越大
物質就是結,物質在空間中移動,就像結在弦上不斷滑動
結滑動時會因為經過的弦之鬆緊程度不同而發生移動方向上的改變

光子或是電子可以說是極小的結
光子有波粒二像性,結是密度高的空間,有粒子性
結的在弦上的移動行為是滑動,而這個動作產生波動性
滑動是不斷的在弦上產生新的結,再解開舊的結

生命是物質也是一種結,意識是能量就是生命結的不斷變化與滑動
這些結的變動形成一種固定且穩定的模式之後,就是記憶
記憶會影響下一次的結的變動,於是就稱之為性格
不同的性格再繼續影響結的變動,於是就稱之為命運
萬物皆虛、諸法皆空、有形的無形的都是弦,都是空間

2018年5月10日 星期四

user 加入 sudo group 群組

#su -
#usermod -G sudo -a user
登出再登入即可,如果是在桌面環境,也要登出桌面才可以
#groups 查看自己的群組有哪些

2017年8月2日 星期三

AviUtl 影像/聲音不同步問題解法

以下是悟訢的留言:

不同步的原因可能是母片格式為 VFR 可變式影格,但是 Aviutl 要用 CFR 固定式影格來編輯。 可以從 Aviutl 的 File > SETTINGS > Import Plugin > L-SMASH,勾選 VFR->CFR,後面設定 30000/1001 代表 30fps,60000/1001 代表 60fps。

感謝悟訢

2017年6月24日 星期六

知識

從前人抄書才能得到書,知識難得但被珍惜,珍惜就明辨,只傳真理好知識
現在人隨手一滑就是訊息,看過即忘,只求快速刺激感官,好壞已混雜難分
上一代人背棄祖傳文化書籍,追求西方空洞文化,新資訊時代又來不及學習
這一代人出生就在學電腦,比上代人了解得快,自然以為比前人優秀,而上一代人
也沒有德行足以使這一代人信服。

2017年6月23日 星期五

命若已定,算與弗算,皆定弗能改,算有何用
命若非定,算亦弗準,故盡事聽命,算亦何必

2017年5月28日 星期日

django debug false 模式下 static 檔案

settings.py
DEBUG=False 的話 Django 就不再處理 static files 了
可以安裝 pip install whitenoise 來協助解決 static files 讀取不到的問題
但是  如果是 media files 如:使用者上傳的圖片 影片等
whitenoise 就無法處理了,然而 media files 本身本來就比較有危險性
常理上來說不該和 Django 放在同一台 server 上,
有看到一個 處理 外部 server 檔案的 django-storages 應該就能處理 media files
但我還沒研究,總之目前還是只能用 Debug=True 在 本地端跑了

2017年4月22日 星期六

好用的 css calc() 函式

https://www.w3schools.com/cssref/func_calc.asp

可即時做 + - * / 且不必需同樣單位

ex: width: calc(100%/3 + 20px - 1em)

2017年2月10日 星期五

mongodb dump 備份資料庫

C:\Program Files\MongoDB\Server\3.2\bin>
mongodump
-h 127.0.0.1:27017
--authenticationDatabase admin
-u root
-p 1234
-d dbname
-o c:\Users\muchu\Desktop\dbname.bson

2017年1月13日 星期五

在 windows 安裝 django app channels 1.0.2 失敗解決方法

python 3.4 下執行出現的 exception 為:

ImportError: cannot import name '_win32stdio'


原因是 twisted 套件本身的問題,只要到:

https://github.com/twisted/twisted/tree/trunk/src/twisted/internet

下載兩個原始碼 _win32stdio.py 和 _pollingfile.py

放到 python34 下的 C:\Python34\Lib\site-packages\twisted\internet

並安裝 pypiwin32

python3 -m pip install pypiwin32


即可順利執行

2017年1月10日 星期二

mongodb 設定 root 帳號密碼

首先一般啟動 db
C:\"Program Files"\MongoDB\Server\3.2\bin\mongod.exe --dbpath "C:\Program Files\MongoDB\Server\3.2\data\db" --bind_ip 0.0.0.0

啟動 mongo shell
C:\"Program Files"\MongoDB\Server\3.2\bin\mongo.exe

在 shell 輸入以下
use admin
db.createUser({user:"root_username", pwd:"root_password", roles:[{role:"root", db:"admin"}]});

關掉 db 再以 --auth 重新啟動 db
C:\"Program Files"\MongoDB\Server\3.2\bin\mongod.exe --auth --dbpath "C:\Program Files\MongoDB\Server\3.2\data\db" --bind_ip 0.0.0.0

之後連線都需要有 root_username 及 root_password
mongodb://root_username:root_password@127.0.0.1/

2016年12月13日 星期二

vmware workstation player 12 guest 3D 設定

假設建立了一個 guest 叫做 windows_7 必須在
該 windows_7 vm 目錄下 windows_7.vmx 加入以下兩行:

mks.enableD3DRenderer = TRUE

mks.enableDX11Renderer = FALSE

2016年12月10日 星期六

使用 complete 呼叫的 jquery ajax polling

(function poll(){
  $.ajax({
    url: "/poll",
    success: function (data) {
      do_something_with(data);
    },
    dataType: "json",
    complete: poll,
    timeout: 30000
  });
})();

2016年12月7日 星期三

進階 jquery polling 即使 request 失敗也不會停止

function doPoll(){
    $.post('ajax/test.html').done(function(data) {
        /* process */
    }).always(function() {
        setTimeout(doPoll, 5000);
    });
}

jquery 簡單 polling 範例

function doPoll()
    $.post('ajax/test.html', function(data) {
        alert(data); // process results here 
        setTimeout(doPoll,5000);     
    }); 
}

2016年12月3日 星期六

如何禁止Vmware同步時間



參考:http://trufflepenne.blogspot.tw/2014/02/vmware.html
如果你有時必須調整VM裡的時間,但重開VM後又恢復現在時間,請利用以下步驟來修改(以windows 2008 R2為例):


停止VMWare tools, Windows Time服務
進入你的VM作業系統,選服務,把VMWare tools, Windows Time停止,並改為手動
取消Internet同步時間
進入你的控制台找到日期時間,進入後將以下取消打勾





修改VMWare configuration檔 (vmx, 跟VM檔案同一目錄)
a. shutdown VM
b. 切到你的VM目錄
c. 打開xxx.vmx
d. 找到tools.syncTime = "XXX" 標籤,刪掉之
e. 在最結尾填入以下
tools.syncTime = "FALSE"
time.synchronize.continue = FALSE
time.synchronize.restore = FALSE
time.synchronize.resume.disk = FALSE
time.synchronize.shrink = FALSE
time.synchronize.tools.startup = FALSE
time.synchronize.resume.host = FALSE
重新進入VM,修改時間,重開機就會看到新設定時間沒被同步
如果要讓VM重開時,都定在固定時間
在xxx.vmx最後加上
rtc.startTime = 1335862800
後面數字是timesatmp, 上面是2012 09:00:00 ,可用以下計算
http://www.onlineconversion.com/unix_time.htm

2016年10月17日 星期一

mysql 與 django 設定 index 欄位注意事項

範例:
strOriginUrl = models.CharField(db_index=True, max_length=255, null=False)

注意:
1. 欄位需使用 CharField 型態
2. 最大長度為 255
3. 指定 db_index=True

2016年10月13日 星期四

[selenium] 讓 chrome 啟動時最大化視窗

chromeDriverExeFilePath = "path-to-executable/chromedriver.exe"
options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")
driver = webdriver.Chrome(executable_path=chromeDriverExeFilePath, chrome_options=options)

2016年10月3日 星期一

windows 系統下的網頁另存新檔 html 與 _files 的連動關閉

在 windows 下,預設 xxx.html 與 xxx_files 是連動的,
刪除或移動 xxx.html xxx_files 也會跟著刪除或移動
如果需要關閉這一層連動關係,必需修改註冊表:

開始 - 執行, 輸入 regedit
HKEY_CURRENT_USER - Software - Microsoft - Windows - CurrentVersion - Explorer

建一個新的 DWORD 值
名稱:NoFileFolderConnection 
數值: 1

完成後,不需重新開機等動作即可生效。

2016年8月31日 星期三

python3 selenium 移動滑鼠到 element 範例 (hover)

使用 selenium 時,有點要被 click 的元件,可能要先將滑鼠 hover 到某個元件上才會顯示出來
可以這樣寫:
假設我們要切換幣別為 USD 但該網站設計,必需先移動到 #currency 元件上  #usd 選項才會出現。

from selenium.webdriver.common.action_chains import ActionChains
eleCurrency = self.driver.find_element_by_css_selector("#currency")
eleUsd = self.driver.find_element_by_css_selector("#usd")
actHoverThenClick = ActionChains(seleniumDriverInstance)
actHoverThenClick.move_to_element(eleCurrency).move_to_element(eleUsd).click().perform()

2016年8月13日 星期六

python3 在 ubuntu 下安裝 lxml 模組

sudo apt-get install libxml2-dev
sudo apt-get install libxslt1-dev
python3 -m pip install lxml

python3 zipfile 解壓縮 zip 檔

from zipfile import ZipFile

with ZipFile("z.zip", "r") as zipFile:
    zipFile.extract("file_path_in_zip.xml", "folder_path_to_extract")

python3 使用 urllib 執行登入範例

無法查看此摘要。請 按這裡查看文章。

2016年7月26日 星期二

python 使用 smtplib 透過 gmail 寄信

首先要將 google 帳號切換為
低安全性應用程式,設定網址:
https://www.google.com/settings/security/lesssecureapps
選擇開啟

程式碼範例:
import smtplib
from email.mime.text import MIMEText

DEFAULT_SMTP = "smtp.gmail.com:587"
DEFAULT_ACCOUNT = "xxxxx@gmail.com"
DEFAULT_PASSWORD = "******"

#帳號密碼
strSmtp = DEFAULT_SMTP
strAccount = DEFAULT_ACCOUNT
strPassword = DEFAULT_PASSWORD

#郵件內容
msg = MIMEText(strMsg)
msg["Subject"] = strSubject
msg["From"] = strFrom
msg["To"] = strTo

#傳送
server = smtplib.SMTP(strSmtp)
server.ehlo()
server.starttls()
server.login(strAccount, strPassword)
server.sendmail(strAccount, lstStrTarget, msg.as_string())
server.quit()

2016年7月21日 星期四

[python] 去除 list 裡重覆的資料

source_list = [1,2,3,4,5,6,1,2,3,4]
new_list = list(set(source_list))
print(new_list)

[1,2,3,4,5,6]

2016年7月16日 星期六

Ubuntu 下讓 mysql 綁定在 0.0.0.0 讓非 localhost 的電腦也能連接

修改 /etc/mysql/my.cnf
bind-address = 0.0.0.0

重啟 mysql
sudo service mysql restart

以 root 登入 mysql
mysql -u root -p

建立兩個同名的使用者 接受 localhost 及 % 連線
CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'user_pwd';
CREATE USER 'user_name'@'%' IDENTIFIED BY 'user_pwd';

授權操作權限至 db
GRANT ALL ON db_name.* TO 'user_name'@'localhost'; 
GRANT ALL ON db_name.* TO 'user_name'@'%';

執行
FLUSH PRIVILEGES;

離開
EXIT;

2016年7月10日 星期日

python url encode/decode

環境是 python 2.7 下:

import urllib

#測試初始 unicode 字串物件
strUnicode = u"test data"

#字串型態為 UNICODE
type(strUnicode)
<type 'unicode'>

#開始 url encode,先將 unicode 編碼為 utf-8,再 url encode (quote),得到 utf-8 字串物件
strResult = urllib.quote(strUnicode.encode("utf-8"))
type(srtResult)
<type 'str'>

#開始 url decode,將上面的結果進行 url decode (unquote),再解碼回 unicode 字串物件
 strResult = urllib.unquote(urllib.quote(u_str.encode("utf-8"))).decode("utf-8")
type(srtResult)
<type 'unicode'>

python 之禪,中英文合圖


blogger 文章加入含有 <> 的文字而不會打亂排版

編寫文章時右方的選項打開
撰寫模式選擇 按照字面顯示HTML
即可:



測試
<html>
    <p>我是一個 html</p>
</html>

2016年7月9日 星期六

ubuntu 下改 mysql 編碼


查詢目前資料庫編碼
mysql> status;
...
Server characterset: latin1
Db characterset: latin1
Client characterset: utf8
Conn. characterset: utf8

設定並重啟
$ sudo vi /etc/mysql/conf.d/charset.cnf

[client]
default-character-set=utf8

[mysqld]
character-set-server=utf8
collation-server=utf8_unicode_ci

$ sudo service mysql restart

再查詢一次
mysql> status;
...
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8

ubuntu 下查看 TCP port 被哪個程式使用

  • sudo netstat -tulpn