HiDream-E1-Full:基于HiDream-I1的指令式图像编辑模型

HiDream-E1 图像编辑模型

一、引言与背景

HiDream-E1 是一个基于 HiDream-I1 构建的指令式图像编辑模型,于 2025 年 4 月 28 日开源。该模型旨在通过自然语言指令对图像进行编辑,支持多种复杂的编辑任务,如风格转换、物体添加/移除、颜色调整等。其开发团队强调,为了体验模型的全部功能,用户可以访问其官方网站 https://vivago.ai/ 获取更多信息。

二、环境配置与安装

论文提供了详细的环境配置指南,包括以下步骤:

  1. 依赖安装:通过 pip install -r requirements.txt 安装基础依赖。

  2. Flash Attention 安装:推荐使用命令 pip install -U flash-attn --no-build-isolation 进行更新。

  3. Diffusers 库安装:建议从 Hugging Face 的 GitHub 仓库直接安装最新版本:pip install -U git+https://github.com/huggingface/diffusers.git

  4. CUDA 版本建议:推荐使用 CUDA 12.4 版本以确保最佳性能。

三、模型架构与依赖

HiDream-E1 的架构基于以下核心组件:

  1. 文本编码器:采用 meta-llama/Llama-3.1-8B-Instruct 作为文本编码器,负责将自然语言指令转换为模型可理解的表示形式。

  2. 图像处理管道:通过 HiDreamImageEditingPipeline 实现图像编辑功能,该管道整合了文本编码器和 VAE(变分自编码器)进行图像生成与编辑。

  3. 依赖模型:模型依赖于 Hugging Face 平台上的多个预训练模型,包括 Llama 和 Google 的 T5 文本编码器。

四、使用示例与代码实现

论文提供了完整的代码示例,展示了如何使用 HiDream-E1 进行图像编辑:

import torch
from transformers import PreTrainedTokenizerFast, LlamaForCausalLM
from pipeline_hidream_image_editing import HiDreamImageEditingPipeline
from PIL import Image

# 加载文本编码器和分词器
tokenizer = PreTrainedTokenizerFast.from_pretrained("meta-llama/Llama-3.1-8B-Instruct")
text_encoder = LlamaForCausalLM.from_pretrained(
    "meta-llama/Llama-3.1-8B-Instruct",
    output_hidden_states=True,
    output_attentions=True,
    torch_dtype=torch.bfloat16,
)

# 初始化 HiDream 图像编辑管道
pipe = HiDreamImageEditingPipeline.from_pretrained(
    "HiDream-ai/HiDream-E1-Full",
    tokenizer_4=tokenizer,
    text_encoder_4=text_encoder,
    torch_dtype=torch.bfloat16,
)

# 加载并预处理输入图像
input_image = Image.open("input.jpg").resize((768, 768))

# 将管道移动到 GPU
pipe = pipe.to("cuda", torch.bfloat16)

# 执行图像编辑
edited_image = pipe(
    prompt="Editing Instruction: Convert the image into a Ghibli style. Target Image Description: A",
    image=input_image,
    guidance_scale=5.0,
    image_guidance_scale=4.0,
    num_inference_steps=28,
    generator=torch.Generator("cuda").manual_seed(3),
).images[0]

# 保存编辑后的图像
edited_image.save("output.jpg")

五、指令格式与细化

HiDream-E1 接受特定格式的编辑指令,示例格式如下:

Editing Instruction: {instruction}. Target Image Description: {description}

例如:

Editing Instruction: Convert the image into a Ghibli style. Target Image Description: A

论文还提供了指令细化脚本 instruction_refinement.py,用于优化编辑指令。该脚本需要 VLM API 密钥,支持本地运行 vllm 或使用 OpenAI API。

六、交互式演示

为了便于用户快速体验模型功能,HiDream-E1 提供了基于 Gradio 的交互式演示。用户可以通过以下命令启动演示:

python gradio_demo.py

七、评估结果

论文展示了 HiDream-E1 在 EmuEdit 和 ReasonEdit 基准测试中的评估结果,与其他模型的对比情况如下表所示:

模型名称EmuEdit GlobalEmuEdit AddEmuEdit TextEmuEdit BGEmuEdit ColorEmuEdit StyleEmuEdit RemoveEmuEdit Local
OmniGen1.372.092.310.664.262.364.732.10
MagicBrush4.063.540.553.263.832.072.703.28
UltraEdit5.315.191.504.334.505.712.634.58
Gemini 2.0-Flash4.877.716.305.107.303.335.946.29
HiDream E15.326.986.455.017.576.495.996.35

从评估结果可以看出,HiDream-E1 在多个指标上表现优异,特别是在 “EmuEdit Global”、“EmuEdit Add” 和 “EmuEdit Style” 等关键指标上均取得了较高的分数,表明其在全局编辑、添加操作和风格转换任务中具有较强的能力。

八、许可证协议

HiDream-E1 的变压器模型采用 MIT 许可证。然而,其 VAE 组件来源于 FLUX.1 [schnell],文本编码器则来自 Google 的 T5-v1_1-xxl 和 Meta 的 Llama-3.1-8B-Instruct。用户在使用时需遵守各组件的许可证条款。

此外,用户对其使用模型生成的所有内容拥有完全所有权,可以自由使用生成内容,但必须遵守本许可协议。用户需对其使用模型的方式负责,不得创建非法内容、有害材料、可能伤害他人的个人信息、虚假信息或针对弱势群体的内容。

九、总结

HiDream-E1 作为一个开源的指令式图像编辑模型,提供了强大的图像编辑能力,并通过详细的文档和示例代码降低了使用门槛。其在多个评估基准中的优异表现证明了模型的有效性和实用性。尽管如此,用户在使用过程中仍需注意遵守各组件的许可证要求,并确保内容的合法性和伦理性。


核心技术汇总表
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值