mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-01-30 16:20:17 +08:00
Compare commits
4 Commits
2f55118bd7
...
f876b92ea7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f876b92ea7 | ||
|
|
1a72bf2046 | ||
|
|
a95cbd2d7f | ||
|
|
554a67ac20 |
@ -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```
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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)
|
||||
|
||||
2
nodes.py
2
nodes.py
@ -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,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user