Skip to content

feat(api-nodes): add Reve Image nodes#12848

Open
bigcat88 wants to merge 2 commits intomasterfrom
feat/api-nodes/reve-image
Open

feat(api-nodes): add Reve Image nodes#12848
bigcat88 wants to merge 2 commits intomasterfrom
feat/api-nodes/reve-image

Conversation

@bigcat88
Copy link
Contributor

@bigcat88 bigcat88 commented Mar 9, 2026

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

@bigcat88 bigcat88 force-pushed the feat/api-nodes/reve-image branch from 3891921 to 46e81bd Compare March 10, 2026 11:12
@bigcat88 bigcat88 force-pushed the feat/api-nodes/reve-image branch from 46e81bd to 710a65f Compare March 10, 2026 11:50
@bigcat88 bigcat88 marked this pull request as ready for review March 10, 2026 13:31
@coderabbitai
Copy link

coderabbitai bot commented Mar 10, 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: c7b3cf9a-2f37-4685-bc6e-86249db4e41c

📥 Commits

Reviewing files that changed from the base of the PR and between 710a65f and c0dbfed.

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

📝 Walkthrough

Walkthrough

Adds a new Reve API integration module comfy_api_nodes/nodes_reve.py providing three ComfyNode classes—ReveImageCreateNode, ReveImageEditNode, ReveImageRemixNode—with define_schema and execute implementations for create/edit/remix image operations, postprocessing construction, model/aspect selection, seed handling, and binary-to-image conversion. Includes helpers (_build_postprocessing, _postprocessing_inputs, _reve_price_extractor, _reve_response_header_validator, _model_inputs), a ReveExtension registering the nodes, and comfy_entrypoint(). Updates comfy_api_nodes/util/client.py to accept and propagate an optional response_header_validator callback and to collect/forward response headers for price extraction and validation.

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 13.33% 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 clearly summarizes the main change: adding new Reve Image nodes to the API nodes module.
Description check ✅ Passed The description is related to the changeset, providing an API Node PR checklist with pricing and billing confirmations relevant to the node addition.

✏️ 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: 2

🤖 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_reve.py`:
- Around line 162-179: The Reve proxy requests are sending sensitive data
(prompts, base64 uploads, image bytes) through sync_op_raw which logs
request/response payloads; modify the calls using sync_op_raw (e.g., the calls
that pass ApiEndpoint and ReveImageCreateRequest in the image create flow and
the similar blocks around the other mentions) to use a redaction/no-payload
logging path: either pass a flag/option to sync_op_raw to disable body/response
logging for these endpoints or create a wrapper that strips or replaces
sensitive fields (prompt, uploaded image data, any base64 fields, and binary
responses) before the logging step; update the calls that build the request
payload (ReveImageCreateRequest and _build_postprocessing) to provide a
sanitized version to the logger while still sending the full payload to the
network layer.

In `@comfy_api_nodes/util/client.py`:
- Around line 776-781: The code converts resp.headers to a plain dict
(resp_headers = dict(resp.headers)) which loses case-insensitive lookup; instead
pass the original resp.headers (the CIMultiDictProxy) to the callbacks so
cfg.price_extractor and cfg.response_header_validator can do case-insensitive
.get lookups. Replace the dict(...) conversion and pass resp.headers (or wrap
with multidict.CIMultiDict if you must) to the calls to cfg.price_extractor and
cfg.response_header_validator so header lookups like
headers.get("x-reve-credits-used") work regardless of header casing.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 88fbe532-856c-4a60-bee0-5d7fc190668d

📥 Commits

Reviewing files that changed from the base of the PR and between 535c16c and 710a65f.

⛔ Files ignored due to path filters (1)
  • comfy_api_nodes/apis/reve.py is excluded by !comfy_api_nodes/apis/**
📒 Files selected for processing (2)
  • comfy_api_nodes/nodes_reve.py
  • comfy_api_nodes/util/client.py

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.

2 participants