Skip to content

Commit

Permalink
feat: Expose more stable diffusion webui api parameters
Browse files Browse the repository at this point in the history
  • Loading branch information
hibobmaster committed Jan 4, 2024
1 parent 4cfa4fc commit ffbe6d5
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .full-env.example
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,7 @@ IMAGE_GENERATION_ENDPOINT="http://127.0.0.1:7860/sdapi/v1/txt2img"
IMAGE_GENERATION_BACKEND="sdwui" # openai or sdwui or localai
IMAGE_GENERATION_SIZE="512x512"
IMAGE_FORMAT="jpeg"
SDWUI_STEPS=20
SDWUI_SAMPLER_NAME="Euler a"
SDWUI_CFG_SCALE=7
TIMEOUT=120.0
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
# Changelog

## v1.3.1
- Expose more stable diffusion webui api parameters

## v1.3.0
- Fix localai v2.0+ image generation
- Support specific output image format(jpeg, png) and size
Expand Down
3 changes: 3 additions & 0 deletions full-config.json.example
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@
"image_generation_endpoint": "http://localai:8080/v1/images/generations",
"image_generation_backend": "localai",
"image_generation_size": "512x512",
"sdwui_steps": 20,
"sdwui_sampler_name": "Euler a",
"sdwui_cfg_scale": 7,
"image_format": "jpeg",
"timeout": 120.0
}
10 changes: 10 additions & 0 deletions src/bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ def __init__(
image_generation_endpoint: Optional[str] = None,
image_generation_backend: Optional[str] = None,
image_generation_size: Optional[str] = None,
sdwui_steps: Optional[int] = None,
sdwui_sampler_name: Optional[str] = None,
sdwui_cfg_scale: Optional[float] = None,
image_format: Optional[str] = None,
timeout: Optional[float] = 120.0,
) -> None:
Expand Down Expand Up @@ -110,6 +113,10 @@ def __init__(
self.image_generation_width = self.image_generation_size.split("x")[0]
self.image_generation_height = self.image_generation_size.split("x")[1]

self.sdwui_steps = sdwui_steps
self.sdwui_sampler_name = sdwui_sampler_name
self.sdwui_cfg_scale = sdwui_cfg_scale

self.timeout = timeout or 120.0

self.bot_id = None
Expand Down Expand Up @@ -295,6 +302,9 @@ async def message_callback(
size=self.image_generation_size,
width=self.image_generation_width,
height=self.image_generation_height,
steps=self.sdwui_steps,
sampler_name=self.sdwui_sampler_name,
cfg_scale=self.sdwui_cfg_scale,
image_format=self.image_format,
)
# send image
Expand Down
1 change: 1 addition & 0 deletions src/imagegen.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ async def get_images(
json={
"prompt": prompt,
"sampler_name": kwargs.get("sampler_name", "Euler a"),
"cfg_scale": kwargs.get("cfg_scale", 7),
"batch_size": kwargs.get("n", 1),
"steps": kwargs.get("steps", 20),
"width": kwargs.get("width", 512),
Expand Down
6 changes: 6 additions & 0 deletions src/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ async def main():
image_generation_endpoint=config.get("image_generation_endpoint"),
image_generation_backend=config.get("image_generation_backend"),
image_generation_size=config.get("image_generation_size"),
sdwui_steps=config.get("sdwui_steps"),
sdwui_sampler_name=config.get("sdwui_sampler_name"),
sdwui_cfg_scale=config.get("sdwui_cfg_scale"),
image_format=config.get("image_format"),
timeout=config.get("timeout"),
)
Expand All @@ -65,6 +68,9 @@ async def main():
image_generation_endpoint=os.environ.get("IMAGE_GENERATION_ENDPOINT"),
image_generation_backend=os.environ.get("IMAGE_GENERATION_BACKEND"),
image_generation_size=os.environ.get("IMAGE_GENERATION_SIZE"),
sdwui_steps=int(os.environ.get("SDWUI_STEPS", 20)),
sdwui_sampler_name=os.environ.get("SDWUI_SAMPLER_NAME"),
sdwui_cfg_scale=float(os.environ.get("SDWUI_CFG_SCALE", 7)),
image_format=os.environ.get("IMAGE_FORMAT"),
timeout=float(os.environ.get("TIMEOUT", 120.0)),
)
Expand Down

0 comments on commit ffbe6d5

Please sign in to comment.