Skip to content

[Partner Nodes] feat(ByteDance): add Seedance 2.0 Mini model#14625

Closed
marawan206 wants to merge 1 commit into
masterfrom
feat/api-nodes/seedance-mini
Closed

[Partner Nodes] feat(ByteDance): add Seedance 2.0 Mini model#14625
marawan206 wants to merge 1 commit into
masterfrom
feat/api-nodes/seedance-mini

Conversation

@marawan206

@marawan206 marawan206 commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Adds Seedance 2.0 Mini (dreamina-seedance-2-0-mini) as a model option on the Seedance 2.0 Text-to-Video, First-Last-Frame, and Reference nodes. Mini supports 480p and 720p.

Closing this PR; superseded.

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

coderabbitai Bot commented Jun 25, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: f8fbe944-fb84-42b0-b48d-ab1e1c1d711b

📥 Commits

Reviewing files that changed from the base of the PR and between 415ecca and ecd5ba9.

⛔ Files ignored due to path filters (1)
  • comfy_api_nodes/apis/bytedance.py is excluded by !comfy_api_nodes/apis/**
📒 Files selected for processing (1)
  • comfy_api_nodes/nodes_bytedance.py

📝 Walkthrough

Walkthrough

Seedance 2.0 Mini was added to the shared model mapping and exposed as a selectable model in the TextToVideo, FirstLastFrame, and Reference node schemas. The tooltip text for those nodes was updated to mention the Mini tier. Pricing badge expressions were updated for TextToVideo and FirstLastFrame with Mini-specific resolution-based pricing, and Reference pricing was updated with Mini-aware no-video and video pricing plus a different minimum video factor.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 20.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and accurately highlights the main change: adding the Seedance 2.0 Mini model.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description check ✅ Passed The description matches the PR changes by adding Seedance 2.0 Mini support across the affected nodes and notes its resolution limits.

✏️ 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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

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 current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@comfy_api_nodes/nodes_bytedance.py`:
- Around line 1670-1671: The PriceBadge JSONata logic is checking for "Mini"
with a capital M even though widgets.model is lowercased before evaluation, so
the Mini branches in the pricing/min-factor expressions are never reached.
Update the relevant JSONata conditions in the PriceBadge expressions (the ones
using $contains($m, "Mini") in the affected node definitions) to use the
lowercase model form consistently, and make the same correction anywhere else in
the same pricing logic where Mini is matched.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 9709d245-98fe-418e-9514-3345c060fe7d

📥 Commits

Reviewing files that changed from the base of the PR and between b0ec198 and 3320429.

⛔ Files ignored due to path filters (1)
  • comfy_api_nodes/apis/bytedance.py is excluded by !comfy_api_nodes/apis/**
📒 Files selected for processing (1)
  • comfy_api_nodes/nodes_bytedance.py

Comment thread comfy_api_nodes/nodes_bytedance.py Outdated
Comment on lines +1670 to +1671
$pricePer1K := $contains($m, "Mini") ? ($res = "720p" ? 0.005291 : 0.00572) :
$res = "4k" ? 0.00572 :

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Use lowercase match for Mini in JSONata branches.

At Line 1670, Line 1811, and Line 2087/2091/2100, $contains($m, "Mini") likely never matches because widgets.model is lowercased before JSONata evaluation. That causes Mini to fall through to non-Mini pricing/min-factor logic and shows incorrect price badges.

Proposed fix
-                  $pricePer1K := $contains($m, "Mini") ? ($res = "720p" ? 0.005291 : 0.00572) :
+                  $pricePer1K := $contains($m, "mini") ? ($res = "720p" ? 0.005291 : 0.00572) :
...
-                  $pricePer1K := $contains($m, "Mini") ? ($res = "720p" ? 0.005291 : 0.00572) :
+                  $pricePer1K := $contains($m, "mini") ? ($res = "720p" ? 0.005291 : 0.00572) :
...
-                  $noVideoPricePer1K := $contains($m, "Mini") ? ($res = "720p" ? 0.005291 : 0.00572) :
+                  $noVideoPricePer1K := $contains($m, "mini") ? ($res = "720p" ? 0.005291 : 0.00572) :
...
-                  $videoPricePer1K := $contains($m, "Mini") ? 0.002717 :
+                  $videoPricePer1K := $contains($m, "mini") ? 0.002717 :
...
-                  $minVideoFactor := $contains($m, "Mini") ? (3 + $dur) : $ceil($dur * 5 / 3);
+                  $minVideoFactor := $contains($m, "mini") ? (3 + $dur) : $ceil($dur * 5 / 3);

Based on learnings: in comfy_api_nodes/, PriceBadge JSONata widget values are auto-lowercased by the frontend, so checks should use lowercase forms.

Also applies to: 1811-1812, 2087-2100

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@comfy_api_nodes/nodes_bytedance.py` around lines 1670 - 1671, The PriceBadge
JSONata logic is checking for "Mini" with a capital M even though widgets.model
is lowercased before evaluation, so the Mini branches in the pricing/min-factor
expressions are never reached. Update the relevant JSONata conditions in the
PriceBadge expressions (the ones using $contains($m, "Mini") in the affected
node definitions) to use the lowercase model form consistently, and make the
same correction anywhere else in the same pricing logic where Mini is matched.

Source: Learnings

alexisrolland
alexisrolland previously approved these changes Jun 25, 2026
@marawan206

Copy link
Copy Markdown
Contributor Author

Closing — superseded; will be re-submitted.

@marawan206 marawan206 closed this Jun 25, 2026
@marawan206 marawan206 deleted the feat/api-nodes/seedance-mini branch June 25, 2026 07:06
Adds the dreamina-seedance-2-0-mini endpoint as a "Seedance 2.0 Mini"
option on the Seedance 2.0 Text-to-Video, First-Last-Frame, and Reference
nodes. Mini supports 480p and 720p.
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