devindevine commited on
Commit
f02dec0
·
verified ·
1 Parent(s): 1455e5e

Upload 23 files

Browse files
Files changed (23) hide show
  1. .gitattributes +35 -35
  2. Prompts.txt +138 -0
  3. README.md +14 -15
  4. app.py +138 -28
  5. commands.txt +30 -0
  6. error.txt +0 -0
  7. fix.bat +13 -0
  8. fix.sh +20 -0
  9. ftp.py +43 -0
  10. manual install.txt +7 -0
  11. new.txt +114 -0
  12. optimization.py +85 -0
  13. picgen.service +20 -0
  14. requirements.txt +2 -1
  15. setup.bat +32 -0
  16. setup.sh +60 -0
  17. ssh.sh +6 -0
  18. start.bat +4 -0
  19. start.sh +11 -0
  20. stop.bat +5 -0
  21. stop.sh +6 -0
  22. switch_to_picgen.sh +9 -0
  23. switch_to_vidgen.sh +28 -0
.gitattributes CHANGED
@@ -1,35 +1,35 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
Prompts.txt ADDED
@@ -0,0 +1,138 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Lift Up Vag Flash.
2
+ She lifts the entire bottom portion of her clothing upward to just above her vagina area. All of the bottom fabric is now fully scrunched and bunched tightly in her hands and not visible anywhere else, completely exposing her shaved, beautiful vagina. Any other objects that were in her hands must be removed. Tiny gap of space between her legs. Everything else in the scene remains exactly the same as before.
3
+
4
+ Same Place Sitting Tease.
5
+ She sits on the floor in the same room with the same clothes on but the top of them are pulled down to be under her exposed breasts which must be firm and perky and standing up straight with nipples hard and pointing right at the camera without any sagging. and the bottom of her clothes are pulled up in a way to not cover her vagina. but with her knees facing straight towards me but her vagina is facing at me, same exact identical face with all of it's exact features and same exact original expression with no changes except her eyes are looking directly at the camera, she uses her hands to grip both sides of her vulva and fully part/spread both sides so that her vagina insides are visible and as far as they be parted as those same hands also push against her inner thighs visibly, everything else the same
6
+
7
+ Same Place Shh Tease.
8
+ Her left hand's index finger is hovering away from her vagina and she is pointing it directly at her vagina hole while she also holds her right hand's index finger on her mouth saying shh but still smiling extremely sexually suggestively and invitingly, everything else stays the same!
9
+
10
+ Same Place Shh Tease 2.
11
+ Her left hand is being used to touch her vaginal clitoris without covering the whole vagina while she also holds her right hand's index finger on her mouth saying shh but still smiling extremely sexually suggestively and invitingly, vagina fully visible between her now slightly more spread legs. tonge is pressed between her teeth in a sexually suggestive way. Exact same identical face with all the exact same identical features. everything else stays the same!
12
+
13
+ 1 Leg Up Inviting Tease.
14
+ She holds 1 leg far up in the air, to fully show vagina and, vagina is facing at me, everything else the same
15
+
16
+ Same Place Squatting Frontal.
17
+ Same exact identical face with all the same exact identical features.
18
+ head is turned almost fully around naturally to look directly into my eyes. She is being fully penetrated by a small but wide penis coming from the bottom of the picture attached to a man who is no visible who has his legs stretched under her. her mouth wide open with her lips making an o shape. She looks like she is imdeep in love and dreaming in a fantasy. She is very close to the camera sitting on the penis that is now fully inside her vagina hole, showing how it parts her vulva from its penetration.
19
+ remove the objects in the way. She touches her clitoris with just one of her hand's fingers and her other hand stays is grabbing the penis in her vagina.
20
+ everything else is the exact same!
21
+
22
+ Dick Holding Pleasure Tease.
23
+ She is squatting up in the air close to the camera with her legs only partially spread. With her right hand, she is eagerly, firmly, and tightly gripping a small penis that enters the frame from the bottom of the image; the penis belongs to an otherwise completely unseen man whose legs are stretched out flat beneath her.
24
+ She hovers directly above the tip of the penis. the head of the penis is touching / pressing against her vaginal area.
25
+ She uses her left hand to reach underneath her clothing as she has her fingers deeply inside her vagina, they disappear inside her.
26
+ Her head is turned almost completely around in a natural way so she can stare directly into the viewer's eyes. Both of her breasts are fully exposed outside of her clothing, with visibly hardened nipples. her open mouth—lips shaped into a perfect "O"—Remove all flowers from the image. Everything else must remain exactly the same.
27
+
28
+ Dick Holding Almost BJ.
29
+ She leans forward with her mouth wide open and lips in an O shape so that her mouth is closer to the penis but not touching it. her tongue is visible only behind the penis pressed against it. She is still firmly grasping the penis the same exact way. Close up of her face. Same exact identical face with all the same features. Everything else is the same
30
+
31
+ Same Place Partial BJ.
32
+ Same environment.
33
+ She is now on her stomach as far back enough as needed and bending forward enough so that the penis that is coming up from the bottom of the photo that is attached to an unseen man is now all the way in her mouth. put the penis much deeper in her mouth. You can see her butt visibly behind her head as well which has smooth skin and arches for the cheeks. same exact identical face with all the same exact identical features. Everything else is the exact same.
34
+
35
+ Side View Oral.
36
+ She is wearing the same clothing the same exact way. Her left hand is sexually touching her vagina between her fully spread legs. Her vagina is fully visible and you can see she put fingers inside of it's hole.
37
+ The same sized but smaller penis from the original photo is now all the way deep inside of her mouth and you can see that it is in her throat because there is a bulge from it on her throat. The very short penis is coming from the right edge of the photo. Her lips are tightly closed surrounding the bottom part of the penis. She is squatting at a side angle in a way that you can see what I said she is doing with her vagina. The camera angle makes that possible. Her right hand holds the penis and pulls it more into her mouth. Same exact identical face with exact same facial features. her eyes are open and rolled back in pleasure. Remove the man from the photo and keep only the shaft of the penis coming from the right edge of the photo.
38
+
39
+ Remove Her Clothes.
40
+ no clothing, naked, perfectly accurate, everything else is the exact same
41
+
42
+ Full Body Nudity.
43
+ no clothing, naked, full body, perfectly accurate, same exact identical face with all the same exact idential features, everything else is the exact same
44
+
45
+ Secret Silent Sex.
46
+ close up, same exact face, same clothes but breasts fully out with hard nipples and vagina fully showing as the clothes just barely don't cover it. she is leaning very far forwards very close to the camera, full breasts visible and perfect, sitting on a very small penis fully penetrating all the way to the farthest depths of inside her vagina, coming up from an unseen man with his legs stretched underneath her, everything else the same, vulva fully parted from the penis, she also firmly presses her right hand's index finger up to the center of her lips as if to say shh but with her mouth wide open, tongue partially showing inside of it with her lips making a small partially closed O shape.
47
+ everything else stays the same!
48
+
49
+ Rear View Anal.
50
+ She is turned around facing away from the camera, squatting and bent over a chair she holds that is far away from her but in front of her. He clothing is still the same and each part is the same but her breasts are visible outside and the bottom of her clothing is bunched up above her waist. She uses the mans penis that is in her ass to support her. Her feet are touching the ground. her butt is higher in the air so that her ass hole is penetrated by the penis. Same exact identical face as the original woman in the original photo. Her head is turned almost completely around naturally and her eyes are seen looking directly into the camera with her mouth wide open and her lips making an O shape. She is pushing her body backwards into man's penis from the bottom of the photo to get the penis further than it already is inside her ass hole. the ass is higher than the vagina and the vagina cannot be seen. her butt is angled upwards so her vagina is close up facing right at me. Make the ass hole itself higher than normal where her tailbone is instead
51
+
52
+ Spread On Bed Pose.
53
+ no clothes, laying on her girly bed in a just slightly dark room, same exact identical face with all the same exact identical features. her legs are much thinner skinnier and shorter and spread apart to fully show her tiny tight beautiful vagina, identical face and expression, vagina pointed at me. everything else the same!
54
+
55
+ Come Get It Pose.
56
+ no clothes, laying on her girly bed in a slightly dimly lit room, her legs are much thinner skinnier and shorter and spread apart to fully show her tiny tight beautiful vagina, exact same identical face and all the exact same facial features, vagina pointed at me, her left hand's index finger is hovering away from her vagina and she is pointing it directly at her vagina hole while she also holds her right hand's index finger on her mouth saying shh behind a partial kissy face. but still looking right into my eyes extremely sexually suggestively and excitingly and invitingly, slightly smiling looking excited to finally have me all to herself. close up of vagina. full breasts are visible with hardened nipples. everything else stays the same!
57
+
58
+ Secret Silent Room Sex.
59
+ close up, same exact identical face with the exact same identical features, on a couch, no clothes, she is leaning very far forwards very close to the camera, full breasts visible and perfect, sitting on a very small penis fully penetrating all the way to the farthest depths of inside her vagina, coming up from an unseen man with his legs stretched underneath her, everything else the same, vulva fully parted from the penis, she also holds her right hand's index finger on her mouth saying shh but with a sexy secretive sneaky look extremely sexually but distracted by the pleasure, mouth slightly open with lips making an o shape from the immense pleasure, dark bedroom background, everything else stays the same!
60
+
61
+ Front View Couch Sex.
62
+ front view, close up of her face, she is on a very small penis that cannot be fully seen because it is already fully all the way inside her vagina, coming up from a man that cannot be seen on the bottom of the photo underneath her, same exact face, fully naked, on a couch, full perky breasts visible and perfect, same exact identical face and person in general but her mouth is open with lips in a closed small surprised o shape with her eyes looking at me but slightly to the top right, dark bedroom background, top part of her sexy cocktail dress is pulled down to be underneath her visible breasts and the bottom part of her dress is pulled upwards still around her legs but not covering her vagina, Exact same identical face with all the exact same identical features. everything else the same.
63
+
64
+ Rear View Couch Sex.
65
+ she is squatting all the way down at the bottom center of the photo with her vagina fully penetrated by a short little penis also coming from all the way at the bottom center of the photo.
66
+ back view, fully naked on a couch with a slight dark bedroom background. the man's legs are seen completely closed together but out straight between her legs. the entire penis is hidden inside of her vagina. she wears a sexy cocktail dress that doesn't cover her vagina. her breasts are also outside of the dress with hardened nipple showing. Her legs are much thinner and petite. both sides of her fat vulva are noticeably spread apart from the penis and her head is turned almost completely around naturally as far as she can to look directly into my eyes, her mouth is open with lips in a closed small surprised o shape. her butt is pointing up at the camera so you can see the intimate details of her full penetrated vagina. Exact same identical face with all the exact same identical features. she is also reaching behind her back and using only her little hand to grab and spreading more open her right butt cheek so the penis is seen even deeper inside of her. only the penis of the man is visible. everything else is the exact same!
67
+
68
+ Balcony Risky Sex.
69
+ On a balcony at night, leaning over the railing, small penis inside her vagina from behind coming from an unseen man beyond the edge of the photo, dress bunched at waist, wind blowing, one leg lifted, vagina fully visible and dripping. Same exact identical face with all the same exact identical features turned back with risky excited smile and open mouth. Everything else the exact same!
70
+
71
+ Bathroom Sink Sex.
72
+ Sitting on the bathroom sink facing the camera, legs spread wide on the edges, small penis fully penetrating her vagina coming from an unseen man beyond the edge of the photo, water running in background, both hands pulling her breasts up and together while vagina is slightly naturally stretched visibly. Same exact identical face with all the same exact identical features moaning with pure pleasure looking straight at viewer. Everything else stays the exact same!
73
+
74
+ Bed Arching Back Orgasm Pose.
75
+ No clothes, lying on her girly bed with back arched high, legs spread maximally and pulled back, small penis fully embedded in her vagina coming from an unseen man beyond the edge of the photo from below with the man's legs under her, her hands pinching her hard nipples. Same exact identical face with all the same exact identical features showing maximum ecstasy with eyes rolled back and tongue hanging out. Vagina is fully visible and glistening. Everything else stays the same!
76
+
77
+ Bed Doggy Style Front Turned.
78
+ On all fours on the bed facing away but head fully turned back to camera naturally, small penis penetrating her vagina deeply from behind coming from an unseen man beyond the edge of the photo, one hand reaching under to spread her vulva lips around the shaft showing insertion. Same exact identical face with all the same exact identical features with eyes locked on viewer in dreamy loving pleasure. Her butt cheeks are spread naturally. Everything else the exact same!
79
+
80
+ Bent Over Table Anal-Vaginal Tease.
81
+ Bent over a table in the same room, clothing bunched at waist, small penis deep in her ass coming from an unseen man beyond the edge of the photo but legs spread so her vagina is prominently visible and dripping below the penetration, she reaches back with both hands to spread her ass cheeks and vulva simultaneously. Same exact identical face with all the same exact identical features turned around to the camera with wide O mouth in overwhelming pleasure. Everything else the exact same!
82
+
83
+ Car Backseat Ride.
84
+ In the backseat of a car, straddling facing camera, small penis buried inside her vagina coming from an unseen man beyond the edge of the photo, windows slightly fogged, dress pulled down and up, hands on the headrest behind her pushing her breasts forward. Same exact identical face with all the same exact identical features in maximum arousal looking at viewer. Everything else the exact same!
85
+
86
+ Chair Ride Facing Camera.
87
+ Sitting on a chair facing the camera, small penis fully inside her vagina coming from an unseen man beyond the edge of the photo, legs draped over the chair arms spreading her extremely wide, both hands pulling her vulva lips apart showing the penetration and her insides. Breasts fully exposed with hard nipples. Same exact identical face with all the same exact identical features staring directly at the viewer with raw sexual hunger. Everything else stays the exact same!
88
+
89
+ Close Up Face With Vaginal Spread And Penis Tease.
90
+ Extreme close up on her face and upper body but vagina visible in lower frame, she holds the small penis coming from an unseen man beyond the edge of the photo with one hand pressing it against her clitoris while the other hand spreads her vulva, mouth open tongue out licking her lips suggestively. Same exact identical face with all the same exact identical features but with maximum seductive arousal. Everything else stays the same!
91
+
92
+ Couch Lap Dance Penetration.
93
+ On the couch, she straddles facing the camera in lap position with small penis fully inside her vagina coming from an unseen man beyond the edge of the photo, dress pulled up and down exposing breasts and vagina, hands on her own breasts squeezing while bouncing slightly implied. Same exact identical face with all the same exact identical features, mouth open in surprised pleasure O shape looking slightly up at camera. Everything else the exact same!
94
+
95
+ Intense Missionary Leg Lift.
96
+ No clothes, lying on her back on the girly bed with both legs pulled up high and spread extremely wide, small penis buried to the hilt inside her vagina coming from an unseen man beyond the edge of the photo from below with the unseen man's legs stretched underneath. Her hands grip her own thighs pulling them apart even more so the slightly naturally stretched vulva and deep penetration are perfectly visible. Same exact identical face with all the same exact identical features showing pure overwhelming ecstasy, eyes half-closed in bliss, mouth wide open in a perfect moaning O shape. Everything else stays the exact same!
97
+
98
+ Kitchen Counter Penetration.
99
+ Bent over the kitchen counter, legs spread wide, small penis deep inside her vagina from behind coming from an unseen man beyond the edge of the photo, dress pulled up, breasts hanging and pressed against the counter, one hand reaching back spreading herself. Same exact identical face with all the same exact identical features turned back with an expression of being fucked senseless in ecstasy. Everything else the exact same!
100
+
101
+ Kneeling Frontal Invitation With Fingers.
102
+ Fully naked, kneeling on the floor close to camera with legs spread, using both index fingers to hook and slightly naturally pull her vagina lips apart extremely wide showing the deepest insides while a small penis tip coming from an unseen man beyond the edge of the photo presses against the entrance from below. Same exact identical face with all the same exact identical features smiling extremely sexually suggestively with pure invitation in her eyes. Everything else stays the same!
103
+
104
+ Lotus Position Deep Intimate.
105
+ Fully naked in lotus position on the bed facing the camera, small penis completely inside her vagina coming from an unseen man beyond the edge of the photo, legs wrapped around the unseen man but spread enough for full view, her hands on his shoulders (unseen) while she grinds. Same exact identical face with all the same exact identical features showing intense loving pleasure, mouth open, eyes dreamy. Everything else the exact same!
106
+
107
+ Mirror Reflection Tease.
108
+ Standing in front of a large mirror, bent slightly forward, small penis entering her vagina from behind coming from an unseen man beyond the edge of the photo while she watches herself in the mirror, one hand spreading her vulva, the other pinching a nipple. Same exact identical face with all the same exact identical features reflected in the mirror staring back at the viewer with maximum seductive arousal. Everything else stays the exact same!
109
+
110
+ Overhead Squat Ride Ecstasy.
111
+ From an overhead camera angle, she squats deeply onto the small penis fully inside her vagina coming from an unseen man beyond the edge of the photo, vulva slightly naturally stretched wide and parted, her hands reaching down to rub her clitoris around the shaft. Same exact identical face with all the same exact identical features turned upwards to the camera with an expression of being lost in intense sexual fantasy and love. Everything else the exact same!
112
+
113
+ Prone Bone Close Up.
114
+ Lying flat on her stomach on the bed, ass slightly raised, small penis deep inside her vagina from behind coming from an unseen man beyond the edge of the photo, one hand reaching back to slightly naturally spread her ass and vulva so the slightly naturally stretched hole and penetration are clearly visible. Same exact identical face with all the same exact identical features turned to the side looking back at the camera with blissful orgasm face. Everything else the exact same!
115
+
116
+ Reverse Cowgirl Deep Squat.
117
+ Fully naked, squatting with her back to the camera but head turned almost 180 degrees naturally to stare straight into the viewer's eyes, small penis completely swallowed by her vagina coming from an unseen man beyond the edge of the photo, vulva lips gripping the base tightly. One hand reaches back spreading her ass cheek while the other rubs her clitoris around the shaft. Same exact identical face with all the same exact identical features lost in maximum sexual pleasure, tongue slightly out. Everything else the exact same!
118
+
119
+ Shower Wet Sex.
120
+ Standing in the shower under running water, one leg wrapped around the unseen man, small penis deep inside her vagina coming from an unseen man beyond the edge of the photo, water cascading over her body, one hand spreading her vulva around the shaft. Same exact identical face with all the same exact identical features showing wet, slippery, maximum sexual ecstasy. Everything else stays the exact same!
121
+
122
+ Sideways Spooning Vaginal Sex.
123
+ She lies on her side in the same room, one leg lifted high allowing full view of her vagina being penetrated by the small penis coming from the side edge of the photo attached to unseen man, her top hand slightly naturally spreading her vulva further while bottom hand grips the penis base. Same exact identical face with all the same exact identical features, mouth in perfect O shape staring invitingly at camera. Everything else the exact same!
124
+
125
+ Standing Bent Over Window Sex.
126
+ She bends forward pressing her hands against the window, ass pushed out, small penis thrusting deep into her vagina from behind coming from an unseen man beyond the edge of the photo, legs spread wide so her dripping vagina is fully visible between her thighs. Clothing bunched at waist exposing breasts and vagina. Same exact identical face with all the same exact identical features turned back to the camera with desperate arousal and open moaning mouth. Everything else stays the exact same!
127
+
128
+ Standing Carry Position Tease.
129
+ She is held up by unseen man (his arms and legs partially visible), legs wrapped around but spread to show vagina penetrated by small penis standing coming from an unseen man beyond the edge of the photo, her hands around his neck but since unseen focus on her, vagina fully visible slightly naturally stretched. Same exact identical face with all the same exact identical features smiling invitingly with tongue between teeth. Everything else the exact same!
130
+
131
+ Wall Leaning Deep Penetration Tease.
132
+ She leans back against the wall with her legs spread wide and one knee raised high, the small penis coming from an unseen man beyond the edge of the photo below is thrusting deep into her vagina causing visible stretching slightly naturally and her juices flowing freely. Same exact identical face with all the same exact identical features looking straight at the camera with eyes full of desperate arousal and lips parted in a silent scream of pleasure. Everything else the exact same!
133
+
134
+ Wall Pressed Standing Sex.
135
+ Pressed face-first against the wall, ass pushed out, small penis buried deep in her vagina coming from an unseen man beyond the edge of the photo, one leg lifted high to the side for maximum visibility of the penetration and her dripping vulva. Same exact identical face with all the same exact identical features pressed against the wall but turned enough to lock eyes with the viewer in pure lust. Everything else stays the exact same!
136
+
137
+ Yoga Mat Deep Stretch Sex.
138
+ On a yoga mat in downward dog position but modified, small penis penetrating her vagina deeply from behind coming from an unseen man beyond the edge of the photo, one leg lifted high to the side for extreme spread and visibility of penetration. Same exact identical face with all the same exact identical features looking back between her legs at the camera in overwhelming pleasure. Everything else stays the exact same!
README.md CHANGED
@@ -1,15 +1,14 @@
1
- ---
2
- title: Qwen Image Edit NSFW
3
- emoji: 🎨
4
- colorFrom: purple
5
- colorTo: pink
6
- sdk: gradio
7
- sdk_version: 5.0.0
8
- app_file: app.py
9
- pinned: false
10
- license: apache-2.0
11
- ---
12
-
13
- # Qwen Image Edit NSFW - Zero GPU
14
-
15
- Identical to the original picgen application, optimized for Hugging Face Spaces Zero GPU.
 
1
+ 1. Connect to vps
2
+ 2. Clone this repo
3
+ 3. cd to /picgen
4
+ 4. Run bash setup.sh
5
+
6
+ To run later:
7
+
8
+ ssh-keygen -f '/root/.ssh/known_hosts' -R 'ip_address'
9
+
10
+ ssh root@ip_address
11
+
12
+ cd picgen
13
+
14
+ python3 app.py --share
 
app.py CHANGED
@@ -2,7 +2,9 @@ import gradio as gr
2
  import numpy as np
3
  import random
4
  import torch
5
- import spaces
 
 
6
  import gc
7
 
8
  from safetensors.torch import load_file
@@ -40,23 +42,26 @@ NSFW_WEIGHTS_LOCAL_PATH = os.path.join(MODELS_DIR, "rapid-aio", "v23", "Qwen-Rap
40
  # Detect operating system
41
  IS_WINDOWS = platform.system() == "Windows"
42
  IS_LINUX = platform.system() == "Linux"
43
- print("Operating System: {platform.system()}")
 
 
 
 
 
 
 
44
 
45
  # --- Clear GPU memory from previous runs ---
46
  def clear_vram():
47
  gc.collect()
 
48
  if torch.cuda.is_available():
49
- torch.cuda.empty_cache()
50
  torch.cuda.synchronize()
51
 
52
- # Clear GPU at startup if available (Zero GPU will skip this safely)
53
- try:
54
- print("Clearing GPU memory from previous runs...")
55
- clear_vram()
56
- if torch.cuda.is_available():
57
- torch.cuda.reset_peak_memory_stats()
58
- except:
59
- print("GPU not available at startup (normal for Zero GPU)")
60
 
61
  # --- Model Loading ---
62
  dtype = torch.bfloat16
@@ -333,7 +338,13 @@ def add_starter_image(starter_num, current_images):
333
  return list(current_images) + [img]
334
 
335
  # --- Main Inference Function (with hardcoded negative prompt) ---
336
- @spaces.GPU
 
 
 
 
 
 
337
  def infer(
338
  images,
339
  prompt,
@@ -377,13 +388,12 @@ def infer(
377
  if images is not None:
378
  for item in images:
379
  try:
380
- # item is now a filepath string
381
- if isinstance(item, str):
382
- pil_images.append(Image.open(item).convert("RGB"))
383
- elif isinstance(item, dict) and 'name' in item:
384
- pil_images.append(Image.open(item['name']).convert("RGB"))
385
- elif isinstance(item, Image.Image):
386
- pil_images.append(item.convert("RGB"))
387
  except Exception:
388
  continue
389
 
@@ -472,8 +482,10 @@ with gr.Blocks(css=css) as demo:
472
  "Front View Couch Sex",
473
  "Rear View Couch Sex"
474
  ],
 
475
  interactive=True,
476
- show_label=False
 
477
  )
478
  run_button_top = gr.Button("Edit!", variant="primary", size="sm")
479
 
@@ -516,8 +528,10 @@ with gr.Blocks(css=css) as demo:
516
  "Full Penetration Attempt 9",
517
  "Full Penetration Attempt 10"
518
  ],
 
519
  interactive=True,
520
- show_label=False
 
521
  )
522
  run_button_top2 = gr.Button("Edit!", variant="primary", size="sm")
523
 
@@ -582,8 +596,10 @@ with gr.Blocks(css=css) as demo:
582
  "Full Penetration Attempt 9 (Couple)",
583
  "Full Penetration Attempt 10 (Couple)"
584
  ],
 
585
  interactive=True,
586
- show_label=False
 
587
  )
588
  run_button_top3 = gr.Button("Edit!", variant="primary", size="sm")
589
 
@@ -626,8 +642,10 @@ with gr.Blocks(css=css) as demo:
626
  "Side Fuck",
627
  "Kissing Sex"
628
  ],
 
629
  interactive=True,
630
- show_label=False
 
631
  )
632
  run_button_top4 = gr.Button("Edit!", variant="primary", size="sm")
633
 
@@ -641,10 +659,11 @@ with gr.Blocks(css=css) as demo:
641
  with gr.Column():
642
  input_images = gr.Gallery(label="Input Images",
643
  show_label=False,
644
- type="filepath")
 
645
 
646
  with gr.Column():
647
- result = gr.Gallery(label="Result", show_label=False, type="filepath")
648
  use_output_btn = gr.Button("↗️ Use as input", variant="secondary", size="sm", visible=False)
649
 
650
  with gr.Row():
@@ -707,7 +726,7 @@ with gr.Blocks(css=css) as demo:
707
  minimum=256,
708
  maximum=2048,
709
  step=8,
710
- value=256,
711
  )
712
 
713
  width = gr.Slider(
@@ -715,8 +734,20 @@ with gr.Blocks(css=css) as demo:
715
  minimum=256,
716
  maximum=2048,
717
  step=8,
718
- value=256,
719
  )
 
 
 
 
 
 
 
 
 
 
 
 
720
 
721
  # gr.Examples(examples=examples, inputs=[prompt], outputs=[result, seed], fn=infer, cache_examples=False)
722
 
@@ -962,5 +993,84 @@ with gr.Blocks(css=css) as demo:
962
  start3_btn.click(fn=lambda imgs: add_starter_image(3, imgs), inputs=[input_images], outputs=[input_images])
963
  start4_btn.click(fn=lambda imgs: add_starter_image(4, imgs), inputs=[input_images], outputs=[input_images])
964
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
965
  if __name__ == "__main__":
966
- demo.queue().launch(server_name="0.0.0.0", server_port=7860, share=False, show_api=False)
 
2
  import numpy as np
3
  import random
4
  import torch
5
+ # spaces import REMOVED — ZeroGPU is HuggingFace-only infrastructure, not needed locally
6
+
7
+
8
  import gc
9
 
10
  from safetensors.torch import load_file
 
42
  # Detect operating system
43
  IS_WINDOWS = platform.system() == "Windows"
44
  IS_LINUX = platform.system() == "Linux"
45
+ print(f"Operating System: {platform.system()}")
46
+
47
+
48
+ def encode_image(pil_image):
49
+ import io
50
+ buffered = io.BytesIO()
51
+ pil_image.save(buffered, format="PNG")
52
+ return base64.b64encode(buffered.getvalue()).decode("utf-8")
53
 
54
  # --- Clear GPU memory from previous runs ---
55
  def clear_vram():
56
  gc.collect()
57
+ torch.cuda.empty_cache()
58
  if torch.cuda.is_available():
 
59
  torch.cuda.synchronize()
60
 
61
+ print("Clearing GPU memory from previous runs...")
62
+ clear_vram()
63
+ if torch.cuda.is_available():
64
+ torch.cuda.reset_peak_memory_stats()
 
 
 
 
65
 
66
  # --- Model Loading ---
67
  dtype = torch.bfloat16
 
338
  return list(current_images) + [img]
339
 
340
  # --- Main Inference Function (with hardcoded negative prompt) ---
341
+ # ---------------------------------------------------------------------------
342
+ # CHANGE 4 of 4: @spaces.GPU() decorator REMOVED
343
+ # That decorator allocates a GPU from HuggingFace's shared ZeroGPU pool.
344
+ # On a local VPS the GPU is always available — the decorator is not needed
345
+ # and would crash without the `spaces` library installed.
346
+ # The entire function body below is 100% identical to the original.
347
+ # ---------------------------------------------------------------------------
348
  def infer(
349
  images,
350
  prompt,
 
388
  if images is not None:
389
  for item in images:
390
  try:
391
+ if isinstance(item[0], Image.Image):
392
+ pil_images.append(item[0].convert("RGB"))
393
+ elif isinstance(item[0], str):
394
+ pil_images.append(Image.open(item[0]).convert("RGB"))
395
+ elif hasattr(item, "name"):
396
+ pil_images.append(Image.open(item.name).convert("RGB"))
 
397
  except Exception:
398
  continue
399
 
 
482
  "Front View Couch Sex",
483
  "Rear View Couch Sex"
484
  ],
485
+ value=None,
486
  interactive=True,
487
+ show_label=False,
488
+ allow_custom_value=False
489
  )
490
  run_button_top = gr.Button("Edit!", variant="primary", size="sm")
491
 
 
528
  "Full Penetration Attempt 9",
529
  "Full Penetration Attempt 10"
530
  ],
531
+ value=None,
532
  interactive=True,
533
+ show_label=False,
534
+ allow_custom_value=False
535
  )
536
  run_button_top2 = gr.Button("Edit!", variant="primary", size="sm")
537
 
 
596
  "Full Penetration Attempt 9 (Couple)",
597
  "Full Penetration Attempt 10 (Couple)"
598
  ],
599
+ value=None,
600
  interactive=True,
601
+ show_label=False,
602
+ allow_custom_value=False
603
  )
604
  run_button_top3 = gr.Button("Edit!", variant="primary", size="sm")
605
 
 
642
  "Side Fuck",
643
  "Kissing Sex"
644
  ],
645
+ value=None,
646
  interactive=True,
647
+ show_label=False,
648
+ allow_custom_value=False
649
  )
650
  run_button_top4 = gr.Button("Edit!", variant="primary", size="sm")
651
 
 
659
  with gr.Column():
660
  input_images = gr.Gallery(label="Input Images",
661
  show_label=False,
662
+ type="pil",
663
+ interactive=True)
664
 
665
  with gr.Column():
666
+ result = gr.Gallery(label="Result", show_label=False, type="pil", interactive=False)
667
  use_output_btn = gr.Button("↗️ Use as input", variant="secondary", size="sm", visible=False)
668
 
669
  with gr.Row():
 
726
  minimum=256,
727
  maximum=2048,
728
  step=8,
729
+ value=None,
730
  )
731
 
732
  width = gr.Slider(
 
734
  minimum=256,
735
  maximum=2048,
736
  step=8,
737
+ value=None,
738
  )
739
+
740
+ fullscreen_toggle = gr.Checkbox(
741
+ label="Full Screen Mode",
742
+ value=False,
743
+ info="Expand image boxes to full page width"
744
+ )
745
+
746
+ keyboard_toggle = gr.Checkbox(
747
+ label="Disable On-Screen Keyboard",
748
+ value=False,
749
+ info="Prevent keyboard from appearing on mobile devices"
750
+ )
751
 
752
  # gr.Examples(examples=examples, inputs=[prompt], outputs=[result, seed], fn=infer, cache_examples=False)
753
 
 
993
  start3_btn.click(fn=lambda imgs: add_starter_image(3, imgs), inputs=[input_images], outputs=[input_images])
994
  start4_btn.click(fn=lambda imgs: add_starter_image(4, imgs), inputs=[input_images], outputs=[input_images])
995
 
996
+ # Preset handler for negative prompts
997
+ def update_negative_prompt(preset):
998
+ presets = {
999
+ "None": "",
1000
+ "Full Penetration (Vaginal)": "partial insertion, visible shaft, shallow, tip only, halfway, partially inserted, pulling out, not fully inside",
1001
+ "Full Penetration (Oral)": "shallow, tip only, not deepthroat, partially in mouth, lips at tip, halfway, visible shaft outside mouth",
1002
+ "Full Penetration (Anal)": "partial insertion, visible shaft, shallow, tip only, halfway, partially inserted, not fully inside, pulling out",
1003
+ }
1004
+ return presets.get(preset, "")
1005
+
1006
+ # REMOVED - negative_preset dropdown no longer exists
1007
+
1008
+ # Fullscreen toggle handler
1009
+ fullscreen_toggle.change(
1010
+ fn=None,
1011
+ inputs=[fullscreen_toggle],
1012
+ outputs=None,
1013
+ js="""
1014
+ (fullscreen) => {
1015
+ const style = document.getElementById('fullscreen-style') || document.createElement('style');
1016
+ style.id = 'fullscreen-style';
1017
+ if (fullscreen) {
1018
+ style.textContent = `
1019
+ .gradio-container { max-width: 100vw !important; padding: 0 !important; }
1020
+ .contain { max-width: 100% !important; }
1021
+ .wrap { max-width: 100% !important; }
1022
+ #component-0 { max-width: 100% !important; }
1023
+ `;
1024
+ } else {
1025
+ style.textContent = '';
1026
+ }
1027
+ if (!document.getElementById('fullscreen-style')) {
1028
+ document.head.appendChild(style);
1029
+ }
1030
+ return fullscreen;
1031
+ }
1032
+ """
1033
+ )
1034
+
1035
+ # Keyboard toggle handler
1036
+ keyboard_toggle.change(
1037
+ fn=None,
1038
+ inputs=[keyboard_toggle],
1039
+ outputs=None,
1040
+ js="""
1041
+ (disable) => {
1042
+ setTimeout(() => {
1043
+ const style = document.getElementById('keyboard-style') || document.createElement('style');
1044
+ style.id = 'keyboard-style';
1045
+ if (disable) {
1046
+ style.textContent = `
1047
+ input[type="text"]:not([role="combobox"]),
1048
+ input[type="number"],
1049
+ textarea:not([role="combobox"]) {
1050
+ -webkit-user-select: none !important;
1051
+ user-select: none !important;
1052
+ pointer-events: none !important;
1053
+ }
1054
+ `;
1055
+ document.querySelectorAll('input[type="text"]:not([role="combobox"]), input[type="number"], textarea:not([role="combobox"])').forEach(el => {
1056
+ el.setAttribute('readonly', 'readonly');
1057
+ el.setAttribute('inputmode', 'none');
1058
+ });
1059
+ } else {
1060
+ style.textContent = '';
1061
+ document.querySelectorAll('input[type="text"], input[type="number"], textarea').forEach(el => {
1062
+ el.removeAttribute('readonly');
1063
+ el.removeAttribute('inputmode');
1064
+ });
1065
+ }
1066
+ if (!document.getElementById('keyboard-style')) {
1067
+ document.head.appendChild(style);
1068
+ }
1069
+ }, 100);
1070
+ return disable;
1071
+ }
1072
+ """
1073
+ )
1074
+
1075
  if __name__ == "__main__":
1076
+ demo.launch(server_name="0.0.0.0", server_port=7860, share=False)
commands.txt ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Image Editor Service Commands
2
+
3
+ ## Setup (run once)
4
+ sudo cp picgen.service /etc/systemd/system/
5
+ sudo systemctl daemon-reload
6
+ sudo systemctl enable picgen
7
+
8
+ ## Start the service
9
+ sudo systemctl start picgen
10
+
11
+ ## Stop the service
12
+ sudo systemctl stop picgen
13
+
14
+ ## Restart the service
15
+ sudo systemctl restart picgen
16
+
17
+ ## Check status
18
+ sudo systemctl status picgen
19
+
20
+ ## View logs (live)
21
+ sudo journalctl -u picgen -f
22
+
23
+ ## View logs (last 100 lines)
24
+ sudo journalctl -u picgen -n 100
25
+
26
+ ## Disable service (prevent auto-start on boot)
27
+ sudo systemctl disable picgen
28
+
29
+ ## Kill the process manually (if needed)
30
+ sudo pkill -f "python3.*app.py"
error.txt ADDED
The diff for this file is too large to render. See raw diff
 
fix.bat ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @echo off
2
+ echo === Fixing Picgen Installation ===
3
+
4
+ echo Clearing Python cache...
5
+ for /d /r . %%d in (__pycache__) do @if exist "%%d" rd /s /q "%%d"
6
+ del /s /q *.pyc 2>nul
7
+
8
+ echo Reinstalling dependencies...
9
+ pip3 install -r requirements.txt --force-reinstall
10
+
11
+ echo === Fix Complete ===
12
+ echo Run: start.bat
13
+ pause
fix.sh ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ echo "=== Fixing Picgen Installation ==="
5
+
6
+ cd /root/picgen
7
+
8
+ echo "Clearing Python cache..."
9
+ find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true
10
+ find . -type f -name "*.pyc" -delete 2>/dev/null || true
11
+
12
+ echo "Reinstalling dependencies..."
13
+ pip3 install -r requirements.txt --break-system-packages --ignore-installed --force-reinstall
14
+
15
+ echo "Copying service file..."
16
+ cp picgen.service /etc/systemd/system/
17
+ systemctl daemon-reload
18
+
19
+ echo "=== Fix Complete ==="
20
+ echo "Run: python3 app.py"
ftp.py ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import subprocess
2
+ import sys
3
+ import os
4
+
5
+ # 1. Automatic Dependency Check & Install
6
+ try:
7
+ from pyftpdlib.authorizers import DummyAuthorizer
8
+ from pyftpdlib.handlers import FTPHandler
9
+ from pyftpdlib.servers import FTPServer
10
+ except ImportError:
11
+ print("pyftpdlib not found. Installing...")
12
+ subprocess.check_call(["apt", "install", "-y", "python3-pip"])
13
+ subprocess.check_call([sys.executable, "-m", "pip", "install", "pyftpdlib", "--break-system-packages"])
14
+ from pyftpdlib.authorizers import DummyAuthorizer
15
+ from pyftpdlib.handlers import FTPHandler
16
+ from pyftpdlib.servers import FTPServer
17
+
18
+ def main():
19
+ # 2. Setup credentials
20
+ authorizer = DummyAuthorizer()
21
+
22
+ # Replace 'YOUR_PASSWORD' with your desired password
23
+ # "." ensures it shares the current folder and all subfolders
24
+ # perm='elradfmw' provides full read, write, and list permissions
25
+ authorizer.add_user("admin", "YOUR_PASSWORD", ".", perm="elradfmw")
26
+
27
+ # 3. Setup handler
28
+ handler = FTPHandler
29
+ handler.authorizer = authorizer
30
+ handler.banner = "FTP Server is ready."
31
+
32
+ # 4. Start server
33
+ # 0.0.0.0 makes it public; 2121 avoids needing root privileges for port 21
34
+ address = ("0.0.0.0", 2121)
35
+ server = FTPServer(address, handler)
36
+
37
+ print(f"FTP server active at: {os.getcwd()}")
38
+ print("Accessible on port 2121")
39
+ server.serve_forever()
40
+
41
+ if __name__ == "__main__":
42
+ main()
43
+
manual install.txt ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+
2
+ Requirements.txt as background to avoid broken ssh pipe
3
+ nohup pip3 install -r requirements.txt --break-system-packages --ignore-installed --timeout=300 --retries=10 > pip-install.log 2>&1 &
4
+
5
+
6
+ Then monitor it:
7
+ tail -f pip-install.log
new.txt ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Merge Together 1
2
+ make them both standing next to eachother facing the camera. She is to the right of him. Her face and body are perfectly exactly the same. she wears a cute sundress that is loose at the bottom and he wears a stylish open button down shirt with a white t shift under it. his penis is exactly the same.
3
+
4
+ Merge Together 2
5
+ They are both standing next to each other facing the camera. She is on his right. She wears the same exact clothing (or none if she isn't wearing any) that is loose at the bottom and he wears a stylish open button down shirt with a white t-shirt under it. Both maintain their exact same identical original faces with all features preserved. his penis is every way the same, unchanged.
6
+
7
+ Naked Together
8
+ Add the woman from the first photo to be standing on the right of the man in the second photo, ensuring the woman is fully naked wearing no clothes at all. She has the exact same face, facial expression, etc as her original photo. Keep his penis exactly the way it is without altering it. Both maintain their exact same identical original faces with all features preserved. Her face and facial expression and angle of it must be exactly identical.es preserved.
9
+
10
+ Near Dick 1
11
+ fully zoomed out so she is fully in view. the woman from the first picture looking exactly 100% the same with same exact face and facial features and expression are exactly the same. She is completely moved from the 1st photo to be in the 2nd photo so that she is sitting behind that man's separate penis. she has no pants on and no underwear on and nothing covering her vagina. she has no clothing around her waste or under it. Her legs are spread and she is sitting in a way so that her entire vagina is fully visible. The man's penis is exactly the same. the man is still wearing the same clothing. Remove all other things from the first picture and only use the background/environment of the second picture.
12
+
13
+ Near Dick 2
14
+ She has no clothing around her waste or under it and she is squatting near the penis from photo 2. we can see her full vagina. you can still see her face. she is looking at the camera the exact same way as her original photo. The penis from photo 2 is in her hand. she has the exact very young looking same face and everything else about her face and head and hair is the exact same. everything else the same from photo 2.
15
+
16
+ Near Dick 3
17
+ zoomed out to show her full body. She has no clothing on and she is now only in photo 2 near the man's penis. you can still see her face. she is looking at the camera the exact same way as her original photo. she holds the man's penis from photo 2 is in her hand as it is attached to the man in the same exact way. she has the exact very young looking same face and everything else about her face and head and hair is the exact same. everything else the same from photo 2.
18
+
19
+ Near Dick 4
20
+ zoomed out to show her full body. She has no clothing on from her waist down and she is now perfectly embedded only in photo 2 near the man's penis. His penis looks exactly the same from the original photo. her legs are open showing her vagina. you can still see her face. she is looking at the camera the exact same way as her original photo. she holds the man's penis from photo 2 is in her hand as it is attached to the man in the same exact way. she has the exact very young looking same face and everything else about her face and head and hair is the exact same. everything else the same from photo 2.
21
+
22
+ Near Dick 5
23
+ Sitting legs spread behind the penis pressed against her vagina
24
+ She is sitting on the man in the second photo that has everything the exact same. she has her legs spread behind that exact same penis and she is pushing her vagina against the back of it which is wedging the penis in between her now visibly spread vulva. everything else from the second photo is exactly the same. the environment of the first photo is removed and replaced with the exact environment of the second photo. the penis is exactly the same identical penis in the same exact position etc.
25
+
26
+ Shh Holding Dick
27
+ She is now holding his penis with only one of her hands as she looks sexually horny at the camera and her other hand has it's index finder on her lips as she says shh. she is demanding sex. everything else is the exact same.
28
+
29
+ Both Near Dick
30
+ both women from the first picture looking exactly 100% the same are now only in the second photo, near the legs and penis of the man in the second photo. the women's faces are fully preserved/unchanged as well as their clothing etc. The man's penis is exactly the same. the man is still wearing the same clothing. Remove all other things from the first photo and only use the background/environment of the second photo. they are in the second photo only. do not include anything from the first photo except the 2 women.
31
+
32
+ Both Holding Dick 1
33
+ both women are how holding his penis in their hands and looking at the camera.
34
+ Both women maintain their exact same identical original faces with all the exact same identical features. Everything else stays the exact same!
35
+
36
+ Both Holding Dick 2
37
+ both women from the first picture looking exactly 100% the same are now only in the second photo, near the legs and penis of the man in the second photo. the women's faces are fully preserved/unchanged as well as their clothing etc. The man's penis is exactly the same. the man is still wearing the same clothing. Remove all other things from the first photo and only use the background/environment of the second photo. they are in the second photo only. do not include anything from the first photo except the 2 women.
38
+
39
+ Single BJ
40
+ the woman is now bent forward down fully sucking his entire shaft of his penis now hidden inside of her mouth with her lips sealed around the circumference of the lowest part of the shaft. She does all of that while sexually touching her own vagina.
41
+ She maintains her exact same identical original face with all the exact same identical features. Everything else stays the exact same!
42
+
43
+ Single Anal
44
+ the woman is now turned around and on his penis that is now fully penetrated deep inside of her ass. The entire shaft of his penis now hidden inside of her ass which has the entire penis all the way to the lowest part of the shaft. She is turned so you can see her exact same original face. She does this while sexually touching her own vagina.
45
+ The woman maintains her exact same identical original face with all the exact same identical features. Everything else stays the exact same!
46
+
47
+ Left 1 BJ
48
+ the woman on the left is bent forward down fully sucking his entire shaft of his penis now hidden inside of her mouth with her lips sealed around the circumference of the lowest part of the shaft. . the other woman is watching while sexually touching her own vagina.
49
+ Both women maintain their exact same identical original faces with all the exact same identical features. Everything else stays the exact same!
50
+
51
+ Left 1 Anal
52
+ the woman on the left is now turned around and on his penis that is now fully penetrated deep inside of her ass. the entire shaft of his penis now hidden inside of her ass which has the entire penis all the way to the lowest part of the shaft. she is turned so you can see her exact same original face. the other woman is watching while sexually touching her own vagina.
53
+ Both women maintain their exact same identical original faces with all the exact same identical features. Everything else stays the exact same!
54
+
55
+ Left 1 Vag On Knee
56
+ the woman on the left is now sitting on his right knee with her vagina showing. the other woman is on his left knee with her vagina showing.
57
+ Both women maintain their exact same identical original faces with all the exact same identical features. Everything else stays the exact same!
58
+
59
+ Fucked after 1
60
+ the woman on the left is now turned around and on his penis that is now fully penetrated deep inside of her ass. the entire shaft of his penis now hidden inside of her ass which has the entire penis all the way to the lowest part of the shaft. she is turned so you can see her exact same original face. the other woman is watching while sexually touching her own vagina.
61
+ Both women maintain their exact same identical original faces with all the exact same identical features. Everything else stays the exact same!
62
+
63
+ Fucked after 2
64
+ the woman on the right is now turned around and on his penis that is now fully penetrated deep inside of her ass. the entire shaft of his penis now hidden inside of her ass which has the entire penis all the way to the lowest part of the shaft. she is turned so you can see her exact same original face. the other woman is watching while sexually touching her own vagina.
65
+ Both women maintain their exact same identical original faces with all the exact same identical features. Everything else stays the exact same!
66
+
67
+ Penetration 1
68
+ the penis is now only fully penetrated inside her vagina. she is still looking at the camera but with her mouth open and her lips in the shape of an o. she no longer holds a penis because it is now sticking into her vagina. the penis is the same in every way.
69
+
70
+ Penetration 2
71
+ the same exact original penis is now only fully penetrated inside her vagina. she is still looking at the camera but with her mouth open and her lips in the shape of an o. she no longer holds a penis because the same one is now sticking into her vagina. the penis is the same in every way. the mans legs fully outstretched and together under her. the penis is exactly the same.
72
+
73
+ Penetration 3
74
+ the penis is now only fully penetrated all the way inside her vagina as she has 1 leg in the air and looks dreamily into his eyes. the full shaft of the penis now inserted and hidden inside of her. with her mouth open and her lips in the shape of an o. her face is exactly the same
75
+
76
+ Shower Sex Together
77
+ They are both standing in the shower, she has one leg lifted near the man in the photo, his penis deep inside her vagina, one hand spreading her vulva around the shaft. zoomed out for full view
78
+
79
+ Kissing Handjob
80
+ the man is now sitting down on the ground facing the bottom right corner of the photo and the woman is squatting higher in the air beside him, almost hip to hip.
81
+ the man now has his penis out of his pants and
82
+ the woman's is fully gripping it tightly around the full circumference of it's shaft in one of her hands while her other hand is behind his head while she passionately kisses him on the lips.
83
+
84
+
85
+ BJ
86
+ The woman from the second photo eagerly has her hand that is the closest to him holding his penis with her fingers wrapped fully around the shaft. The position of the rest of her body remains unchanged. The man from the first photo remains completely unchanged. She remains in the exact same position next to him. You can fully see her hand's fingers wrapped completely around it. the penis stays exactly the way it is in the original photo. Keep his penis exactly the way it is without altering it. Both the man and woman preserve their exact same faces and facial features.
87
+
88
+ BJ 2
89
+ the woman from the first photo squats down next to the man from the second photo so that her face is at the man's penis which is now all the way deep inside her mouth with the full shaft of it hidden inside of her mouth which is closed around it. Her right hand holds his penis and pulls it more into her mouth. Her lips are tightly closed surrounding the bottom of his penis. Her left hand also sexually touches her vagina between her fully spread legs with fingers inside. the man's head is hidden. is moved first so that all of these things are possible. her legs are spread and you can fully see her vagina in the photo and also see her fingering her vagina. Keep her exact same face and facial features preserved, her eyes open and rolled back in pleasure.
90
+
91
+ Bed BJ 1
92
+ the man from the second photo and the woman from the first photo are on a bed in a girly room. the man is has his eyes closed. her exact face is perfectly preserved. she has his full penis inside of her mouth. she has a sexually aroused smiling and sneaky look on her face because she is doing this without his permission while he is sleeping. The full shaft of the penis is buried deep inside of her mouth so it is hidden from the view of the camera. zoomed out view. his penis is exactly where it should be on his body.
93
+
94
+ Bed BJ 2
95
+ the man from the second photo and the woman from the first photo are on a bed in a girly room. her exact face is perfectly preserved. she has his full penis inside of her mouth as she has a freaky sexual deviant look on her face. she looks at the penis as it is all the way inside so that the full shaft of it is buried deep inside and hidden from view of the camera.
96
+
97
+ Bed Sex 1
98
+ the man from the second photo and the woman from the first photo are on a bed in a girly room. they are having passionate sex. You can see his penis all the way inside of her vagina and her face with wide open mouth and lips making an o shape. both their faces perfectly preserved. they both look down at the penis going into her vagina all the way inside so that the full shaft of it is buried deep inside and hidden from view of the camera.
99
+
100
+ Bed Sex2
101
+ the man from the second photo and the woman from the first photo are on a bed in a girly room. You can see the man's penis is all the way inside of the woman's vagina. Her face is perfectly preserved. Her eyes look down at the penis going into her vagina. The man's penis is all the way inside of her vagina so that the full shaft of it is buried deep inside and hidden from view of the camera.
102
+
103
+ Bed Sex 3
104
+ the male in the second photo has his penis fully penetrating the female from the first photo in her vagina, on a bed. the female's face is fully preserved as the exact same with all the same exact features.
105
+
106
+ Bed Sex 4
107
+ the woman from the first photo is in the exact same pose/position. the man in the second photo is laying on her same bed with his legs outwads between hers and his penis penetrating her vagina. everything about them is the same
108
+
109
+ Side Fuck
110
+ She lies on her side, one leg lifted high allowing full view of her vagina being penetrated by his entire penis. Her mouth is in perfect O shape. Both maintain their exact same identical original faces. they both are looking down at the penetration. Everything else stays the same!
111
+
112
+ Kissing Sex
113
+ she drops her butt and vagina more onto his penis so that his penis is fully inserted deeply into her vagina as she rides his penis (they are having sex) as they open-mouth French kiss passionately
114
+
optimization.py ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ """
3
+ from typing import Any
4
+ from typing import Callable
5
+ from typing import ParamSpec
6
+ from torchao.quantization import quantize_
7
+ from torchao.quantization import Float8DynamicActivationFloat8WeightConfig
8
+ # spaces import REMOVED — spaces.GPU / spaces.aoti_* are HuggingFace ZeroGPU-only APIs.
9
+ # They do not exist outside of HF infrastructure and would crash on a local VPS.
10
+ # Replaced below with standard torch.compile() which gives equivalent or better
11
+ # performance on a dedicated GPU (RTX 4090 / PRO 6000 Blackwell).
12
+ import torch
13
+ from torch.utils._pytree import tree_map
14
+
15
+
16
+ P = ParamSpec('P')
17
+
18
+
19
+ TRANSFORMER_IMAGE_SEQ_LENGTH_DIM = torch.export.Dim('image_seq_length')
20
+ TRANSFORMER_TEXT_SEQ_LENGTH_DIM = torch.export.Dim('text_seq_length')
21
+
22
+ TRANSFORMER_DYNAMIC_SHAPES = {
23
+ 'hidden_states': {
24
+ 1: TRANSFORMER_IMAGE_SEQ_LENGTH_DIM,
25
+ },
26
+ 'encoder_hidden_states': {
27
+ 1: TRANSFORMER_TEXT_SEQ_LENGTH_DIM,
28
+ },
29
+ 'encoder_hidden_states_mask': {
30
+ 1: TRANSFORMER_TEXT_SEQ_LENGTH_DIM,
31
+ },
32
+ 'image_rotary_emb': ({
33
+ 0: TRANSFORMER_IMAGE_SEQ_LENGTH_DIM,
34
+ }, {
35
+ 0: TRANSFORMER_TEXT_SEQ_LENGTH_DIM,
36
+ }),
37
+ }
38
+
39
+
40
+ INDUCTOR_CONFIGS = {
41
+ 'conv_1x1_as_mm': True,
42
+ 'epilogue_fusion': False,
43
+ 'coordinate_descent_tuning': True,
44
+ 'coordinate_descent_check_all_directions': True,
45
+ 'max_autotune': True,
46
+ 'triton.cudagraphs': True,
47
+ }
48
+
49
+
50
+ def optimize_pipeline_(pipeline: Callable[P, Any], *args: P.args, **kwargs: P.kwargs):
51
+ # -------------------------------------------------------------------------
52
+ # CHANGE 1 of 1: spaces.GPU / spaces.aoti_capture / spaces.aoti_compile /
53
+ # spaces.aoti_apply REMOVED.
54
+ #
55
+ # What the original did on HuggingFace ZeroGPU:
56
+ # 1. spaces.aoti_capture() — traced one forward pass to record all inputs
57
+ # 2. torch.export.export() — exported the transformer to a portable graph
58
+ # 3. spaces.aoti_compile() — compiled via torch inductor with INDUCTOR_CONFIGS
59
+ # 4. spaces.aoti_apply() — swapped the live module for the compiled artifact
60
+ #
61
+ # Local replacement:
62
+ # torch.compile() with the same inductor backend and the same INDUCTOR_CONFIGS
63
+ # achieves the identical goal — persistent kernel fusion, cudagraphs, and
64
+ # coordinate-descent autotuning — without any HF-specific infrastructure.
65
+ # The compiled transformer is set back onto the pipeline in-place, so every
66
+ # call to pipeline() automatically uses the optimised version, exactly as
67
+ # the original spaces.aoti_apply() did.
68
+ #
69
+ # NOTE: The first inference call after optimize_pipeline_() will be slow
70
+ # while torch.compile() traces and compiles the kernels. Subsequent calls
71
+ # are fast. This is the same warm-up behaviour as the original AOTI path.
72
+ #
73
+ # To enable Float8 quantisation (commented out in the original too), uncomment:
74
+ # quantize_(pipeline.transformer, Float8DynamicActivationFloat8WeightConfig())
75
+ # -------------------------------------------------------------------------
76
+
77
+ # quantize_(pipeline.transformer, Float8DynamicActivationFloat8WeightConfig())
78
+
79
+ pipeline.transformer = torch.compile(
80
+ pipeline.transformer,
81
+ backend="inductor",
82
+ options=INDUCTOR_CONFIGS,
83
+ fullgraph=False, # False = safe for models with dynamic control flow
84
+ dynamic=True, # honours the dynamic sequence-length dims declared above
85
+ )
picgen.service ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [Unit]
2
+ Description=Picgen Image Editor Application
3
+ After=network.target
4
+
5
+ [Service]
6
+ Type=simple
7
+ User=root
8
+ WorkingDirectory=/root/picgen
9
+ Environment="PYTHONUNBUFFERED=1"
10
+ Environment="HF_HOME=/root/.cache/huggingface"
11
+ Environment="PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True"
12
+ Environment="CUDA_LAUNCH_BLOCKING=0"
13
+ ExecStart=/usr/bin/python3 /root/picgen/app.py
14
+ Restart=always
15
+ RestartSec=10
16
+ StandardOutput=append:/root/picgen/picgen.log
17
+ StandardError=append:/root/picgen/picgen.log
18
+
19
+ [Install]
20
+ WantedBy=multi-user.target
requirements.txt CHANGED
@@ -18,7 +18,8 @@ Pillow
18
  numpy
19
 
20
  # UI and utilities
21
- huggingface_hub<1.0.0
 
22
  tqdm
23
  typing-extensions
24
 
 
18
  numpy
19
 
20
  # UI and utilities
21
+ gradio
22
+ huggingface_hub
23
  tqdm
24
  typing-extensions
25
 
setup.bat ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @echo off
2
+ echo === Picgen Image Editor Windows Setup ===
3
+
4
+ echo Creating cache directory...
5
+ if not exist "%USERPROFILE%\.cache\huggingface" mkdir "%USERPROFILE%\.cache\huggingface"
6
+
7
+ echo Installing PyTorch with CUDA 12.4 support...
8
+ pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu124
9
+
10
+ echo Installing Python dependencies...
11
+ pip3 install -r requirements.txt
12
+
13
+ echo Installing Hugging Face CLI...
14
+ pip3 install huggingface_hub[cli]
15
+
16
+ echo Creating local model directories...
17
+ if not exist "models\Qwen-Image-Edit-2511" mkdir "models\Qwen-Image-Edit-2511"
18
+ if not exist "models\rapid-aio\v23" mkdir "models\rapid-aio\v23"
19
+
20
+ echo === Model Download ===
21
+ echo Models will be downloaded automatically on first run.
22
+ echo To pre-download models now, run:
23
+ echo huggingface-cli download Qwen/Qwen-Image-Edit-2511 --local-dir models/Qwen-Image-Edit-2511
24
+ echo huggingface-cli download Phr00t/Qwen-Image-Edit-Rapid-AIO --include "v23/Qwen-Rapid-AIO-NSFW-v23.safetensors" --local-dir models/rapid-aio
25
+
26
+ echo Verifying GPU accessibility...
27
+ python -c "import torch; print(f'CUDA Available: {torch.cuda.is_available()}'); print(f'GPU Device: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else \"None\"}'); print(f'Total VRAM: {torch.cuda.get_device_properties(0).total_memory / (1024**3):.1f}GB' if torch.cuda.is_available() else 'N/A')"
28
+
29
+ echo.
30
+ echo === Setup Complete ===
31
+ echo To start the app, run: start.bat
32
+ pause
setup.sh ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ echo "=== Picgen Image Editor VPS Setup ==="
5
+
6
+ echo "Creating cache directory..."
7
+ mkdir -p /root/.cache/huggingface
8
+
9
+ echo "Installing system dependencies..."
10
+ apt-get update && apt-get install -y python3-pip python3-venv ffmpeg wget git git-lfs bc
11
+
12
+ echo "Installing PyTorch with CUDA 12.4 support..."
13
+ pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu124 --break-system-packages --ignore-installed
14
+
15
+ echo "Installing Python dependencies..."
16
+ pip3 install -r requirements.txt --break-system-packages --ignore-installed
17
+
18
+ echo "Installing Hugging Face CLI..."
19
+ pip3 install huggingface_hub[cli] --break-system-packages
20
+
21
+ echo "Creating local model directories..."
22
+ mkdir -p models/Qwen-Image-Edit-2511
23
+ mkdir -p models/rapid-aio/v23
24
+ chmod -R 777 models
25
+
26
+ echo "=== Model Download ==="
27
+ echo "Models will be downloaded automatically on first run."
28
+ echo "To pre-download models now, run:"
29
+ echo " huggingface-cli download Qwen/Qwen-Image-Edit-2511 --local-dir models/Qwen-Image-Edit-2511"
30
+ echo " huggingface-cli download Phr00t/Qwen-Image-Edit-Rapid-AIO --include 'v23/Qwen-Rapid-AIO-NSFW-v23.safetensors' --local-dir models/rapid-aio"
31
+
32
+ echo "Verifying GPU accessibility..."
33
+ python3 -c "
34
+ import torch
35
+ print(f'CUDA Available: {torch.cuda.is_available()}')
36
+ if torch.cuda.is_available():
37
+ print(f'GPU Device: {torch.cuda.get_device_name(0)}')
38
+ total_vram = torch.cuda.get_device_properties(0).total_memory / (1024**3)
39
+ print(f'Total VRAM: {total_vram:.1f}GB')
40
+ else:
41
+ print('GPU Device: None (CPU mode)')
42
+ "
43
+
44
+ echo "=== Setup Complete ==="
45
+ echo ""
46
+ echo "Setting up systemd service..."
47
+ cp picgen.service /etc/systemd/system/
48
+ systemctl daemon-reload
49
+ systemctl enable picgen
50
+ systemctl start picgen
51
+
52
+ echo ""
53
+ echo "Service commands:"
54
+ echo " systemctl start picgen - Start picgen"
55
+ echo " systemctl stop picgen - Stop picgen"
56
+ echo " systemctl status picgen - Check status"
57
+ echo " systemctl restart picgen - Restart picgen"
58
+ echo ""
59
+ echo "To run manually: python3 app.py"
60
+ echo "The app will be accessible at: http://0.0.0.0:7860"
ssh.sh ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ ssh-keygen -f '/root/.ssh/known_hosts' -R '194.93.48.120'
3
+ ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=60 -o ServerAliveCountMax=3 root@194.93.48.120
4
+ echo ""
5
+ echo "To connect manually, run:"
6
+ echo "ssh root@194.93.48.120"
start.bat ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ @echo off
2
+ echo === Starting Picgen ===
3
+ python app.py
4
+ pause
start.sh ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+ sudo cp /root/picgen/picgen.service /etc/systemd/system/
4
+ sudo systemctl daemon-reload
5
+ sudo systemctl enable picgen.service
6
+ sudo systemctl start picgen.service
7
+
8
+ echo "✓ picgen service started!"
9
+ echo ""
10
+ echo "Check status: sudo systemctl status picgen"
11
+ echo "View logs: sudo journalctl -u picgen -f"
stop.bat ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ @echo off
2
+ echo === Stopping Picgen ===
3
+ taskkill /F /IM python.exe /FI "WINDOWTITLE eq *app.py*"
4
+ echo Picgen stopped.
5
+ pause
stop.sh ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+ sudo systemctl stop picgen.service
4
+ sudo systemctl disable picgen.service
5
+
6
+ echo "✓ picgen service stopped!"
switch_to_picgen.sh ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ sudo systemctl stop vidgen.service
3
+ sudo systemctl disable vidgen.service
4
+ sudo cp /root/picgen/picgen.service /etc/systemd/system/
5
+ sudo systemctl daemon-reload
6
+ sudo systemctl enable picgen.service
7
+ sudo systemctl start picgen.service
8
+ echo "Switched from vidgen to picgen!"
9
+ echo "Check status: sudo systemctl status picgen"
switch_to_vidgen.sh ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ echo "=== Switching from picgen to vidgen ==="
5
+
6
+ # Stop and disable picgen
7
+ sudo systemctl stop picgen.service 2>/dev/null || true
8
+ sudo systemctl disable picgen.service 2>/dev/null || true
9
+
10
+ # Kill any remaining Python processes
11
+ sudo pkill -9 python3 2>/dev/null || true
12
+ sudo pkill -9 python 2>/dev/null || true
13
+ sleep 2
14
+
15
+ # Copy vidgen service file
16
+ sudo cp /root/vidgen/vidgen.service /etc/systemd/system/
17
+
18
+ # Reload systemd
19
+ sudo systemctl daemon-reload
20
+
21
+ # Enable and start vidgen
22
+ sudo systemctl enable vidgen.service
23
+ sudo systemctl start vidgen.service
24
+
25
+ echo "✓ Switched to vidgen!"
26
+ echo ""
27
+ echo "Check status: sudo systemctl status vidgen"
28
+ echo "View logs: sudo journalctl -u vidgen -f"