Bump node js version for docker and installer
This commit is contained in:
1 parent
b1d5ef8534
commit
14f8f95090
5 files changed
+39
-14
No files matched your search
+1
-1
@@ -39,7 +39,7 @@ RUN apt-get update && apt-get install --no-install-recommends -y \
|
|||||||
|
|
||||||
# Install nodejs
|
# Install nodejs
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
RUN curl -sL https://deb.nodesource.com/setup_23.x -o nodesource_setup.sh && \
|
RUN curl -sL https://deb.nodesource.com/setup_24.x -o nodesource_setup.sh && \
|
||||||
bash nodesource_setup.sh && \
|
bash nodesource_setup.sh && \
|
||||||
apt-get update && \
|
apt-get update && \
|
||||||
apt-get install -y nodejs && \
|
apt-get install -y nodejs && \
|
||||||
|
|||||||
@@ -927,7 +927,7 @@ class SDTrainer(BaseSDTrainProcess):
|
|||||||
pred = t0
|
pred = t0
|
||||||
# handle velocity equiv loss if set. This scales t0 loss to match velocity of flowmatchhing loss
|
# handle velocity equiv loss if set. This scales t0 loss to match velocity of flowmatchhing loss
|
||||||
if self.train_config.t0_velocity_equiv_weight:
|
if self.train_config.t0_velocity_equiv_weight:
|
||||||
velocity_equiv_weight = (1.0 / torch.clamp(tv, min=0.1) ** 2)
|
velocity_equiv_weight = (1.0 / torch.clamp(tv, min=0.01) ** 2)
|
||||||
local_loss_scale = velocity_equiv_weight
|
local_loss_scale = velocity_equiv_weight
|
||||||
|
|
||||||
if self.train_config.do_fft_loss:
|
if self.train_config.do_fft_loss:
|
||||||
@@ -936,7 +936,7 @@ class SDTrainer(BaseSDTrainProcess):
|
|||||||
pred_mag = torch.fft.rfft2(t0.float(), norm="ortho").abs()
|
pred_mag = torch.fft.rfft2(t0.float(), norm="ortho").abs()
|
||||||
fft_loss = F.mse_loss(pred_mag, target_mag, reduction="none")
|
fft_loss = F.mse_loss(pred_mag, target_mag, reduction="none")
|
||||||
if self.train_config.do_fft_velocity_equiv_weight:
|
if self.train_config.do_fft_velocity_equiv_weight:
|
||||||
velocity_equiv_weight = (1.0 / torch.clamp(tv, min=0.1) ** 2)
|
velocity_equiv_weight = (1.0 / torch.clamp(tv, min=0.01) ** 2)
|
||||||
fft_loss = fft_loss * velocity_equiv_weight
|
fft_loss = fft_loss * velocity_equiv_weight
|
||||||
fft_loss = fft_loss.mean()
|
fft_loss = fft_loss.mean()
|
||||||
self.additional_logs['loss/fft'] = fft_loss.item()
|
self.additional_logs['loss/fft'] = fft_loss.item()
|
||||||
|
|||||||
+8
-1
@@ -119,7 +119,14 @@ def run_doctor():
|
|||||||
_check("torch sees gpu", False, "could not query")
|
_check("torch sees gpu", False, "could not query")
|
||||||
|
|
||||||
node_exe, node_major = nodejs.have_usable_node()
|
node_exe, node_major = nodejs.have_usable_node()
|
||||||
if node_exe:
|
if node_exe and node_exe == nodejs.local_node_exe() and nodejs.local_node_stale():
|
||||||
|
_check(
|
||||||
|
"node",
|
||||||
|
False,
|
||||||
|
"%s (v%s) is behind pinned v%s (manager sync reinstalls it)"
|
||||||
|
% (node_exe, node_major, nodejs.NODE_VERSION),
|
||||||
|
)
|
||||||
|
elif node_exe:
|
||||||
_check("node", True, "%s (v%s)" % (node_exe, node_major))
|
_check("node", True, "%s (v%s)" % (node_exe, node_major))
|
||||||
else:
|
else:
|
||||||
_check(
|
_check(
|
||||||
|
|||||||
+27
-9
@@ -27,7 +27,7 @@ from .util import (
|
|||||||
|
|
||||||
NODE_DIR = os.path.join(REPO_ROOT, ".node")
|
NODE_DIR = os.path.join(REPO_ROOT, ".node")
|
||||||
# Node 24 is the current LTS line.
|
# Node 24 is the current LTS line.
|
||||||
NODE_VERSION = "24.11.1"
|
NODE_VERSION = "24.22.1"
|
||||||
MIN_NODE_MAJOR = 20
|
MIN_NODE_MAJOR = 20
|
||||||
|
|
||||||
UI_DIR = os.path.join(REPO_ROOT, "ui")
|
UI_DIR = os.path.join(REPO_ROOT, "ui")
|
||||||
@@ -44,7 +44,8 @@ def local_node_exe():
|
|||||||
|
|
||||||
|
|
||||||
def _node_info(exe):
|
def _node_info(exe):
|
||||||
"""(major, arch) for a node executable, e.g. (24, 'x64'), or (None, None)."""
|
"""(version, major, arch) for a node executable, e.g. ('24.22.1', 24, 'x64'),
|
||||||
|
or (None, None, None)."""
|
||||||
try:
|
try:
|
||||||
out = subprocess.run(
|
out = subprocess.run(
|
||||||
[exe, "-p", "process.version + ' ' + process.arch"],
|
[exe, "-p", "process.version + ' ' + process.arch"],
|
||||||
@@ -53,11 +54,12 @@ def _node_info(exe):
|
|||||||
timeout=15,
|
timeout=15,
|
||||||
)
|
)
|
||||||
if out.returncode != 0:
|
if out.returncode != 0:
|
||||||
return None, None
|
return None, None, None
|
||||||
version, arch = out.stdout.decode().strip().split() # v24.11.1 x64
|
version, arch = out.stdout.decode().strip().split() # v24.22.1 x64
|
||||||
return int(version.lstrip("v").split(".")[0]), arch
|
version = version.lstrip("v")
|
||||||
|
return version, int(version.split(".")[0]), arch
|
||||||
except (OSError, subprocess.TimeoutExpired, ValueError):
|
except (OSError, subprocess.TimeoutExpired, ValueError):
|
||||||
return None, None
|
return None, None, None
|
||||||
|
|
||||||
|
|
||||||
def _usable_major(exe):
|
def _usable_major(exe):
|
||||||
@@ -68,7 +70,7 @@ def _usable_major(exe):
|
|||||||
so a native ARM64 node loads the UI but dies on the first DB call. The
|
so a native ARM64 node loads the UI but dies on the first DB call. The
|
||||||
x64 node runs under emulation on ARM hosts.
|
x64 node runs under emulation on ARM hosts.
|
||||||
"""
|
"""
|
||||||
major, arch = _node_info(exe)
|
_, major, arch = _node_info(exe)
|
||||||
if major is None or major < MIN_NODE_MAJOR:
|
if major is None or major < MIN_NODE_MAJOR:
|
||||||
return None
|
return None
|
||||||
if IS_WINDOWS and arch != "x64":
|
if IS_WINDOWS and arch != "x64":
|
||||||
@@ -110,14 +112,30 @@ def have_usable_node():
|
|||||||
return None, None
|
return None, None
|
||||||
|
|
||||||
|
|
||||||
|
def local_node_stale():
|
||||||
|
"""True when the portable copy exists but isn't the pinned NODE_VERSION."""
|
||||||
|
local = local_node_exe()
|
||||||
|
if not os.path.isfile(local):
|
||||||
|
return False
|
||||||
|
version, _, _ = _node_info(local)
|
||||||
|
return version != NODE_VERSION
|
||||||
|
|
||||||
|
|
||||||
def ensure_node(detection, dry_run=False):
|
def ensure_node(detection, dry_run=False):
|
||||||
exe, major = have_usable_node()
|
exe, major = have_usable_node()
|
||||||
if exe:
|
if exe == local_node_exe() and local_node_stale():
|
||||||
|
# the portable copy is ours to keep current (security releases)
|
||||||
|
version, _, _ = _node_info(exe)
|
||||||
|
info(
|
||||||
|
"Portable Node.js v%s at %s is behind the pinned v%s — reinstalling."
|
||||||
|
% (version, NODE_DIR, NODE_VERSION)
|
||||||
|
)
|
||||||
|
elif exe:
|
||||||
ok("Node.js v%d found (%s)." % (major, exe))
|
ok("Node.js v%d found (%s)." % (major, exe))
|
||||||
return False
|
return False
|
||||||
system = which("node")
|
system = which("node")
|
||||||
if system:
|
if system:
|
||||||
_, arch = _node_info(system)
|
_, _, arch = _node_info(system)
|
||||||
if IS_WINDOWS and arch and arch != "x64":
|
if IS_WINDOWS and arch and arch != "x64":
|
||||||
info(
|
info(
|
||||||
"System Node.js is %s but the UI needs an x64 node on Windows "
|
"System Node.js is %s but the UI needs an x64 node on Windows "
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
VERSION = "0.13.35"
|
VERSION = "0.13.36"
|
||||||
Reference in new issue
Block a user