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

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

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

[] []

TF-ICON的官方实现。

TF-ICON:基于扩散的无训练跨域图像合成
Shilin Lu、Yanzhu Liu 和 Adams Wai-Kin Kong
ICCV 2023
摘要
文本驱动的扩散模型表现出令人印象深刻的生成能力,可实现各种图像编辑任务。在本文中,我们提出了 TF-ICON,这是一种新颖的无需训练的图像合成框架,它利用文本驱动的扩散模型的强大功能进行跨域图像引导合成。此任务旨在将用户提供的对象无缝集成到特定的视觉环境中。当前基于扩散的方法通常涉及昂贵的基于实例的优化或在定制数据集上对预训练模型进行微调,这可能会破坏其丰富的先验知识。相比之下,TF-ICON 可以利用现成的扩散模型执行跨域图像引导合成,而无需额外的训练、微调或优化。此外,我们引入了不包含任何信息的特殊提示,以促进文本驱动的扩散模型准确地将真实图像转换为潜在表示,从而形成合成的基础。我们的实验表明,配备出色提示的稳定扩散在各种数据集(CelebA-HQ、COCO 和 ImageNet)上的表现优于最先进的反演方法,并且 TF-ICON 在多种视觉领域中超越了先前的基线。


内容

设置

构建 ,具有共享依赖项和模型架构。建议使用 23 GB 的 VRAM,但这可能会因输入样本而异(最低 20 GB)。

创建 Conda 环境

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>git clone https://github.com/Shilin-LU/TF-ICON.git
cd TF-ICON
conda env create -f tf_icon_env.yaml
conda activate tf-icon
</code></span></span></span></span>

下载稳定扩散权重

下载 StableDiffusion 权重 (下载sd-v2-1_512-ema-pruned.ckpt文件),并将其放在./ckpt文件夹下。

运行 TF-ICON

数据准备

目录下有多个输入样本./inputs。每个样本涉及一个背景 (bg)、一个前景 (fg)、一个前景的分割掩码 (fg_mask) 和一个表示所需合成位置的用户掩码 (mask_bg_fg)。输入数据结构如下:

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>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
│  ├── ...
</code></span></span></span></span>

中提供了更多示例,也可以自定义。注意输入前景的分辨率不要太小。

  • 跨域:背景和前景图像源自不同的视觉域。
  • 同一域:背景和前景图像都属于同一照片级真实感域。

图像合成

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

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>python scripts/main_tf_icon.py  --ckpt <path/to/model.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                         
</code></span></span></span></span>

对于“same_domain”模式,运行以下命令:

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>python scripts/main_tf_icon.py  --ckpt <path/to/model.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                         
</code></span></span></span></span>
  • ckpt:通往稳定扩散检查站的路径。
  • root:输入数据的路径。
  • domain:如果前景和背景来自不同的视觉域,则设置“交叉”,否则设置“相同”。
  • dpm_steps:扩散采样步骤。
  • dpm_solver:概率流 ODE 求解器的阶。
  • scale:无分类器指导(CFG)量表。
  • tau_a:注入复合自注意力图的阈值。
  • tau_b:保留背景的阈值。

TF-ICON 测试基准

完整的 TF-ICON 测试基准可在中找到。如果您发现该基准对您的研究有用,请考虑引用。

其他结果

素描画


油画


照相写实主义


卡通片


致谢

我们的工作是站在巨人的肩膀上。我们感谢以下贡献者,我们的代码基于这些贡献者:和。

引用

如果你发现该 repo 有用,请考虑引用:

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>@inproceedings{lu2023tf,
  title={TF-ICON: Diffusion-Based Training-Free Cross-Domain Image Composition},
  author={Lu, Shilin and Liu, Yanzhu and Kong, Adams Wai-Kin},
  booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision},
  pages={2294--2305},
  year={2023}
}</code></span></span></span></span>

Read more

LibreChat 集成 Stripe 支付的奶妈级教程

LibreChat 集成 Stripe 支付的奶妈级教程

我们假设你已经熟悉基本的 React 和 Node.js 开发,并且正在使用 LibreChat 的默认技术栈(React 前端、Node.js 后端、Vite 构建工具,可能还有 Electron 桌面应用)。教程会特别考虑 Electron 环境下的适配问题(例如 macOS 中文路径或路由错误)。“奶妈级”带你从零开始实现支付功能(包括一次性支付和添加高级会员订阅) 教程目标 * 在 LibreChat 中添加支付页面,支持用户通过信用卡付款。 * 实现 Stripe 的一次性支付功能。 * (可选)扩展到订阅功能,管理高级会员状态。 * 解决 Electron 环境下的常见问题(如路由和路径解析)。 * 生成可公开推送的 Markdown 教程,方便社区参考。 前提条件 在开始之前,请确保你已准备好以下内容:

By Ne0inhk
超棒的雅思资源!

超棒的雅思资源!

雅思真题材料地址: https://github.com/zeeklog/IETLS 感谢所有人。材料来自:@shah0150 & @kbtxwer * 超棒的雅思资源 * 雅思简介 * 听力 * 阅读 * 写作 * 口语 * 词汇 * 其他 * YouTube 频道 * [播客] (#podcasts) 雅思简介 * 什么是雅思 - 了解什么是雅思 听力 * 高级听力 * 雅思官方网站 * 考试英语 * 英国广播公司节目 * 乔治梅森大学口音学习网站 - 学习不同的口音 * 英国广播公司播客 * 英国文化协会听力练习 阅读 * 雅思提升阅读 写作 * 雅思提升写作 * 雅思从 6 分到 9 分 * 迷你雅思 口语 * Verbling 提供在线英语家教服务

By Ne0inhk