Spaces:
Sleeping
Sleeping
Commit ·
069200c
1
Parent(s): e9ef9c8
deploying to gradio
Browse files- README.md +6 -0
- requirements.txt +1 -3
- src/sdgen/config/__init__.py +1 -1
- src/sdgen/config/paths.py +1 -1
- src/sdgen/config/settings.py +1 -1
- src/sdgen/main.py +5 -5
- src/sdgen/sd/generator.py +3 -3
- src/sdgen/sd/img2img.py +3 -3
- src/sdgen/sd/pipeline.py +1 -1
- src/sdgen/ui/__init__.py +1 -1
- src/sdgen/ui/layout.py +8 -8
- src/sdgen/ui/tabs/history_tab.py +3 -3
- src/sdgen/ui/tabs/presets_tab.py +3 -3
- src/sdgen/upscaler/realesrgan.py +1 -1
- src/sdgen/upscaler/upscaler.py +2 -2
- src/sdgen/utils/history.py +3 -3
- src/sdgen/utils/logger.py +1 -1
README.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
# 🎨 Stable Diffusion Image Generator
|
| 2 |
|
| 3 |
AI system built using **Stable Diffusion (HuggingFace Diffusers)** and a modern **Gradio UI**.
|
|
|
|
| 1 |
+
---
|
| 2 |
+
title: stable-diffusion-image-generator
|
| 3 |
+
app_file: src/sdgen/main.py
|
| 4 |
+
sdk: gradio
|
| 5 |
+
sdk_version: 3.50.2
|
| 6 |
+
---
|
| 7 |
# 🎨 Stable Diffusion Image Generator
|
| 8 |
|
| 9 |
AI system built using **Stable Diffusion (HuggingFace Diffusers)** and a modern **Gradio UI**.
|
requirements.txt
CHANGED
|
@@ -35,6 +35,4 @@ realesrgan-ncnn-py==2.0.0
|
|
| 35 |
# DEVELOPMENT TOOLS
|
| 36 |
black==24.3.0
|
| 37 |
ruff==0.3.5
|
| 38 |
-
pre-commit==3.7.0
|
| 39 |
-
|
| 40 |
-
-e .
|
|
|
|
| 35 |
# DEVELOPMENT TOOLS
|
| 36 |
black==24.3.0
|
| 37 |
ruff==0.3.5
|
| 38 |
+
pre-commit==3.7.0
|
|
|
|
|
|
src/sdgen/config/__init__.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
"""Configuration exports for the sdgen package.
|
| 2 |
|
| 3 |
This module re-exports commonly used configuration paths and settings
|
| 4 |
-
so they can be imported directly from `sdgen.config`.
|
| 5 |
"""
|
| 6 |
|
| 7 |
from __future__ import annotations
|
|
|
|
| 1 |
"""Configuration exports for the sdgen package.
|
| 2 |
|
| 3 |
This module re-exports commonly used configuration paths and settings
|
| 4 |
+
so they can be imported directly from `src.sdgen.config`.
|
| 5 |
"""
|
| 6 |
|
| 7 |
from __future__ import annotations
|
src/sdgen/config/paths.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
"""Path configuration for sdgen.
|
| 2 |
|
| 3 |
All filesystem paths are resolved relative to the project root.
|
| 4 |
The project root is detected by walking upward until a marker
|
|
|
|
| 1 |
+
"""Path configuration for src.sdgen.
|
| 2 |
|
| 3 |
All filesystem paths are resolved relative to the project root.
|
| 4 |
The project root is detected by walking upward until a marker
|
src/sdgen/config/settings.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
"""Application runtime settings for sdgen.
|
| 2 |
|
| 3 |
AppSettings reads configuration values from environment variables at
|
| 4 |
process start and exposes them as strongly typed attributes.
|
|
|
|
| 1 |
+
"""Application runtime settings for src.sdgen.
|
| 2 |
|
| 3 |
AppSettings reads configuration values from environment variables at
|
| 4 |
process start and exposes them as strongly typed attributes.
|
src/sdgen/main.py
CHANGED
|
@@ -9,11 +9,11 @@ from __future__ import annotations
|
|
| 9 |
import torch
|
| 10 |
from dotenv import load_dotenv
|
| 11 |
|
| 12 |
-
from sdgen.config import AppSettings
|
| 13 |
-
from sdgen.sd.img2img import prepare_img2img_pipeline
|
| 14 |
-
from sdgen.sd.pipeline import load_pipeline, warmup_pipeline
|
| 15 |
-
from sdgen.ui import build_ui
|
| 16 |
-
from sdgen.utils.logger import get_logger
|
| 17 |
|
| 18 |
logger = get_logger(__name__)
|
| 19 |
load_dotenv()
|
|
|
|
| 9 |
import torch
|
| 10 |
from dotenv import load_dotenv
|
| 11 |
|
| 12 |
+
from src.sdgen.config import AppSettings
|
| 13 |
+
from src.sdgen.sd.img2img import prepare_img2img_pipeline
|
| 14 |
+
from src.sdgen.sd.pipeline import load_pipeline, warmup_pipeline
|
| 15 |
+
from src.sdgen.ui import build_ui
|
| 16 |
+
from src.sdgen.utils.logger import get_logger
|
| 17 |
|
| 18 |
logger = get_logger(__name__)
|
| 19 |
load_dotenv()
|
src/sdgen/sd/generator.py
CHANGED
|
@@ -8,9 +8,9 @@ from typing import Tuple
|
|
| 8 |
import torch
|
| 9 |
from PIL import Image
|
| 10 |
|
| 11 |
-
from sdgen.sd.models import GenerationMetadata, Txt2ImgConfig
|
| 12 |
-
from sdgen.utils.common import validate_resolution
|
| 13 |
-
from sdgen.utils.logger import get_logger
|
| 14 |
|
| 15 |
logger = get_logger(__name__)
|
| 16 |
|
|
|
|
| 8 |
import torch
|
| 9 |
from PIL import Image
|
| 10 |
|
| 11 |
+
from src.sdgen.sd.models import GenerationMetadata, Txt2ImgConfig
|
| 12 |
+
from src.sdgen.utils.common import validate_resolution
|
| 13 |
+
from src.sdgen.utils.logger import get_logger
|
| 14 |
|
| 15 |
logger = get_logger(__name__)
|
| 16 |
|
src/sdgen/sd/img2img.py
CHANGED
|
@@ -8,9 +8,9 @@ import torch
|
|
| 8 |
from diffusers import StableDiffusionImg2ImgPipeline
|
| 9 |
from PIL import Image
|
| 10 |
|
| 11 |
-
from sdgen.sd.models import GenerationMetadata, Img2ImgConfig
|
| 12 |
-
from sdgen.utils.common import validate_resolution
|
| 13 |
-
from sdgen.utils.logger import get_logger
|
| 14 |
|
| 15 |
logger = get_logger(__name__)
|
| 16 |
|
|
|
|
| 8 |
from diffusers import StableDiffusionImg2ImgPipeline
|
| 9 |
from PIL import Image
|
| 10 |
|
| 11 |
+
from src.sdgen.sd.models import GenerationMetadata, Img2ImgConfig
|
| 12 |
+
from src.sdgen.utils.common import validate_resolution
|
| 13 |
+
from src.sdgen.utils.logger import get_logger
|
| 14 |
|
| 15 |
logger = get_logger(__name__)
|
| 16 |
|
src/sdgen/sd/pipeline.py
CHANGED
|
@@ -12,7 +12,7 @@ from diffusers import (
|
|
| 12 |
StableDiffusionPipeline,
|
| 13 |
)
|
| 14 |
|
| 15 |
-
from sdgen.utils.logger import get_logger
|
| 16 |
|
| 17 |
logger = get_logger(__name__)
|
| 18 |
|
|
|
|
| 12 |
StableDiffusionPipeline,
|
| 13 |
)
|
| 14 |
|
| 15 |
+
from src.sdgen.utils.logger import get_logger
|
| 16 |
|
| 17 |
logger = get_logger(__name__)
|
| 18 |
|
src/sdgen/ui/__init__.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
from __future__ import annotations
|
| 2 |
|
| 3 |
-
from sdgen.ui.layout import build_ui
|
| 4 |
|
| 5 |
__all__ = ["build_ui"]
|
|
|
|
| 1 |
from __future__ import annotations
|
| 2 |
|
| 3 |
+
from src.sdgen.ui.layout import build_ui
|
| 4 |
|
| 5 |
__all__ = ["build_ui"]
|
src/sdgen/ui/layout.py
CHANGED
|
@@ -6,20 +6,20 @@ from typing import Any, Dict, Tuple
|
|
| 6 |
|
| 7 |
import gradio as gr
|
| 8 |
|
| 9 |
-
from sdgen.sd.generator import generate_image
|
| 10 |
-
from sdgen.sd.img2img import generate_img2img
|
| 11 |
-
from sdgen.sd.models import Img2ImgConfig, Txt2ImgConfig
|
| 12 |
-
from sdgen.ui.tabs import (
|
| 13 |
build_history_tab,
|
| 14 |
build_img2img_tab,
|
| 15 |
build_presets_tab,
|
| 16 |
build_txt2img_tab,
|
| 17 |
build_upscaler_tab,
|
| 18 |
)
|
| 19 |
-
from sdgen.upscaler.upscaler import Upscaler
|
| 20 |
-
from sdgen.utils.common import pretty_json, to_pil
|
| 21 |
-
from sdgen.utils.history import save_history_entry
|
| 22 |
-
from sdgen.utils.logger import get_logger
|
| 23 |
|
| 24 |
logger = get_logger(__name__)
|
| 25 |
|
|
|
|
| 6 |
|
| 7 |
import gradio as gr
|
| 8 |
|
| 9 |
+
from src.sdgen.sd.generator import generate_image
|
| 10 |
+
from src.sdgen.sd.img2img import generate_img2img
|
| 11 |
+
from src.sdgen.sd.models import Img2ImgConfig, Txt2ImgConfig
|
| 12 |
+
from src.sdgen.ui.tabs import (
|
| 13 |
build_history_tab,
|
| 14 |
build_img2img_tab,
|
| 15 |
build_presets_tab,
|
| 16 |
build_txt2img_tab,
|
| 17 |
build_upscaler_tab,
|
| 18 |
)
|
| 19 |
+
from src.sdgen.upscaler.upscaler import Upscaler
|
| 20 |
+
from src.sdgen.utils.common import pretty_json, to_pil
|
| 21 |
+
from src.sdgen.utils.history import save_history_entry
|
| 22 |
+
from src.sdgen.utils.logger import get_logger
|
| 23 |
|
| 24 |
logger = get_logger(__name__)
|
| 25 |
|
src/sdgen/ui/tabs/history_tab.py
CHANGED
|
@@ -7,13 +7,13 @@ from typing import Any, Dict, List, Optional, Tuple
|
|
| 7 |
import gradio as gr
|
| 8 |
from PIL import Image
|
| 9 |
|
| 10 |
-
from sdgen.utils.common import short_prompt
|
| 11 |
-
from sdgen.utils.history import (
|
| 12 |
delete_history_entry,
|
| 13 |
list_history,
|
| 14 |
load_entry,
|
| 15 |
)
|
| 16 |
-
from sdgen.utils.logger import get_logger
|
| 17 |
|
| 18 |
logger = get_logger(__name__)
|
| 19 |
|
|
|
|
| 7 |
import gradio as gr
|
| 8 |
from PIL import Image
|
| 9 |
|
| 10 |
+
from src.sdgen.utils.common import short_prompt
|
| 11 |
+
from src.sdgen.utils.history import (
|
| 12 |
delete_history_entry,
|
| 13 |
list_history,
|
| 14 |
load_entry,
|
| 15 |
)
|
| 16 |
+
from src.sdgen.utils.logger import get_logger
|
| 17 |
|
| 18 |
logger = get_logger(__name__)
|
| 19 |
|
src/sdgen/ui/tabs/presets_tab.py
CHANGED
|
@@ -6,9 +6,9 @@ from typing import Any, Tuple
|
|
| 6 |
|
| 7 |
import gradio as gr
|
| 8 |
|
| 9 |
-
from sdgen.presets.styles import get_preset, list_presets
|
| 10 |
-
from sdgen.ui.tabs.img2img_tab import Img2ImgControls
|
| 11 |
-
from sdgen.ui.tabs.txt2img_tab import Txt2ImgControls
|
| 12 |
|
| 13 |
|
| 14 |
def apply_preset(preset_name: Any) -> Tuple[Any, ...]:
|
|
|
|
| 6 |
|
| 7 |
import gradio as gr
|
| 8 |
|
| 9 |
+
from src.sdgen.presets.styles import get_preset, list_presets
|
| 10 |
+
from src.sdgen.ui.tabs.img2img_tab import Img2ImgControls
|
| 11 |
+
from src.sdgen.ui.tabs.txt2img_tab import Txt2ImgControls
|
| 12 |
|
| 13 |
|
| 14 |
def apply_preset(preset_name: Any) -> Tuple[Any, ...]:
|
src/sdgen/upscaler/realesrgan.py
CHANGED
|
@@ -12,7 +12,7 @@ from typing import Final
|
|
| 12 |
from PIL import Image
|
| 13 |
from realesrgan_ncnn_py import Realesrgan
|
| 14 |
|
| 15 |
-
from sdgen.utils.logger import get_logger
|
| 16 |
|
| 17 |
logger = get_logger(__name__)
|
| 18 |
|
|
|
|
| 12 |
from PIL import Image
|
| 13 |
from realesrgan_ncnn_py import Realesrgan
|
| 14 |
|
| 15 |
+
from src.sdgen.utils.logger import get_logger
|
| 16 |
|
| 17 |
logger = get_logger(__name__)
|
| 18 |
|
src/sdgen/upscaler/upscaler.py
CHANGED
|
@@ -14,8 +14,8 @@ from typing import Optional
|
|
| 14 |
|
| 15 |
from PIL import Image
|
| 16 |
|
| 17 |
-
from sdgen.upscaler.realesrgan import NCNNUpscaler
|
| 18 |
-
from sdgen.utils.logger import get_logger
|
| 19 |
|
| 20 |
logger = get_logger(__name__)
|
| 21 |
|
|
|
|
| 14 |
|
| 15 |
from PIL import Image
|
| 16 |
|
| 17 |
+
from src.sdgen.upscaler.realesrgan import NCNNUpscaler
|
| 18 |
+
from src.sdgen.utils.logger import get_logger
|
| 19 |
|
| 20 |
logger = get_logger(__name__)
|
| 21 |
|
src/sdgen/utils/history.py
CHANGED
|
@@ -18,14 +18,14 @@ from typing import Any, Dict, List, Optional, Tuple
|
|
| 18 |
|
| 19 |
from PIL import Image
|
| 20 |
|
| 21 |
-
from sdgen.config import (
|
| 22 |
HISTORY_ENTRIES_DIR,
|
| 23 |
HISTORY_FULL_DIR,
|
| 24 |
HISTORY_ROOT,
|
| 25 |
HISTORY_THUMBS_DIR,
|
| 26 |
)
|
| 27 |
-
from sdgen.sd.models import GenerationMetadata, HistorySummary
|
| 28 |
-
from sdgen.utils.logger import get_logger
|
| 29 |
|
| 30 |
logger = get_logger(__name__)
|
| 31 |
|
|
|
|
| 18 |
|
| 19 |
from PIL import Image
|
| 20 |
|
| 21 |
+
from src.sdgen.config import (
|
| 22 |
HISTORY_ENTRIES_DIR,
|
| 23 |
HISTORY_FULL_DIR,
|
| 24 |
HISTORY_ROOT,
|
| 25 |
HISTORY_THUMBS_DIR,
|
| 26 |
)
|
| 27 |
+
from src.sdgen.sd.models import GenerationMetadata, HistorySummary
|
| 28 |
+
from src.sdgen.utils.logger import get_logger
|
| 29 |
|
| 30 |
logger = get_logger(__name__)
|
| 31 |
|
src/sdgen/utils/logger.py
CHANGED
|
@@ -10,7 +10,7 @@ import logging
|
|
| 10 |
from logging import Handler, Logger
|
| 11 |
from logging.handlers import RotatingFileHandler
|
| 12 |
|
| 13 |
-
from sdgen.config import LOGS_ROOT
|
| 14 |
|
| 15 |
# Ensure logs directory exists
|
| 16 |
LOGS_ROOT.mkdir(parents=True, exist_ok=True)
|
|
|
|
| 10 |
from logging import Handler, Logger
|
| 11 |
from logging.handlers import RotatingFileHandler
|
| 12 |
|
| 13 |
+
from src.sdgen.config import LOGS_ROOT
|
| 14 |
|
| 15 |
# Ensure logs directory exists
|
| 16 |
LOGS_ROOT.mkdir(parents=True, exist_ok=True)
|