39 lines
832 B
Python
39 lines
832 B
Python
|
from logging import getLogger
|
||
|
from PIL import Image
|
||
|
from typing import Callable
|
||
|
|
||
|
from ..params import (
|
||
|
ImageParams,
|
||
|
Size,
|
||
|
StageParams,
|
||
|
)
|
||
|
from ..utils import (
|
||
|
ServerContext,
|
||
|
)
|
||
|
|
||
|
|
||
|
logger = getLogger(__name__)
|
||
|
|
||
|
|
||
|
def source_noise(
|
||
|
ctx: ServerContext,
|
||
|
stage: StageParams,
|
||
|
params: ImageParams,
|
||
|
source_image: Image.Image,
|
||
|
*,
|
||
|
size: Size,
|
||
|
noise_source: Callable,
|
||
|
**kwargs,
|
||
|
) -> Image.Image:
|
||
|
prompt = prompt or params.prompt
|
||
|
logger.info('generating image from noise source')
|
||
|
|
||
|
if source_image is not None:
|
||
|
logger.warn(
|
||
|
'a source image was passed to a noise stage, but will be discarded')
|
||
|
|
||
|
output = noise_source(source_image, (size.width, size.height), (0, 0))
|
||
|
|
||
|
logger.info('final output image size: %sx%s', output.width, output.height)
|
||
|
return output
|