Skip to content

Commit 7b20fc8

Browse files
authored
Merge pull request #2 from Kek-Colossi/master
Some fixes
2 parents c65ba42 + f4afa0d commit 7b20fc8

11 files changed

+139
-45
lines changed

.env

+1-11
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,3 @@
1-
# Пути к файлам
2-
ORIGINAL_VIDEO=./data/input_video/bob_ru.mp4
3-
AUDIO_PATH=./data/audio
4-
TMP_VIDEO_PATH=./data/tmp_video
5-
FINAL_VIDEO=./data/output_video/final_video.mp4
6-
BATCH_VIDEO_PATH=./data/video_batches
7-
INPUT_BATCHES_DIR=./data/default_frame_batches
8-
OUTPUT_BATCHES_DIR=./data/upscaled_frame_batches
9-
101
# Файловые параметры апскейлера
112
RESOLUTION=4K
123
START_BATCH_TO_UPSCALE=1
@@ -16,8 +7,7 @@ FRAMES_PER_BATCH=1000
167
ALLOWED_THREADS=6
178

189
# Настройка апскейла
19-
MODEL_DIR = ./src/utils/realesrgan/models
2010
MODEL_NAME = realesr-animevideov3
21-
REALESRGAN_SCRIPT = ./src/utils/realesrgan/realesrgan-linux/realesrgan-ncnn-vulkan
11+
OS=linux # linux , win or macos
2212
UPSCALE_FACTOR=2
2313
OUTPUT_IMAGE_FORMAT=jpg
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
name: "Автотестирование"
3+
about: "Расскажи об автотестах"
4+
title: "[autotests]:"
5+
projects: ["Anime Enhancement Project Development"]
6+
labels: ["автотесты"]
7+
body:
8+
type: markdown
9+
value: |
10+
Спасибо что уделяешь время нашему проекту!
11+
---
12+
13+
### Описание задачи и кейсов:
14+
15+
16+
17+
### Скриншоты / Видео (если есть визуальные изменения)
18+
19+
(Прикрепите изображения или видео, если интерфейс изменился)
20+
21+
22+
### Памятка:
23+
- Использовать фреймворк pytest
24+
- Все тесты уносить в директорию `src/autotests/tests/<раздел_логики>/test_*.py`
25+
- Все имена классов для тестов должны начинаться так: `class TestName*:`
26+
- Все имена тестов должны начинаться так: `test_*.py`
27+
- Все, что создаём, за собой подчищаем. УДАЛЯЕМ ВСЕ ЛИШНЕЕ
28+
- Тесты должны быть независимы друг от друга
29+
- Тесты друг друга не вызывают никогда!
30+
- Разносим логику для тестов в предназначенные для них директории, в которых создаём понятные имена:
31+
> - класс/метод помогают тесту с какой-то логико? - уносим в `helpers`
32+
> - класс/метод проверяют какую-то весомую часть кода или строк попросту много? - уносим в `checkers`
33+
> - класс/метод используется перед или после теста? - уносим в `fixtures`
+16-7
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
---
2-
name: Баг репорт
3-
about: Расскажи о баге в 2х словах
4-
title: Баг репорт
5-
labels: ''
6-
assignees: ''
7-
2+
name: Багфикс
3+
about: "Расскажи о баге"
4+
title: "[bug]:"
5+
projects: ["Anime Enhancement Project Development"]
6+
labels: ["баг"]
7+
body:
8+
type: markdown
9+
value: |
10+
Спасибо что уделяешь время нашему проекту!
811
---
912

1013
### Описание бага
1114

12-
**Краткое описание:**
15+
**Подробное описание:**
1316
Опишите суть бага простыми словами (1–2 предложения).
17+
При необходимости
1418

1519
**Шаги для воспроизведения:**
1620
1. Опишите каждый шаг, чтобы воспроизвести проблему.
@@ -21,3 +25,8 @@ assignees: ''
2125

2226
**Ожидаемый результат:**
2327
Опишите, как система должна была вести себя вместо фактического результата.
28+
29+
30+
### Скриншоты / Видео (если есть визуальные изменения)
31+
32+
(Прикрепите изображения или видео, если интерфейс изменился)

.github/ISSUE_TEMPLATE/новая-фича.md

+11-12
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
11
---
2-
name: Новая фича
3-
about: Расскажи о фиче в 2х словах
4-
title: Issue на новую фичу
5-
labels: ''
6-
assignees: ''
7-
2+
name: "Разработка"
3+
about: "Расскажи о фиче"
4+
title: "[dev]:"
5+
projects: ["Anime Enhancement Project Development"]
6+
labels: ["новая фича"]
7+
body:
8+
type: markdown
9+
value: |
10+
Спасибо что уделяешь время нашему проекту!
811
---
912

10-
### Что сделано
11-
12-
Краткое описание изменений и зачем они нужны.
13+
### Описание:
1314

14-
### Задача
1515

16-
Ссылка на задачу (issue, тикет и т.д.).
1716

18-
### Чеклист
17+
### Памятка:
1918

2019
- [ ] Код работает корректно
2120
- [ ] Добавлены или обновлены тесты (если нужно)

.github/pull_request_template.md

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
### Описание изменений
2+
Кратко опишите, какие изменения были внесены, зачем они были нужны и как они решают поставленную задачу.
3+
4+
### Ссылка на задачу
5+
Связанная задача: [#номер_задачи](ссылка_на_задачу) из проекта [Anime Enhancement Project Development]([https://github.com/ссылка_на_канбан_доску](https://github.com/orgs/Kek-Colossi/projects/1)).
6+
7+
### Контекст для ревью
8+
- Основные изменения: перечислите ключевые изменения и укажите, на что обратить внимание при проверке.
9+
- Ожидаемое поведение: опишите, какое поведение кода ожидается после внесения этих изменений.
10+
11+
### Задачи для завершения
12+
- [ ] Убедитесь, что в issue заполнены приоритет, сложность и тип задачи.
13+
- [ ] Назначьте ревьюера: @имя_ревьюера.
14+
- [ ] Проведите локальные тесты для проверки работоспособности изменений если они.
15+
16+
### Тестирование
17+
Опишите, как тестировались изменения, и приложите результаты, если это необходимо. Укажите команды, которые использовались для запуска тестов.
18+
19+
### Дополнительные замечания
20+
Добавьте любые дополнительные комментарии или инструкции для ревьюера. Например, если есть нюансы в коде или временные решения, которые нужно учесть.
21+
22+
---
23+
24+
**Примечание**: Пожалуйста, убедитесь, что данное изменение соответствует общему стилю кода и стандартам проекта.

main.py

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ def main():
2727
start_batch = START_BATCH_TO_UPSCALE
2828
end_batch = 0
2929
tmp_videos_counter = 1
30+
# Экземпляр tmp видео ~32 минуты, обновляется после ~32 минут
3031
tmp_builder = VideoHandler(
3132
fps=fps, tmp_video_name=f"tmp_video_{tmp_videos_counter}"
3233
)

src/config/settings.py

+11-15
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,13 @@
66
ROOT_DIR = os.getcwd()
77

88
# Пути к файлам
9-
ORIGINAL_VIDEO = os.getenv("ORIGINAL_VIDEO", f"{ROOT_DIR}/data/input_video/bob_ru.mp4")
10-
AUDIO_PATH = os.getenv("ORIGINAL_AUDIO", f"{ROOT_DIR}/data/audio")
11-
TMP_VIDEO_PATH = os.getenv("TMP_FINAL_VIDEO", f"{ROOT_DIR}/data/tmp_video")
12-
FINAL_VIDEO = os.getenv("FINAL_VIDEO", f"{ROOT_DIR}/data/output_video/final_video.mp4")
13-
BATCH_VIDEO_PATH = os.getenv("BATCH_VIDEO_PATH", f"{ROOT_DIR}/data/video_batches")
14-
INPUT_BATCHES_DIR = os.getenv(
15-
"INPUT_BATCHES_DIR", f"{ROOT_DIR}/data/default_frame_batches"
16-
)
17-
OUTPUT_BATCHES_DIR = os.getenv(
18-
"OUTPUT_BATCHES_DIR", f"{ROOT_DIR}/data/upscaled_frame_batches"
19-
)
9+
ORIGINAL_VIDEO = os.path.join(ROOT_DIR, "data", "input_video", "bob_ru.mp4")
10+
AUDIO_PATH = os.path.join(ROOT_DIR, "data", "audio")
11+
TMP_VIDEO_PATH = os.path.join(ROOT_DIR, "data", "tmp_video")
12+
FINAL_VIDEO = os.path.join(ROOT_DIR, "data", "output_video", "final_video.mp4")
13+
BATCH_VIDEO_PATH = os.path.join(ROOT_DIR, "data", "video_batches")
14+
INPUT_BATCHES_DIR = os.path.join(ROOT_DIR, "data", "default_frame_batches")
15+
OUTPUT_BATCHES_DIR = os.path.join(ROOT_DIR, "data", "upscaled_frame_batches")
2016

2117
# Файловые параметры апскейлера
2218
RESOLUTION = os.getenv("RESOLUTION", "4K")
@@ -27,11 +23,11 @@
2723
ALLOWED_THREADS = int(os.getenv("ALLOWED_THREADS", 6))
2824

2925
# Настройка апскейла
30-
MODEL_DIR = os.getenv("MODEL_DIR", f"{ROOT_DIR}/src/utils/realesrgan/models")
26+
MODEL_DIR = os.path.join(ROOT_DIR, "src", "utils", "realesrgan", "models")
3127
MODEL_NAME = os.getenv("MODEL_NAME", "realesr-animevideov3")
32-
REALESRGAN_SCRIPT = os.getenv(
33-
"REALSESRGAN_DIR",
34-
f"{ROOT_DIR}/src/utils/realesrgan/realesrgan-linux/realesrgan-ncnn-vulkan",
28+
_OS = os.getenv("_OS", "linux")
29+
REALESRGAN_SCRIPT = os.path.join(
30+
ROOT_DIR, "src", "utils", "realesrgan", f"realesrgan-{_OS}", f"realesrgan-ncnn-vulkan{".exe" if _OS == 'win' else ""}"
3531
)
3632
UPSCALE_FACTOR = int(os.getenv("UPSCALE_FACTOR", 2))
3733
OUTPUT_IMAGE_FORMAT = os.getenv("OUTPUT_IMAGE_FORMAT", "jpg")
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# RealESRGAN
2+
3+
We have provided the following models:
4+
5+
1. realesr-animevideov3 (default)
6+
2. realesrgan-x4plus
7+
3. realesrgan-x4plus-anime
8+
9+
Command:
10+
11+
1. ./realesrgan-ncnn-vulkan.exe -i input.jpg -o output.png
12+
2. ./realesrgan-ncnn-vulkan.exe -i input.jpg -o output.png -n realesr-animevideov3
13+
3. ./realesrgan-ncnn-vulkan.exe -i input_folder -o outputfolder -n realesr-animevideov3 -s 2 -f jpg
14+
4. ./realesrgan-ncnn-vulkan.exe -i input_folder -o outputfolder -n realesr-animevideov3 -s 4 -f jpg
15+
16+
17+
Commands for enhancing anime videos:
18+
19+
1. Use ffmpeg to extract frames from a video (Remember to create the folder `tmp_frames` ahead)
20+
21+
ffmpeg -i onepiece_demo.mp4 -qscale:v 1 -qmin 1 -qmax 1 -vsync 0 tmp_frames/frame%08d.jpg
22+
23+
2. Inference with Real-ESRGAN executable file (Remember to create the folder `out_frames` ahead)
24+
25+
./realesrgan-ncnn-vulkan.exe -i tmp_frames -o out_frames -n realesr-animevideov3 -s 2 -f jpg
26+
27+
3. Merge the enhanced frames back into a video
28+
29+
ffmpeg -i out_frames/frame%08d.jpg -i onepiece_demo.mp4 -map 0:v:0 -map 1:a:0 -c:a copy -c:v libx264 -r 23.98 -pix_fmt yuv420p output_w_audio.mp4
30+
31+
------------------------
32+
33+
GitHub: https://github.com/xinntao/Real-ESRGAN/
34+
Paper: https://arxiv.org/abs/2107.10833
35+
36+
------------------------
37+
38+
This executable file is **portable** and includes all the binaries and models required. No CUDA or PyTorch environment is needed.
39+
40+
Note that it may introduce block inconsistency (and also generate slightly different results from the PyTorch implementation), because this executable file first crops the input image into several tiles, and then processes them separately, finally stitches together.
41+
42+
This executable file is based on the wonderful [Tencent/ncnn](https://github.com/Tencent/ncnn) and [realsr-ncnn-vulkan](https://github.com/nihui/realsr-ncnn-vulkan) by [nihui](https://github.com/nihui).
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)