Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ModelZoo
PhotoMaker_pytorch
Commits
05b0e0d4
Commit
05b0e0d4
authored
Jan 26, 2024
by
mashun1
Browse files
photomaker
parent
763c7445
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
20 additions
and
18 deletions
+20
-18
.gitignore
.gitignore
+4
-2
Dockerfile
Dockerfile
+1
-1
README.md
README.md
+1
-1
gradio_demo/app.py
gradio_demo/app.py
+7
-10
photomaker/pipeline.py
photomaker/pipeline.py
+7
-4
No files found.
.gitignore
View file @
05b0e0d4
...
@@ -6,5 +6,7 @@ __pycache__/
...
@@ -6,5 +6,7 @@ __pycache__/
.idea/
.idea/
*.bin
*.bin
*.safetensors
*.safetensors
SG16122/
SG161222/
*vscode*
*vscode*
\ No newline at end of file
prof_analyze/
profiler*
\ No newline at end of file
Dockerfile
View file @
05b0e0d4
FROM
image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.1.0-centos7.6-dtk23.10.1-py38
FROM
image.sourcefind.cn:5000/dcu/admin/base/pytorch:1.13.1-centos7.6-dtk-23.04.1-py39-latest
\ No newline at end of file
\ No newline at end of file
README.md
View file @
05b0e0d4
...
@@ -28,7 +28,7 @@
...
@@ -28,7 +28,7 @@
### Docker(方法一)
### Docker(方法一)
docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:
2
.1
.0
-centos7.6-dtk23.
1
0.1-py3
8
docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:
1
.1
3.1
-centos7.6-dtk
-
23.0
4
.1-py3
9-latest
docker run --shm-size 10g --network=host --name=photomaker --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v /opt/hyhal:/opt/hyhal-v 项目地址(绝对路径):/home/ -it <your IMAGE ID> bash
docker run --shm-size 10g --network=host --name=photomaker --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v /opt/hyhal:/opt/hyhal-v 项目地址(绝对路径):/home/ -it <your IMAGE ID> bash
pip install -r requirements.txt
pip install -r requirements.txt
...
...
gradio_demo/app.py
View file @
05b0e0d4
...
@@ -38,6 +38,7 @@ if device == "mps":
...
@@ -38,6 +38,7 @@ if device == "mps":
torch_dtype
=
torch
.
float16
torch_dtype
=
torch
.
float16
else
:
else
:
torch_dtype
=
torch
.
float16
torch_dtype
=
torch
.
float16
pipe
=
PhotoMakerStableDiffusionXLPipeline
.
from_pretrained
(
pipe
=
PhotoMakerStableDiffusionXLPipeline
.
from_pretrained
(
base_model_path
,
base_model_path
,
torch_dtype
=
torch_dtype
,
torch_dtype
=
torch_dtype
,
...
@@ -58,10 +59,10 @@ pipe.id_encoder.to(device)
...
@@ -58,10 +59,10 @@ pipe.id_encoder.to(device)
pipe
.
scheduler
=
EulerDiscreteScheduler
.
from_config
(
pipe
.
scheduler
.
config
)
pipe
.
scheduler
=
EulerDiscreteScheduler
.
from_config
(
pipe
.
scheduler
.
config
)
print
(
"Loading lora..."
)
print
(
"Loading lora..."
)
lora_path
=
"./lora/ral-opal-sdxl.safetensors"
#
lora_path = "./lora/ral-opal-sdxl.safetensors"
pipe
.
load_lora_weights
(
os
.
path
.
dirname
(
lora_path
),
weight_name
=
os
.
path
.
basename
(
lora_path
),
adapter_name
=
"xl_more_art-full"
)
#
pipe.load_lora_weights(os.path.dirname(lora_path), weight_name=os.path.basename(lora_path), adapter_name="xl_more_art-full")
pipe
.
set_adapters
([
"photomaker"
,
"xl_more_art-full"
],
adapter_weights
=
[
1.0
,
0.5
])
#
pipe.set_adapters(["photomaker", "xl_more_art-full"], adapter_weights=[1.0, 0.5])
#
pipe.set_adapters(["photomaker"], adapter_weights=[1.0])
pipe
.
set_adapters
([
"photomaker"
],
adapter_weights
=
[
1.0
])
pipe
.
fuse_lora
()
pipe
.
fuse_lora
()
@
spaces
.
GPU
(
enable_queue
=
True
)
@
spaces
.
GPU
(
enable_queue
=
True
)
...
@@ -93,10 +94,7 @@ def generate_image(upload_images, prompt, negative_prompt, style_name, num_steps
...
@@ -93,10 +94,7 @@ def generate_image(upload_images, prompt, negative_prompt, style_name, num_steps
if
start_merge_step
>
30
:
if
start_merge_step
>
30
:
start_merge_step
=
30
start_merge_step
=
30
print
(
start_merge_step
)
print
(
start_merge_step
)
# with torch.profiler.profile(activities=[
# torch.profiler.ProfilerActivity.CPU,
# torch.profiler.ProfilerActivity.CUDA,
# ]) as p:
images
=
pipe
(
images
=
pipe
(
prompt
=
prompt
,
prompt
=
prompt
,
input_id_images
=
input_id_images
,
input_id_images
=
input_id_images
,
...
@@ -107,8 +105,7 @@ def generate_image(upload_images, prompt, negative_prompt, style_name, num_steps
...
@@ -107,8 +105,7 @@ def generate_image(upload_images, prompt, negative_prompt, style_name, num_steps
generator
=
generator
,
generator
=
generator
,
guidance_scale
=
guidance_scale
,
guidance_scale
=
guidance_scale
,
).
images
).
images
# print(p.key_averages().table(sort_by="self_cuda_time_total", row_limit=-1))
# p.export_chrome_trace("profiler_results_dcu61.json")
return
images
,
gr
.
update
(
visible
=
True
)
return
images
,
gr
.
update
(
visible
=
True
)
def
swap_to_gallery
(
images
):
def
swap_to_gallery
(
images
):
...
...
photomaker/pipeline.py
View file @
05b0e0d4
...
@@ -4,6 +4,8 @@ import os
...
@@ -4,6 +4,8 @@ import os
import
PIL
import
PIL
import
numpy
as
np
import
numpy
as
np
import
time
import
torch
import
torch
from
torchvision
import
transforms
as
T
from
torchvision
import
transforms
as
T
...
@@ -469,12 +471,13 @@ class PhotoMakerStableDiffusionXLPipeline(StableDiffusionXLPipeline):
...
@@ -469,12 +471,13 @@ class PhotoMakerStableDiffusionXLPipeline(StableDiffusionXLPipeline):
progress_bar
.
update
()
progress_bar
.
update
()
if
callback
is
not
None
and
i
%
callback_steps
==
0
:
if
callback
is
not
None
and
i
%
callback_steps
==
0
:
callback
(
i
,
t
,
latents
)
callback
(
i
,
t
,
latents
)
# make sure the VAE is in float32 mode, as it overflows in float16
# make sure the VAE is in float32 mode, as it overflows in float16
if
self
.
vae
.
dtype
==
torch
.
float16
and
self
.
vae
.
config
.
force_upcast
:
#
if self.vae.dtype == torch.float16 and self.vae.config.force_upcast:
self
.
upcast_vae
()
#
self.upcast_vae()
latents
=
latents
.
to
(
next
(
iter
(
self
.
vae
.
post_quant_conv
.
parameters
())).
dtype
)
#
latents = latents.to(next(iter(self.vae.post_quant_conv.parameters())).dtype)
latents
=
latents
.
to
(
memory_format
=
torch
.
channels_last
)
if
not
output_type
==
"latent"
:
if
not
output_type
==
"latent"
:
image
=
self
.
vae
.
decode
(
latents
/
self
.
vae
.
config
.
scaling_factor
,
return_dict
=
False
)[
0
]
image
=
self
.
vae
.
decode
(
latents
/
self
.
vae
.
config
.
scaling_factor
,
return_dict
=
False
)[
0
]
else
:
else
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment