diff --git a/development/comfyui-server/startup-flags.mdx b/development/comfyui-server/startup-flags.mdx index 200add972..0d3515412 100644 --- a/development/comfyui-server/startup-flags.mdx +++ b/development/comfyui-server/startup-flags.mdx @@ -199,7 +199,7 @@ See the [UNET precision](#unet-precision) section for the explanation of each FP | `--async-offload` `[NUM_STREAMS]` | enabled on Nvidia | Async weight offloading. Optional stream count (default: 2). | | `--disable-async-offload` | — | Disable async weight offloading. | | `--disable-dynamic-vram` | — | Disable dynamic VRAM; use estimate-based model loading. | -| `--enable-dynamic-vram` | auto on Nvidia | Enable dynamic VRAM on systems where it is not enabled by default. | +| `--enable-dynamic-vram` | auto on Nvidia, ROCm 7.14+ | Enable dynamic VRAM on systems where it is not enabled by default. | | `--fast-disk` | disabled | Prefer disk-backed dynamic loading over unpinned RAM. Useful with fast NVMe. | | `--force-non-blocking` | disabled | Force non-blocking tensor operations. May help on non-Nvidia systems; can break some workflows. | | `--disable-smart-memory` | disabled | Aggressively offload to RAM instead of keeping models in VRAM. | diff --git a/ja/tutorials/image/qwen/qwen-image-layered.mdx b/ja/tutorials/image/qwen/qwen-image-layered.mdx index b81b385fc..59efd1b13 100644 --- a/ja/tutorials/image/qwen/qwen-image-layered.mdx +++ b/ja/tutorials/image/qwen/qwen-image-layered.mdx @@ -2,14 +2,14 @@ title: "Qwen-Image-Layered ComfyUI ワークフロー例" description: "Qwen-Image-Layered は、画像を複数の RGBA レイヤーに分解できるモデルであり、レイヤー分解を通じて本質的な編集可能性を実現します。" sidebarTitle: "Qwen-Image-Layered" -translationSourceHash: d1bbd90e +translationSourceHash: bf1b0da5 translationFrom: tutorials/image/qwen/qwen-image-layered.mdx translationBlockHashes: "_intro": 19900234 - "Qwen-Image-Layered workflow": 50313ac4 + "Qwen-Image-Layered workflow": 309e8412 "Model links": 053c337d "FP8 version": 6bffdd17 - "Layers and output": 2419fd13 + "Layers and output": 1b020f3c "Workflow settings": 098636f1 --- @@ -87,13 +87,13 @@ import UpdateReminder from '/snippets/ja/tutorials/update-reminder.mdx' | `2`(テンプレートの既定値) | 3 | 完全な画像、続いて 2 枚のレイヤー | | `5` | 6 | 完全な画像、続いて 5 枚のレイヤー | -**最初の画像は完全な画像であり、レイヤーではありません。** 画像からレイヤーへのワークフローでは入力画像を再現したものになるため、レイヤーだけが必要な場合は破棄してください。`layers` には `0` を指定でき、その場合はこの画像だけが得られます。 +**最初の画像は完全な画像であり、レイヤーではありません。** 画像からレイヤーへのワークフローでは、バッチ分割の前に `LatentCut` ノード(`dim` が `t`、`index` が `1`)によって自動的に破棄されるため、テンプレートの出力は `layers` 枚になります。このノードを含まないカスタムグラフを構築する場合は、レイヤーだけが必要なときに最初の画像を破棄してください。`layers` には `0` を指定でき、その場合はこの画像だけが得られます。 **すべてのレイヤーを合成し直すと完全な画像が再現されます。** これは確認に使えます。レイヤーを重ねても最初の画像が再現されない場合、分解は意図したとおりに機能していません。 ### レイヤーが個別の画像になる仕組み -**Empty Qwen Image Layered Latent** ノードは `[batch_size, 16, layers + 1, height // 8, width // 8]` という形状の 5D Latent を確保します。レイヤーは 3 番目の軸に並び、これは映像モデルがフレームを置くのと同じ時間軸です。**LatentCutToBatch** ノードの `dim` を `t` に設定するとその軸がバッチ次元へ移されるため、**VAE Decode** の後は各レイヤーがバッチ内の個別の画像になります。 +**Empty Qwen Image Layered Latent** ノードは `[batch_size, 16, layers + 1, height // 8, width // 8]` という形状の 5D Latent を確保します。レイヤーは 3 番目の軸に並び、これは映像モデルがフレームを置くのと同じ時間軸です。**LatentCutToBatch** ノードの `dim` を `t` に設定するとその軸がバッチ次元へ移されるため、**VAE Decode** の後は各レイヤーがバッチ内の個別の画像になります。テンプレートでは、`LatentCutToBatch` の前に `LatentCut` ノード(`dim` が `t`、`index` が `1`)を挿入して完全画像のエントリを破棄するため、デコード後のバッチにはレイヤーのみが含まれます。 したがって、レイヤーの重なり順はバッチ内のインデックスそのものであり、インデックス 0 の完全な画像から数えます。z-index フィールドも、その順序を保持するレイヤーごとのメタデータも存在しないため、バッチを並べ替えたりフィルタリングしたりすることは、そのままレイヤーの並べ替えになります。 diff --git a/ko/tutorials/image/qwen/qwen-image-layered.mdx b/ko/tutorials/image/qwen/qwen-image-layered.mdx index 7342a5c91..efb28d6b8 100644 --- a/ko/tutorials/image/qwen/qwen-image-layered.mdx +++ b/ko/tutorials/image/qwen/qwen-image-layered.mdx @@ -2,14 +2,14 @@ title: "Qwen-Image-Layered ComfyUI 워크플로우 예시" description: "Qwen-Image-Layered는 이미지를 여러 개의 RGBA 레이어로 분해할 수 있는 모델로, 레이어 분해를 통해 본질적인 편집 가능성을 제공합니다." sidebarTitle: "Qwen-Image-Layered" -translationSourceHash: 1e77344f +translationSourceHash: bf1b0da5 translationFrom: tutorials/image/qwen/qwen-image-layered.mdx translationBlockHashes: "_intro": 19900234 "Qwen-Image-Layered workflow": 309e8412 "Model links": 053c337d "FP8 version": 6bffdd17 - "Layers and output": 2419fd13 + "Layers and output": 1b020f3c "Workflow settings": 098636f1 --- @@ -107,13 +107,13 @@ import UpdateReminder from '/snippets/ko/tutorials/update-reminder.mdx' | `2` (템플릿 기본값) | 3 | 전체 이미지, 그다음 레이어 2개 | | `5` | 6 | 전체 이미지, 그다음 레이어 5개 | -**첫 번째 이미지는 전체 이미지이며 레이어가 아닙니다.** 이미지를 레이어로 분해하는 워크플로우에서는 입력 이미지를 재현한 것이므로, 레이어만 필요하다면 이 이미지는 버리세요. `layers`에는 `0`을 지정할 수 있으며, 이 경우 해당 이미지 하나만 얻게 됩니다. +**첫 번째 이미지는 전체 이미지이며 레이어가 아닙니다.** 이미지를 레이어로 분해하는 워크플로우에서는 배치 분할 전에 `LatentCut` 노드(`dim`은 `t`, `index`는 `1`)가 자동으로 이를 제거하므로, 템플릿은 `layers`개의 이미지를 출력합니다. 해당 노드가 없는 커스텀 그래프를 직접 구성하는 경우, 레이어만 필요하다면 첫 번째 이미지를 버리세요. `layers`에는 `0`을 지정할 수 있으며, 이 경우 해당 이미지 하나만 얻게 됩니다. **모든 레이어를 다시 합성하면 전체 이미지가 재현됩니다.** 이를 검증에 사용하세요. 레이어를 쌓아도 첫 번째 이미지가 재현되지 않는다면 분해가 의도대로 이루어지지 않은 것입니다. ### 레이어가 개별 이미지가 되는 방식 -**Empty Qwen Image Layered Latent** 노드는 `[batch_size, 16, layers + 1, height // 8, width // 8]` 형태의 5D Latent를 할당합니다. 레이어는 세 번째 축에 놓이며, 이는 비디오 모델이 프레임을 두는 것과 같은 시간 축입니다. **LatentCutToBatch** 노드의 `dim`을 `t`로 설정하면 그 축이 배치 차원으로 옮겨지므로, **VAE Decode** 이후 각 레이어는 배치 안의 개별 이미지가 됩니다. +**Empty Qwen Image Layered Latent** 노드는 `[batch_size, 16, layers + 1, height // 8, width // 8]` 형태의 5D Latent를 할당합니다. 레이어는 세 번째 축에 놓이며, 이는 비디오 모델이 프레임을 두는 것과 같은 시간 축입니다. **LatentCutToBatch** 노드의 `dim`을 `t`로 설정하면 그 축이 배치 차원으로 옮겨지므로, **VAE Decode** 이후 각 레이어는 배치 안의 개별 이미지가 됩니다. 템플릿은 `LatentCutToBatch` 앞에 `LatentCut` 노드(`dim`은 `t`, `index`는 `1`)를 삽입하여 전체 이미지 항목을 제거하므로, 디코딩된 배치에는 레이어만 포함됩니다. 따라서 레이어의 쌓임 순서는 배치 안에서의 인덱스 그 자체이며, 인덱스 0의 전체 이미지부터 셉니다. z-index 필드도, 그 순서를 담는 레이어별 메타데이터도 없으므로 배치를 재정렬하거나 걸러내는 것은 곧 레이어를 재정렬하는 것입니다. diff --git a/tutorials/image/qwen/qwen-image-layered.mdx b/tutorials/image/qwen/qwen-image-layered.mdx index 52fd72217..29a0bb21a 100644 --- a/tutorials/image/qwen/qwen-image-layered.mdx +++ b/tutorials/image/qwen/qwen-image-layered.mdx @@ -97,13 +97,13 @@ This model regenerates the full image as well as the layers, so a generation alw | `2` (template default) | 3 | The full image, then 2 layers | | `5` | 6 | The full image, then 5 layers | -**The first image is the full image, not a layer.** In the image to layers workflow it reproduces the input image, so discard it when you only want the layers. `layers` accepts `0`, which gives you that image on its own. +**The first image is the full image, not a layer.** The image to layers workflow drops it automatically with a `LatentCut` node (`dim` `t`, `index` `1`) before the batch split, so the template outputs `layers` images. If you build a custom graph without that node, discard the first image when you only want the layers. `layers` accepts `0`, which gives you that image on its own. **Compositing all of the layers back together recreates the full image.** Use it as a check: if stacking the layers does not reproduce the first image, the decomposition did not do what you wanted. ### How the layers become separate images -The **Empty Qwen Image Layered Latent** node allocates a 5D latent shaped `[batch_size, 16, layers + 1, height // 8, width // 8]`. The layers sit on the third axis, the same temporal axis that video models use for frames. The **LatentCutToBatch** node with `dim` set to `t` moves that axis into the batch dimension, so after **VAE Decode** each layer is a separate image in the batch. +The **Empty Qwen Image Layered Latent** node allocates a 5D latent shaped `[batch_size, 16, layers + 1, height // 8, width // 8]`. The layers sit on the third axis, the same temporal axis that video models use for frames. The **LatentCutToBatch** node with `dim` set to `t` moves that axis into the batch dimension, so after **VAE Decode** each layer is a separate image in the batch. The template inserts a `LatentCut` node (`dim` `t`, `index` `1`) before `LatentCutToBatch` to drop the full-image entry, so the decoded batch contains only the layers. A layer's position in the stack is therefore its index in the batch, counting from the full image at index 0. There is no z-index field and no per-layer metadata carrying that order, so reordering or filtering the batch reorders the layers. diff --git a/zh/tutorials/image/qwen/qwen-image-layered.mdx b/zh/tutorials/image/qwen/qwen-image-layered.mdx index 357b0d4b8..89d9eba7f 100644 --- a/zh/tutorials/image/qwen/qwen-image-layered.mdx +++ b/zh/tutorials/image/qwen/qwen-image-layered.mdx @@ -2,14 +2,14 @@ title: "Qwen-Image-Layered ComfyUI 工作流示例" description: "Qwen-Image-Layered 是一个能够将图像分解为多个 RGBA 图层的模型,通过图层分解实现固有的可编辑性。" sidebarTitle: "Qwen-Image-Layered" -translationSourceHash: 1e77344f +translationSourceHash: bf1b0da5 translationFrom: tutorials/image/qwen/qwen-image-layered.mdx translationBlockHashes: "_intro": 19900234 "Qwen-Image-Layered workflow": 309e8412 "Model links": 053c337d "FP8 version": 6bffdd17 - "Layers and output": 2419fd13 + "Layers and output": 1b020f3c "Workflow settings": 098636f1 --- @@ -107,13 +107,13 @@ import UpdateReminder from '/snippets/zh/tutorials/update-reminder.mdx' | `2`(模板默认值) | 3 | 完整图像,然后是 2 个图层 | | `5` | 6 | 完整图像,然后是 5 个图层 | -**第一张图像是完整图像,而不是图层。** 在图像转图层的工作流中,它重现的是输入图像,因此当你只需要图层时应将其丢弃。`layers` 可以设为 `0`,此时只会得到这一张图像。 +**第一张图像是完整图像,而不是图层。** 图像转图层工作流会在批处理拆分前通过 `LatentCut` 节点(`dim` 为 `t`、`index` 为 `1`)自动将其丢弃,因此模板输出的是 `layers` 张图像。如果你自行构建不包含该节点的图,则在只需要图层时应丢弃第一张图像。`layers` 可以设为 `0`,此时只会得到这一张图像。 **将所有图层合成回去可以重建完整图像。** 可以用它来检查:如果堆叠图层无法重现第一张图像,说明分解没有达到预期效果。 ### 图层如何变成单独的图像 -**Empty Qwen Image Layered Latent** 节点会分配一个形状为 `[batch_size, 16, layers + 1, height // 8, width // 8]` 的 5D Latent。图层位于第三个轴上,也就是视频模型用于存放帧的那个时间轴。将 **LatentCutToBatch** 节点的 `dim` 设置为 `t`,会把该轴移动到批次维度上,因此在 **VAE Decode** 之后,每个图层都是批次中一张单独的图像。 +**Empty Qwen Image Layered Latent** 节点会分配一个形状为 `[batch_size, 16, layers + 1, height // 8, width // 8]` 的 5D Latent。图层位于第三个轴上,也就是视频模型用于存放帧的那个时间轴。将 **LatentCutToBatch** 节点的 `dim` 设置为 `t`,会把该轴移动到批次维度上,因此在 **VAE Decode** 之后,每个图层都是批次中一张单独的图像。模板会在 `LatentCutToBatch` 之前插入一个 `LatentCut` 节点(`dim` 为 `t`、`index` 为 `1`)来丢弃完整图像条目,因此解码后的批次只包含各个图层。 因此,图层在堆栈中的位置就是它在批次中的索引,从索引 0 处的完整图像开始计数。这里没有 z-index 字段,也没有承载该顺序的逐图层元数据,因此重新排序或过滤批次就等于重新排序图层。