This commit is contained in:
mcDandy
2025-09-03 13:41:09 +02:00
+28 -27
View File
@@ -14,30 +14,31 @@ You can also get the node from comfy manager under the name of More math.
# Features
- expression parsing with support for functions and variables:
- functions:
- run expressions on both components of CONDITIONING (not that I know what they do), LATENT, IMAGE, NOISE and FLOAT
- math operators (binary and unary +,- and ^,*,/,%)
- boolean operators (false = 0.0; true = 1.0) (<,<=,>,>=,==,!=)
- sin, cos, tan
- asin, acos, atan (can produce NaN outside range -1...1)
- atan2 (x,y)
- sinh, cosh, tanh
- asinh, acosh, atanh (can produce NaN outside range -1...1)
- abs, sqrt (produces NaN on negative numbers), ln (log with base e), log (base 10), exp, pow
- smin, tmin, smax, tmax, tnorm, snorm (norm and t prefixed are not applicable on float math node)
- s prefixed return one number
- t prefixed work element-wise
- floor, ceil, round, gamma, clamp, sigm (sigmoid)
- angle (audio node)
- variables
- a, b, c, d : inputs of type based on node
- w, x, y, z : each node allows use of 4 additional floats
- W : Width of tensor - does not work on FLOAT and CONDITIONING
- H : Height of tensor - does not work on FLOAT and CONDITIONING
- C : Channel of tensor - used as color chanel in IMAGE or as information channel in others. does not work on FLOAT and CONDITIONING
- B : Batch - does not work on FLOAT and CONDITIONING
- X : X position in tensor - does not work on FLOAT and CONDITIONING
- Y : Y position in tensor - does not work on FLOAT and CONDITIONING
- I : Tensor used to initalise sampler before noise injection - usually zeroed out and generated by Empty Latent Image node - Exclusive for NOISE
- use constant e and pi
- functions and variables in math expressions
- Nodes for CONDITIONING, LATENT, IMAGE, NOISE, FLOAT, and AUDIO
## Operators
- Math: `+`, `-`, `*`, `/`, `%`, `^`
- Boolean: `<`, `<=`, `>`, `>=`, `==`, `!=`
(`false = 0.0`, `true = 1.0`)
## Functions
- Basic: `abs`, `sqrt`, `ln`, `log`, `exp`, `pow`
- Trigonometric: `sin`, `cos`, `tan`, `asin`, `acos`, `atan`, `atan2`
- Hyperbolic: `sinh`, `cosh`, `tanh`, `asinh`, `acosh`, `atanh`
- Aggregates: `smin`, `smax` , `snorm` (scalar), `tmin`, `tmax`, `tnorm` (elementwise)
- Other: `floor`, `ceil`, `round`, `gamma`, `clamp`, `sigm` (sigmoid), `angle` (in ifft only)
- Audio-specific: `fft` (short-time FFT), `ifft` (inverse sFFT **always return audio back to time domain before leaving node**)
## Variables
- **Inputs**: `a`, `b`, `c`, `d` (matches node input type)
- **Extra floats**: `w`, `x`, `y`, `z`
- **Tensor positions**: `C` (channel), `B` (batch), `X`, `Y`, `W` (width), `H` (height) (not for FLOAT/AUDIO/CONDITIONING)
- **Special**:
- `I` – sampler init tensor (for NOISE only)
- `S` – current audio sample (AUDIO only)
- `T` – audio length (AUDIO only)
- `R` – sample rate (AUDIO only)
- `F` – frequency count (freq domain, iFFT only)
- `K` – current frequency (freq domain, iFFT only)
- Constants: `e`, `pi`