SaluAi / kaggle_gpu_server /plugins /face_restoration_codeformer.py
Raghava Pulugu
Fix directory nesting and commit updated plugin code
80fdf54
Raw
History Blame Contribute Delete
1.6 kB
import os
import tempfile
import urllib.request
import numpy as np
from PIL import Image
import torch
from kaggle_gpu_server.engine.plugin_base import ModelPlugin, PluginCapability, ModelCategory
class CodeFormerPlugin(ModelPlugin):
name = "codeformer"
model_id = "sczhou/CodeFormer"
capability = PluginCapability.FACE_RESTORATION
category = ModelCategory.LIGHTWEIGHT
vram_estimate_mb = 400
version = "1.0.0"
description = "Restores faces using CodeFormer with GFPGAN fallback"
def __init__(self):
super().__init__()
self.model = None
self.fallback_model = None
self.fallback_active = False
def load(self) -> bool:
if self._loaded:
return True
try:
import codeformer
# CodeFormer model loading logic here
self._loaded = True
return True
except ImportError as e:
print(f"❌ Failed to load CodeFormer (packages missing): {e}")
return False
def unload(self) -> None:
self.model = None
self._loaded = False
import gc
gc.collect()
if torch.cuda.is_available():
torch.cuda.empty_cache()
def _execute(self, inputs: dict) -> dict:
image = inputs.get("image")
if image is None:
raise ValueError("Input 'image' is required")
if not self._loaded:
raise RuntimeError("CodeFormer plugin is not loaded")
# CodeFormer run logic here
return {"image": image, "output_image": image}