Code Monkey home page Code Monkey logo

visionai's Introduction

README.md

Vision AI+ Enhance anime quality. Video 2K Repair . Grayscale video colorizer

Download the latest release from macOS appstore

V2.3

  • Added support for .mov file convert
  • Added output file format .mp4 or .mov file type option
  • Fixed can't extract frames in old mov file
  • V2.3

V2.2

  • Fix UI issues in the project list
  • Fix crash issues
  • V2.2

V2.1

  • Add feature to reset tasks to their initial state.
  • Add feature to duplicate projects for comparing results from different models.
  • When multiple projects are selected, the project panel will directly show the batch operation menu.
  • Double-click on the project list to play the result file.
  • Fix the fixed aspect ratio of video covers.
  • Fix a crash issue when merging long duration videos.
  • Fix the issue of unable to retrieve the length of some videos.
  • V2.1

V2.0

  • Adapted to macOS 14 Sonoma
  • Added a fast video trimming tool, allowing users to quickly extract a specific fragment of a video for visual enhancement processing
  • Redesigned the toolbar in the main interface
  • Added cloud model downloading feature to reduce the size of the installation package
  • The app can continue conversion tasks while the screen is locked
  • The project list supports multiple selection with shortcut keys such as ⌘+a and Del
  • Completed tasks can be directly converted into enhancement projects again with one click using the model enhancement feature
  • Supports additional languages
  • Bug fixes and performance improvements

V1.4.2

  • Fix some thread stuck issue
  • Add new report issue link with discord. If you encounter issue, we need the origin video to fix. Use discord to contact with us.

V1.4

  • Remove Background can only blur the background, Highlighted portrait
  • Add new anime style (total 3 anime style convert model)

V1.3

  • Add remove background & replace background process AI model
  • Add anime style convert model
  • Add context menu on task
  • Add support drop files to create convert task

V1.0~1.2

  • Enhance video with AI Super-Resolution. Get high vision quality
  • Enhance anime to AI 2X 4X Upscale. Get high vision quality
  • Convert grayscale video to AI Colorizer video
  • Convert video to sketch style video
  • Support batch convert tasks
  • Support break task and restart later
  • Support change batch task convert order
  • Keep user privacy, all files processing is in local machine
  • Multilanguage support

Features

Convert anime video to high quality

convert-anime-high-quality

Colorizer grayscale movie

colorizer-grayscale-movie

Convert movie to high quality, 2K repair

convert-movie-to-high-quality

Convert video to sketch style video for fun

Convert-video-to-sketch-style-video-for-fun

visionai's People

Contributors

marksdo avatar

Stargazers

Anurag Pandey avatar  avatar

Watchers

 avatar

visionai's Issues

Init fail log message?

To whom it may concern,

I got a log saying "[Error] unable to init ai model" when executing the batch, and the process won't go further at all.
How should I resolve it?

Best,

Suggestion

I own a Mac Pro (tower) with a decent GPU (8gb ram)

Is there any way in future revisions of the software for the program to take advantage of the computer's GPU in processing files ?

I don't mean just for my computer but for all of the newer macs

You can reach me directly at:

[email protected]

Crash at end of upscale

I am having an issue where extracting and upscaling all the frames in a video works fine, but the app hard crashes shortly after reaching 100%. Seems to be random; some files work perfectly fine, some specific files crash at the end. Truncated log is provided below.

I am using an M2 Max MacBook Pro with 32 GB of RAM. Cache is located on an external Thunderbolt SSD with about 1 TB of free disk space. I have also tried having the cache folder on the internal SSD with the same result.

I appreciate any help, thank you!

12-20 15:36:32 <39FC0C0> [Info] Start to run project
12-20 15:36:32 <39FC0C0> [Info] project cache folder not init. init now
12-20 15:36:32 <39FC0C0> [Info] cache folder inited success
12-20 15:36:32 <39FC0C0> [Info] project context inited
12-20 15:36:32 <Main> [Info] Start to run project
12-20 15:36:41 <Main> [Info] ready to run project VProject {
	pid = 20231220-bv3471zt8r;
	video_url = file:///Users/chelsey/Movies/Upscale/In/Dilbert%201999%20Complete%20Seasons%201%20and%202%20TVRip%20x264%20%5Bi_c%5D/Season%201/Dilbert%20-%20S01E03%20-%20The%20Competition.mkv;
	video_size = 72648402;
	create_time = 2023-12-20 22:36:11 +0000;
	finish_time = (null);
	start_time = 2023-12-20 22:36:11 +0000;
	cover = /Users/chelsey/Library/Containers/com.marksdo.VisionAI/Data/cover/20231220-bv3471zt8r.jpg;
	width = 320;
	height = 240;
	rate = 30000/1001;
	quality = 0.8;
	order_group = 1;
	order_num = 0;
	state = 2;
	duration = 0;
	audio = 1;
	avg_conv_time = 0;
	used_time = 0;
	estimate_time = ;
	finish_frames = 0;
	real_frames = 39498;
	total_frames = 0;
	extract_frames = 39498;
	combine_frames = 0;
	cache_size = 965347927;
	codec_name = h264;
	codec_tag = [0][0][0][0];
	pix_fmt = yuv420p;
	out_file = ;
	bg_replace = (null);
	bg_blur_radius = 0;
	ui_sketch = 0;
	ui_cartoonStyle = 0;
	ui_cartoonSize = 1;
	ui_scale = 4;
	ui_noise = 0;
	ui_quality = 0;
	aiModel = RModel {
		modelKey = ResrAni;
		fileSize = Embed;
		fileName = ResrAni.mlmodel;
		state = 1;
		mOrder = 2;
		progress = 0;
		errorMsg = ;
		fixedWidth = 0;
		processType = 2;
	};
	demo = 0;
}
12-20 15:36:41 <Main> [Info] <Thread-1> start
12-20 15:36:41 <Main> [Debug] cache threads 1
12-20 15:36:41 <Main> [Info] <Thread-2> start
12-20 15:36:41 <Main> [Debug] cache threads 2
12-20 15:36:41 <Main> [Debug] get next frame from db = 1
12-20 15:36:41 <Main> [Debug] nextFrame > taskMaxFrame
12-20 15:36:41 <1DF92C0> [Info] ++ current thread priority 0.5
12-20 15:36:41 <1DF92C0> [Debug] Start to process frame[1] 1.jpg
12-20 15:36:41 <1DF9360> [Info] ++ current thread priority 0.5
12-20 15:36:41 <1DF9360> [Debug] Start to process frame[2] 2.jpg
12-20 15:36:41 <Main> [Debug] remove frame[1]
12-20 15:36:41 <Main> [Debug] project finish frames[1] set to 2

[A few thousand frames later ...]

12-20 15:49:14 <1DF9360> [Debug] Start to process frame[39497] 39497.jpg
12-20 15:49:14 <Main> [Debug] remove frame[39496]
12-20 15:49:14 <Main> [Debug] project finish frames[39496] set to 39497
12-20 15:49:14 <1DF92C0> [Debug] Start to process frame[39498] 39498.jpg
12-20 15:49:14 <Main> [Debug] remove frame[39497]
12-20 15:49:14 <Main> [Debug] project finish frames[39497] set to 39498
12-20 15:49:14 <Main> [Debug] nextframe > totalFrames return nil task
12-20 15:49:14 <1DF9360> [Info] Thread run complete
12-20 15:49:14 <1DF9360> [Info] normal leave()
12-20 15:49:14 <Main> [Debug] remove frame[39498]
12-20 15:49:14 <Main> [Debug] project finish frames[39498] set to 39499
12-20 15:49:14 <Main> [Debug] get next frame from db = 39499
12-20 15:49:14 <Main> [Debug] nextframe > totalFrames return nil task
12-20 15:49:14 <1DF92C0> [Info] Thread run complete
12-20 15:49:14 <1DF92C0> [Info] normal leave()
12-20 15:49:14 <Main> [Info] all thread run done
12-20 15:49:14 <Main> [Info] -- FramesConvThread deinited
12-20 15:49:14 <Main> [Info] -- FramesConvThread deinited
12-20 15:49:14 <Main> [Info] Auto start validate thread
12-20 15:49:14 <Main> [Info] scan thread mode started!!!
12-20 15:49:14 <Main> [Debug] cache threads 1
12-20 15:49:14 <Main> [Debug] frame file:///Volumes/Daisy/cache/20231220-bv3471zt8r/1.jpg already converted! auto try get next frame
12-20 15:49:14 <Main> [Debug] frame file:///Volumes/Daisy/cache/20231220-bv3471zt8r/2.jpg already converted! auto try get next frame
12-20 15:49:14 <Main> [Debug] frame file:///Volumes/Daisy/cache/20231220-bv3471zt8r/3.jpg already converted! auto try get next frame

[ A few thousand frames later ...]

12-20 15:49:15 <Main> [Debug] frame file:///Volumes/Daisy/cache/20231220-bv3471zt8r/13639.jpg already converted! auto try get next frame

 [End of log file]

Just a question

I am new to your app.

I am experimenting with the colorizing feature and noticed "threads" with an option of 1 to 5. What does this option do?

Does it have anything to do with allocating processors ?

I am using an Mac Pro with two 6 core processors. Would this allow me to allocated five of them ?

You can contact me directly at

[email protected]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.