Comments (12)
I would suggest a strong copyleft license like AGPLv3:
The GNU Affero General Public License is a modified version of the ordinary GNU GPL version 3. It has one added requirement: if you run a modified program on a server and let other users communicate with it there, your server must also allow them to download the source code corresponding to the modified version running there.
The purpose of the GNU Affero GPL is to prevent a problem that affects developers of free programs that are often used on servers.
That problem being, that others will take GPLv3 software, modify it, put it on a server, and then prevent users from seeing the changed source code since they're not legally obligated to share it when it's just used over a network connection.
Some other software that use AGPL include: WriteFreely, Mastodon, PeerTube, and Signal. What these projects all have in common is that they're intended for users to self-host their own copy of the software. In particular, I think that AGPL would be a good way to ensure users retain their rights should someone take KoboldAI and try to make an AI Dungeon-like experience with it by hosting it on their own server for others to use.
from koboldai-client.
AGPLv3 license added.
from koboldai-client.
When you were talking about rights, I first thought it was just about the ideological stance that copyleft is the way to go to achieve software freedom. There are two schools of thought on this (the permissive license camp being the other I'm referring to) and while it might be that it was pretty much a necessity for something like Linux to be copyleft to have happened, for a lot of smaller software we are seeing alternatives cropping up almost left and right. If those alternatives are going to happen anyway, isn't it just spiteful to hamper the efforts of those who subscribe to different ideals by imposing heavy control over source code? Even if that ideal is "money", should we care? KoboldAI developers don't (probably) have the resources to host KoboldAI for remote users to use, so if (hypothetically) somebody does have those and is deterred from that by a license choice, that will be a loss to the player base.
But then I thought of something that does speak for AGPL or similar for server-based things. All those issues that AI Dungeon is currently dealing with. If the modifications to the code aren't published, that can then be a legal weapon in a scenario where there have been controversial changes to it, once discovered. And if they are published, at least the users can determine exactly how the system works. But of course this is all assuming they didn't just make their own AI Dungeon clone. If they have the resources to host such a thing, they would have for development, I'd imagine, as well.
Anyway, I'm not a developer of KoboldAI so you could just ignore my ramblings.
from koboldai-client.
I up this very much.
By default, your work is "all rights reserved"
from koboldai-client.
from koboldai-client.
AGPLv3 is REALLY good, I also recommend that.
from koboldai-client.
AGPLv3 makes a lot of sense for this project, indeed. And I would be ready to spend a lot of time improving the project if it were opensource (because currently, it is only source available, but we have no rights to modify or even share the code ourselves, even locally...)
from koboldai-client.
From my understanding AGPL would require us to publish the source code of CUDA which is not possible, so we'd have to give up GPU support. I like the sentiment of people not being able to make a closed source service based on KoboldAI though, but i'd like it to be liberal enough that developers / modders aren't required to do this for private use. Something like it only being required if you run an unattended service, if it requires you manually starting a developer instance i think it would be fine to allow closed source usage until you feel ready to share the code.
We'd need something like a hybrid of LGPL and AGPL, or just our own custom license since it seems a lot of the big well known ones aren't an exact fit.
So if i am just going to brainstorm some idea's of what the license would do i'd suggest a license that is something like this :
- If you distribute a copy of the software you must include the unobfuscated source code.
- If you host the software as an unattended service you must allow your users to download the source code that this service runs on.
- Anyone is able to use and modify this software for free for any purpose other than purposefully harming the project.
- If you write extensions/libries for this software these extensions/libries must be published under the same license. You are not allowed to write private closed source extentions if they are intended to be used for this project without permission of the project contributors.
- You may not change the license of this project unless you have permission of the project contributors.
- You may use this software in a commercial product or service as long as you allow a fully functional version to be distributed for free under this license.
Then optionally a clause where entity's are allowed to keep features private to their service for a limited time (For example 3 months) to make it viable for them to spend resources on development to get an edge over the other solutions based on KoboldAI before they are forced to give this away for free. But that last part is quite a deviation from the traditional 100% open source mindset so its merely intended as a start of a philosophical discussion.
from koboldai-client.
@henk717 AGPL doesn't prevent you from using CUDA at all! It only applies to the code you wrote, not to the libraries you use.
from koboldai-client.
However, since it's been half a month without any answer from the maintainer, I think I'll rewrite KoboldAI from scratch... It'll be a good exercise, and it should also make it more maintainable (everything in one source file, seriously?).
from koboldai-client.
We'd need something like a hybrid of LGPL and AGPL, or just our own custom license since it seems a lot of the big well known ones aren't an exact fit.
Beware! Writing a license without advice from a lawyer can be dangerous... very dangerous. It can backfire REALLY hard. There has been examples of that in the past.
from koboldai-client.
@aviallon Trusting your judgement on the CUDA part it would be quite a fitting license for us, but it does have one requirement the project currently does not meet. The ability to download the source code from the interface because of this line ' your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge'.
To do that effectively and complicity without being a massive pain to developers sharing test links we'd need a button that can automatically zip up a copy of the game without exposing user data / models and offer it as a download in the browser.
I love the spirit of the AGPL in terms of people not being able to offer this as a closed service, but in my eyes it would be more practical to have a license that allows attended instances to be exempt from the sharing rule. That way if you are developing and have an attended development instance running and your just sharing a test link you don't have to worry about file distribution, while when you are putting this as a background task on a server you'd have to meet this requirement and provide a link to the source (Which then more easily can just be a github link you specify somewhere).
Either the software based solution of automating the requirement, or the exception would allow users, modders and developers to use the software worry free in a very liberal way. While still protecting the project from rogue closed services.
from koboldai-client.
Related Issues (20)
- Having issues with united versions HOT 1
- Installation error saying cannot find HOME HOT 1
- Issue downloading models HOT 1
- Kobold AI not utilize all cpus HOT 1
- delete
- softprompt tuner not working HOT 2
- Slow HOT 1
- How to set an API secret ? HOT 3
- No longer update? HOT 1
- ImportError: cannot import name 'dependency_versions_check'
- Colab readme.md link 404
- Micromamba URI can get corrupted by wget [Linux] HOT 1
- Change chat format with API
- The process suddenly stops for some reason
- Problem at remote-play HOT 3
- Colab only showing one model HOT 1
- Error when generating story HOT 1
- Fix def get_folder_path_info(base) for MacOS - any input?
- model type issue
- ImportError: cannot import name 'BaseResponse' from 'werkzeug.wrappers'
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from koboldai-client.