TF-ICON

GitHub
822 101 较难 1 次阅读 6天前MIT图像
AI 解读 由 AI 自动生成,仅供参考

TF-ICON 是一款基于扩散模型的开源图像合成工具,专为解决“跨域图像引导合成”任务而设计。它的核心功能是将用户提供的物体无缝融合到全新的视觉背景中,同时保持光影、风格的高度一致。

传统方法在处理此类任务时,往往需要对预训练模型进行昂贵的微调或针对每个实例进行耗时优化,这不仅计算成本高,还可能破坏模型原有的丰富先验知识。TF-ICON 巧妙地解决了这一痛点,它无需任何额外训练、微调或迭代优化,即可直接利用现成的扩散模型(如 Stable Diffusion)实现高质量的图像合成。

该工具的独特技术亮点在于引入了“特殊提示词(exceptional prompt)”机制。这一创新能有效辅助扩散模型将真实图像精准地反演为潜在表示,为后续的自然融合奠定基础。实验表明,在 CelebA-HQ、COCO 等多个数据集上,其反演效果超越了当前最先进的方法。

TF-ICON 非常适合研究人员探索无训练图像编辑范式,也适用于开发者快速集成高效的图像合成功能。对于设计师而言,它是一个强大的辅助工具,能帮助快速创作出逼真的合成素材,大幅降低技术门槛和时间成本。

使用场景

某电商设计团队需要快速将新款运动鞋合成到雪山、沙滩等截然不同的营销背景图中,以制作多套广告素材。

没有 TF-ICON 时

  • 训练成本高昂:为了让模型理解特定鞋款的细节,往往需要对预训练模型进行微调或针对每个商品进行耗时的实例优化。
  • 跨域融合生硬:直接将鞋子贴图到雪景或沙滩上时,光照、阴影和纹理风格严重不匹配,显得像拙劣的 PS 拼接。
  • 破坏原有质感:传统的生成式编辑容易在合成过程中丢失商品原本的材质细节(如皮革纹理、鞋带结构),导致“货不对板”。
  • 迭代效率低下:每更换一个背景或调整一种风格,都需要重新计算优化参数,设计师需等待数分钟甚至更久才能看到结果。

使用 TF-ICON 后

  • 零训练即时可用:直接利用现成的 Stable Diffusion 模型,无需任何微调或额外训练,即可实现跨域图像引导合成。
  • 光影自然统一:TF-ICON 能自动根据目标背景(如雪山)的光照条件,重新渲染鞋子的阴影和高光,使合成效果天衣无缝。
  • 完美保留细节:通过独特的“异常提示词”技术精准反转真实图像,确保鞋子的原始结构和材质特征在生成中毫发无损。
  • 工作流极速流转:省去了繁琐的优化步骤,设计师可在几秒钟内切换多种场景风格,大幅缩短从创意到成稿的周期。

TF-ICON 的核心价值在于打破了跨域合成的训练壁垒,让高质量的商品营销图生成变得像搭积木一样简单、快速且保真。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

必需 NVIDIA GPU,推荐显存 23GB(最低 20GB),推荐 CUDA 11.3

内存

未说明

依赖
notes1. 代码基于 Stable-Diffusion 构建,需手动下载 Stable Diffusion v2-1 模型权重文件 (v2-1_512-ema-pruned.ckpt) 并放入 ./ckpt 目录。2. 支持三种环境安装方式:Conda、Pip 虚拟环境或全局 Pip 安装。3. 输入图像分辨率不宜过小,且需准备背景图、前景图及对应的掩码文件。4. 跨域合成任务对显存要求较高,建议确保显存充足以避免溢出。
python未说明
Stable-Diffusion (基于 stabilityai/stablediffusion)
torch
cuda 驱动
TF-ICON hero image

快速开始

TF-ICON:基于扩散模型的无训练跨域图像合成(ICCV 2023)

[项目主页] [海报]

arXiv TI2I

TF-ICON:基于扩散模型的无训练跨域图像合成的官方实现。

TF-ICON:基于扩散模型的无训练跨域图像合成

卢诗琳、刘彦竹和康伟健
ICCV 2023

摘要:
文本驱动的扩散模型展现出令人印象深刻的生成能力,能够支持多种图像编辑任务。本文提出TF-ICON,一种新颖的无训练图像合成框架,利用文本驱动的扩散模型进行跨域图像引导的合成。该任务旨在将用户提供的对象无缝融入特定的视觉场景中。目前基于扩散的方法通常需要昂贵的实例级优化或在定制数据集上对预训练模型进行微调,这可能会削弱模型丰富的先验知识。相比之下,TF-ICON可以直接使用现成的扩散模型进行跨域图像引导的合成,而无需额外的训练、微调或优化。此外,我们引入了一种特殊的提示词——“异常提示”,它不包含任何信息,能够帮助文本驱动的扩散模型准确地将真实图像反演为潜在表示,从而为图像合成奠定基础。实验表明,为Stable Diffusion模型配备“异常提示”后,在多个数据集(CelebA-HQ、COCO和ImageNet)上的逆向效果优于当前最先进的方法;同时,TF-ICON在多种视觉领域中的表现也超越了先前的基线方法。

teaser


framework


目录


设置

我们的代码库基于Stable-Diffusion,共享依赖项和模型架构。建议显存至少为23 GB,但具体需求可能因输入样本而异,最低要求为20 GB。

选项1:使用Conda

# 克隆仓库
git clone https://github.com/Shilin-LU/TF-ICON.git
cd TF-ICON

# 创建并激活Conda环境
conda env create -f tf_icon_env.yaml
conda activate tf-icon

选项2:使用Pip与虚拟环境

# 克隆仓库
git clone https://github.com/Shilin-LU/TF-ICON.git
cd TF-ICON

# 创建并激活虚拟环境
python -m venv venv
source venv/bin/activate  # 在Windows上:venv\Scripts\activate

# 安装包及依赖
pip install -e .

# 如果需要开发依赖
# pip install -e ".[dev]"

选项3:使用Pip(全局安装)

# 克隆仓库
git clone https://github.com/Shilin-LU/TF-ICON.git
cd TF-ICON

# 安装包及依赖
pip install -e .

注意:对于选项2和选项3,您需要确保系统已安装兼容的CUDA驱动程序。为了获得最佳性能,建议使用CUDA 11.3版本。

下载Stable-Diffusion权重

Hugging Face上的Stability AI下载StableDiffusion权重(下载sd-v2-1_512-ema-pruned.ckpt文件),并将其放置在./ckpt文件夹下。

或者,您也可以使用以下命令直接下载并将权重放置到正确的位置:

# 如果ckpt目录不存在,则创建
mkdir -p ckpt

# 下载模型权重(使用wget)
wget -O ckpt/v2-1_512-ema-pruned.ckpt https://huggingface.co/stabilityai/stable-diffusion-2-1-base/resolve/main/v2-1_512-ema-pruned.ckpt

# 或者使用curl
# curl -L https://huggingface.co/stabilityai/stable-diffusion-2-1-base/resolve/main/v2-1_512-ema-pruned.ckpt -o ckpt/v2-1_512-ema-pruned.ckpt

运行TF-ICON

数据准备

./inputs 目录下提供了若干输入样本。每个样本包含一张背景图(bg)、一张前景图(fg)、一张用于前景的分割掩码(fg_mask)以及一张用于指定目标合成位置的用户掩码(mask_bg_fg)。输入数据结构如下:

inputs
├── cross_domain
│  ├── prompt1
│  │  ├── bgxx.png
│  │  ├── fgxx.png
│  │  ├── fgxx_mask.png
│  │  ├── mask_bg_fg.png
│  ├── prompt2
│  ├── ...
├── same_domain
│  ├── prompt1
│  │  ├── bgxx.png
│  │  ├── fgxx.png
│  │  ├── fgxx_mask.png
│  │  ├── mask_bg_fg.png
│  ├── prompt2
│  ├── ...

更多样本可在 TF-ICON 测试基准 中获取,您也可以自行定制。请注意,输入前景的分辨率不应过小。

  • 跨域:背景图和前景图来自不同的视觉领域。
  • 同域:背景图和前景图属于同一写实主义领域。

图像合成

要在“跨域”模式下执行 TF-ICON,请运行以下命令:

python scripts/main_tf_icon.py  --ckpt ckpt/v2-1_512-ema-pruned.ckpt      \
                                --root ./inputs/cross_domain      \
                                --domain 'cross'                  \
                                --dpm_steps 20                    \
                                --dpm_order 2                     \
                                --scale 5                         \
                                --tau_a 0.4                       \
                                --tau_b 0.8                       \
                                --outdir ./outputs                \
                                --gpu cuda:0                      \
                                --seed 3407

在“同域”模式下,请运行以下命令:

python scripts/main_tf_icon.py  --ckpt ckpt/v2-1_512-ema-pruned.ckpt      \
                                --root ./inputs/same_domain       \
                                --domain 'same'                   \
                                --dpm_steps 20                    \
                                --dpm_order 2                     \
                                --scale 2.5                       \
                                --tau_a 0.4                       \
                                --tau_b 0.8                       \
                                --outdir ./outputs                \
                                --gpu cuda:0                      \
                                --seed 3407
  • ckpt: Stable Diffusion 检查点的路径。
  • root: 输入数据的路径。
  • domain: 如果前景和背景来自不同视觉领域,则设置为 ‘cross’;否则设置为 ‘same’。
  • dpm_steps: 扩散采样步数。
  • dpm_solver: 概率流 ODE 求解器的阶数。
  • scale: 无分类器指导(CFG)尺度。
  • tau_a: 注入复合自注意力图的阈值。
  • tau_b: 保留背景的阈值。

TF-ICON 测试基准

完整的 TF-ICON 测试基准可在 此 OneDrive 文件夹 中找到。如果您认为该基准对您的研究有帮助,请考虑引用它。

补充结果

素描风格

sketchy-comp


油画风格

painting-comp


写实风格

real-comp


卡通风格

carton-comp


致谢

我们的工作建立在前人的基础上。我们感谢以下项目为我们的代码提供了基础:Stable-DiffusionPrompt-to-Prompt

引用

如果您觉得本仓库有用,请考虑引用:

@inproceedings{lu2023tf,
  title={TF-ICON: 基于扩散模型的无训练跨域图像合成},
  author={Lu, Shilin and Liu, Yanzhu and Kong, Adams Wai-Kin},
  booktitle={IEEE/CVF 国际计算机视觉会议论文集},
  pages={2294--2305},
  year={2023}
}