🦊単純な計算
👈 |
単純な計算
画像のサイズを綺麗に半分にしたり、バッチサイズを調整したりと、単純な四則演算をする場面はしばしばあります
そのためのノードを見ていきましょう
カスタムノード
単純な機能なので、これを実装するものは探せばいくらでもありますが、以下のどちらかカスタムノードがあれば十分です
Simple Math
https://gyazo.com/02da3cbf7851b49c8ba18326cda16d3c
a, b, cにそれぞれ数値を入れられます
その変数を利用して、a * b - cのように書けば、単純に算数を行うことができます
また、これはPythonの式をそのまま使ったものなので、もう少し高度な計算も行えます code:python
a // b # 整数除算(小数点以下切り捨て)
a % b # 剰余(割り算の余り)
a ** b # 累乗(べき乗)
(a + b) * c # 括弧で優先順位を指定
abs(a - b) # 絶対値を求める
min(a, b) # 最小値を返す
max(a, b) # 最大値を返す
round(a / b) # 四捨五入
(a > b) * 1 # 論理式:条件を数値化(a > bなら1, そうでなければ0)
(a == b) * 1 # 論理式:等しいかどうか判定
(a != b) * 1 # 論理式:異なるかどうか判定
int型とfloat型
プログラミングに馴染みがない方にはピンとこないかもしれませんが、数字には「型(タイプ)」があります
int型:整数のみ(例:512, 32, 1)
float型:小数を扱える(例:0.7, 1.5, 24.0)
バッチサイズや解像度はint型 、KSamplerのstrengthや動画のfpsはfloat型です
適切な型で入/出力しないとノードに接続できません
全部floatでええやんというツッコミが聞こえますが、計算の効率や精度のために区別されているんですね…慣れてしまいましょうnomadoor.icon
ちなみに、値を一度 Simple Mathノード に通すと、int ↔ floatの変換を行えます
https://gyazo.com/2265cc54a515359586944c94f258df50
【小技】入力欄での簡易計算
簡単な計算なら入力欄で直接書くと計算された値が入力されます
https://gyazo.com/a285ddb6cb86d6a0e8d3a58766afe51e
https://gyazo.com/20c5f92d6ef1e7057c6d42e2065d84b1