paintplus: vendor the app source and rename from EditmaskwithAI
Bring the full EditmaskwithAI application into the repo under paintplus/ (429 files) so the service is self-contained — the installer copies the vendored source to ~/docker/paintplus/src instead of cloning at runtime. Rename to PaintPlus (service + branding; app logic untouched): - services/editmaskwithai.sh -> services/paintplus.sh (register_service paintplus, install_paintplus, ~/docker/paintplus, Caddy paintplus:8000, Authelia option preserved) - container names -> paintplus across docker-compose*.yml; dev network -> paintplus-network - browser <title> -> "PaintPlus - AI Image Editor"; README heading -> PaintPlus with upstream provenance note - README utilities table: editmaskwithai -> paintplus Backend/frontend code (help strings referencing the old container name, the ai_photo_edit.db filename) is intentionally left as-is to avoid touching application logic. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Nb2vJ8W7bHKx1JXVvpCraH
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Convert PPM files to PNG using PIL."""
|
||||
from pathlib import Path
|
||||
from PIL import Image
|
||||
|
||||
ppm_dir = Path(__file__).parent
|
||||
for ppm_file in ppm_dir.glob("*.ppm"):
|
||||
png_file = ppm_file.with_suffix('.png')
|
||||
img = Image.open(ppm_file)
|
||||
img.save(png_file, 'PNG')
|
||||
print(f"Converted: {ppm_file.name} -> {png_file.name}")
|
||||
@@ -0,0 +1,164 @@
|
||||
[
|
||||
{
|
||||
"filename": "classic_realistic_blue.png",
|
||||
"ppm_filename": "classic_realistic_blue.ppm",
|
||||
"name": "Classic Realistic Eye - Blue",
|
||||
"description": "A realistic style eye with blue iris color",
|
||||
"tags": "eye,classic,realistic,blue,medium",
|
||||
"width": 200,
|
||||
"height": 200
|
||||
},
|
||||
{
|
||||
"filename": "classic_realistic_green.png",
|
||||
"ppm_filename": "classic_realistic_green.ppm",
|
||||
"name": "Classic Realistic Eye - Green",
|
||||
"description": "A realistic style eye with green iris color",
|
||||
"tags": "eye,classic,realistic,green,medium",
|
||||
"width": 200,
|
||||
"height": 200
|
||||
},
|
||||
{
|
||||
"filename": "classic_realistic_brown.png",
|
||||
"ppm_filename": "classic_realistic_brown.ppm",
|
||||
"name": "Classic Realistic Eye - Brown",
|
||||
"description": "A realistic style eye with brown iris color",
|
||||
"tags": "eye,classic,realistic,brown,medium",
|
||||
"width": 200,
|
||||
"height": 200
|
||||
},
|
||||
{
|
||||
"filename": "classic_realistic_hazel.png",
|
||||
"ppm_filename": "classic_realistic_hazel.ppm",
|
||||
"name": "Classic Realistic Eye - Hazel",
|
||||
"description": "A realistic style eye with hazel iris color",
|
||||
"tags": "eye,classic,realistic,hazel,medium",
|
||||
"width": 200,
|
||||
"height": 200
|
||||
},
|
||||
{
|
||||
"filename": "classic_realistic_grey.png",
|
||||
"ppm_filename": "classic_realistic_grey.ppm",
|
||||
"name": "Classic Realistic Eye - Grey",
|
||||
"description": "A realistic style eye with grey iris color",
|
||||
"tags": "eye,classic,realistic,grey,medium",
|
||||
"width": 200,
|
||||
"height": 200
|
||||
},
|
||||
{
|
||||
"filename": "classic_realistic_amber.png",
|
||||
"ppm_filename": "classic_realistic_amber.ppm",
|
||||
"name": "Classic Realistic Eye - Amber",
|
||||
"description": "A realistic style eye with amber iris color",
|
||||
"tags": "eye,classic,realistic,amber,medium",
|
||||
"width": 200,
|
||||
"height": 200
|
||||
},
|
||||
{
|
||||
"filename": "classic_anime_blue.png",
|
||||
"ppm_filename": "classic_anime_blue.ppm",
|
||||
"name": "Classic Anime Eye - Blue",
|
||||
"description": "A anime style eye with blue iris color",
|
||||
"tags": "eye,classic,anime,blue,medium",
|
||||
"width": 200,
|
||||
"height": 200
|
||||
},
|
||||
{
|
||||
"filename": "classic_anime_green.png",
|
||||
"ppm_filename": "classic_anime_green.ppm",
|
||||
"name": "Classic Anime Eye - Green",
|
||||
"description": "A anime style eye with green iris color",
|
||||
"tags": "eye,classic,anime,green,medium",
|
||||
"width": 200,
|
||||
"height": 200
|
||||
},
|
||||
{
|
||||
"filename": "classic_anime_brown.png",
|
||||
"ppm_filename": "classic_anime_brown.ppm",
|
||||
"name": "Classic Anime Eye - Brown",
|
||||
"description": "A anime style eye with brown iris color",
|
||||
"tags": "eye,classic,anime,brown,medium",
|
||||
"width": 200,
|
||||
"height": 200
|
||||
},
|
||||
{
|
||||
"filename": "classic_anime_hazel.png",
|
||||
"ppm_filename": "classic_anime_hazel.ppm",
|
||||
"name": "Classic Anime Eye - Hazel",
|
||||
"description": "A anime style eye with hazel iris color",
|
||||
"tags": "eye,classic,anime,hazel,medium",
|
||||
"width": 200,
|
||||
"height": 200
|
||||
},
|
||||
{
|
||||
"filename": "classic_anime_grey.png",
|
||||
"ppm_filename": "classic_anime_grey.ppm",
|
||||
"name": "Classic Anime Eye - Grey",
|
||||
"description": "A anime style eye with grey iris color",
|
||||
"tags": "eye,classic,anime,grey,medium",
|
||||
"width": 200,
|
||||
"height": 200
|
||||
},
|
||||
{
|
||||
"filename": "classic_anime_amber.png",
|
||||
"ppm_filename": "classic_anime_amber.ppm",
|
||||
"name": "Classic Anime Eye - Amber",
|
||||
"description": "A anime style eye with amber iris color",
|
||||
"tags": "eye,classic,anime,amber,medium",
|
||||
"width": 200,
|
||||
"height": 200
|
||||
},
|
||||
{
|
||||
"filename": "classic_cartoon_blue.png",
|
||||
"ppm_filename": "classic_cartoon_blue.ppm",
|
||||
"name": "Classic Cartoon Eye - Blue",
|
||||
"description": "A cartoon style eye with blue iris color",
|
||||
"tags": "eye,classic,cartoon,blue,medium",
|
||||
"width": 200,
|
||||
"height": 200
|
||||
},
|
||||
{
|
||||
"filename": "classic_cartoon_green.png",
|
||||
"ppm_filename": "classic_cartoon_green.ppm",
|
||||
"name": "Classic Cartoon Eye - Green",
|
||||
"description": "A cartoon style eye with green iris color",
|
||||
"tags": "eye,classic,cartoon,green,medium",
|
||||
"width": 200,
|
||||
"height": 200
|
||||
},
|
||||
{
|
||||
"filename": "classic_cartoon_brown.png",
|
||||
"ppm_filename": "classic_cartoon_brown.ppm",
|
||||
"name": "Classic Cartoon Eye - Brown",
|
||||
"description": "A cartoon style eye with brown iris color",
|
||||
"tags": "eye,classic,cartoon,brown,medium",
|
||||
"width": 200,
|
||||
"height": 200
|
||||
},
|
||||
{
|
||||
"filename": "classic_cartoon_hazel.png",
|
||||
"ppm_filename": "classic_cartoon_hazel.ppm",
|
||||
"name": "Classic Cartoon Eye - Hazel",
|
||||
"description": "A cartoon style eye with hazel iris color",
|
||||
"tags": "eye,classic,cartoon,hazel,medium",
|
||||
"width": 200,
|
||||
"height": 200
|
||||
},
|
||||
{
|
||||
"filename": "classic_cartoon_grey.png",
|
||||
"ppm_filename": "classic_cartoon_grey.ppm",
|
||||
"name": "Classic Cartoon Eye - Grey",
|
||||
"description": "A cartoon style eye with grey iris color",
|
||||
"tags": "eye,classic,cartoon,grey,medium",
|
||||
"width": 200,
|
||||
"height": 200
|
||||
},
|
||||
{
|
||||
"filename": "classic_cartoon_amber.png",
|
||||
"ppm_filename": "classic_cartoon_amber.ppm",
|
||||
"name": "Classic Cartoon Eye - Amber",
|
||||
"description": "A cartoon style eye with amber iris color",
|
||||
"tags": "eye,classic,cartoon,amber,medium",
|
||||
"width": 200,
|
||||
"height": 200
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user