mirror of
https://github.com/vladmandic/automatic
synced 2026-09-05 04:20:44 +02:00
3368ce95f7
Qwen-Image: diffusers registers a no-op identity lambda for QwenImageTransformer2DModel; from_single_file silently accepted any key naming and loaded with mismatches. QWEN_SPEC sets converter=None to short-circuit the no-op. Custom transformer classes (Lens, Step1X-Edit, VIBE Sana, f-lite): runtime-registered onto diffusers, never in SINGLE_FILE_LOADABLE_CLASSES. Specs land in each arch's existing pipelines/<arch>/__init__.py. NextStep skipped: loader returns None up front.
56 lines
2.2 KiB
Python
56 lines
2.2 KiB
Python
"""Lens - minimal text-to-image inference package."""
|
|
|
|
import diffusers as _diffusers
|
|
import transformers as _transformers
|
|
from pipelines.native_transformer import TransformerSpec
|
|
from .pipeline import LensPipeline, LensPipelineOutput
|
|
from .pipeline_image import LensImg2ImgPipeline, LensInpaintPipeline
|
|
from .reasoner import PromptReasoner
|
|
from .resolution import RESOLUTION_BUCKETS, resolve_resolution
|
|
from .text_encoder import LensGptOssEncoder
|
|
from .transformer import LensTransformer2DModel
|
|
|
|
|
|
LENS_SPEC = TransformerSpec(cls=LensTransformer2DModel)
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Make our custom subclasses discoverable by ``diffusers.DiffusionPipeline``.
|
|
#
|
|
# When ``LensPipeline.from_pretrained`` reads ``model_index.json``, it sees
|
|
# entries like ``["transformers", "LensGptOssEncoder"]`` and runs
|
|
# ``getattr(importlib.import_module("transformers"), "LensGptOssEncoder")``.
|
|
# diffusers only allow-lists the libraries ``diffusers``, ``transformers`` and
|
|
# ``onnxruntime.training`` - any other name is interpreted as a custom .py file
|
|
# in the repo. So we inject our subclasses into those two namespaces here.
|
|
#
|
|
# Importing ``lens`` is required before calling ``LensPipeline.from_pretrained``
|
|
# (this happens automatically when the user does ``from lens import LensPipeline``).
|
|
# ---------------------------------------------------------------------------
|
|
|
|
if not hasattr(_transformers, "LensGptOssEncoder"):
|
|
_transformers.LensGptOssEncoder = LensGptOssEncoder
|
|
if not hasattr(_diffusers, "LensTransformer2DModel"):
|
|
_diffusers.LensTransformer2DModel = LensTransformer2DModel
|
|
if not hasattr(_diffusers, "LensPipeline"):
|
|
_diffusers.LensPipeline = LensPipeline
|
|
if not hasattr(_diffusers, "LensImg2ImgPipeline"):
|
|
_diffusers.LensImg2ImgPipeline = LensImg2ImgPipeline
|
|
if not hasattr(_diffusers, "LensInpaintPipeline"):
|
|
_diffusers.LensInpaintPipeline = LensInpaintPipeline
|
|
|
|
# Clean up local module references after registration.
|
|
del _diffusers, _transformers
|
|
|
|
__all__ = [
|
|
"LENS_SPEC",
|
|
"LensPipeline",
|
|
"LensPipelineOutput",
|
|
"LensImg2ImgPipeline",
|
|
"LensInpaintPipeline",
|
|
"LensTransformer2DModel",
|
|
"LensGptOssEncoder",
|
|
"PromptReasoner",
|
|
"RESOLUTION_BUCKETS",
|
|
"resolve_resolution",
|
|
]
|