ComfyUI caches each node's output keyed by its inputs. With keep_loaded=False,
the previous run's Generate node freed the model and processor from the
cache (model=None, processor=None on the still-cached MOSS_TTS_MODEL handle).
Without IS_CHANGED, ComfyUI hands that empty handle to the next run's
Generate, which crashes with 'NoneType has no attribute build_user_message'.
Add IS_CHANGED that returns a fresh value (time.time()) when keep_loaded
is False, forcing ComfyUI to re-execute load() each run. get_or_load then
sees an empty cache and reloads the model from the local HuggingFace cache.
For keep_loaded=True the return value is stable, so ComfyUI keeps reusing
the same loaded model — preserves the original keep-resident behaviour.