重要提示

您正在查看 NeMo 2.0 文档。此版本为 API 和新库 NeMo Run 引入了重大更改。我们目前正在将 NeMo 1.0 中的所有功能移植到 2.0。有关先前版本或 2.0 中尚不可用的功能的文档,请参阅NeMo 24.07 文档

InstructPix2Pix#

模型介绍#

InstructPix2Pix [MM-MODELS-INSP2P1] 提供了一种使用人类书写指令进行图像编辑的独特方法。给定输入图像和文本指令,模型会根据提供的指令调整图像。NeMo Multimodal 为此条件扩散模型提供了一个训练管道,该管道利用通过利用两个突出的预训练模型的优势生成的数据集:语言模型 (GPT-3) 和文本到图像模型 (Stable Diffusion)。InstructPix2Pix 模型运行迅速,在几秒钟内编辑图像,无需每个示例的微调或反转。它在各种输入图像和书面指令中都展示了卓越的效果。

NeMo 的 InstructPix2Pix 构建于 Stable Diffusion 框架之上,与 Stable Diffusion 具有相似的架构(请参阅Stable Diffusion)。它的独特之处在于其独特的训练数据集以及来自图像和文本提示的组合指导。具体而言,InstructPix2pix ::class::nemo.collections.multimodal.models.instruct_pix2pix.ldm.ddpm_edit.MegatronLatentDiffusionEdit 直接源自 Stable Diffusion 的 ::class::nemo.collections.multimodal.models.text_to_image.stable_diffusion.ldm.ddpm.MegatronLatentDiffusion,并进行了更改以适应数据集并提供对双重指导的支持。

训练数据集#

NeMo 的 InstructPix2Pix 模型的数据集在 NeMo 多模态模型中脱颖而出,因为它不强制要求以 webdataset 格式存储数据。建议用户验证数据集的内容,评估相关许可,并确保其适用于其用途。在下载之前,必须查看与数据集关联的任何链接。

有关下载和准备用于训练 InstructPix2Pix 的自定义数据集的说明,请参阅官方Instruct-Pix2Pix 存储库

模型配置#

数据配置#

data:
  data_path: ???
  num_workers: 2
  • data_path:Instruct-pix2pix 数据集的路径。用户需要指定此路径。有关数据集的更多详细信息,请访问Instruct-Pix2Pix 存储库

  • num_workers:表示用于数据加载的工作进程数,确定使用的子进程数。

必要的模型配置#

model:
  first_stage_key: edited
  cond_stage_key: edit # txt for cifar, caption for pbss

  unet_config:
    _target_: nemo.collections.multimodal.modules.stable_diffusion.diffusionmodules.openaimodel.UNetModel
    from_pretrained:
    in_channels: 8
  • first_stage_key:模型初始处理阶段的键。对于 InstructPix2Pix,设置为 edited

  • cond_stage_key:模型条件阶段的键。对于 InstructPix2Pix,设置为 edit

  • unet_config:NeMo 集合中 UNet 模型的配置参数。

    • _target_:指定 NeMo 集合中 UNet 模型的 目标模块。

    • from_pretrained:(未提供值)通常指示预训练模型的路径或标识符。

    • in_channels:指定 UNet 模型的输入通道数。此处,该值设置为 8,其中最初的 4 个通道专用于图像引导。

    其他模型配置与 Stable Diffusion 对齐(请参阅Stable Diffusion)。

参考资料#

[MM-MODELS-INSP2P1]

Tim Brooks、Aleksander Holynski 和 Alexei A. Efros。Instructpix2pix:学习遵循图像编辑指令。2022 年。arXiv:arXiv:2211.09800