Update Chinese README with sharpness control documentation

This commit is contained in:
facok
2026-03-20 17:11:43 +08:00
parent 8c91c1957e
commit fad2f87fcc
+39 -5
View File
@@ -1,6 +1,6 @@
# ComfyUI-LCS
基于**潜在颜色子空间**(Latent Color Subspace)的免训练颜色控制。
基于**潜在颜色子空间**(Latent Color Subspace)的免训练颜色控制,以及基于发现的**锐度子空间**的锐度控制。
> **注意:** 本项目为非官方社区实现。官方代码见 [ExplainableML/LCS](https://github.com/ExplainableML/LCS)。
@@ -40,7 +40,8 @@ LCS 按 VAE 校准,理论上适用于任何使用兼容 VAE 架构的模型。
- **颜色引导** — 将颜色推向任意目标色
- **批量多色** — 为批次中每张图像指定不同颜色
- **色调调整** — 对比度、亮度、饱和度、色温,支持一键预设
- **局部控制** — 可选遮罩,实现区域性颜色变化
- **锐度控制** — 在生成过程中增强或减弱锐度,基于发现的锐度子空间(PC1 解释 ~97% 方差)
- **局部控制** — 可选遮罩,实现区域性变化
- **潜在颜色预览** — 无需 VAE 解码即可可视化颜色结构
- **步骤观察器** — 保存每步颜色预览,用于调试
@@ -82,6 +83,19 @@ LCS Load Data → LCS Tone Adjust → KSampler
![3d3c82eb0e89ed1608e40ac7a8cc3408](https://github.com/user-attachments/assets/62868e2d-0275-4801-a9bd-606bfea3ce2f)
### 锐度控制
```
LCS Load Data ──→ LCS Sharpness Calibrate → LCS Sharpness Intervene → KSampler
↑ lcs_data
```
1. **LCS Sharpness Calibrate** — 连接 VAE(首次运行自动校准并缓存)。可选连接 `lcs_data`(来自 LCS Load Data),确保锐度编辑不影响颜色。
2. **LCS Sharpness Intervene** — 连接 MODEL 和 SHARPNESS_DATA,设置强度
- 正值 → 更锐利
- 负值 → 更模糊
- 0 → 无变化
### 批量多色生成
```
@@ -98,7 +112,8 @@ LCS Load Data → LCS Color Batch → KSampler
| 节点 | 说明 |
|------|------|
| **LCS Load Data** | 自动校准并按 VAE 缓存 LCS 数据。通过 VAE 权重指纹自动管理缓存——连接 VAE 即可。 |
| **LCS Load Data** | 自动校准并按 VAE 缓存 LCS 颜色数据。通过 VAE 权重指纹自动管理缓存。 |
| **LCS Sharpness Calibrate** | 通过模糊刺激 PCA 发现锐度子空间。可选连接 `lcs_data` 使锐度正交于颜色。 |
每个 VAE 只需校准一次,结果自动缓存,后续运行瞬时加载。
@@ -109,6 +124,7 @@ LCS Load Data → LCS Color Batch → KSampler
| **LCS Color Intervene** | 将颜色引导至目标色。支持 Type I(LCS 平移)、Type II(HSL 偏移)或插值模式。 |
| **LCS Color Batch** | 每个批次项施加不同目标颜色。输出 `batch_size` 可连接 EmptyLatentImage。 |
| **LCS Tone Adjust** | 对比度、亮度、饱和度、色温调整。预设下拉菜单,滑条实时同步。 |
| **LCS Sharpness Intervene** | 在生成过程中控制锐度。正值 = 更锐利,负值 = 更模糊。 |
### 观察
@@ -127,10 +143,16 @@ LCS Load Data → LCS Color Batch → KSampler
## 关键参数
### 颜色干预
- **strength**(0.0–2.0):干预强度。1.0 = 完整干预,0.0 = 无干预。
- **start_step / end_step**:干预步骤范围。论文最优:50 步中的第 8–10 步。
- **mask**:可选。下采样至 patch 网格分辨率,用于局部控制。
### 锐度干预
- **strength**(-5.0–5.0):正值 = 更锐利,负值 = 更模糊,0 = 无变化。
- **start_step / end_step**:干预步骤范围(默认 5–15)。
- **mask**:可选。用于局部锐度控制。
## 色调预设
选择预设后滑条实时更新。可在预设基础上微调。选择 **Custom** 可完全手动设置。
@@ -150,6 +172,8 @@ LCS Load Data → LCS Color Batch → KSampler
## 工作原理
### 颜色(LCS)
1. **投影** — 将去噪预测转换到 64D patch 空间,投影到 3D LCS 基底
2. **分解** — 将 3D 颜色坐标与 61D 结构残差分离
3. **归一化** — 使用学习的 alpha/beta 统计量变换至参考时间步(t=50)
@@ -158,6 +182,13 @@ LCS Load Data → LCS Color Batch → KSampler
61D 残差(结构、纹理、细节)始终不被修改——只有 3D 颜色子空间会被改变。
### 锐度
锐度存在于与颜色正交的独立子空间中:
1. **校准** — 生成灰度噪声图像,应用多级高斯模糊,VAE 编码后对去除颜色分量的 patch 向量做 PCA。PC1 捕获 ~97% 的锐度方差。
2. **干预** — 在每个 patch 上沿 `strength * pc1_direction` 方向添加偏移。由于 pc1_direction 与颜色正交(校准时已移除 LCS 分量)且无直流分量(PCA 前做了逐向量零均值化),因此只改变空间频率内容,不影响颜色或亮度。
## 文件结构
```
@@ -165,16 +196,19 @@ ComfyUI-LCS/
├── __init__.py # 入口(V3 + V2 兼容)
├── requirements.txt
├── core/
│ ├── calibration.py # PCA 校准流程
│ ├── calibration.py # PCA 校准流程(颜色)
│ ├── color_space.py # 双锥 LCS ↔ HSL 映射
│ ├── defaults.py # 论文中的 Alpha/beta 表
│ ├── lcs_data.py # LCSData 数据类
│ ├── patchify.py # Patch ↔ 潜在空间转换
│ ├── sampling.py # 共享常量和步骤工具
│ ├── sharpness.py # 锐度子空间校准
│ └── timestep.py # Sigma/时间步工具
├── nodes/
│ ├── calibrate.py # LCSLoadData(自动校准 + 缓存)
│ ├── intervene.py # LCSColorIntervene, LCSColorBatch, LCSToneAdjust
│ └── observe.py # LCSPreviewColors, LCSStepObserver
│ ├── observe.py # LCSPreviewColors, LCSStepObserver
│ └── sharpen.py # LCSSharpnessCalibrate, LCSSharpnessIntervene
├── data/ # 缓存的校准文件
└── web/js/
└── tone_preset.js # 前端预设同步