A system prompt cannot give the model filesystem access: it can only make it
hallucinate file contents. The node now sends the tools in OpenAI `tools`
form, runs whatever the model calls, feeds each result back as a `tool`
message and loops until the model answers or max_tool_steps is reached.
Toolsets: read (read_file/list_dir/search_files), read_command, read_write
(+ write_file) and full. File tools are confined to path_root (default the
ComfyUI directory) with realpath containment, so `..` and symlinks cannot
escape. run_command is a persistent bash session where cd and export carry
across calls of one execution; it runs as the ComfyUI user with no sandbox,
so it is opt-in. Tool errors come back as text so the model can retry.
With a toolset and an empty system_prompt the node injects an agent prompt
naming the real host, root and enabled tools and forbidding invented file
contents or command output. thinking now accumulates reasoning_content
across steps. Stdlib only, no new dependency.
Chat with an OpenAI-compatible server (Halogen flash-server, llama.cpp,
vLLM, Ollama /v1) from a node. The POST goes out of the ComfyUI backend
process, so the server field is resolved on the ComfyUI host and not in
the browser: a remote UI can reach an LLM that is local to the backend,
or any other host reachable from it.
Outputs the answer, the model's reasoning text (reasoning_content, which
is where Halogen Flash puts its reasoning) and a chainable chat_history
for multi-turn. Stdlib urllib only, no new dependency.
The f0 gap bridge filled every unvoiced gap up to 10 frames, but on the
SongCover stem 29 of 33 such gaps were consonants and breaths. Giving them
a pitch made the model sing them as a voiced buzz. Gaps are now bridged
only when the audio under them is tonal (spectral flatness <= 0.02).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Synced veda_comfy's bundle/settings layer with upstream Veda-on-ComfyUI:
bundles may declare per-stream tile budgets (target_budget_* / ref_budget_*)
instead of keep_ratio, which the R2VA preview predictor uses; the old loader
rejected it as incomplete metadata. Sparsity inputs default to 32 tiles and
accept 'trained' (the predictor's own budget). Saved workflows keep their
stored values. Registered the R2VA predictor and pointed its template at it.
Verified on gfx1151: both predictors load, triton-int8 self-test ok,
tests/veda 113 unit + 3 GPU passed.
- ROCmSamplerCustomAdvanced: new attention_backend input (auto/pytorch/
comfy_kitchen_int8/flash), installed on a clone of guider.model_options
so the shared ModelPatcher stays clean and sparse-attention overrides
still chain on top
- Removed dead inputs: precision_mode, batch_optimization, flash_attention,
test_steps; fix_empty_latent_channels now passes downscale ratios like
stock; disable_pbar actually forwarded
- ROCmVAEDecode: deleted unreachable VAE re-dtype machinery (first_stage_model
.dtype is None for every shipped VAE); decode follows vae.vae_dtype and
never mutates shared weights; fp16 accumulation now goes through
apply_rocm_backend_settings (rdna3_5 pre-7.14 guard respected), same fix
in ROCmGGUFLoader which also stopped forcing allow_tf32=False
- Deleted ROCmSamplerCustomAdvancedBenchmark node (ROCmFluxBenchmark remains)
- batch_cap field + *_BATCH_CAP constants, select_precision, dead tail of
apply_rocm_backend_settings removed
- conftest stubs extended (comfy.audio, model_patcher, ldm attention,
folder_paths, interrupt hook): 184 passed, 24 skipped, 0 failed
- Docs: node docs, README, Benchmarks, ARCHITECTURE refreshed to current
stack (ROCm 7.16 / torch 2.15.0a0+rocm10.1.0)
- Remove optimize_for_video (auto-detects 5D video latents)
- Remove precision_mode (was a no-op)
- compatibility_mode moved to advanced=True toggle
- Node now matches stock interface exactly (5 inputs) with only
an advanced debug toggle added
- Video workflow auto-detected from latent shape (5D, T > 1)
- Architecture logging explicitly shows GPU family on ROCm
- Benchmark node also cleaned up (no extra params)
- ROCMSamplerCustomAdvanced: V3 ComfyNode drop-in for stock SamplerCustomAdvanced
with architecture detection, ROCm backend tuning, memory defrag for high-memory
models (LTX 128ch), enhanced per-step callback with ETA
- ROCMSamplerCustomAdvancedBenchmark: A/B comparison node for stock vs ROCm
- docs/SAMPLER_CUSTOM_ADVANCED.md: full documentation for agents and users
- Category: ROCm Ninodes/Sampling
- Bump version to 2.2.0 across all files
- Updated version to 2.0.11 in pyproject.toml and comfyui_manager.json for consistency.
- Removed video chunking from ROCMOptimizedVAEDecode to ensure full video decoding for temporal/causal VAEs, preventing artifacts.
- Added new ROCm Text Generate LTX2 Prompt node, enhancing generative AI capabilities.
- Updated README to reflect new features and improvements in v2.0.11.
- Enhanced changelog with details on changes and fixes in this release.
- Added optional in-memory cache to ROCmOptimizedCheckpointLoader to avoid redundant disk loads during repeated API runs.
- Implemented cache eviction strategy to manage memory efficiently on gfx1151 architecture.
- Updated INPUT_TYPES to include parameters for cache usage and forced reload.
- Added integration and unit tests to verify cache behavior and functionality.
- Documented caching mechanism in CHECKPOINT_CACHE_API.md and updated LOADER_NODES_GUIDE.md for clarity.
- Added full on-the-fly dequantization for GGUF models (Q8_0, Q4_0, Q4_1, Q5_0, Q5_1, BF16)
- Implemented get_weight() and cast_bias_weight() methods for proper tensor handling
- Fixed 'Multiple dispatch failed for torch.nn.linear' error by converting all ROCmGGMLTensor objects to regular tensors
- Added forward_comfy_cast_weights() routing for all ROCmGGMLTensor objects (quantized and non-quantized)
- Based on City96's ComfyUI-GGUF implementation, optimized for ROCm/gfx1151
- Added LoRA patch support and VRAM estimation
- All GGUF models now work correctly for loading and sampling