yeq6x's picture
restful
f97c260
raw
history blame
1.61 kB
from fastapi import FastAPI
import gradio as gr
import os
import io
from PIL import Image
import base64
from scripts.process_utils import initialize, process_image_as_base64
from scripts.anime import init_model
from scripts.generate_prompt import load_wd14_tagger_model
app = FastAPI()
# 初期化
initialize(_use_local=False, use_gpu=True, use_dotenv=False)
init_model(use_local=False)
load_wd14_tagger_model()
def process_image(input_image, mode, weight1, weight2):
# 画像処理ロジック
sotai_image, sketch_image = process_image_as_base64(input_image, mode, weight1, weight2)
return sotai_image, sketch_image
def gradio_process_image(input_image, mode, weight1, weight2):
sotai_base64, sketch_base64 = process_image(input_image, mode, weight1, weight2)
return sotai_base64, sketch_base64
# Gradio インターフェースの定義
iface = gr.Interface(
fn=gradio_process_image,
inputs=[
gr.Image(type="pil", label="Input Image"),
gr.Radio(["original", "refine"], label="Mode", value="original"),
gr.Slider(0, 2, value=0.6, step=0.05, label="Weight 1 (Sketch)"),
gr.Slider(0, 1, value=0.05, step=0.025, label="Weight 2 (Body)")
],
outputs=[
gr.Image(type="pil", label="Sotai (Body) Image"),
gr.Image(type="pil", label="Sketch Image")
],
title="Image2Body API",
description="Upload an image and select processing options to generate body and sketch images."
)
# APIとして公開
app = gr.mount_gradio_app(app, iface, path="/")
# Hugging Face Spacesでデプロイする場合
iface.queue().launch()