color
Build-Deploy-Actions
Details
Build-Deploy-Actions
Details
This commit is contained in:
commit
31a6aa58e4
|
@ -0,0 +1,31 @@
|
|||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.arrow filter=lfs diff=lfs merge=lfs -text
|
||||
*.bin filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.ftz filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.h5 filter=lfs diff=lfs merge=lfs -text
|
||||
*.joblib filter=lfs diff=lfs merge=lfs -text
|
||||
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
||||
*.model filter=lfs diff=lfs merge=lfs -text
|
||||
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
||||
*.npy filter=lfs diff=lfs merge=lfs -text
|
||||
*.npz filter=lfs diff=lfs merge=lfs -text
|
||||
*.onnx filter=lfs diff=lfs merge=lfs -text
|
||||
*.ot filter=lfs diff=lfs merge=lfs -text
|
||||
*.parquet filter=lfs diff=lfs merge=lfs -text
|
||||
*.pickle filter=lfs diff=lfs merge=lfs -text
|
||||
*.pkl filter=lfs diff=lfs merge=lfs -text
|
||||
*.pb filter=lfs diff=lfs merge=lfs -text
|
||||
*.pt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pth filter=lfs diff=lfs merge=lfs -text
|
||||
*.rar filter=lfs diff=lfs merge=lfs -text
|
||||
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
||||
*.tflite filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.wasm filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
||||
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
@ -0,0 +1,47 @@
|
|||
name: Build
|
||||
run-name: ${{ github.actor }} is upgrade release 🚀
|
||||
on: [push]
|
||||
env:
|
||||
REPOSITORY: ${{ github.repository }}
|
||||
COMMIT_ID: ${{ github.sha }}
|
||||
jobs:
|
||||
Build-Deploy-Actions:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
|
||||
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by Gitea!"
|
||||
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
|
||||
- name: Check out repository code
|
||||
uses: actions/checkout@v3
|
||||
-
|
||||
name: Setup Git LFS
|
||||
run: |
|
||||
git lfs install
|
||||
git lfs fetch
|
||||
git lfs checkout
|
||||
- name: List files in the repository
|
||||
run: |
|
||||
ls ${{ github.workspace }}
|
||||
-
|
||||
name: Docker Image Info
|
||||
id: image-info
|
||||
run: |
|
||||
echo "::set-output name=image_name::$(echo $REPOSITORY | tr '[:upper:]' '[:lower:]')"
|
||||
echo "::set-output name=image_tag::${COMMIT_ID:0:10}"
|
||||
-
|
||||
name: Login to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: artifacts.iflytek.com
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
-
|
||||
name: Build and push
|
||||
run: |
|
||||
docker version
|
||||
docker buildx build -t artifacts.iflytek.com/docker-private/atp/${{ steps.image-info.outputs.image_name }}:${{ steps.image-info.outputs.image_tag }} . --file ${{ github.workspace }}/Dockerfile --load
|
||||
docker push artifacts.iflytek.com/docker-private/atp/${{ steps.image-info.outputs.image_name }}:${{ steps.image-info.outputs.image_tag }}
|
||||
docker rmi artifacts.iflytek.com/docker-private/atp/${{ steps.image-info.outputs.image_name }}:${{ steps.image-info.outputs.image_tag }}
|
||||
- run: echo "🍏 This job's status is ${{ job.status }}."
|
|
@ -0,0 +1,18 @@
|
|||
#FROM python:3.8.13
|
||||
FROM artifacts.iflytek.com/docker-private/atp/base_image_for_ailab:0.0.1
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY requirements.txt /app
|
||||
|
||||
RUN pip config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple
|
||||
RUN pip install -r requirements.txt
|
||||
|
||||
|
||||
RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
|
||||
RUN apt-get update && apt-get install ffmpeg libsm6 libxext6 -y
|
||||
|
||||
COPY . /app
|
||||
|
||||
|
||||
CMD ["python", "app.py"]
|
Binary file not shown.
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
title: Image Upscaling, Restoration and Colorization
|
||||
emoji: 🖼️
|
||||
colorFrom: blue
|
||||
colorTo: gray
|
||||
sdk: gradio
|
||||
sdk_version: 3.12.0
|
||||
app_file: app.py
|
||||
pinned: false
|
||||
license: apache-2.0
|
||||
duplicated_from: nightfury/Image_Face_Upscale_Restoration-GFPGAN
|
||||
---
|
||||
|
||||
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
Binary file not shown.
|
@ -0,0 +1,94 @@
|
|||
import os, pathlib
|
||||
import cv2
|
||||
import gradio as gr
|
||||
import torch
|
||||
from basicsr.archs.srvgg_arch import SRVGGNetCompact
|
||||
from gfpgan.utils import GFPGANer
|
||||
from realesrgan.utils import RealESRGANer
|
||||
os.system("hub install deoldify==1.0.1")
|
||||
import paddlehub as hub
|
||||
os.system("pip freeze")
|
||||
|
||||
|
||||
# download weights
|
||||
if not os.path.exists('GFPGANv1.4.pth'):
|
||||
os.system("wget https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.4.pth -P .")
|
||||
|
||||
model = SRVGGNetCompact(num_in_ch=3, num_out_ch=3, num_feat=64, num_conv=32, upscale=4, act_type='prelu')
|
||||
model_path = 'realesr-general-x4v3.pth'
|
||||
half = True if torch.cuda.is_available() else False
|
||||
upsampler = RealESRGANer(scale=4, model_path=model_path, model=model, tile=0, tile_pad=10, pre_pad=0, half=half)
|
||||
|
||||
os.makedirs('output', exist_ok=True)
|
||||
|
||||
colorizer = hub.Module(name='deoldify')
|
||||
render_factor=5
|
||||
|
||||
def colorize_image(image):
|
||||
color_image = colorizer.predict(image)
|
||||
return color_image
|
||||
|
||||
|
||||
def inference(img, scale):
|
||||
print(img, scale)
|
||||
try:
|
||||
extension = os.path.splitext(os.path.basename(str(img)))[1]
|
||||
img = cv2.imread(img, cv2.IMREAD_UNCHANGED)
|
||||
if len(img.shape) == 3 and img.shape[2] == 4:
|
||||
img_mode = 'RGBA'
|
||||
elif len(img.shape) == 2: # for gray inputs
|
||||
img_mode = None
|
||||
img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
|
||||
else:
|
||||
img_mode = None
|
||||
|
||||
h, w = img.shape[0:2]
|
||||
if h < 300:
|
||||
img = cv2.resize(img, (w * 2, h * 2), interpolation=cv2.INTER_LANCZOS4)
|
||||
face_enhancer = GFPGANer(model_path='GFPGANv1.4.pth', upscale=2, arch='clean', channel_multiplier=2, bg_upsampler=upsampler)
|
||||
try:
|
||||
# _, _, output = face_enhancer.enhance(img, has_aligned=False, only_center_face=False, paste_back=True, weight=weight)
|
||||
_, _, output = face_enhancer.enhance(img, has_aligned=False, only_center_face=False, paste_back=True)
|
||||
except RuntimeError as error:
|
||||
print('Error', error)
|
||||
|
||||
try:
|
||||
if scale != 2:
|
||||
interpolation = cv2.INTER_AREA if scale < 2 else cv2.INTER_LANCZOS4
|
||||
h, w = img.shape[0:2]
|
||||
output = cv2.resize(output, (int(w * scale / 2), int(h * scale / 2)), interpolation=interpolation)
|
||||
except Exception as error:
|
||||
print('wrong scale input.', error)
|
||||
if img_mode == 'RGBA': # RGBA images should be saved in png format
|
||||
extension = 'png'
|
||||
else:
|
||||
extension = 'jpg'
|
||||
save_path = f'output/out.{extension}'
|
||||
output = cv2.cvtColor(output, cv2.COLOR_BGR2RGB)
|
||||
cv2.imwrite(save_path, output)
|
||||
print('upsampled image!')
|
||||
output_img = colorize_image(save_path)
|
||||
outputim = output_img[1]
|
||||
print(type(outputim))
|
||||
print('colorized image!')
|
||||
return pathlib.Path(outputim)
|
||||
except Exception as error:
|
||||
print('global exception', error)
|
||||
return None, None
|
||||
|
||||
|
||||
|
||||
with gr.Blocks(css = "footer {visibility: hidden}" ) as demo:
|
||||
with gr.Row():
|
||||
with gr.Column():
|
||||
in_image = gr.inputs.Image(type="filepath", label="Input")
|
||||
factor = gr.Slider(2, 10, value=2, step = 1, label="Rescaling factor")
|
||||
#gr.inputs.Number(, default=2)
|
||||
btn = gr.Button("着色")
|
||||
with gr.Column():
|
||||
gallery = gr.Image()
|
||||
#out_image = gr.outputs.Image(type="numpy", label="Output (The whole image)")
|
||||
#dld = gr.outputs.File(label="Download the output image")
|
||||
btn.click(fn=inference, inputs=[in_image,factor], outputs=gallery)
|
||||
|
||||
demo.launch(server_name="0.0.0.0", share=True)
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
ffmpeg
|
||||
libsm6
|
||||
libxext6
|
Binary file not shown.
|
@ -0,0 +1,17 @@
|
|||
torch>=1.7
|
||||
basicsr>=1.4.2
|
||||
facexlib>=0.2.5
|
||||
gfpgan>=1.3.7
|
||||
realesrgan>=0.2.5
|
||||
numpy
|
||||
opencv-python
|
||||
torchvision
|
||||
scipy
|
||||
tqdm
|
||||
lmdb
|
||||
pyyaml
|
||||
yapf
|
||||
paddlepaddle
|
||||
paddlehub
|
||||
fastapi[all]==0.85.*
|
||||
uvicorn[standard]==0.18.*
|
Loading…
Reference in New Issue