Skip to content

fix(api-nodes): Tencent TextToModel and ImageToModel nodes#12680

Open
bigcat88 wants to merge 3 commits intomasterfrom
fix/api-nodes/tencent3d
Open

fix(api-nodes): Tencent TextToModel and ImageToModel nodes#12680
bigcat88 wants to merge 3 commits intomasterfrom
fix/api-nodes/tencent3d

Conversation

@bigcat88
Copy link
Contributor

@bigcat88 bigcat88 commented Feb 27, 2026

  • Added "texture_image" output to TencentTextToModel and TencentImageToModel nodes.
  • Fixed OBJ output when it is zipped

API Node PR Checklist

Scope

  • Is API Node Change

Pricing & Billing

  • Need pricing update
  • No pricing update

If Need pricing update:

  • Metronome rate cards updated
  • Auto‑billing tests updated and passing

QA

  • QA done
  • QA not required

Comms

  • Informed Kosinkadink

@coderabbitai
Copy link

coderabbitai bot commented Feb 27, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 8bbfd132-e622-4679-9733-c8bdcfe8e382

📥 Commits

Reviewing files that changed from the base of the PR and between c86ff0a and e2096c2.

📒 Files selected for processing (1)
  • comfy_api_nodes/nodes_hunyuan3d.py

📝 Walkthrough

Walkthrough

Adds ObjZipResult and async def download_and_extract_obj_zip(url: str) to fetch ZIP or raw OBJ payloads, extract the OBJ and map texture images (including metallic, normal, roughness) into an ObjZipResult, and return raw OBJ data when payload is not a ZIP. Imports zipfile, BytesIO, torch and utilities like bytesio_to_image_tensor/download_url_to_bytesio. Node schemas updated to expose texture_image on TencentTextToModelNode and TencentImageToModelNode; Tencent3DTextureEditNode now exposes texture_image, optional_metallic, optional_normal, optional_roughness and is added to the extension node list. Execution paths now use the new helper and pass extracted maps through (or default them) in GLB/OBJ outputs.

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 14.29% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'fix(api-nodes): Tencent TextToModel and ImageToModel nodes' clearly describes the main changes: adding texture_image output and fixing OBJ handling in the Tencent nodes.
Description check ✅ Passed The description is directly related to the changeset, explicitly mentioning the two main changes: adding texture_image output and fixing OBJ zipped output handling.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@comfy_api_nodes/nodes_hunyuan3d.py`:
- Line 59: The iterable in the extension check using a set literal in the
condition (elif any(lower.endswith(ext) for ext in {".png", ".jpg", ".jpeg",
".bmp", ".tiff", ".webp"})) is causing a lint error; change the set literal to a
sequence type (e.g., a tuple or list) so the generator iterates over a stable
sequence — update that line to use (" .png", ".jpg", ".jpeg", ".bmp", ".tiff",
".webp") or similar (referencing the same variable 'lower' and the
any(...endswith(ext)...) check) to fix pylint C0208.

ℹ️ Review info

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0a7f8e1 and 0eb33b5.

📒 Files selected for processing (1)
  • comfy_api_nodes/nodes_hunyuan3d.py

@bigcat88 bigcat88 force-pushed the fix/api-nodes/tencent3d branch from 0eb33b5 to c86ff0a Compare February 27, 2026 16:56
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@comfy_api_nodes/nodes_hunyuan3d.py`:
- Around line 54-60: The ZIP extraction loop using zipfile.ZipFile can crash or
exhaust memory: before calling zf.read(name) for either the .obj (obj_bytes) or
textures (BytesIO(...)), check the entry size via zf.getinfo(name).file_size and
enforce an explicit max size (reject or skip entries exceeding the limit); when
decoding textures call bytesio_to_image_tensor inside a try/except and on
failure log/skip the texture and leave texture_tensor as None (so the optional
texture output can fail gracefully) — adjust code around zipfile.ZipFile, the
loop over zf.namelist(), and the variables obj_bytes, texture_tensor, BytesIO,
and bytesio_to_image_tensor accordingly.

ℹ️ Review info

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0eb33b5 and c86ff0a.

📒 Files selected for processing (1)
  • comfy_api_nodes/nodes_hunyuan3d.py

@bigcat88 bigcat88 marked this pull request as draft February 27, 2026 17:13
@bigcat88 bigcat88 force-pushed the fix/api-nodes/tencent3d branch from 4dccc18 to b520528 Compare February 28, 2026 09:56
@bigcat88 bigcat88 force-pushed the fix/api-nodes/tencent3d branch from b520528 to 1ea727b Compare March 9, 2026 08:43
@bigcat88 bigcat88 marked this pull request as ready for review March 9, 2026 16:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant