Flux.1 Kontext [dev] 开源模型大家都用上了吗?

小编汇总了3个使用教程,打包送上!

全生态使用教程:

  • ModelScope AIGC专区

  • DiffSynth-Studio框架

  • ComfyUI的推理

  • ModelScope AIGC专区:Flux.1 Kontext [dev] 正式上线,免费的在线图像编辑,在线界面GUI微调训练

  • DiffSynth-Studio框架:社区开发者快速支持了FLUX.1 Kontext 模型的原生训练与推理,最低支持6G显存

  • ComfyUI的推理:fp8_scaled模型版本,运行显存仅需约22G,可用魔搭notebook的免费资源运行。

📖快来学习吧~👇

01.Flux.1 Kontext介绍

FLUX.1 Kontext 是由 黑森林实验室(Black Forest Labs)开发的一款专业图像生成与编辑模型,专注于通过上下文感知技术实现精准的图像编辑。该模型支持文本和图像的混合输入,能够智能理解图像内容并执行对象修改、风格转换、背景替换等多种编辑任务,同时在多轮编辑中较好地保持主体一致性,解决了传统模型在这一领域的痛点⁠⁣ 。其核心采用流匹配(Flow Matching)架构,结合双流与单流混合设计,提升了语义关联的精度和生成速度。

FLUX.1 Kontext 模型能够理解现有图像并进行创作。使用 FLUX.1 Kontext,您可以通过简单的文本指令修改输入图像,实现灵活、即时的图像编辑,无需进行精细调整或复杂的编辑工作流程。FLUX.1 Kontext 套件的核心功能包括:

  • 角色一致性:在多个场景和环境中保留图像的独特元素,例如图片中的参考角色或对象。

  • 局部编辑:针对性地修改图像中的特定元素,而不影响其余元素。

  • 风格参考:根据文本提示,生成新颖的场景,同时保留参考图像的独特风格。

  • 交互速度:图像生成和编辑的延迟最小。

02.AIGC专区在线图像编辑与微调

Flux.1 Kontext [dev] 正式上线ModelScope AIGC专区,支持在线免费的图像编辑。同时还支持在线界面GUI交互的模型训练,可以基于Flux.1 Kontext [dev] 底模训练LoRA模型。

AIGC专区地址:https://www.modelscope.cn/aigc/imageGeneration

在线图像编辑

在ModelScope AIGC专区“图片生成”入口,切到快速生图Tab,玩法选择“FLUX Kontext",上传待编辑图片和提示词,可用魔搭的在线资源进行图片编辑。

专业生图入口同样也支持“FLUX.1 Kontext Dev"。相比快速生图,专业生图入口提供更自由的参数控制。

模型微调

在AIGC专区的“模型训练”入口,选择新上线的“MusePublic/FLUX.1-Kontext-Dev”作为底模,上传自己的图片训练集,即可开始在线训练。

03.DiffSynth-Studio 推理与微调

安装

DiffSynth-Studio 的新版框架为 FLUX.1-Kontext-dev 提供了推理和训练支持。首先,通过以下命令 clone 并安装最新版的 DiffSynth-Studio:

git clone https://github.com/modelscope/DiffSynth-Studio.git  
cd DiffSynth-Studio
pip install -e .

运行以下 Python 代码,即可下载模型并进行推理:

import torch
from diffsynth.pipelines.flux_image_new import FluxImagePipeline, ModelConfig

pipe = FluxImagePipeline.from_pretrained(
    torch_dtype=torch.bfloat16,
    device="cuda",
    model_configs=[
        ModelConfig(model_id="black-forest-labs/FLUX.1-Kontext-dev", origin_file_pattern="flux1-kontext-dev.safetensors"),
        ModelConfig(model_id="black-forest-labs/FLUX.1-dev", origin_file_pattern="text_encoder/model.safetensors"),
        ModelConfig(model_id="black-forest-labs/FLUX.1-dev", origin_file_pattern="text_encoder_2/"),
        ModelConfig(model_id="black-forest-labs/FLUX.1-dev", origin_file_pattern="ae.safetensors"),
    ],
)

# text-to-image
image = pipe(
  prompt="an orange cat is sitting on a seat, looking at the window.",
  seed=0
)
image.save("image.jpg")

# image-to-image
image = pipe(
    prompt="add sunglasses to the cat",
    kontext_images=image,
    embedded_guidance=2.5,
    seed=0
)
image.save("image_edit.jpg")

这段代码可以生成一只橙猫猫,并给它戴上酷酷的眼镜!

显存管理

以上代码加载的完整版模型需要 40G 显存才能进行推理,DiffSynth-Studio 提供了显存管理的支持,只需在加载模型时 ModelConfig 中填入 offload_device="cpu"并调用 enable_vram_management即可根据 GPU 剩余的显存进行动态分配,最低可以在 6G 显存上运行。需要注意的是,显存越小,推理速度越慢,不过对模型精度没有任何影响。

pipe = FluxImagePipeline.from_pretrained(
    torch_dtype=torch.bfloat16,
    device="cuda",
    model_configs=[
        ModelConfig(model_id="black-forest-labs/FLUX.1-Kontext-dev", origin_file_pattern="flux1-kontext-dev.safetensors", offload_device="cpu"),
        ModelConfig(model_id="black-forest-labs/FLUX.1-dev", origin_file_pattern="text_encoder/model.safetensors", offload_device="cpu"),
        ModelConfig(model_id="black-forest-labs/FLUX.1-dev", origin_file_pattern="text_encoder_2/", offload_device="cpu"),
        ModelConfig(model_id="black-forest-labs/FLUX.1-dev", origin_file_pattern="ae.safetensors", offload_device="cpu"),
    ],
)
pipe.enable_vram_management()

微调

此外,DiffSynth-Studio 也适配了 FLUX.1-Kontext-dev 的原生训练。由于这一模型需要额外输入一张图,我们需要按照如下格式构建数据集:

data/example_image_dataset/
├── metadata.csv
├── image1.jpg
└── image2.jpg

并在 metadata.csv 中填写相应的信息:

image,prompt,kontext_images
1.jpg,"Make the dog turn its head around.",2.jpg

我们准备了一个样例数据集,供大家参考,可通过以下命令下载:

modelscope download --dataset DiffSynth-Studio/example_image_dataset --local_dir ./data/example_image_dataset

然后,运行以下命令就可以启动 LoRA 训练了:

accelerate launch examples/flux/model_training/train.py \
  --dataset_base_path data/example_image_dataset \
  --dataset_metadata_path data/example_image_dataset/metadata_kontext.csv \
  --data_file_keys "image,kontext_images" \
  --max_pixels 1048576 \
  --dataset_repeat 400 \
  --model_id_with_origin_paths "black-forest-labs/FLUX.1-Kontext-dev:flux1-kontext-dev.safetensors,black-forest-labs/FLUX.1-dev:text_encoder/model.safetensors,black-forest-labs/FLUX.1-dev:text_encoder_2/,black-forest-labs/FLUX.1-dev:ae.safetensors" \
  --learning_rate 1e-4 \
  --num_epochs 5 \
  --remove_prefix_in_ckpt "pipe.dit." \
  --output_path "./models/train/FLUX.1-Kontext-dev_lora" \
  --lora_base_model "dit" \
  --lora_target_modules "a_to_qkv,b_to_qkv,ff_a.0,ff_a.2,ff_b.0,ff_b.2,a_to_out,b_to_out,proj_out,norm.linear,norm1_a.linear,norm1_b.linear,to_qkv_mlp" \
  --lora_rank 32 \
  --align_to_opensource_format \
  --extra_inputs "kontext_images" \
  --use_gradient_checkpointing

实际的显存需求与图像的分辨率有关,建议使用 80G 显存的 GPU。

更多详细信息,请参考:https://github.com/modelscope/DiffSynth-Studio/tree/main/examples/flux

04.ComfyUI工作流推理

ComfyUI官方提供了fp8_scaled版本的模型权重,运行显存仅需约22G,可使用魔搭notebook的免费资源运行。

  • 进入魔搭notebook,准备环境

魔搭notebook地址:https://modelscope.cn/my/mynotebook

# 克隆仓库
git clone https://github.com/comfyanonymous/ComfyUI.git

# 安装依赖
cd ComfyUI
pip install -r requirements.txt

# 下载模型
modelscope download --model Comfy-Org/Lumina_Image_2.0_Repackaged split_files/vae/ae.safetensors --local_dir ./models/vae

modelscope download --model comfyanonymous/flux_text_encoders clip_l.safetensors --local_dir ./models/text_encoders

modelscope download --model muse/t5xxl_fp16 t5xxl_fp16.safetensors --local_dir ./models/text_encoders

modelscope download --model Comfy-Org/flux1-kontext-dev_ComfyUI split_files/diffusion_models/flux1-dev-kontext_fp8_scaled.safetensors --local_dir ./models/diffusion_models
  • 启动comfyui

运行以下命令启动ComfyUI服务,点击http://127.0.0.1:8188链接即可进入comfyui的界面

cd ComfyUI
python main.py

下载并运行工作流

下载下面的“工作流图片”,拖入ComfyUI中加载对应的工作流。

工作流图片

输入图片

检查各模型是否正确加载,上传输入图片,点击“运行”即可运行工作流。

这个工作流默认的prompt对输入图片左下角的粉色labubu小包包做一个擦除,并保持其他画面的一致性。

 

点击链接,即可跳转AIGC专区体验~

https://www.modelscope.cn/aigc/imageGeneration

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐