GANTheftAuto is a fork of the Nvidia's GameGAN

Overview

Description

GANTheftAuto is a fork of the Nvidia's GameGAN, which is research focused on emulating dynamic game environments. The early research done with GameGAN was with games like Pacman, and we aimed to try to emulate one of the most complex environments in games to date with Grand Theft Auto 5.

Video

(click to watch)

GAN Theft Auto Video

GANTheftAuto focuses mainly on the Grand Theft Auto 5 (GTA5) game, but contains other environments as well. In addition to the original project, we provide a set of improvements and fixes, with the most important ones being:

  • ability to use the newest PyTorch version, which as of now is 1.8.1
  • ability to use non-square images (16:8 in our case)
  • larger generator and discriminator models
  • ability to use more than 2 generators
  • inference script (which is absent in the GameGAN repository)
  • ability to use upsample model with inference
  • ability to show generator outputs live during training (training preview) (soon with one of the future commits)

The work is still in progress as we know that our results can be greatly improved still.

GANTheftAuto

GANTheftAuto output on the left, upscaled 4x for better visibility, and upsampled output (by a separate model)

Playable demo

You can instantly run the demo:

(you need a CUDA capable Nvidia GPU to run this demo)

  • Download and unzip or clone this repository:

    git clone https://github.com/Sentdex/GANTheftAuto.git
    cd GANTheftAuto
    
  • Install requirements

    Install (the highest) CUDA version of PyTorch following instructions at PyTorch's website (there is no universal command to do so). ROCm and CPU versions are currently not supported by the project.

    pip3 install -r requirements.txt
    pip3 install tensorflow-gpu tensorflow_addons
    
  • Run inference:

    ./scripts/gtav_inference_demo.sh
    

    or

    scripts\gtav_inference_demo.bat
    

We are providing one of our trained models on GTA5 data as well as an 8x upsample model (part of a separate project). There's no GTA V running, this is the actual GAN output of a human playing within the GAN environment.

Example actual output of these demo models:

GANTheftAuto - demo

Trainable demo

(you need a CUDA capable Nvidia GPU to run this demo)

Since we cannot share out data collecting script, which involves a GTA5 mod and python code, we are sharing a sample dataset which you can use to train your model on. It's included within the data/gtav/gtagan_2_sample folder.

To train your own model, follow the steps above, but run a training script instead.

  • Run training:
    ./scripts/gtav_multi_demo.sh
    
    or
    scripts\gtav_inference_demo.bat
    

You'll need a GPU with at least 8 GB of VRAM.

Batch size in the demo scripts is currently set to 1. If you have 16 GB of VRAM or more, try to find the biggest batch that you can fit in your GPU(s).

General

(you need a CUDA capable Nvidia GPU to run this code, but we are open for contribution to make it running on AMD GPUs as well)

Environment Setup

  • Download and unzip or clone the repository

    git clone https://github.com/Sentdex/GANTheftAuto.git
    cd GANTheftAuto
    
  • Install dependencies

    Install (the highest) CUDA version of PyTorch following instructions at PyTorch's website (there is no universal command to do so). ROCm and CPU versions are currently not supported by the project.

    pip3 install -r requirements.txt
    

Dataset extraction

Currently, GTA V, Vroom and Cartpole are the only implemented data sources.

GTA V environment

This is an environment created using Grand Theft Auto V. We created our own GTA5 mod accompanied by a Python script to collect the data. It contains a simple driving AI (which we named DumbAI ;) ). We are pulling road nodes from the game and apply math transformations to create paths, then we are spawning multiple cars at the same time and alternate them to pull multiple streams at the same time (to speedup training). Game mod accepts steering commands from the Python script as well as limits the speed and sets other options like weather, traffic, etc. Python script analyzes current car position and nearest road nodes to drive using different paths to cover all possible actions and car positions as best as possible. This is important for further seamless experience with player "playing" the environment - it needs to output coherent and believable images.

Data collecting demo with visible road nodes (not included in the final training data): GANTheftAuto data collecting demo

(click to watch on YouTube)

As mentioned above, we can't share our data collecting scripts, but we are providing sample dataset. If you believe you have a model that has interesting results, feel free to reach out and we may try to train it on the full dataset.

You can also create your own dataset by recording frames and actions at 10 FPS. Save format is gzipped pickle file containing a dictionary of 'actions' and 'observations'. Actions are a single-dimensional NumPy array of 0 (left), 1 (straight) and 2 (right), while observations are a four-dimensional array where the first dimension are samples, and the other are (48, 80, 3) - RGB image size. Ungzip and unpickle example sample from the sample dataset to learn more about the data structure. Each file should contain a single sequence length of at least 32 frames.

Example train script is available at scripts/gtav_multi.sh (as well as its .bat version).

Vroom environment

Vroom is our own environment based on the OpenmAI Gym's Box2D CarRacing environment, but this one does not require Gym to run. Its only dependencies are OpenCV and NumPy.

Example track with a slice of what's actually saved as a training data:

GANTheftAuto - Vroom data

(blue, red and purple lines are shown for visualization purposes only and are not a part of the training data)

Example model output (we've never hunted for best possible output and switch to GTAV instead): GANTheftAuto - Vroom playing

We are including the data collecting script - a simple AI (DumbAI) is playing the environment to collect the data. The car is "instructed" to follow the road, with additional constantly changing offset from the center of teh road, turns and u-turns to cover all possible scenarios.

To run the data collector:

  • Install dependencies
    cd data/vroom
    pip3 install - requirements.txt
    
  • Edit collect_data.py if you need to change any defaults
  • Run the data extraction
    python3 collect_data.py
    

NEAT-Cartpole

This environment is created with OpenAI Gym's Cartpole. However, the data collecting part is unattended as we are first training the NEAT algoritm to play it, then collect data generated this way.

Warning: recently we've discovered a possible issue with this environment causing actions to alternate between a direction and no action. As for now we have no fix for this environment, so your model results are highly likely to not be very useful. We'd recommend trying to build your own agent to play cartpole instead of a NEAT bot.

To run the data collector:

  • Install dependencies
    cd data/cartpole
    pip3 install - requirements.txt
    
  • Edit neat_cartpole.py and update constants (at the bottom of the script) to your needs
  • Run the data extraction
    python3 neat_cartpole.py
    

Training

We provide training scripts in './scripts'.

GTA V

  • For training the full GameGAN model, run:
    ./scripts/gtav_multi.sh
    

Vroom

  • For training the full GameGAN model, run:
    ./scripts/vroom_multi.sh
    

NEAT-Cartpole

  • For training the full GameGAN model, run:
    ./scripts/cartpole_multi.sh
    

Monitoring

  • You can monitor the training process with tensorboard:
    tensorboard --logdir=./results
    

Inference

Inference is currently unfinished - can be ran, but actions are randomly generated instead of taken from the user input. We'll finish it up shortly.

Vroom

Edit scripts/gtav_inference.sh and update the model filename, then run:

./scripts/gtav_inference.sh

Vroom

Edit scripts/cartpole_inference.sh and update the model filename, then run:

./scripts/cartpole_inference.sh

NEAT-Cartpole

Edit scripts/cartpole_inference.sh and update the model filename, then run:

./scripts/cartpole_inference.sh

Parts of the Original Nvidia's GameGAN readme

(head to the GameGAN for a full version)

This part describes the VidDom environment which we did not use in our work. The repository also contains Pac Man environment which have been never described and no data collection scrpts were provided.

Dataset extraction

Please clone and follow https://github.com/hardmaru/WorldModelsExperiments/tree/master/doomrnn to install the VizDoom environment.

  • Copy extraction scripts and run
cp data/extract.py DOOMRNN_DIR/
cp data/extract_data.sh DOOMRNN_DIR/
cd DOOMRNN_DIR
./extract_data.sh
  • Now, extracted data is saved in 'DOOMRNN_DIR/vizdoom_skip3'
cd GameGAN_code/data
python dataloader.py DOOMRNN_DIR/vizdoom_skip3 vizdoom
  • You should now see .npy files extracted in 'data/vizdoom' directory.

For custom datasets, you can construct .npy files that contain a sequence of image and action pairs and define a dataloader similar to 'class vizdoom_dataset'. Please refer to 'data/dataloder.py'.

-- The above repository is deprecated and VizDoom environment might not run correctly in certain systems. In that case, you can use the docker installtaion of https://github.com/zacwellmer/WorldModels and copy the extraction scripts in the docker environment.

Training

We provide training scripts in './scripts'.

  • For training the full GameGAN model, run:
./scripts/vizdoom_multi.sh
  • For training the GameGAN model without the external memory module, run:
./scripts/vizdoom_single.sh

Monitoring

  • You can monitor the training process with tensorboard:
tensorboard --port=PORT --logdir=./results

Tips

  • Different environments might need different hyper-parameters. The most important hyper-parameter is 'recon_loss_multiplier' in 'config.py', which usually works well with 0.001 ~ 0.05.
  • Environments that do not need long-term consistency usually works better without the external memory module
Comments
  • Did you forgot to mention the requirement of a nVidia GPU?

    Did you forgot to mention the requirement of a nVidia GPU?

    Because I'm stuck with Could not find module 'caffe2_nvrtc.dll' (or one of its dependencies). And that sounds to me, after some googlin, that I'd need a CUDA capable GPU.

    opened by LtqxWYEG 20
  • When running `/scripts/gtav_multi.sh` I get `RuntimeError`

    When running `/scripts/gtav_multi.sh` I get `RuntimeError`

    When running /scripts/gtav_multi.sh I get RuntimeError:

    [...]
    optG_graphic, Include: graphics_renderer.output_layer.0.1.bias
    setting up dataset
    Start epoch 0...
    Traceback (most recent call last):
      File "main_parallel.py", line 284, in <module>
        train_gamegan(opts.gpu, opts)
      File "main_parallel.py", line 190, in train_gamegan
        trainer.generator_trainstep(states, actions, warm_up=warm_up, epoch=epoch)
      File "/home/jupyter/GANTheftAuto/trainer.py", line 129, in generator_trainstep
        gout = self.netG(self.zdist, states, gen_actions, warm_up, train=train, epoch=epoch)
      File "/opt/conda/lib/python3.7/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
        result = self.forward(*input, **kwargs)
      File "/home/jupyter/GANTheftAuto/simulator_model/dynamics_engine.py", line 256, in forward
        hiddens, init_maps= self.run_warmup(zdist, states, actions, warm_up, train=train)
      File "/home/jupyter/GANTheftAuto/simulator_model/dynamics_engine.py", line 235, in run_warmup
        batch_size, prev_read_v, prev_alpha, M, zdist, step=i, force_sharp=force_sharp)
      File "/home/jupyter/GANTheftAuto/simulator_model/dynamics_engine.py", line 175, in run_step
        s = self.simple_enc(state)
      File "/opt/conda/lib/python3.7/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
        result = self.forward(*input, **kwargs)
      File "/opt/conda/lib/python3.7/site-packages/torch/nn/modules/container.py", line 119, in forward
        input = module(input)
      File "/opt/conda/lib/python3.7/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
        result = self.forward(*input, **kwargs)
      File "/home/jupyter/GANTheftAuto/simulator_model/model_utils.py", line 30, in forward
        return tensor.view(self.size)
    RuntimeError: shape '[-1, 3136]' is invalid for input of size 184320
    

    This is after:

    1. Removing logdir which was not recognized as an argument
    2. Installing and validating pytorch 1.8.0, which seems to be the choice of this repo, so I doubt it is that.
    3. Trying to adjust the resolution to match the input size (184320 = e.g. 640x288)
    4. Searching thru the codebase for either number

    What is strange is not that there is nothing, but rather a shape mismatch despite using the default parameters The strange thing is that the number that we are casting to (3136), does not clearly seem to relate to anything, but it is roughly on the same order as the resolution (80x48=3840).

    This is made somewhat worse by the fact that

    opened by jakubLangr 7
  • Installation instructions don't work

    Installation instructions don't work

    Followed installation instructions step by step, these instructions to be exact

    image

    No errors during installation, running gtav_interface_demo.bat gives file not found error.

    C:\Users\Martin\Desktop\ganTheftAuto\GANTheftAuto>scripts\gtav_inference_demo.bat
    
    C:\Users\Martin\Desktop\ganTheftAuto\GANTheftAuto>python inference.py  --saved_model ./trained_models/gan_5_1_17.pt  --data gtav:./data/gtav/gtagan_2_sample  --inference_image_path ./data/gtav/2.png  --show_base_images True  --upsample_model ./trained_models/upsample---[_20]---[______3171]---[_____63420].h5
    C:\Users\Martin\AppData\Local\Programs\Python\Python39\lib\site-packages\torch\__init__.py
    Traceback (most recent call last):
      File "C:\Users\Martin\Desktop\ganTheftAuto\GANTheftAuto\inference.py", line 25, in <module>
        ctypes.cdll.LoadLibrary('caffe2_nvrtc.dll')
      File "C:\Users\Martin\AppData\Local\Programs\Python\Python39\lib\ctypes\__init__.py", line 452, in LoadLibrary
        return self._dlltype(name)
      File "C:\Users\Martin\AppData\Local\Programs\Python\Python39\lib\ctypes\__init__.py", line 374, in __init__
        self._handle = _dlopen(self._name, mode)
    FileNotFoundError: Could not find module 'caffe2_nvrtc.dll' (or one of its dependencies). Try using the full path with constructor syntax.
    

    Seems that this workaround for windows in interface.py does not work anymore because of newer version of pyTorch, thats my guess. image

    I have windows 10, dedicated gpu with drivers installed and up to date. nvcuda.dll present in C:/Windows/system32 If I am being stupid please let me know and feel free to close this issue.

    opened by Mapuut 4
  • Adds setup for required CUDA-enabled PyTorch

    Adds setup for required CUDA-enabled PyTorch

    First off, this is such a cool project. Thank you so much for sharing your work and including a pre-trained model to demonstrate!

    This PR addresses issue #4 by installing the correct version of PyTorch via the requirements.txt, and updates the readme to reflect the required link. Installing torch as currently configured defaults to the CPU platform which is not supported by the demo model.

    Secondly, this addresses another error I encountered after this one where pandas was not installed as currently documented - a requirement of keras (which as you know underlies TF). Since TF is only required for the demo as it stands, you could simply include this in the readme instead. I'll defer to the maintainers on your desired approach.

    Traceback (most recent call last):
      File "C:\Users\kimba\Code\misc\GANTheftAuto\inference.py", line 273, in <module>
        inference(opts.gpu, opts)
      File "C:\Users\kimba\Code\misc\GANTheftAuto\inference.py", line 166, in inference
        upsampled_img = upsample.inference(np.rollaxis(prev_state[0].cpu().numpy(), 0, 3))
      File "C:\Users\kimba\Code\misc\GANTheftAuto\upsample\upsample.py", line 17, in inference
        upsampled = model.predict(np.expand_dims(img, axis=0))
      File "C:\Users\kimba\Code\misc\GANTheftAuto\venv\lib\site-packages\tensorflow\python\keras\engine\training.py", line 1696, in predict
        data_handler = data_adapter.get_data_handler(
      File "C:\Users\kimba\Code\misc\GANTheftAuto\venv\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 1364, in get_data_handler
        return DataHandler(*args, **kwargs)
      File "C:\Users\kimba\Code\misc\GANTheftAuto\venv\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 1152, in __init__
        adapter_cls = select_data_adapter(x, y)
      File "C:\Users\kimba\Code\misc\GANTheftAuto\venv\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 988, in select_data_adapter
        adapter_cls = [cls for cls in ALL_ADAPTER_CLS if cls.can_handle(x, y)]
      File "C:\Users\kimba\Code\misc\GANTheftAuto\venv\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 988, in <listcomp>
        adapter_cls = [cls for cls in ALL_ADAPTER_CLS if cls.can_handle(x, y)]
      File "C:\Users\kimba\Code\misc\GANTheftAuto\venv\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 227, in can_handle
        tensor_types = _get_tensor_types()
      File "C:\Users\kimba\Code\misc\GANTheftAuto\venv\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 1637, in _get_tensor_types
        return (ops.Tensor, np.ndarray, pd.Series, pd.DataFrame)
    AttributeError: module 'pandas' has no attribute 'Series'
    

    Finally, I've ammended the gitignore to exclude the most common names for virtual environment directories, since this is how I (and presumably many others) set up their project directories to test your code.

    Thanks for your time reviewing!

    opened by rgkimball 2
  • Possible to use a VQGAN?

    Possible to use a VQGAN?

    Despite the names; these architectures couldn't really be more different. As such you would of course need to train a new model if you wanted this to work with GTA V, unfortunately.

    Having said that however; the VQGAN presented by CompVis is highly effiicient and represents images with much better fidelity.

    https://github.com/CompVis/taming-transformers

    You can see their pretrained 1024 token model in action at DALLE-pytorch for just one example. It helped us significantly improve the image quality compared to using a traditional VAE.

    I'm also still learning how this repo specifically works. With the VQGAN; you generally are given a single token which represents 16x16 pixel square samples.

    One way that you may be able to get this to work would be to train a sort of multimodal transformer where you encode user input as one modality and visuals from the game as another. With the transformer approach you might also need to consider the time axis because you will be taking previous frames as input, is my understanding.

    Unfortunately I'm still learning about a lot of this stuff; but I think this project is awesome for teaching purposes so I'd love to see it continue to grow and improve if possible!

    There's a lot of new research in this area including the newly released Alias-Free-GAN paper - which could also significantly improve results while still maintaining a similar architecture.

    Are there any plans to take advantage of these recent improvements? I assume the core team is still busy fixing things up and may not have even had time to consider any of this stuff - so "no" is certainly an acceptable answer :)

    opened by afiaka87 0
  • Add flask inference server and update readme with chrome extension and react app

    Add flask inference server and update readme with chrome extension and react app

    Here are my contributions to GAN Theft Auto. A flask app (inference_flask.py) and a React App: https://github.com/supremepokebotking/GANTheftAutoViewerReact

    I also created a chrome extension for people to experience GAN Theft Auto who dont have a GPU.

    Chrome Extension: https://chrome.google.com/webstore/detail/gan-theft-auto/cnoaklfmjhgfcopifkeelpfgcdappoli

    Youtube Explainer video: https://www.youtube.com/watch?v=dUK_M2YZBLI

    You can use the test account to login instead of registering: email: [email protected] pw: 11111111

    opened by supremepokebotking 0
  • Running inference issue

    Running inference issue

    Errors may have originated from an input operation. Input Source operations connected to node model/spectral_normalization_1/conv2d_1/Conv2D: model/up_sampling2d/resize/ResizeNearestNeighbor (defined at \GANTheftAuto\upsample\upsample.py:17)

    Not sure what the issue is, my GPU is a GTX 1070 & I have installed the latest drivers.

    opened by nookoyo 3
  • can't run inference

    can't run inference

    max@pop-os:/media/max/Data1/GANTheftAuto$ ./scripts/gtav_inference_demo.sh Traceback (most recent call last): File "/media/max/Data1/GANTheftAuto/inference.py", line 273, in inference(opts.gpu, opts) File "/media/max/Data1/GANTheftAuto/inference.py", line 91, in inference torch.cuda.set_device(gpu) File "/home/max/.local/lib/python3.9/site-packages/torch/cuda/init.py", line 264, in set_device torch._C._cuda_setDevice(device) File "/home/max/.local/lib/python3.9/site-packages/torch/cuda/init.py", line 172, in _lazy_init torch._C._cuda_init() RuntimeError: Found no NVIDIA driver on your system. Please check that you have an NVIDIA GPU and installed a driver from http://www.nvidia.com/Download/index.aspx

    opened by barinov274 3
  • Not using GPU properly?

    Not using GPU properly?

    Hi, i got Gan Theft Auto to launch just fine, but it runs at 1 Frame a second. I figured it was because it wasn't properly detecting my GPU, and I found this:

    2021-06-19 20:31:56.833152: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'cudnn64_8.dll'; dlerror: cudnn64_8.dll not found
    2021-06-19 20:31:56.833248: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1766] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.
    

    I tried everything and I'm not sure what could still be causing this? I have CUDA toolkit installed.

    opened by giodude12 2
  • When running the gtav_inference_demo.bat it gets stuck.

    When running the gtav_inference_demo.bat it gets stuck.

    Not sure why but when running the demo bat file it seems to get stuck.

    (base) C:\Users\lanzc\Documents\GitHub\GANTheftAuto>python inference.py --saved_model ./trained_models/gan_5_1_17.pt --data gtav:./data/gtav/gtagan_2_sample --inference_image_path ./data/gtav/2.png --show_base_images True --upsample_model ./trained_models/upsample---[_20]---[______3171]---[_____63420].h5 Adding attention layer in G at resolution 32 Adding attention layer in G at resolution 64 Param count for Gs initialized parameters: 29664579 Adding attention layer in D at resolution 64 Adding attention layer in D at resolution 32 Param count for Ds initialized parameters: 1081733

    It stays here forever.

    opened by garrethcline 4
Owner
Harrison
Harrison
Modified fork of Xuebin Qin's U-2-Net Repository. Used for demonstration purposes.

U^2-Net (U square net) Modified version of U2Net used for demonstation purposes. Paper: U^2-Net: Going Deeper with Nested U-Structure for Salient Obje

Shreyas Bhat Kera 13 Aug 28, 2022
The friendly PIL fork (Python Imaging Library)

Pillow Python Imaging Library (Fork) Pillow is the friendly PIL fork by Alex Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lund

Pillow 10.4k Dec 31, 2022
fork huanghyw/jd_seckill

Jd_Seckill 特别声明: 本仓库发布的jd_seckill项目中涉及的任何脚本,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。 本项目内所有资源文件,禁止任何公众号、自媒体进行任何形式的转载、发布。

null 512 Jan 3, 2023
Exposè for i3 WM. Fork of https://gitlab.com/d.reis/i3expo to fix crashes and improve features/usability

Overwiew Expo is an simple and straightforward way to get a visual impression of all your current virtual desktops that many compositing window manage

null 137 Nov 3, 2022
Whoosh indexing capabilities for Flask-SQLAlchemy, Python 3 compatibility fork.

Flask-WhooshAlchemy3 Whoosh indexing capabilities for Flask-SQLAlchemy, Python 3 compatibility fork. Performance improvements and suggestions are read

Blake VandeMerwe 27 Mar 10, 2022
Frets on Fire X: a fork of Frets on Fire with many added features and capabilities

Frets on Fire X - FoFiX This is Frets on Fire X, a highly customizable rhythm game supporting many modes of guitar, bass, drum, and vocal gameplay for

FoFiX 377 Jan 2, 2023
A fork of OpenAI Baselines, implementations of reinforcement learning algorithms

Stable Baselines Stable Baselines is a set of improved implementations of reinforcement learning algorithms based on OpenAI Baselines. You can read a

Ashley Hill 3.7k Jan 1, 2023
pymobiledevice fork with more recent coding standards and many more features

Description Features Installation Usage Sending your own messages Lockdown messages Instruments messages Example Lockdown services com.apple.instrumen

null 255 Dec 28, 2022
chiarose(XCR) based on chia(XCH) source code fork, open source public chain

chia-rosechain 一个无耻的小活动 | A shameless little event 如果您喜欢这个项目,请点击star 将赠送您520朵玫瑰,可以去 facebook 留下您的(xcr)地址,和github用户名。 If you like this project, please

ddou123 376 Dec 14, 2022
seno-blockchain is just a fork of Chia, designed to be efficient, decentralized, and secure

seno-blockchain https://seno.uno Seno is just a fork of Chia, designed to be efficient, decentralized, and secure. Here are some of the features and b

Denis Erygin 27 Jul 2, 2022
a fork of the OnionShare software better optimized for lower spec lightweight machines and ARM processors

OnionShare-Optimized A fork of the OnionShare software better optimized for lower spec lightweight machines and ARM processors such as Raspberry Pi or

ALTPORT 4 Aug 5, 2021
An Inline Telegram YouTube Downloader bot with custom, permanent thumbnail support and cancel upload facility. Make your fork now.

Inline-Tube-Mate (YouTube Downloader) An Inline Telegram bot that can download YouTube videos with permanent thumbnail support Bot need to be in Inlin

Renjith Mangal 41 Dec 14, 2022
Pycord, a maintained fork of discord.py, is a python wrapper for the Discord API

pycord A fork of discord.py. PyCord is a modern, easy to use, feature-rich, and async ready API wrapper for Discord written in Python. Key Features Mo

Pycord Development 2.3k Dec 31, 2022
A maintained fork of Danny's discord.py

Nextcord A modern, easy-to-use, feature-rich, and async-ready API wrapper for Discord written in Python. Fork notice This is a fork of discord.py, whi

null 977 Jan 5, 2023
A Fork of Gitlab's Permifrost tool for managing Snowflake Permissions

permifrost-fork This is a fork of the GitLab permifrost project. As the GitLab team is not currently maintaining the project, we've taken on maintenac

Hightouch 7 Oct 13, 2021
The friendly PIL fork (Python Imaging Library)

Pillow Python Imaging Library (Fork) Pillow is the friendly PIL fork by Alex Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lund

Pillow 10.4k Jan 3, 2023
A youtube-dl fork with additional features and fixes

yt-dlp is a youtube-dl fork based on the now inactive youtube-dlc. The main focus of this project is adding new features and patches while also keepin

yt-dlp 37.1k Jan 3, 2023
Utility tools for the "Divide and Remaster" dataset, introduced as part of the Cocktail Fork problem paper

Divide and Remaster Utility Tools Utility tools for the "Divide and Remaster" dataset, introduced as part of the Cocktail Fork problem paper The DnR d

Darius Petermann 46 Dec 11, 2022
A toolkit for geo ML data processing and model evaluation (fork of solaris)

An open source ML toolkit for overhead imagery. This is a beta version of lunular which may continue to develop. Please report any bugs through issues

Ryan Avery 4 Nov 4, 2021