aigc 启动器 sd-webui-aki-v4 decode_base64_to_file

下载地址:

SD-WebUI启动器 绘世-启动器 | 万物档案

decode_base64_to_file报错:

bash 复制代码
  File "E:\BaiduNetdiskDownload\stable diffusion\sd-webui-aki-v4\extensions\sd-webui-controlnet\scripts\external_code.py", line 7, in <module>
    from modules.api import api
  File "E:\BaiduNetdiskDownload\stable diffusion\sd-webui-aki-v4\modules\api\api.py", line 9, in <module>
    from gradio.processing_utils import decode_base64_to_file
ImportError: cannot import name 'decode_base64_to_file' from 'gradio.processing_utils'

报错2:

python 复制代码
import gradio as gr
original_IOComponent_init = gr.components.IOComponent.__init__

4.*版本报错, gradio-3.41.2-py3-none-any.whl 不报错

报错2:

bash 复制代码
  File "E:\BaiduNetdiskDownload\stable diffusion\sd-webui-aki-v4\modules\api\models.py", line 96, in generate_model
    DynamicModel.__config__.allow_population_by_field_name = True
  File "D:\ProgramData\miniconda3\envs\pysd\lib\site-packages\pydantic\_internal\_model_construction.py", line 215, in __getattr__
    raise AttributeError(item)
AttributeError: __config__

报错的gradio版本:

pip install gradio-3.41.2-py3-none-any.whl

sd-webui-aki-v4

from gradio.processing_utils import decode_base64_to_image

python 复制代码
def decode_base64_to_image(encoding: str) -> Image.Image:
    image_encoded = extract_base64_data(encoding)
    img = Image.open(BytesIO(base64.b64decode(image_encoded)))
    try:
        if hasattr(ImageOps, "exif_transpose"):
            img = ImageOps.exif_transpose(img)
    except Exception:
        log.warning(
            "Failed to transpose image %s based on EXIF data.",
            img,
            exc_info=True,
        )
    return img

python 实现代码:

python 复制代码
def decode_base64_to_image(encoding):
    if encoding.startswith("data:image/"):
        encoding = encoding.split(";")[1].split(",")[1]
    try:
        image = Image.open(BytesIO(base64.b64decode(encoding)))
        return image
    except Exception as err:
        raise HTTPException(status_code=500, detail="Invalid encoded image")

def encode_pil_to_base64(image):
    with io.BytesIO() as output_bytes:

        if opts.samples_format.lower() == 'png':
            use_metadata = False
            metadata = PngImagePlugin.PngInfo()
            for key, value in image.info.items():
                if isinstance(key, str) and isinstance(value, str):
                    metadata.add_text(key, value)
                    use_metadata = True
            image.save(output_bytes, format="PNG", pnginfo=(metadata if use_metadata else None), quality=opts.jpeg_quality)

        elif opts.samples_format.lower() in ("jpg", "jpeg", "webp"):
            parameters = image.info.get('parameters', None)
            exif_bytes = piexif.dump({
                "Exif": { piexif.ExifIFD.UserComment: piexif.helper.UserComment.dump(parameters or "", encoding="unicode") }
            })
            if opts.samples_format.lower() in ("jpg", "jpeg"):
                image.save(output_bytes, format="JPEG", exif = exif_bytes, quality=opts.jpeg_quality)
            else:
                image.save(output_bytes, format="WEBP", exif = exif_bytes, quality=opts.jpeg_quality)

        else:
            raise HTTPException(status_code=500, detail="Invalid image format")

        bytes_data = output_bytes.getvalue()

    return base64.b64encode(bytes_data)
相关推荐
degen_3 小时前
注册协议通知
c语言·笔记
jamesge20103 小时前
zookeeper学习笔记
笔记·学习·zookeeper·1024程序员节
DisonTangor3 小时前
OpenAI开源gpt-oss-safeguard-120b和gpt-oss-safeguard-20b
人工智能·gpt·语言模型·开源·aigc
知其然亦知其所以然5 小时前
SpringAI + ONNX:打造不花钱、不联网的向量引擎!
后端·spring·aigc
重铸码农荣光6 小时前
从天气查询到低代码 AI 应用:Coze 平台让人人都能开发智能体
aigc·coze
南方的狮子先生8 小时前
【深度学习】卷积神经网络(CNN)入门:看图识物不再难!
人工智能·笔记·深度学习·神经网络·机器学习·cnn·1024程序员节
蒙奇D索大8 小时前
【计算机网络】考研408计算机网络:传输介质(导向/非导向)考点梳理
笔记·计算机网络·考研·408·改行学it
m0_650108248 小时前
【论文精读】MicroCinema:基于分治策略的文本到视频生成新框架
aigc·扩散模型·论文精读·分治策略·文本到视频生成
ideaout技术团队8 小时前
android集成react native组件踩坑笔记(Activity局部展示RN的组件)
android·javascript·笔记·react native·react.js
一碗绿豆汤9 小时前
机器学习第一阶段
人工智能·笔记·机器学习