Views
No views yet
1import torch
2from diffusers import DiffusionPipeline, FluxTransformer2DModel
3from transformers import T5EncoderModel
4from diffusers.utils import load_image, make_image_grid
5from image_gen_aux import DepthPreprocessor # https://github.com/huggingface/image_gen_aux
6from PIL import Image
7import numpy as np
8
9pipe = DiffusionPipeline.from_pretrained(
10 "black-forest-labs/FLUX.1-Depth-dev",
11 torch_dtype=torch.bfloat16,
12 custom_pipeline="afromero/pipeline_flux_control_inpaint",
13)
14
15transformer = FluxTransformer2DModel.from_pretrained(
16 "sayakpaul/FLUX.1-Depth-dev-nf4", subfolder="transformer", torch_dtype=torch.bfloat16
17)
18text_encoder_2 = T5EncoderModel.from_pretrained(
19 "sayakpaul/FLUX.1-Depth-dev-nf4", subfolder="text_encoder_2", torch_dtype=torch.bfloat16
20)
21pipe.transformer = transformer
22pipe.text_encoder_2 = text_encoder_2
23pipe.enable_model_cpu_offload()
24pipe.to("cuda")
25
26prompt = "a blue robot singing opera with human-like expressions"
27image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/robot.png")
28
29head_mask = np.zeros_like(image)
30head_mask[65:580,300:642] = 255
31mask_image = Image.fromarray(head_mask)
32
33processor = DepthPreprocessor.from_pretrained("LiheYoung/depth-anything-large-hf")
34control_image = processor(image)[0].convert("RGB")
35
36output = pipe(
37 prompt=prompt,
38 image=image,
39 control_image=control_image,
40 mask_image=mask_image,
41 num_inference_steps=30,
42 strength=0.9,
43 guidance_scale=50.0,
44 generator=torch.Generator().manual_seed(42),
45).images[0]
46make_image_grid([image, control_image, mask_image, output.resize(image.size)], rows=1, cols=4).save("output.png")