Skip to content

docs: add PH3ImageConditioning, SoniloMusic15, TextGenerateV2; sync OpenAI and TextGenerate changes - #224

Merged
comfyui-wiki merged 4 commits into
Comfy-Org:mainfrom
lin-bot23:daily-docs-update-1104
Nov 4, 2026
Merged

comfyui-wiki merged 4 commits into
Comfy-Org:mainfrom
lin-bot23:daily-docs-update-1104

Conversation

@lin-bot23

Copy link
Copy Markdown
Contributor

Summary

Daily node-docs update for 2026-11-04. Three new nodes documented by hand, five existing nodes updated by zero-AI injection (identifiers and one localized deprecation note), all 15 locales carried in the same PR.

120 files: 45 new (3 nodes × 15 locales) + 75 modified (5 nodes × 15 locales).

New nodes

Node Source PR Notes
PH3ImageConditioning ComfyUI #17506 feat: Support PH3Image p-h3-image conditioning for a single still frame. Autogrow images holds image_1…image_9 where image_1 is the edited image; VAE is required as soon as an image slot is connected. 2912×2912 default canvas when no image, size on a 32 px grid.
SoniloMusic15 ComfyUI #17475 feat(Sonilo): add Sonilo Music 1.5 node Full song with sung vocals. duration is a DYNAMIC_COMBO (auto / custom with seconds 10–360), prompt capped at 2000 characters, seed is re-run control only (output is non-deterministic).
TextGenerateV2 ComfyUI #17492 Add TextGenerateV2 with Autogrow image inputs Growable images / videos / audios context stacks (50 / 100 / 100 slots), DYNAMIC_COMBO sampling profile, mtp speculative decoding options, thinking split into its own output.

English bodies were written against the node source (define_schema + execute) and saved through save_agent_doc.py, so title, disclaimer and fingerprint footer come from the pipeline. None of the three nodes exists in the frontend nodeDefs yet (verified with sync_frontend_translations.py --export), so their source display_name was injected into data/node_translations.json for all 15 locales before generation — all 15 files share the same title.

Existing nodes (zero-AI injection)

No re-translation anywhere: every edit is a model identifier, a count word, or a note copied from an existing precedent page.

  • OpenAIChatNode — model combo follows SupportedOpenAIModel after #17493: gpt-6.1-sol and gpt-6.1-terra added, gpt-4.1-nano, o4-mini, o1-pro, o1 removed (16 options now).
  • OpenAIChatConfig — the reasoning-effort enumeration gains GPT-6.1 Sol low-max / GPT-6.1 Terra none-max. Still matches SUPPORTED_REASONING_EFFORTS.
  • OpenAIGPTImage1 — gpt-image-1 retired: option removed, intro counts two models, and the legacy size note now names only gpt-image-1.5 (article/verb agreement fixed per locale).
  • OpenAIGPTImageNodeV2 — gpt-image-1 removed from the DYNAMIC_COMBO, intro counts four models, the shared section is now gpt-image-1.5 alone.
  • TextGenerate — #17492 made it a deprecated subclass with display_name="Generate Text (DEPRECATED)". Added the repo's standard deprecation note (wording copied byte-for-byte from ByteDanceSeedreamNode / the canonical fr line, not re-translated). H1 stays Generate Text: the published page title comes from the directory name, so H1 drift is invisible on the site.

Footer fingerprints were refreshed for all five nodes with lib.node_source_extract + the report comparison; every hash prefix matches the scanner's new_hash (TextGenerate → 2ac2ffc6… exactly).

Changed-but-skipped (79 scan entries)

scan_missing_nodes.py reported 94 changed nodes; 89 were noise, reviewed with review_changed_node_diffs.py (blacklist method) plus manual diffs:

  • 46+ display_name / category renames, search_aliases, transport-layer edits (asset_urls=True, PrunaPredictionRequest wrapping, UI.SavedResult refactors, qem_simplify rename, helper renames).
  • Price-badge repricing (11 Recraft nodes, HeyGen voice) — no changed page publishes a price (RecraftTextToImageNode still says $0.0572 and matches its schema).
  • CreateVideo chroma-subsampling validation (auto → None instead of a string) — no doc-visible behaviour change.
  • CreateBoundingBoxes background thumbnail saved into ui["background_images"] — the background input and its aspect notes were already documented.
  • Flux3ImageNode description wording ("FLUX 3" → "FLUX 3 Image") — cosmetic.
  • ByteDanceFirstLastFrameNode / ByteDanceImageToVideoNode / ByteDanceTextToVideoNode gained is_deprecated=True upstream (#17507). Their pages are already covered by the open docs: render the Seedance retirement callout as Markdown and finish all 15 locales #222 retirement callout, which tells users the model is being shut down and that saved workflows stop working — I did not stack a second generic note on the same three pages there.
  • BatchImagesNode, PadImageNode, RotateMesh, SVD_img2vid_Conditioning: fingerprint baseline not resolvable. Parameter/output sets compared by hand (SVD uses the legacy INPUT_TYPES API so the extractor sees no inputs) — no drift.

Verification

Ran after committing, so --changed-only really saw the 120 files:

  • fix_translation_preamble.py --check-only --changed-only → 0 files, 0 leaked lines
  • check_doc_structure.py --changed-only → 0 defects
  • check_md_format.py --changed-only → 120 files, 0 errors, 0 warnings
  • check_md_links.py → all local resource links valid
  • check_new_node_translations.py → 1 finding, a known false positive: de 0 bis 100 Videos ("Videos" is the German word)
  • check_translation_language.py → 0 problems
  • Per-locale structure: every translation has exactly one H1, identical | row counts to en.md (12 / 11 / 26), no fenced blocks, overview present in the local language, no English Range/Required residue (es No and it No are correct localizations; fr "0 à 9 images" / es "0 a 100 videos" / it "0 a 100 video" are correct unit words)

update_param_translations.py was deliberately not run: none of the three new nodes has frontend terminology, so a full pass would only rewrite ~1700 unrelated files (de/he/it parameter-name debt), which belongs in its own batch PR.

Not touched: docs repo. Node content lives in embedded-docs; a sync PR will pick it up.

…c OpenAI/TextGenerate schema changes

New nodes (English):
- PH3ImageConditioning (ComfyUI #17506): p-h3-image conditioning for a single
  still frame, autogrow image_1..image_9 references, VAE required with images.
- SoniloMusic15 (ComfyUI #17475): full song with vocals, auto/custom duration.
- TextGenerateV2 (ComfyUI #17492): growable images/videos/audios context stacks.

Existing nodes (zero-AI injection, identifiers only):
- OpenAIChatNode: model combo gains gpt-6.1-sol / gpt-6.1-terra and loses
  gpt-4.1-nano, o4-mini, o1-pro, o1 (#17493).
- OpenAIChatConfig: reasoning-effort enumeration gains the two 6.1 models.
- OpenAIGPTImage1 / OpenAIGPTImageNodeV2: gpt-image-1 retired (#17493).
- TextGenerate: source marks it deprecated, localized note added.
@coderabbitai

coderabbitai Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

  • Run on-demand review

This review includes 135 billable files and costs up to $33.75.

View limit details

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 87b80015-531c-42d0-a850-73b3f3f81ed9
Commits

Reviewing files that changed from the base of the PR and between cafb2a3 and bfa40d2.

Files selected for processing: 135
  • comfyui_embedded_docs/docs/OpenAIChatConfig/ar.md
  • comfyui_embedded_docs/docs/OpenAIChatConfig/de.md
  • comfyui_embedded_docs/docs/OpenAIChatConfig/en.md
  • comfyui_embedded_docs/docs/OpenAIChatConfig/es.md
  • comfyui_embedded_docs/docs/OpenAIChatConfig/fa.md
  • comfyui_embedded_docs/docs/OpenAIChatConfig/fr.md
  • comfyui_embedded_docs/docs/OpenAIChatConfig/he.md
  • comfyui_embedded_docs/docs/OpenAIChatConfig/it.md
  • comfyui_embedded_docs/docs/OpenAIChatConfig/ja.md
  • comfyui_embedded_docs/docs/OpenAIChatConfig/ko.md
  • comfyui_embedded_docs/docs/OpenAIChatConfig/pt-BR.md
  • comfyui_embedded_docs/docs/OpenAIChatConfig/ru.md
  • comfyui_embedded_docs/docs/OpenAIChatConfig/tr.md
  • comfyui_embedded_docs/docs/OpenAIChatConfig/zh-TW.md
  • comfyui_embedded_docs/docs/OpenAIChatConfig/zh.md
  • comfyui_embedded_docs/docs/OpenAIChatNode/ar.md
  • comfyui_embedded_docs/docs/OpenAIChatNode/de.md
  • comfyui_embedded_docs/docs/OpenAIChatNode/en.md
  • comfyui_embedded_docs/docs/OpenAIChatNode/es.md
  • comfyui_embedded_docs/docs/OpenAIChatNode/fa.md
  • comfyui_embedded_docs/docs/OpenAIChatNode/fr.md
  • comfyui_embedded_docs/docs/OpenAIChatNode/he.md
  • comfyui_embedded_docs/docs/OpenAIChatNode/it.md
  • comfyui_embedded_docs/docs/OpenAIChatNode/ja.md
  • comfyui_embedded_docs/docs/OpenAIChatNode/ko.md
  • comfyui_embedded_docs/docs/OpenAIChatNode/pt-BR.md
  • comfyui_embedded_docs/docs/OpenAIChatNode/ru.md
  • comfyui_embedded_docs/docs/OpenAIChatNode/tr.md
  • comfyui_embedded_docs/docs/OpenAIChatNode/zh-TW.md
  • comfyui_embedded_docs/docs/OpenAIChatNode/zh.md
  • comfyui_embedded_docs/docs/OpenAIGPTImage1/ar.md
  • comfyui_embedded_docs/docs/OpenAIGPTImage1/de.md
  • comfyui_embedded_docs/docs/OpenAIGPTImage1/en.md
  • comfyui_embedded_docs/docs/OpenAIGPTImage1/es.md
  • comfyui_embedded_docs/docs/OpenAIGPTImage1/fa.md
  • comfyui_embedded_docs/docs/OpenAIGPTImage1/fr.md
  • comfyui_embedded_docs/docs/OpenAIGPTImage1/he.md
  • comfyui_embedded_docs/docs/OpenAIGPTImage1/it.md
  • comfyui_embedded_docs/docs/OpenAIGPTImage1/ja.md
  • comfyui_embedded_docs/docs/OpenAIGPTImage1/ko.md
  • comfyui_embedded_docs/docs/OpenAIGPTImage1/pt-BR.md
  • comfyui_embedded_docs/docs/OpenAIGPTImage1/ru.md
  • comfyui_embedded_docs/docs/OpenAIGPTImage1/tr.md
  • comfyui_embedded_docs/docs/OpenAIGPTImage1/zh-TW.md
  • comfyui_embedded_docs/docs/OpenAIGPTImage1/zh.md
  • comfyui_embedded_docs/docs/OpenAIGPTImageNodeV2/ar.md
  • comfyui_embedded_docs/docs/OpenAIGPTImageNodeV2/de.md
  • comfyui_embedded_docs/docs/OpenAIGPTImageNodeV2/en.md
  • comfyui_embedded_docs/docs/OpenAIGPTImageNodeV2/es.md
  • comfyui_embedded_docs/docs/OpenAIGPTImageNodeV2/fa.md
  • comfyui_embedded_docs/docs/OpenAIGPTImageNodeV2/fr.md
  • comfyui_embedded_docs/docs/OpenAIGPTImageNodeV2/he.md
  • comfyui_embedded_docs/docs/OpenAIGPTImageNodeV2/it.md
  • comfyui_embedded_docs/docs/OpenAIGPTImageNodeV2/ja.md
  • comfyui_embedded_docs/docs/OpenAIGPTImageNodeV2/ko.md
  • comfyui_embedded_docs/docs/OpenAIGPTImageNodeV2/pt-BR.md
  • comfyui_embedded_docs/docs/OpenAIGPTImageNodeV2/ru.md
  • comfyui_embedded_docs/docs/OpenAIGPTImageNodeV2/tr.md
  • comfyui_embedded_docs/docs/OpenAIGPTImageNodeV2/zh-TW.md
  • comfyui_embedded_docs/docs/OpenAIGPTImageNodeV2/zh.md
  • comfyui_embedded_docs/docs/PH3ImageConditioning/ar.md
  • comfyui_embedded_docs/docs/PH3ImageConditioning/de.md
  • comfyui_embedded_docs/docs/PH3ImageConditioning/en.md
  • comfyui_embedded_docs/docs/PH3ImageConditioning/es.md
  • comfyui_embedded_docs/docs/PH3ImageConditioning/fa.md
  • comfyui_embedded_docs/docs/PH3ImageConditioning/fr.md
  • comfyui_embedded_docs/docs/PH3ImageConditioning/he.md
  • comfyui_embedded_docs/docs/PH3ImageConditioning/it.md
  • comfyui_embedded_docs/docs/PH3ImageConditioning/ja.md
  • comfyui_embedded_docs/docs/PH3ImageConditioning/ko.md
  • comfyui_embedded_docs/docs/PH3ImageConditioning/pt-BR.md
  • comfyui_embedded_docs/docs/PH3ImageConditioning/ru.md
  • comfyui_embedded_docs/docs/PH3ImageConditioning/tr.md
  • comfyui_embedded_docs/docs/PH3ImageConditioning/zh-TW.md
  • comfyui_embedded_docs/docs/PH3ImageConditioning/zh.md
  • comfyui_embedded_docs/docs/SoniloMusic15/ar.md
  • comfyui_embedded_docs/docs/SoniloMusic15/de.md
  • comfyui_embedded_docs/docs/SoniloMusic15/en.md
  • comfyui_embedded_docs/docs/SoniloMusic15/es.md
  • comfyui_embedded_docs/docs/SoniloMusic15/fa.md
  • comfyui_embedded_docs/docs/SoniloMusic15/fr.md
  • comfyui_embedded_docs/docs/SoniloMusic15/he.md
  • comfyui_embedded_docs/docs/SoniloMusic15/it.md
  • comfyui_embedded_docs/docs/SoniloMusic15/ja.md
  • comfyui_embedded_docs/docs/SoniloMusic15/ko.md
  • comfyui_embedded_docs/docs/SoniloMusic15/pt-BR.md
  • comfyui_embedded_docs/docs/SoniloMusic15/ru.md
  • comfyui_embedded_docs/docs/SoniloMusic15/tr.md
  • comfyui_embedded_docs/docs/SoniloMusic15/zh-TW.md
  • comfyui_embedded_docs/docs/SoniloMusic15/zh.md
  • comfyui_embedded_docs/docs/TextGenerate/ar.md
  • comfyui_embedded_docs/docs/TextGenerate/de.md
  • comfyui_embedded_docs/docs/TextGenerate/en.md
  • comfyui_embedded_docs/docs/TextGenerate/es.md
  • comfyui_embedded_docs/docs/TextGenerate/fa.md
  • comfyui_embedded_docs/docs/TextGenerate/fr.md
  • comfyui_embedded_docs/docs/TextGenerate/he.md
  • comfyui_embedded_docs/docs/TextGenerate/it.md
  • comfyui_embedded_docs/docs/TextGenerate/ja.md
  • comfyui_embedded_docs/docs/TextGenerate/ko.md
  • comfyui_embedded_docs/docs/TextGenerate/pt-BR.md
  • comfyui_embedded_docs/docs/TextGenerate/ru.md
  • comfyui_embedded_docs/docs/TextGenerate/tr.md
  • comfyui_embedded_docs/docs/TextGenerate/zh-TW.md
  • comfyui_embedded_docs/docs/TextGenerate/zh.md
  • comfyui_embedded_docs/docs/TextGenerateV2/ar.md
  • comfyui_embedded_docs/docs/TextGenerateV2/de.md
  • comfyui_embedded_docs/docs/TextGenerateV2/en.md
  • comfyui_embedded_docs/docs/TextGenerateV2/es.md
  • comfyui_embedded_docs/docs/TextGenerateV2/fa.md
  • comfyui_embedded_docs/docs/TextGenerateV2/fr.md
  • comfyui_embedded_docs/docs/TextGenerateV2/he.md
  • comfyui_embedded_docs/docs/TextGenerateV2/it.md
  • comfyui_embedded_docs/docs/TextGenerateV2/ja.md
  • comfyui_embedded_docs/docs/TextGenerateV2/ko.md
  • comfyui_embedded_docs/docs/TextGenerateV2/pt-BR.md
  • comfyui_embedded_docs/docs/TextGenerateV2/ru.md
  • comfyui_embedded_docs/docs/TextGenerateV2/tr.md
  • comfyui_embedded_docs/docs/TextGenerateV2/zh-TW.md
  • comfyui_embedded_docs/docs/TextGenerateV2/zh.md
  • comfyui_embedded_docs/docs/TopazImageEnhanceV2/ar.md
  • comfyui_embedded_docs/docs/TopazImageEnhanceV2/de.md
  • comfyui_embedded_docs/docs/TopazImageEnhanceV2/en.md
  • comfyui_embedded_docs/docs/TopazImageEnhanceV2/es.md
  • comfyui_embedded_docs/docs/TopazImageEnhanceV2/fa.md
  • comfyui_embedded_docs/docs/TopazImageEnhanceV2/fr.md
  • comfyui_embedded_docs/docs/TopazImageEnhanceV2/he.md
  • comfyui_embedded_docs/docs/TopazImageEnhanceV2/it.md
  • comfyui_embedded_docs/docs/TopazImageEnhanceV2/ja.md
  • comfyui_embedded_docs/docs/TopazImageEnhanceV2/ko.md
  • comfyui_embedded_docs/docs/TopazImageEnhanceV2/pt-BR.md
  • comfyui_embedded_docs/docs/TopazImageEnhanceV2/ru.md
  • comfyui_embedded_docs/docs/TopazImageEnhanceV2/tr.md
  • comfyui_embedded_docs/docs/TopazImageEnhanceV2/zh-TW.md
  • comfyui_embedded_docs/docs/TopazImageEnhanceV2/zh.md
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

…g size rows

The width/height widgets only carry step=32; the node does not round the value
(latent dimensions are width//16), so the sentence was wrong in all 15 locales.
execute() raises when the aspect-preserving result exceeds 179 megapixels or
32000 pixels per side, so the width/height rows now say so in all 15 locales
(CodeRabbit finding on Comfy-Org/docs#2235).
@comfyui-wiki
comfyui-wiki merged commit 97d61bc into Comfy-Org:main Nov 4, 2026
7 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Nov 4, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants