This commit is contained in:
2026-05-14 18:37:18 +08:00
parent 5e6d8046e1
commit 7a2ffc91a2
15 changed files with 200 additions and 56 deletions
+7 -3
View File
@@ -15,7 +15,7 @@ router = APIRouter(tags=["inpaint"])
@router.post("/inpaint")
def inpaint(req: InpaintRequest) -> Dict[str, Any]:
try:
model_name = req.model_name or "sdxl_inpaint"
model_name = req.model_name or "flux_fill"
pil = b64_to_pil_image(req.image_b64).convert("RGB")
if req.mask_b64:
@@ -24,13 +24,17 @@ def inpaint(req: InpaintRequest) -> Dict[str, Any]:
mask = default_half_mask(pil)
predictor = get_inpaint_predictor(model_name)
call_kw: Dict[str, Any] = {"strength": req.strength, "max_side": req.max_side}
if req.guidance_scale is not None:
call_kw["guidance_scale"] = req.guidance_scale
if req.num_inference_steps is not None:
call_kw["num_inference_steps"] = req.num_inference_steps
out = predictor(
pil,
mask,
req.prompt or "",
req.negative_prompt or "",
strength=req.strength,
max_side=req.max_side,
**call_kw,
)
out_dir = OUTPUT_DIR / "inpaint"
+11 -11
View File
@@ -43,19 +43,19 @@ def get_models() -> Dict[str, Any]:
"mask2former": {"name": "Mask2Former (not implemented)"},
},
"inpaint": {
"copy": {"name": "Copy (no-op)", "params": []},
"sdxl_inpaint": {
"name": "SDXL Inpaint",
"params": [
{"id": "prompt", "label": "提示词", "optional": True},
],
"flux_fill": {
"name": "FLUX.1 Fill (default)",
"params": [{"id": "prompt", "label": "prompt", "optional": True}],
},
"lama": {"name": "LaMa (Erase / Remove Object)", "params": []},
"sdxl_inpaint": {
"name": "sdxl_inpaint",
"params": [{"id": "prompt", "label": "prompt", "optional": True}],
},
"lama": {"name": "lama", "params": []},
"copy": {"name": "copy (debug)", "params": []},
"controlnet": {
"name": "ControlNet Inpaint (canny)",
"params": [
{"id": "prompt", "label": "提示词", "optional": True},
],
"name": "controlnet",
"params": [{"id": "prompt", "label": "prompt", "optional": True}],
},
},
"animation": {