|
|
|
|
|
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 |
|
} |
|
|
|
|
|
|
|
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 {[]}) |
|
} |
|
|
|
|
|
export def "comfy update" [ |
|
--clean |
|
--rebase |
|
] { |
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
} |
|
} |
|
|
|
|
|
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 |
|
} |
|
|
|
|
|
|