I ended up with smth more complicated but it looks like the right way.
vec4 nightSkyColor = vec4(0.0);
vec4 desaturated = generic_desaturate(color.rgb, 1.0);
desaturated *= 35.0; // 35 for darkness blend coeff
desaturated = pow(desaturated, vec4(0.1)); /// 0.1 for transition coeff
vec4 saturated = clamp(desaturated, 0.0,1.0);
saturated = 1.0 - saturated;
nightSkyColor = texture;
nightSkyColor*=saturated;
color+=nightSkyColor;