Qwen-Image-Style-Transfer / infer_style_transfer.py
witcherderivia's picture
Create infer_style_transfer.py
2319a41 verified
import torch
from PIL import Image
from diffsynth.pipelines.qwen_image import QwenImagePipeline, ModelConfig
import os
pipe = QwenImagePipeline.from_pretrained(
torch_dtype=torch.bfloat16,
device="cuda",
model_configs=[
ModelConfig(model_id="Qwen/Qwen-Image-Edit-2509", 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"),
],
tokenizer_config=None,
processor_config=ModelConfig(model_id="Qwen/Qwen-Image-Edit", origin_file_pattern="processor/"),
)
qwen_image_style_transfer_lora_model='./diffsynth_Qwen-Image-Edit-2509-Style-Transfer-V1.safetensors'
qwen_image_speedup_lora_model='./diffsynth_Qwen-Image-Edit-2509-Lightning-4steps-V1.0-bf16.safetensors'
pipe.load_lora(pipe.dit, qwen_image_style_transfer_lora_model)
pipe.load_lora(pipe.dit, qwen_image_speedup_lora_model)
content_ref='' #content reference image
style_ref=''#style reference image
prompt = 'Style Transfer the style of Figure 2 to Figure 1, and keep the content and characteristics of Figure 1.'
w,h=Image.open(content_ref).convert("RGB").size
minedge=1024
if w>h:
r=w/h
h=minedge
w=int(h*r)-int(h*r)%16
else:
r=h/w
w=minedge
h=int(w*r)-int(w*r)%16
images = [
Image.open(content_ref).convert("RGB").resize((w, h)),
Image.open(style_ref).convert("RGB").resize((minedge, minedge)) ,
]
image = pipe(prompt, edit_image=images, seed=123, num_inference_steps=4, height=h, width=w,edit_image_auto_resize=False,cfg_scale=1.0)#ligtning
save_dir=f'./qwen_style_output/'
os.makedirs(save_dir,exist_ok=True)
prefix=style_ref.split('/')[-1].split('.')[0]
image.save(os.path.join(save_dir, f'{prefix}_result.png'))
print(f"saved to {os.path.join(save_dir, f'{prefix}_result.png')}")