Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
H
Hydra Node Http
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
novelai-storage
Hydra Node Http
Commits
d41ec0fd
Commit
d41ec0fd
authored
Aug 19, 2022
by
kurumuz
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
make base64 images work
parent
4249d339
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
21 additions
and
10 deletions
+21
-10
hydra_node/models.py
hydra_node/models.py
+1
-9
hydra_node/sanitize.py
hydra_node/sanitize.py
+20
-1
No files found.
hydra_node/models.py
View file @
d41ec0fd
...
@@ -99,12 +99,6 @@ def decode_image(image, model):
...
@@ -99,12 +99,6 @@ def decode_image(image, model):
image
=
custom_to_pil
(
image
)
image
=
custom_to_pil
(
image
)
return
image
return
image
def
sanitize_image
(
image
):
#Open image with PIL and get rid of alpha channel, scale to given res with center crop
image
=
Image
.
open
(
image
)
image
=
image
.
convert
(
'RGB'
)
return
image
class
StableInterface
(
nn
.
Module
):
class
StableInterface
(
nn
.
Module
):
def
__init__
(
self
,
model
,
thresholder
=
None
):
def
__init__
(
self
,
model
,
thresholder
=
None
):
super
()
.
__init__
()
super
()
.
__init__
()
...
@@ -186,9 +180,7 @@ class StableDiffusionModel(nn.Module):
...
@@ -186,9 +180,7 @@ class StableDiffusionModel(nn.Module):
if
request
.
image
is
not
None
:
if
request
.
image
is
not
None
:
request
.
sampler
=
"ddim_img2img"
#enforce ddim for now
request
.
sampler
=
"ddim_img2img"
#enforce ddim for now
self
.
ddim
.
make_schedule
(
ddim_num_steps
=
request
.
steps
,
ddim_eta
=
request
.
ddim_eta
,
verbose
=
False
)
self
.
ddim
.
make_schedule
(
ddim_num_steps
=
request
.
steps
,
ddim_eta
=
request
.
ddim_eta
,
verbose
=
False
)
image
=
sanitize_image
(
request
.
image
)
start_code
=
encode_image
(
request
.
image
,
self
.
model
.
first_stage_model
)
.
to
(
self
.
device
)
image
=
image
.
resize
((
request
.
width
,
request
.
height
),
resample
=
Image
.
Resampling
.
LANCZOS
)
start_code
=
encode_image
(
image
,
self
.
model
.
first_stage_model
)
.
to
(
self
.
device
)
start_code
=
self
.
model
.
get_first_stage_encoding
(
start_code
)
start_code
=
self
.
model
.
get_first_stage_encoding
(
start_code
)
print
(
start_code
.
shape
)
print
(
start_code
.
shape
)
start_code
=
start_code
+
(
torch
.
randn_like
(
start_code
)
*
request
.
noise
)
start_code
=
start_code
+
(
torch
.
randn_like
(
start_code
)
*
request
.
noise
)
...
...
hydra_node/sanitize.py
View file @
d41ec0fd
from
dotmap
import
DotMap
from
dotmap
import
DotMap
import
math
import
math
from
io
import
BytesIO
v1pp_defaults
=
{
v1pp_defaults
=
{
'steps'
:
50
,
'steps'
:
50
,
...
@@ -91,6 +92,24 @@ def sanitize_stable_diffusion(request):
...
@@ -91,6 +92,24 @@ def sanitize_stable_diffusion(request):
if
request
.
sampler
not
in
samplers
:
if
request
.
sampler
not
in
samplers
:
return
False
,
"sampler should be one of {}"
.
format
(
samplers
)
return
False
,
"sampler should be one of {}"
.
format
(
samplers
)
if
request
.
image
is
not
None
:
#decode from base64
request
.
image
=
request
.
image
.
decode
(
'base64'
)
#check if image is valid
try
:
from
PIL
import
Image
image
=
Image
.
open
(
BytesIO
(
request
.
image
))
image
.
verify
()
except
Exception
as
e
:
return
False
,
"image is not valid"
#image is valid, load it again
image
=
Image
.
open
(
BytesIO
(
request
.
image
))
image
=
image
.
convert
(
'RGB'
)
image
=
image
.
resize
((
request
.
width
,
request
.
height
),
resample
=
Image
.
Resampling
.
LANCZOS
)
request
.
image
=
image
return
True
,
request
return
True
,
request
def
sanitize_dalle_mini
(
request
):
def
sanitize_dalle_mini
(
request
):
...
@@ -111,6 +130,6 @@ def sanitize_input(config, request):
...
@@ -111,6 +130,6 @@ def sanitize_input(config, request):
if
config
.
model_name
==
'stable-diffusion'
:
if
config
.
model_name
==
'stable-diffusion'
:
return
sanitize_stable_diffusion
(
request
)
return
sanitize_stable_diffusion
(
request
)
elif
config
.
model_name
==
'dalle-mini'
:
elif
config
.
model_name
==
'dalle-mini'
:
return
sanitize_dalle_mini
(
request
)
return
sanitize_dalle_mini
(
request
)
\ No newline at end of file
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