Spaces:
Sleeping
Sleeping
# NOTE: This file is only use for development you can ignore it | |
def get_root [--clean] { | |
if $clean { | |
$env.COMFY_CLEAN_ROOT | |
} else { | |
$env.COMFY_ROOT | |
} | |
} | |
export def "comfy build-web" [] { | |
cd $env.COMFY_MTB | |
cd web_source | |
npm run build | |
cp dist/*.js ../web/dist | |
} | |
export def "comfy dev-web" [] { | |
cd $env.COMFY_MTB | |
cd web_source | |
npm run dev | |
} | |
# start the comfy server | |
export def "comfy start" [--clean,--old-ui, --listen] { | |
let root = get_root --clean=($clean) | |
cd $root | |
MTB_DEBUG=true python main.py --port 3000 ...(if $old_ui { ["--front-end-version", "Comfy-Org/ComfyUI_legacy_frontend@latest"]} else {[]}) --preview-method auto ...(if $listen {["--listen"]} else {[]}) | |
} | |
# update comfy itself and merge master in current branch | |
export def "comfy update" [ | |
--clean # ?? | |
--rebase # Rebase instead of merge | |
] { | |
let root = get_root --clean=($clean) | |
let models = $"($root)/models" | |
let inputs = $"($root)/input" | |
cd $root | |
let branch_name = (git rev-parse --abbrev-ref HEAD | str trim) | |
print $"(ansi yellow_italic)Backing up and removing models symlinks(ansi reset)" | |
if not $clean { | |
cd $models | |
# find all symlinks | |
let links = (ls -la | | |
where not ($it.target | is-empty) | | |
select name target | | |
sort-by name) | |
if not ($links | is-empty) { | |
$links | save -f links.nuon | |
# remove them | |
open links.nuon | each {|p| rm $p.name } | |
} | |
} else { | |
rm $models | |
rm $inputs | |
} | |
cd $root | |
print $"(ansi yellow_italic)Checking out to master(ansi reset)" | |
git checkout master | |
print $"(ansi yellow_italic)Fetching and pulling remote updates(ansi reset)" | |
git fetch | |
git pull | |
print $"(ansi yellow_italic)Back to our branch \(($branch_name)\)(ansi reset)" | |
git checkout - | |
if $rebase { | |
print $"(ansi yellow_italic)Rebasing changes(ansi reset)" | |
git rebase master | |
} else { | |
print $"(ansi yellow_italic)Merging changes(ansi reset)" | |
git merge master | |
} | |
print $"(ansi yellow_italic)Linking back the models(ansi reset)" | |
if not $clean { | |
cd $models | |
# resymlink them | |
open links.nuon | each {|p| link -a $p.target $p.name } | |
} else { | |
let master = (get_root) | |
link ($master | path join models) $models | |
link ($master | path join input) $inputs | |
} | |
let commit_count = (git rev-list --count $branch_name $"^origin/($branch_name)") | |
print $"(ansi green_bold)Update successful \(($commit_count) new commits\)(ansi reset)" | |
} | |
export def "comfy toggle_extensions" [--clean] { | |
let root = get_root --clean=($clean) | |
cd $root | |
cd custom_nodes | |
let exts = (ls | where type in ["dir","symlink"] | get name) | |
let choices = ($exts | input list -m "choose extension to toggle") | |
if ($choices | is-empty) { | |
return | |
} | |
print $choices | |
let filtered = $choices | wrap name | upsert enabled {|p| not ($p.name | str ends-with ".disabled")} | |
print $filtered | |
$filtered | each {|f| | |
let new_name = ($f.name | str replace ".disabled" "") | |
let new_name = if $f.enabled { | |
$"($new_name).disabled" | |
} else { | |
$new_name | |
} | |
print $"Moving ($f.name) to ($new_name)" | |
mv $f.name $new_name | |
} | |
} | |
# git pull all extensions | |
export def "comfy update_extensions" [--clean] { | |
let root = get_root --clean=($clean) | |
cd $root | |
cd custom_nodes | |
git multipull . | |
} | |
def --env path-add [pth] { | |
$env.PATH = ($env.PATH | append ($pth | path expand)) | |
} | |
export-env { | |
$env.COMFY_MTB = ("." | path expand) | |
$env.CUDA_ROOT = 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\' | |
$env.CUDA_HOME = $env.CUDA_ROOT | |
$env.COMFY_ROOT = ("../.." | path expand) | |
$env.COMFY_CLEAN_ROOT = ($env.COMFY_ROOT | path dirname | path join ComfyClean) | |
path-add 'C:/Portable/TensorRT-8.6.0.12/lib' | |
path-add ($env.CUDA_ROOT | path join bin) | |
overlay use ../../.venv/Scripts/activate.nu | |
} | |