mirror of
https://github.com/modelscope/DiffSynth-Studio.git
synced 2026-03-18 22:08:13 +00:00
34 lines
1.7 KiB
Python
34 lines
1.7 KiB
Python
import torch
|
|
from diffsynth.pipelines.flux_image import FluxImagePipeline, ModelConfig, ControlNetInput
|
|
from diffsynth import load_state_dict
|
|
from PIL import Image
|
|
|
|
|
|
pipe = FluxImagePipeline.from_pretrained(
|
|
torch_dtype=torch.bfloat16,
|
|
device="cuda",
|
|
model_configs=[
|
|
ModelConfig(model_id="black-forest-labs/FLUX.1-dev", origin_file_pattern="flux1-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/*.safetensors"),
|
|
ModelConfig(model_id="black-forest-labs/FLUX.1-dev", origin_file_pattern="ae.safetensors"),
|
|
ModelConfig(model_id="ByteDance/InfiniteYou", origin_file_pattern="infu_flux_v1.0/aes_stage2/image_proj_model.bin"),
|
|
ModelConfig(model_id="ByteDance/InfiniteYou", origin_file_pattern="infu_flux_v1.0/aes_stage2/InfuseNetModel/*.safetensors"),
|
|
],
|
|
)
|
|
state_dict = load_state_dict("models/train/FLUX.1-dev-InfiniteYou_full/epoch-0.safetensors")
|
|
state_dict_projector = {i.replace("image_proj_model.", ""): state_dict[i] for i in state_dict if i.startswith("image_proj_model.")}
|
|
pipe.image_proj_model.load_state_dict(state_dict_projector)
|
|
state_dict_controlnet = {i.replace("controlnet.models.0.", ""): state_dict[i] for i in state_dict if i.startswith("controlnet.models.0.")}
|
|
pipe.controlnet.models[0].load_state_dict(state_dict_controlnet)
|
|
|
|
image = pipe(
|
|
prompt="a man with a red hat",
|
|
controlnet_inputs=[ControlNetInput(
|
|
image=Image.open("data/example_image_dataset/infiniteyou/image_1.jpg"),
|
|
)],
|
|
height=1024, width=1024,
|
|
seed=0, rand_device="cuda",
|
|
)
|
|
image.save("image_FLUX.1-dev-InfiniteYou_full.jpg")
|