Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,5 @@ dist
*.env.local

# Doc automation outputs
/doc_automation
/doc_automation
.claude/
32 changes: 32 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,38 @@ The publishing workflow:
1. Builds the package using `python -m build`
2. Publishes to PyPI using the configured PYPI_TOKEN secret

## Syncing to Comfy docs

The script `doc_automation/sync_to_comfy_docs.py` syncs embedded-docs (en.md, zh.md, and assets) to the [comfy/docs](https://github.com/Comfy-Org/comfy/tree/main/docs) repository as built-in node MDX files and updates the navigation (`docs.json`).

**Environment variables (optional):**

- `EMBEDDED_DOCS_PATH` – Path to this repo (default: parent of `doc_automation`)
- `COMFYUI_PATH` – Path to the ComfyUI repo (used to read node category from source)
- `TARGET_DOCS` – Path to the comfy/docs root (e.g. `/path/to/comfy/docs`)

**Category mapping:** The sync script uses each node’s ComfyUI category to put it in the right docs.json group. For the most complete categories (including API nodes and nodes that get category from a base class), run the node scanner once so it can write `doc_automation/all_nodes_info.json`; the sync script will prefer that file when present.

```sh
# Optional: run scanner first to build all_nodes_info.json (better category coverage)
python doc_automation/scan_missing_nodes.py
```

**Run from repo root:**

```sh
# Test mode: sync first 10 nodes (dry run: no writes)
python doc_automation/sync_to_comfy_docs.py --mode test --count 10 --dry-run

# Sync all nodes with en.md and update docs.json
python doc_automation/sync_to_comfy_docs.py --mode all

# Sync a single node
python doc_automation/sync_to_comfy_docs.py --node Load3D
```

You can also use the interactive menu: run `python doc_automation/main.py` and choose option **5) 同步到 Comfy 文档 (Sync to Comfy docs)**.

## Linting

To ensure minimal consistency across nodes documentation, it is recommended to follow the Markdown linting principles. Some of the linting issues can be fixed automatically with the shell script below. Note this requires to install `markdownlint-cli`.
Expand Down
28 changes: 28 additions & 0 deletions comfyui_embedded_docs/docs/ByteDance2FirstLastFrameNode/ar.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
> تم إنشاء هذه الوثيقة بواسطة الذكاء الاصطناعي. إذا وجدت أي أخطاء أو لديك اقتراحات للتحسين، فلا تتردد في المساهمة! [تحرير على GitHub](https://github.com/Comfy-Org/embedded-docs/blob/main/comfyui_embedded_docs/docs/ByteDance2FirstLastFrameNode/ar.md)

هذه الوثيقة تم إنشاؤها بواسطة الذكاء الاصطناعي. إذا وجدت أي أخطاء أو لديك اقتراحات للتحسين، فلا تتردد في المساهمة! [تحرير على GitHub](https://github.com/Comfy-Org/embedded-docs/blob/main/comfyui_embedded_docs/docs/ByteDance2FirstLastFrameNode/en.md)

تستخدم هذه العقدة نموذج Seedance 2.0 من ByteDance لإنشاء فيديو. يتم إنشاء الفيديو بناءً على موجه نصي وصورة إطار أول مطلوبة. يمكنك اختياريًا توفير صورة إطار أخير لتوجيه نهاية تسلسل الفيديو.

## المدخلات

| المعامل | نوع البيانات | إلزامي | النطاق | الوصف |
|-----------|-----------|----------|-------|-------------|
| `model` | COMBO | نعم | `"Seedance 2.0"`<br>`"Seedance 2.0 Fast"` | النموذج المستخدم لإنشاء الفيديو. Seedance 2.0 مخصص لأقصى جودة، بينما Seedance 2.0 Fast محسّن للسرعة. سيؤدي اختيار نموذج إلى الكشف عن مدخلات إضافية لـ `prompt` و `resolution` و `ratio` و `duration` و `generate_audio`. |
| `first_frame` | IMAGE | لا | - | الصورة التي سيتم استخدامها كإطار أول للفيديو. |
| `last_frame` | IMAGE | لا | - | الصورة التي سيتم استخدامها كإطار أخير للفيديو. |
| `first_frame_asset_id` | STRING | لا | - | معرف أصل Seedance لاستخدامه كإطار أول. لا يمكن استخدامه في نفس وقت استخدام مدخل الصورة `first_frame`. القيمة الافتراضية هي سلسلة فارغة. |
| `last_frame_asset_id` | STRING | لا | - | معرف أصل Seedance لاستخدامه كإطار أخير. لا يمكن استخدامه في نفس وقت استخدام مدخل الصورة `last_frame`. القيمة الافتراضية هي سلسلة فارغة. |
| `seed` | INT | لا | 0 إلى 2147483647 | قيمة بذرة. تغيير هذه البذرة سيؤدي إلى إعادة تشغيل العقدة، لكن النتائج غير حتمية. القيمة الافتراضية هي 0. |
| `watermark` | BOOLEAN | لا | - | ما إذا كان سيتم إضافة علامة مائية إلى الفيديو المُنشأ. القيمة الافتراضية هي False. |

**قيود المعاملات:**
* يجب عليك توفير **إما** صورة `first_frame` **أو** `first_frame_asset_id`. توفير كليهما سيؤدي إلى حدوث خطأ.
* لا يمكنك توفير كل من صورة `last_frame` و `last_frame_asset_id` لنفس الإطار.
* مدخل `model` هو قائمة منسدلة ديناميكية. بعد اختيار نموذج، يجب عليك أيضًا ملء حقل `prompt` الظاهر (وصف نصي) وتكوين المعاملات الأخرى الظاهرة (`resolution`، `ratio`، `duration`، `generate_audio`).

## المخرجات

| اسم المخرج | نوع البيانات | الوصف |
|-------------|-----------|-------------|
| `output` | VIDEO | الفيديو المُنشأ. |
26 changes: 26 additions & 0 deletions comfyui_embedded_docs/docs/ByteDance2FirstLastFrameNode/en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
> This documentation was AI-generated. If you find any errors or have suggestions for improvement, please feel free to contribute! [Edit on GitHub](https://github.com/Comfy-Org/embedded-docs/blob/main/comfyui_embedded_docs/docs/ByteDance2FirstLastFrameNode/en.md)

This node uses ByteDance's Seedance 2.0 model to generate a video. It creates the video based on a text prompt and a required first frame image. You can optionally provide a last frame image to guide the ending of the video sequence.

## Inputs

| Parameter | Data Type | Required | Range | Description |
|-----------|-----------|----------|-------|-------------|
| `model` | COMBO | Yes | `"Seedance 2.0"`<br>`"Seedance 2.0 Fast"` | The model to use for video generation. Seedance 2.0 is for maximum quality, while Seedance 2.0 Fast is optimized for speed. Selecting a model will reveal additional inputs for `prompt`, `resolution`, `ratio`, `duration`, and `generate_audio`. |
| `first_frame` | IMAGE | No | - | The image to use as the first frame of the video. |
| `last_frame` | IMAGE | No | - | The image to use as the last frame of the video. |
| `first_frame_asset_id` | STRING | No | - | A Seedance asset_id to use as the first frame. This cannot be used at the same time as the `first_frame` image input. Default is an empty string. |
| `last_frame_asset_id` | STRING | No | - | A Seedance asset_id to use as the last frame. This cannot be used at the same time as the `last_frame` image input. Default is an empty string. |
| `seed` | INT | No | 0 to 2147483647 | A seed value. Changing this seed will cause the node to re-run, but the results are non-deterministic. Default is 0. |
| `watermark` | BOOLEAN | No | - | Whether to add a watermark to the generated video. Default is False. |

**Parameter Constraints:**
* You must provide **either** a `first_frame` image **or** a `first_frame_asset_id`. Providing both will cause an error.
* You cannot provide both a `last_frame` image and a `last_frame_asset_id` for the same frame.
* The `model` input is a dynamic combo. After selecting a model, you must also fill in the revealed `prompt` field (a text description) and configure the other revealed parameters (`resolution`, `ratio`, `duration`, `generate_audio`).

## Outputs

| Output Name | Data Type | Description |
|-------------|-----------|-------------|
| `output` | VIDEO | The generated video. |
26 changes: 26 additions & 0 deletions comfyui_embedded_docs/docs/ByteDance2FirstLastFrameNode/es.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
> Esta documentación fue generada por IA. Si encuentra algún error o tiene sugerencias de mejora, ¡no dude en contribuir! [Editar en GitHub](https://github.com/Comfy-Org/embedded-docs/blob/main/comfyui_embedded_docs/docs/ByteDance2FirstLastFrameNode/es.md)

Este nodo utiliza el modelo Seedance 2.0 de ByteDance para generar un vídeo. Crea el vídeo basándose en un texto descriptivo (prompt) y en una imagen de primer fotograma obligatoria. Opcionalmente, se puede proporcionar una imagen de último fotograma para guiar el final de la secuencia de vídeo.

## Entradas

| Parámetro | Tipo de Dato | Obligatorio | Rango | Descripción |
|-----------|-----------|----------|-------|-------------|
| `model` | COMBO | Sí | `"Seedance 2.0"`<br>`"Seedance 2.0 Fast"` | El modelo a utilizar para la generación de vídeo. Seedance 2.0 es para la máxima calidad, mientras que Seedance 2.0 Fast está optimizado para velocidad. Al seleccionar un modelo, se revelarán entradas adicionales para `prompt`, `resolution`, `ratio`, `duration` y `generate_audio`. |
| `first_frame` | IMAGE | No | - | La imagen a utilizar como primer fotograma del vídeo. |
| `last_frame` | IMAGE | No | - | La imagen a utilizar como último fotograma del vídeo. |
| `first_frame_asset_id` | STRING | No | - | Un asset_id de Seedance para usar como primer fotograma. No se puede utilizar al mismo tiempo que la entrada de imagen `first_frame`. El valor por defecto es una cadena vacía. |
| `last_frame_asset_id` | STRING | No | - | Un asset_id de Seedance para usar como último fotograma. No se puede utilizar al mismo tiempo que la entrada de imagen `last_frame`. El valor por defecto es una cadena vacía. |
| `seed` | INT | No | 0 a 2147483647 | Un valor de semilla. Cambiar esta semilla hará que el nodo se vuelva a ejecutar, pero los resultados no son deterministas. El valor por defecto es 0. |
| `watermark` | BOOLEAN | No | - | Indica si se debe añadir una marca de agua al vídeo generado. El valor por defecto es Falso. |

**Restricciones de Parámetros:**
* Debes proporcionar **ya sea** una imagen `first_frame` **o** un `first_frame_asset_id`. Proporcionar ambos causará un error.
* No puedes proporcionar tanto una imagen `last_frame` como un `last_frame_asset_id` para el mismo fotograma.
* La entrada `model` es un combo dinámico. Después de seleccionar un modelo, también debes completar el campo `prompt` que se revela (una descripción de texto) y configurar los otros parámetros revelados (`resolution`, `ratio`, `duration`, `generate_audio`).

## Salidas

| Nombre de Salida | Tipo de Dato | Descripción |
|-------------|-----------|-------------|
| `output` | VIDEO | El vídeo generado. |
26 changes: 26 additions & 0 deletions comfyui_embedded_docs/docs/ByteDance2FirstLastFrameNode/fr.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
> Cette documentation a été générée par IA. Si vous trouvez des erreurs ou avez des suggestions d'amélioration, n'hésitez pas à contribuer ! [Modifier sur GitHub](https://github.com/Comfy-Org/embedded-docs/blob/main/comfyui_embedded_docs/docs/ByteDance2FirstLastFrameNode/fr.md)

Ce nœud utilise le modèle Seedance 2.0 de ByteDance pour générer une vidéo. Il crée la vidéo à partir d'une description textuelle et d'une image de première frame obligatoire. Vous pouvez optionnellement fournir une image de dernière frame pour guider la fin de la séquence vidéo.

## Entrées

| Paramètre | Type de données | Requis | Plage | Description |
|-----------|-----------|----------|-------|-------------|
| `model` | COMBO | Oui | `"Seedance 2.0"`<br>`"Seedance 2.0 Fast"` | Le modèle à utiliser pour la génération vidéo. Seedance 2.0 est pour une qualité maximale, tandis que Seedance 2.0 Fast est optimisé pour la vitesse. La sélection d'un modèle révélera des entrées supplémentaires pour `prompt`, `resolution`, `ratio`, `duration`, et `generate_audio`. |
| `first_frame` | IMAGE | Non | - | L'image à utiliser comme première frame de la vidéo. |
| `last_frame` | IMAGE | Non | - | L'image à utiliser comme dernière frame de la vidéo. |
| `first_frame_asset_id` | STRING | Non | - | Un asset_id Seedance à utiliser comme première frame. Ceci ne peut pas être utilisé en même temps que l'entrée d'image `first_frame`. La valeur par défaut est une chaîne vide. |
| `last_frame_asset_id` | STRING | Non | - | Un asset_id Seedance à utiliser comme dernière frame. Ceci ne peut pas être utilisé en même temps que l'entrée d'image `last_frame`. La valeur par défaut est une chaîne vide. |
| `seed` | INT | Non | 0 à 2147483647 | Une valeur de seed. Changer cette seed forcera le nœud à se ré-exécuter, mais les résultats ne sont pas déterministes. La valeur par défaut est 0. |
| `watermark` | BOOLEAN | Non | - | Indique s'il faut ajouter un filigrane à la vidéo générée. La valeur par défaut est Faux. |

**Contraintes des paramètres :**
* Vous devez fournir **soit** une image `first_frame` **soit** un `first_frame_asset_id`. Fournir les deux provoquera une erreur.
* Vous ne pouvez pas fournir à la fois une image `last_frame` et un `last_frame_asset_id` pour la même frame.
* L'entrée `model` est un combo dynamique. Après avoir sélectionné un modèle, vous devez également remplir le champ `prompt` révélé (une description textuelle) et configurer les autres paramètres révélés (`resolution`, `ratio`, `duration`, `generate_audio`).

## Sorties

| Nom de la sortie | Type de données | Description |
|-------------|-----------|-------------|
| `output` | VIDEO | La vidéo générée. |
26 changes: 26 additions & 0 deletions comfyui_embedded_docs/docs/ByteDance2FirstLastFrameNode/ja.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
> このドキュメントは AI によって生成されました。エラーを見つけた場合や改善のご提案がある場合は、ぜひ貢献してください! [GitHub で編集](https://github.com/Comfy-Org/embedded-docs/blob/main/comfyui_embedded_docs/docs/ByteDance2FirstLastFrameNode/ja.md)

このノードは、ByteDanceのSeedance 2.0モデルを使用して動画を生成します。テキストプロンプトと必須の最初のフレーム画像に基づいて動画を作成します。オプションで最後のフレーム画像を指定することで、動画シーケンスの終了をガイドできます。

## 入力

| パラメータ | データ型 | 必須 | 範囲 | 説明 |
|-----------|-----------|----------|-------|-------------|
| `model` | COMBO | はい | `"Seedance 2.0"`<br>`"Seedance 2.0 Fast"` | 動画生成に使用するモデルです。Seedance 2.0は最高品質を追求し、Seedance 2.0 Fastは速度を最適化しています。モデルを選択すると、`prompt`、`resolution`、`ratio`、`duration`、`generate_audio`の追加入力項目が表示されます。 |
| `first_frame` | IMAGE | いいえ | - | 動画の最初のフレームとして使用する画像です。 |
| `last_frame` | IMAGE | いいえ | - | 動画の最後のフレームとして使用する画像です。 |
| `first_frame_asset_id` | STRING | いいえ | - | 最初のフレームとして使用するSeedanceのasset_idです。`first_frame`画像入力と同時に使用することはできません。デフォルトは空の文字列です。 |
| `last_frame_asset_id` | STRING | いいえ | - | 最後のフレームとして使用するSeedanceのasset_idです。`last_frame`画像入力と同時に使用することはできません。デフォルトは空の文字列です。 |
| `seed` | INT | いいえ | 0~2147483647 | シード値です。このシードを変更するとノードが再実行されますが、結果は非決定的です。デフォルトは0です。 |
| `watermark` | BOOLEAN | いいえ | - | 生成された動画に透かしを追加するかどうかです。デフォルトはFalseです。 |

**パラメータの制約:**
* `first_frame`画像**または**`first_frame_asset_id`の**いずれか**を指定する必要があります。両方を指定するとエラーが発生します。
* 同じフレームに対して`last_frame`画像と`last_frame_asset_id`の両方を指定することはできません。
* `model`入力は動的なコンボボックスです。モデルを選択した後、表示された`prompt`フィールド(テキストによる説明)を入力し、その他の表示されたパラメータ(`resolution`、`ratio`、`duration`、`generate_audio`)を設定する必要があります。

## 出力

| 出力名 | データ型 | 説明 |
|-------------|-----------|-------------|
| `output` | VIDEO | 生成された動画です。 |
28 changes: 28 additions & 0 deletions comfyui_embedded_docs/docs/ByteDance2FirstLastFrameNode/ko.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
> 이 문서는 AI에 의해 생성되었습니다. 오류를 발견하거나 개선 제안이 있으시면 기여해 주세요! [GitHub에서 편집](https://github.com/Comfy-Org/embedded-docs/blob/main/comfyui_embedded_docs/docs/ByteDance2FirstLastFrameNode/ko.md)

이 문서는 AI가 생성했습니다. 오류를 발견하거나 개선 제안이 있으시면 언제든지 기여해 주세요! [GitHub에서 편집](https://github.com/Comfy-Org/embedded-docs/blob/main/comfyui_embedded_docs/docs/ByteDance2FirstLastFrameNode/en.md)

이 노드는 ByteDance의 Seedance 2.0 모델을 사용하여 비디오를 생성합니다. 텍스트 프롬프트와 필수 첫 번째 프레임 이미지를 기반으로 비디오를 만듭니다. 선택적으로 마지막 프레임 이미지를 제공하여 비디오 시퀀스의 종료를 안내할 수 있습니다.

## 입력

| 매개변수 | 데이터 타입 | 필수 여부 | 범위 | 설명 |
|-----------|-----------|----------|-------|-------------|
| `model` | COMBO | 예 | `"Seedance 2.0"`<br>`"Seedance 2.0 Fast"` | 비디오 생성에 사용할 모델입니다. Seedance 2.0은 최고 품질을 위한 모델이며, Seedance 2.0 Fast는 속도에 최적화된 모델입니다. 모델을 선택하면 `prompt`, `resolution`, `ratio`, `duration`, `generate_audio`에 대한 추가 입력이 표시됩니다. |
| `first_frame` | IMAGE | 아니요 | - | 비디오의 첫 번째 프레임으로 사용할 이미지입니다. |
| `last_frame` | IMAGE | 아니요 | - | 비디오의 마지막 프레임으로 사용할 이미지입니다. |
| `first_frame_asset_id` | STRING | 아니요 | - | 첫 번째 프레임으로 사용할 Seedance asset_id입니다. `first_frame` 이미지 입력과 동시에 사용할 수 없습니다. 기본값은 빈 문자열입니다. |
| `last_frame_asset_id` | STRING | 아니요 | - | 마지막 프레임으로 사용할 Seedance asset_id입니다. `last_frame` 이미지 입력과 동시에 사용할 수 없습니다. 기본값은 빈 문자열입니다. |
| `seed` | INT | 아니요 | 0 ~ 2147483647 | 시드 값입니다. 이 시드를 변경하면 노드가 다시 실행되지만 결과는 비결정적입니다. 기본값은 0입니다. |
| `watermark` | BOOLEAN | 아니요 | - | 생성된 비디오에 워터마크를 추가할지 여부입니다. 기본값은 False입니다. |

**매개변수 제약 조건:**
* `first_frame` 이미지 **또는** `first_frame_asset_id` 중 **하나**를 반드시 제공해야 합니다. 둘 다 제공하면 오류가 발생합니다.
* 동일한 프레임에 대해 `last_frame` 이미지와 `last_frame_asset_id`를 모두 제공할 수 없습니다.
* `model` 입력은 동적 콤보입니다. 모델을 선택한 후에는 표시된 `prompt` 필드(텍스트 설명)를 반드시 입력하고 다른 표시된 매개변수(`resolution`, `ratio`, `duration`, `generate_audio`)를 구성해야 합니다.

## 출력

| 출력 이름 | 데이터 타입 | 설명 |
|-------------|-----------|-------------|
| `output` | VIDEO | 생성된 비디오입니다. |
Loading
Loading