DiffSynth-Studio/Qwen-Image-Blockwise-ControlNet-Canny

🤗 Hugging Face sourceapache-2.01.1B params2.3 GBsafetensors✓ 10 checksumsupdated today
Submit in one command

Run it next to your model folder. It makes the torrent, checks your files against Hugging Face, and submits it. You just start seeding and paste your key from your account. It only reads your files and never changes them. Read the script first if you like.

curl -fsSL https://pirateface.co/package.sh | bash -s -- --repo DiffSynth-Studio/Qwen-Image-Blockwise-ControlNet-Canny ./model-folder
Needs a seeder →

Qwen-Image Image Structure Control Model

Model Introduction

This model is an image structure control model trained based on Qwen-Image, with the ControlNet architecture. It can control the structure of generated images using edge detection (Canny) maps. The training framework is built on DiffSynth-Studio, and the dataset used is BLIP3o.

Result Demonstration

Canny Edge Map Generated Image 1 Generated Image 2

Inference Code

git clone https://github.com/modelscope/DiffSynth-Studio.git  
cd DiffSynth-Studio
pip install -e .
from diffsynth.pipelines.qwen_image import QwenImagePipeline, ModelConfig, ControlNetInput
from PIL import Image
import torch
from modelscope import dataset_snapshot_download


pipe = QwenImagePipeline.from_pretrained(
    torch_dtype=torch.bfloat16,
    device="cuda",
    model_configs=[
        ModelConfig(model_id="Qwen/Qwen-Image", origin_file_pattern="transformer/diffusion_pytorch_model*.safetensors"),
        ModelConfig(model_id="Qwen/Qwen-Image", origin_file_pattern="text_encoder/model*.safetensors"),
        ModelConfig(model_id="Qwen/Qwen-Image", origin_file_pattern="vae/diffusion_pytorch_model.safetensors"),
        ModelConfig(model_id="DiffSynth-Studio/Qwen-Image-Blockwise-ControlNet-Canny", origin_file_pattern="model.safetensors"),
    ],
    tokenizer_config=ModelConfig(model_id="Qwen/Qwen-Image", origin_file_pattern="tokenizer/"),
)

dataset_snapshot_download(
    dataset_id="DiffSynth-Studio/example_image_dataset",
    local_dir="./data/example_image_dataset",
    allow_file_pattern="canny/image_1.jpg"
)
controlnet_image = Image.open("data/example_image_dataset/canny/image_1.jpg").resize((1328, 1328))

prompt = "A little dog with shiny, soft fur and lively eyes, set in a spring courtyard with cherry blossoms falling, creating a beautiful and warm atmosphere." image = pipe( prompt, seed=0, blockwise_controlnet_inputs=[ControlNetInput(image=controlnet_image)] ) image.save("image.jpg")