Compare commits

...

4 Commits

Author SHA1 Message Date
Jukka Seppänen
f876b92ea7
Merge a95cbd2d7f into 1a72bf2046 2026-01-19 12:13:02 +03:00
comfyanonymous
1a72bf2046
Readme update. (#11957)
Some checks are pending
Python Linting / Run Ruff (push) Waiting to run
Python Linting / Run Pylint (push) Waiting to run
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.10, [self-hosted Linux], stable) (push) Waiting to run
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.11, [self-hosted Linux], stable) (push) Waiting to run
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.12, [self-hosted Linux], stable) (push) Waiting to run
Full Comfy CI Workflow Runs / test-unix-nightly (12.1, , linux, 3.11, [self-hosted Linux], nightly) (push) Waiting to run
Execution Tests / test (macos-latest) (push) Waiting to run
Execution Tests / test (ubuntu-latest) (push) Waiting to run
Execution Tests / test (windows-latest) (push) Waiting to run
Test server launches without errors / test (push) Waiting to run
Unit Tests / test (macos-latest) (push) Waiting to run
Unit Tests / test (ubuntu-latest) (push) Waiting to run
Unit Tests / test (windows-2022) (push) Waiting to run
2026-01-18 19:53:43 -08:00
kijai
a95cbd2d7f Rather check is_nested 2026-01-12 21:45:32 +02:00
kijai
554a67ac20 Latent2rgb for LTXV 2026-01-12 21:45:32 +02:00
5 changed files with 143 additions and 9 deletions

View File

@ -108,7 +108,7 @@ See what ComfyUI can do with the [example workflows](https://comfyanonymous.gith
- [LCM models and Loras](https://comfyanonymous.github.io/ComfyUI_examples/lcm/)
- Latent previews with [TAESD](#how-to-show-high-quality-previews)
- Works fully offline: core will never download anything unless you want to.
- Optional API nodes to use paid models from external providers through the online [Comfy API](https://docs.comfy.org/tutorials/api-nodes/overview).
- Optional API nodes to use paid models from external providers through the online [Comfy API](https://docs.comfy.org/tutorials/api-nodes/overview) disable with: `--disable-api-nodes`
- [Config file](extra_model_paths.yaml.example) to set the search paths for models.
Workflow examples can be found on the [Examples page](https://comfyanonymous.github.io/ComfyUI_examples/)
@ -212,7 +212,7 @@ Python 3.14 works but you may encounter issues with the torch compile node. The
Python 3.13 is very well supported. If you have trouble with some custom node dependencies on 3.13 you can try 3.12
torch 2.4 and above is supported but some features might only work on newer versions. We generally recommend using the latest major version of pytorch with the latest cuda version unless it is less than 2 weeks old.
torch 2.4 and above is supported but some features and optimizations might only work on newer versions. We generally recommend using the latest major version of pytorch with the latest cuda version unless it is less than 2 weeks old.
### Instructions:
@ -229,7 +229,7 @@ AMD users can install rocm and pytorch with pip if you don't have it already ins
```pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.4```
This is the command to install the nightly with ROCm 7.0 which might have some performance improvements:
This is the command to install the nightly with ROCm 7.1 which might have some performance improvements:
```pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm7.1```

View File

@ -409,8 +409,137 @@ class LTXV(LatentFormat):
class LTXAV(LTXV):
def __init__(self):
self.latent_rgb_factors = None
self.latent_rgb_factors_bias = None
self.latent_rgb_factors = [
[ 0.0350, 0.0159, 0.0132],
[ 0.0025, -0.0021, -0.0003],
[ 0.0286, 0.0028, 0.0020],
[ 0.0280, -0.0114, -0.0202],
[-0.0186, 0.0073, 0.0092],
[ 0.0027, 0.0097, -0.0113],
[-0.0069, -0.0032, -0.0024],
[-0.0323, -0.0370, -0.0457],
[ 0.0174, 0.0164, 0.0106],
[-0.0097, 0.0061, 0.0035],
[-0.0130, -0.0042, -0.0012],
[-0.0102, -0.0002, -0.0091],
[-0.0025, 0.0063, 0.0161],
[ 0.0003, 0.0037, 0.0108],
[ 0.0152, 0.0082, 0.0143],
[ 0.0317, 0.0203, 0.0312],
[-0.0092, -0.0233, -0.0119],
[-0.0405, -0.0226, -0.0023],
[ 0.0376, 0.0397, 0.0352],
[ 0.0171, -0.0043, -0.0095],
[ 0.0482, 0.0341, 0.0213],
[ 0.0031, -0.0046, -0.0018],
[-0.0486, -0.0383, -0.0294],
[-0.0071, -0.0272, -0.0123],
[ 0.0320, 0.0218, 0.0289],
[ 0.0327, 0.0088, -0.0116],
[-0.0098, -0.0240, -0.0111],
[ 0.0094, -0.0116, 0.0021],
[ 0.0309, 0.0092, 0.0165],
[-0.0065, -0.0077, -0.0107],
[ 0.0179, 0.0114, 0.0038],
[-0.0018, -0.0030, -0.0026],
[-0.0002, 0.0076, -0.0029],
[-0.0131, -0.0059, -0.0170],
[ 0.0055, 0.0066, -0.0038],
[ 0.0154, 0.0063, 0.0090],
[ 0.0186, 0.0175, 0.0188],
[-0.0166, -0.0381, -0.0428],
[ 0.0121, 0.0015, -0.0153],
[ 0.0118, 0.0050, 0.0019],
[ 0.0125, 0.0259, 0.0231],
[ 0.0046, 0.0130, 0.0081],
[ 0.0271, 0.0250, 0.0250],
[-0.0054, -0.0347, -0.0326],
[-0.0438, -0.0262, -0.0228],
[-0.0191, -0.0256, -0.0173],
[-0.0205, -0.0058, 0.0042],
[ 0.0404, 0.0434, 0.0346],
[-0.0242, -0.0177, -0.0146],
[ 0.0161, 0.0223, 0.0168],
[-0.0240, -0.0320, -0.0299],
[-0.0019, 0.0043, 0.0008],
[-0.0060, -0.0133, -0.0244],
[-0.0048, -0.0225, -0.0167],
[ 0.0267, 0.0133, 0.0152],
[ 0.0222, 0.0167, 0.0028],
[ 0.0015, -0.0062, 0.0013],
[-0.0241, -0.0178, -0.0079],
[ 0.0040, -0.0081, -0.0097],
[-0.0064, 0.0133, -0.0011],
[-0.0204, -0.0231, -0.0304],
[ 0.0011, -0.0011, 0.0145],
[-0.0283, -0.0259, -0.0260],
[ 0.0038, 0.0171, -0.0029],
[ 0.0637, 0.0424, 0.0409],
[ 0.0092, 0.0163, 0.0188],
[ 0.0082, 0.0055, -0.0179],
[-0.0177, -0.0286, -0.0147],
[ 0.0171, 0.0242, 0.0398],
[-0.0129, 0.0095, -0.0071],
[-0.0154, 0.0036, 0.0128],
[-0.0081, -0.0009, 0.0118],
[-0.0067, -0.0178, -0.0230],
[-0.0022, -0.0125, -0.0003],
[-0.0032, -0.0039, -0.0022],
[-0.0005, -0.0127, -0.0131],
[-0.0143, -0.0157, -0.0165],
[-0.0262, -0.0263, -0.0270],
[ 0.0063, 0.0127, 0.0178],
[ 0.0092, 0.0133, 0.0150],
[-0.0106, -0.0068, 0.0032],
[-0.0214, -0.0022, 0.0171],
[-0.0104, -0.0266, -0.0362],
[ 0.0021, 0.0048, -0.0005],
[ 0.0345, 0.0431, 0.0402],
[-0.0275, -0.0110, -0.0195],
[ 0.0203, 0.0251, 0.0224],
[ 0.0016, -0.0037, -0.0094],
[ 0.0241, 0.0198, 0.0114],
[-0.0003, 0.0027, 0.0141],
[ 0.0012, -0.0052, -0.0084],
[ 0.0057, -0.0028, -0.0163],
[-0.0488, -0.0545, -0.0509],
[-0.0076, -0.0025, -0.0014],
[-0.0249, -0.0142, -0.0367],
[ 0.0136, 0.0041, 0.0135],
[ 0.0007, 0.0034, -0.0053],
[-0.0068, -0.0109, 0.0029],
[ 0.0006, -0.0237, -0.0094],
[-0.0149, -0.0177, -0.0131],
[-0.0105, 0.0039, 0.0216],
[ 0.0242, 0.0200, 0.0180],
[-0.0339, -0.0153, -0.0195],
[ 0.0104, 0.0151, 0.0120],
[-0.0043, 0.0089, 0.0047],
[ 0.0157, -0.0030, 0.0008],
[ 0.0126, 0.0102, -0.0040],
[ 0.0040, 0.0114, 0.0137],
[ 0.0423, 0.0473, 0.0436],
[-0.0128, -0.0066, -0.0152],
[-0.0337, -0.0087, -0.0026],
[-0.0052, 0.0235, 0.0291],
[ 0.0079, 0.0154, 0.0260],
[-0.0539, -0.0377, -0.0358],
[-0.0188, 0.0062, -0.0035],
[-0.0186, 0.0041, -0.0083],
[ 0.0045, -0.0049, 0.0053],
[ 0.0172, 0.0071, 0.0042],
[-0.0003, -0.0078, -0.0096],
[-0.0209, -0.0132, -0.0135],
[-0.0074, 0.0017, 0.0099],
[-0.0038, 0.0070, 0.0014],
[-0.0013, -0.0017, 0.0073],
[ 0.0030, 0.0105, 0.0105],
[ 0.0154, -0.0168, -0.0235],
[-0.0108, -0.0038, 0.0047],
[-0.0298, -0.0347, -0.0436],
[-0.0206, -0.0189, -0.0139]
]
self.latent_rgb_factors_bias = [0.2796, 0.1101, -0.0047]
class HunyuanVideo(LatentFormat):
latent_channels = 16

View File

@ -753,7 +753,7 @@ class SamplerCustom(io.ComfyNode):
noise_mask = latent["noise_mask"]
x0_output = {}
callback = latent_preview.prepare_callback(model, sigmas.shape[-1] - 1, x0_output)
callback = latent_preview.prepare_callback(model, sigmas.shape[-1] - 1, x0_output, shape=latent_image.shape if latent_image.is_nested else None)
disable_pbar = not comfy.utils.PROGRESS_BAR_ENABLED
samples = comfy.sample.sample_custom(model, noise, cfg, sampler, sigmas, positive, negative, latent_image, noise_mask=noise_mask, callback=callback, disable_pbar=disable_pbar, seed=noise_seed)
@ -944,7 +944,7 @@ class SamplerCustomAdvanced(io.ComfyNode):
noise_mask = latent["noise_mask"]
x0_output = {}
callback = latent_preview.prepare_callback(guider.model_patcher, sigmas.shape[-1] - 1, x0_output)
callback = latent_preview.prepare_callback(guider.model_patcher, sigmas.shape[-1] - 1, x0_output, shape=latent_image.shape if latent_image.is_nested else None)
disable_pbar = not comfy.utils.PROGRESS_BAR_ENABLED
samples = guider.sample(noise.generate_noise(latent), latent_image, sampler, sigmas, denoise_mask=noise_mask, callback=callback, disable_pbar=disable_pbar, seed=noise.seed)

View File

@ -7,6 +7,7 @@ import comfy.model_management
import folder_paths
import comfy.utils
import logging
import math
default_preview_method = args.preview_method
@ -109,7 +110,7 @@ def get_previewer(device, latent_format):
previewer = Latent2RGBPreviewer(latent_format.latent_rgb_factors, latent_format.latent_rgb_factors_bias, latent_format.latent_rgb_factors_reshape)
return previewer
def prepare_callback(model, steps, x0_output_dict=None):
def prepare_callback(model, steps, x0_output_dict=None, shape=None):
preview_format = "JPEG"
if preview_format not in ["JPEG", "PNG"]:
preview_format = "JPEG"
@ -121,6 +122,10 @@ def prepare_callback(model, steps, x0_output_dict=None):
if x0_output_dict is not None:
x0_output_dict["x0"] = x0
if shape is not None:
cut = math.prod(shape[1:])
x0 = x0[:, :, :cut].reshape([x0.shape[0]] + list(shape)[1:])
preview_bytes = None
if previewer:
preview_bytes = previewer.decode_latent_to_preview_image(preview_format, x0)

View File

@ -1507,7 +1507,7 @@ def common_ksampler(model, seed, steps, cfg, sampler_name, scheduler, positive,
if "noise_mask" in latent:
noise_mask = latent["noise_mask"]
callback = latent_preview.prepare_callback(model, steps)
callback = latent_preview.prepare_callback(model, steps, shape=latent_image.shape if latent_image.is_nested else None)
disable_pbar = not comfy.utils.PROGRESS_BAR_ENABLED
samples = comfy.sample.sample(model, noise, steps, cfg, sampler_name, scheduler, positive, negative, latent_image,
denoise=denoise, disable_noise=disable_noise, start_step=start_step, last_step=last_step,