Upload 319 files
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .gitattributes +315 -0
- FLUX.1-Krea-dev/FLUX_1_Krea_dev.py +120 -0
- Upscaler/512_to_2048_upscaler.py +83 -0
- app.py +195 -0
- output/Unknown-1.png +3 -0
- output/Unknown-10.png +3 -0
- output/Unknown-100.png +3 -0
- output/Unknown-101.png +3 -0
- output/Unknown-102.png +3 -0
- output/Unknown-103.png +3 -0
- output/Unknown-104.png +3 -0
- output/Unknown-105.png +3 -0
- output/Unknown-11.png +3 -0
- output/Unknown-12.png +3 -0
- output/Unknown-13.png +3 -0
- output/Unknown-14.png +3 -0
- output/Unknown-15.png +3 -0
- output/Unknown-16.png +3 -0
- output/Unknown-17.png +3 -0
- output/Unknown-18.png +3 -0
- output/Unknown-19.png +3 -0
- output/Unknown-2.png +3 -0
- output/Unknown-20.png +3 -0
- output/Unknown-21.png +3 -0
- output/Unknown-22.png +3 -0
- output/Unknown-23.png +3 -0
- output/Unknown-24.png +3 -0
- output/Unknown-25.png +3 -0
- output/Unknown-26.png +3 -0
- output/Unknown-27.png +3 -0
- output/Unknown-28.png +3 -0
- output/Unknown-29.png +3 -0
- output/Unknown-3.png +3 -0
- output/Unknown-30.png +3 -0
- output/Unknown-31.png +3 -0
- output/Unknown-32.png +3 -0
- output/Unknown-33.png +3 -0
- output/Unknown-34.png +3 -0
- output/Unknown-35.png +3 -0
- output/Unknown-36.png +3 -0
- output/Unknown-37.png +3 -0
- output/Unknown-38.png +3 -0
- output/Unknown-39.png +3 -0
- output/Unknown-4.png +3 -0
- output/Unknown-40.png +3 -0
- output/Unknown-41.png +3 -0
- output/Unknown-42.png +3 -0
- output/Unknown-43.png +3 -0
- output/Unknown-44.png +3 -0
- output/Unknown-45.png +3 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,318 @@ saved_model/**/* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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
|
| 36 |
+
output/terminal_0.png filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
output/terminal_1.png filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
output/terminal_2.png filter=lfs diff=lfs merge=lfs -text
|
| 39 |
+
output/Unknown-1.png filter=lfs diff=lfs merge=lfs -text
|
| 40 |
+
output/Unknown-10.png filter=lfs diff=lfs merge=lfs -text
|
| 41 |
+
output/Unknown-100.png filter=lfs diff=lfs merge=lfs -text
|
| 42 |
+
output/Unknown-101.png filter=lfs diff=lfs merge=lfs -text
|
| 43 |
+
output/Unknown-102.png filter=lfs diff=lfs merge=lfs -text
|
| 44 |
+
output/Unknown-103.png filter=lfs diff=lfs merge=lfs -text
|
| 45 |
+
output/Unknown-104.png filter=lfs diff=lfs merge=lfs -text
|
| 46 |
+
output/Unknown-105.png filter=lfs diff=lfs merge=lfs -text
|
| 47 |
+
output/Unknown-11.png filter=lfs diff=lfs merge=lfs -text
|
| 48 |
+
output/Unknown-12.png filter=lfs diff=lfs merge=lfs -text
|
| 49 |
+
output/Unknown-13.png filter=lfs diff=lfs merge=lfs -text
|
| 50 |
+
output/Unknown-14.png filter=lfs diff=lfs merge=lfs -text
|
| 51 |
+
output/Unknown-15.png filter=lfs diff=lfs merge=lfs -text
|
| 52 |
+
output/Unknown-16.png filter=lfs diff=lfs merge=lfs -text
|
| 53 |
+
output/Unknown-17.png filter=lfs diff=lfs merge=lfs -text
|
| 54 |
+
output/Unknown-18.png filter=lfs diff=lfs merge=lfs -text
|
| 55 |
+
output/Unknown-19.png filter=lfs diff=lfs merge=lfs -text
|
| 56 |
+
output/Unknown-2.png filter=lfs diff=lfs merge=lfs -text
|
| 57 |
+
output/Unknown-20.png filter=lfs diff=lfs merge=lfs -text
|
| 58 |
+
output/Unknown-21.png filter=lfs diff=lfs merge=lfs -text
|
| 59 |
+
output/Unknown-22.png filter=lfs diff=lfs merge=lfs -text
|
| 60 |
+
output/Unknown-23.png filter=lfs diff=lfs merge=lfs -text
|
| 61 |
+
output/Unknown-24.png filter=lfs diff=lfs merge=lfs -text
|
| 62 |
+
output/Unknown-25.png filter=lfs diff=lfs merge=lfs -text
|
| 63 |
+
output/Unknown-26.png filter=lfs diff=lfs merge=lfs -text
|
| 64 |
+
output/Unknown-27.png filter=lfs diff=lfs merge=lfs -text
|
| 65 |
+
output/Unknown-28.png filter=lfs diff=lfs merge=lfs -text
|
| 66 |
+
output/Unknown-29.png filter=lfs diff=lfs merge=lfs -text
|
| 67 |
+
output/Unknown-3.png filter=lfs diff=lfs merge=lfs -text
|
| 68 |
+
output/Unknown-30.png filter=lfs diff=lfs merge=lfs -text
|
| 69 |
+
output/Unknown-31.png filter=lfs diff=lfs merge=lfs -text
|
| 70 |
+
output/Unknown-32.png filter=lfs diff=lfs merge=lfs -text
|
| 71 |
+
output/Unknown-33.png filter=lfs diff=lfs merge=lfs -text
|
| 72 |
+
output/Unknown-34.png filter=lfs diff=lfs merge=lfs -text
|
| 73 |
+
output/Unknown-35.png filter=lfs diff=lfs merge=lfs -text
|
| 74 |
+
output/Unknown-36.png filter=lfs diff=lfs merge=lfs -text
|
| 75 |
+
output/Unknown-37.png filter=lfs diff=lfs merge=lfs -text
|
| 76 |
+
output/Unknown-38.png filter=lfs diff=lfs merge=lfs -text
|
| 77 |
+
output/Unknown-39.png filter=lfs diff=lfs merge=lfs -text
|
| 78 |
+
output/Unknown-4.png filter=lfs diff=lfs merge=lfs -text
|
| 79 |
+
output/Unknown-40.png filter=lfs diff=lfs merge=lfs -text
|
| 80 |
+
output/Unknown-41.png filter=lfs diff=lfs merge=lfs -text
|
| 81 |
+
output/Unknown-42.png filter=lfs diff=lfs merge=lfs -text
|
| 82 |
+
output/Unknown-43.png filter=lfs diff=lfs merge=lfs -text
|
| 83 |
+
output/Unknown-44.png filter=lfs diff=lfs merge=lfs -text
|
| 84 |
+
output/Unknown-45.png filter=lfs diff=lfs merge=lfs -text
|
| 85 |
+
output/Unknown-46.png filter=lfs diff=lfs merge=lfs -text
|
| 86 |
+
output/Unknown-47.png filter=lfs diff=lfs merge=lfs -text
|
| 87 |
+
output/Unknown-48.png filter=lfs diff=lfs merge=lfs -text
|
| 88 |
+
output/Unknown-49.png filter=lfs diff=lfs merge=lfs -text
|
| 89 |
+
output/Unknown-5.png filter=lfs diff=lfs merge=lfs -text
|
| 90 |
+
output/Unknown-50.png filter=lfs diff=lfs merge=lfs -text
|
| 91 |
+
output/Unknown-51.png filter=lfs diff=lfs merge=lfs -text
|
| 92 |
+
output/Unknown-52.png filter=lfs diff=lfs merge=lfs -text
|
| 93 |
+
output/Unknown-53.png filter=lfs diff=lfs merge=lfs -text
|
| 94 |
+
output/Unknown-54.png filter=lfs diff=lfs merge=lfs -text
|
| 95 |
+
output/Unknown-55.png filter=lfs diff=lfs merge=lfs -text
|
| 96 |
+
output/Unknown-56.png filter=lfs diff=lfs merge=lfs -text
|
| 97 |
+
output/Unknown-57.png filter=lfs diff=lfs merge=lfs -text
|
| 98 |
+
output/Unknown-58.png filter=lfs diff=lfs merge=lfs -text
|
| 99 |
+
output/Unknown-59.png filter=lfs diff=lfs merge=lfs -text
|
| 100 |
+
output/Unknown-6.png filter=lfs diff=lfs merge=lfs -text
|
| 101 |
+
output/Unknown-60.png filter=lfs diff=lfs merge=lfs -text
|
| 102 |
+
output/Unknown-61.png filter=lfs diff=lfs merge=lfs -text
|
| 103 |
+
output/Unknown-62.png filter=lfs diff=lfs merge=lfs -text
|
| 104 |
+
output/Unknown-63.png filter=lfs diff=lfs merge=lfs -text
|
| 105 |
+
output/Unknown-64.png filter=lfs diff=lfs merge=lfs -text
|
| 106 |
+
output/Unknown-65.png filter=lfs diff=lfs merge=lfs -text
|
| 107 |
+
output/Unknown-66.png filter=lfs diff=lfs merge=lfs -text
|
| 108 |
+
output/Unknown-67.png filter=lfs diff=lfs merge=lfs -text
|
| 109 |
+
output/Unknown-68.png filter=lfs diff=lfs merge=lfs -text
|
| 110 |
+
output/Unknown-69.png filter=lfs diff=lfs merge=lfs -text
|
| 111 |
+
output/Unknown-7.png filter=lfs diff=lfs merge=lfs -text
|
| 112 |
+
output/Unknown-70.png filter=lfs diff=lfs merge=lfs -text
|
| 113 |
+
output/Unknown-71.png filter=lfs diff=lfs merge=lfs -text
|
| 114 |
+
output/Unknown-72.png filter=lfs diff=lfs merge=lfs -text
|
| 115 |
+
output/Unknown-73.png filter=lfs diff=lfs merge=lfs -text
|
| 116 |
+
output/Unknown-74.png filter=lfs diff=lfs merge=lfs -text
|
| 117 |
+
output/Unknown-75.png filter=lfs diff=lfs merge=lfs -text
|
| 118 |
+
output/Unknown-76.png filter=lfs diff=lfs merge=lfs -text
|
| 119 |
+
output/Unknown-77.png filter=lfs diff=lfs merge=lfs -text
|
| 120 |
+
output/Unknown-78.png filter=lfs diff=lfs merge=lfs -text
|
| 121 |
+
output/Unknown-79.png filter=lfs diff=lfs merge=lfs -text
|
| 122 |
+
output/Unknown-8.png filter=lfs diff=lfs merge=lfs -text
|
| 123 |
+
output/Unknown-80.png filter=lfs diff=lfs merge=lfs -text
|
| 124 |
+
output/Unknown-81.png filter=lfs diff=lfs merge=lfs -text
|
| 125 |
+
output/Unknown-82.png filter=lfs diff=lfs merge=lfs -text
|
| 126 |
+
output/Unknown-83.png filter=lfs diff=lfs merge=lfs -text
|
| 127 |
+
output/Unknown-84.png filter=lfs diff=lfs merge=lfs -text
|
| 128 |
+
output/Unknown-85.png filter=lfs diff=lfs merge=lfs -text
|
| 129 |
+
output/Unknown-86.png filter=lfs diff=lfs merge=lfs -text
|
| 130 |
+
output/Unknown-87.png filter=lfs diff=lfs merge=lfs -text
|
| 131 |
+
output/Unknown-88.png filter=lfs diff=lfs merge=lfs -text
|
| 132 |
+
output/Unknown-89.png filter=lfs diff=lfs merge=lfs -text
|
| 133 |
+
output/Unknown-9.png filter=lfs diff=lfs merge=lfs -text
|
| 134 |
+
output/Unknown-90.png filter=lfs diff=lfs merge=lfs -text
|
| 135 |
+
output/Unknown-91.png filter=lfs diff=lfs merge=lfs -text
|
| 136 |
+
output/Unknown-92.png filter=lfs diff=lfs merge=lfs -text
|
| 137 |
+
output/Unknown-93.png filter=lfs diff=lfs merge=lfs -text
|
| 138 |
+
output/Unknown-94.png filter=lfs diff=lfs merge=lfs -text
|
| 139 |
+
output/Unknown-95.png filter=lfs diff=lfs merge=lfs -text
|
| 140 |
+
output/Unknown-96.png filter=lfs diff=lfs merge=lfs -text
|
| 141 |
+
output/Unknown-97.png filter=lfs diff=lfs merge=lfs -text
|
| 142 |
+
output/Unknown-98.png filter=lfs diff=lfs merge=lfs -text
|
| 143 |
+
output/Unknown-99.png filter=lfs diff=lfs merge=lfs -text
|
| 144 |
+
output/Unknown.1.png filter=lfs diff=lfs merge=lfs -text
|
| 145 |
+
output/Unknown.10.png filter=lfs diff=lfs merge=lfs -text
|
| 146 |
+
output/Unknown.11.png filter=lfs diff=lfs merge=lfs -text
|
| 147 |
+
output/Unknown.12.png filter=lfs diff=lfs merge=lfs -text
|
| 148 |
+
output/Unknown.13.png filter=lfs diff=lfs merge=lfs -text
|
| 149 |
+
output/Unknown.14.png filter=lfs diff=lfs merge=lfs -text
|
| 150 |
+
output/Unknown.15.png filter=lfs diff=lfs merge=lfs -text
|
| 151 |
+
output/Unknown.16.png filter=lfs diff=lfs merge=lfs -text
|
| 152 |
+
output/Unknown.17.png filter=lfs diff=lfs merge=lfs -text
|
| 153 |
+
output/Unknown.18.png filter=lfs diff=lfs merge=lfs -text
|
| 154 |
+
output/Unknown.19.png filter=lfs diff=lfs merge=lfs -text
|
| 155 |
+
output/Unknown.2.png filter=lfs diff=lfs merge=lfs -text
|
| 156 |
+
output/Unknown.20.png filter=lfs diff=lfs merge=lfs -text
|
| 157 |
+
output/Unknown.21.png filter=lfs diff=lfs merge=lfs -text
|
| 158 |
+
output/Unknown.22.png filter=lfs diff=lfs merge=lfs -text
|
| 159 |
+
output/Unknown.23.png filter=lfs diff=lfs merge=lfs -text
|
| 160 |
+
output/Unknown.24.png filter=lfs diff=lfs merge=lfs -text
|
| 161 |
+
output/Unknown.25.png filter=lfs diff=lfs merge=lfs -text
|
| 162 |
+
output/Unknown.26.png filter=lfs diff=lfs merge=lfs -text
|
| 163 |
+
output/Unknown.27.png filter=lfs diff=lfs merge=lfs -text
|
| 164 |
+
output/Unknown.28.png filter=lfs diff=lfs merge=lfs -text
|
| 165 |
+
output/Unknown.29.png filter=lfs diff=lfs merge=lfs -text
|
| 166 |
+
output/Unknown.3.png filter=lfs diff=lfs merge=lfs -text
|
| 167 |
+
output/Unknown.30.png filter=lfs diff=lfs merge=lfs -text
|
| 168 |
+
output/Unknown.31.png filter=lfs diff=lfs merge=lfs -text
|
| 169 |
+
output/Unknown.32.png filter=lfs diff=lfs merge=lfs -text
|
| 170 |
+
output/Unknown.33.png filter=lfs diff=lfs merge=lfs -text
|
| 171 |
+
output/Unknown.34.png filter=lfs diff=lfs merge=lfs -text
|
| 172 |
+
output/Unknown.35.png filter=lfs diff=lfs merge=lfs -text
|
| 173 |
+
output/Unknown.36.png filter=lfs diff=lfs merge=lfs -text
|
| 174 |
+
output/Unknown.37.png filter=lfs diff=lfs merge=lfs -text
|
| 175 |
+
output/Unknown.38.png filter=lfs diff=lfs merge=lfs -text
|
| 176 |
+
output/Unknown.39.png filter=lfs diff=lfs merge=lfs -text
|
| 177 |
+
output/Unknown.4.png filter=lfs diff=lfs merge=lfs -text
|
| 178 |
+
output/Unknown.40.png filter=lfs diff=lfs merge=lfs -text
|
| 179 |
+
output/Unknown.41.png filter=lfs diff=lfs merge=lfs -text
|
| 180 |
+
output/Unknown.42.png filter=lfs diff=lfs merge=lfs -text
|
| 181 |
+
output/Unknown.43.png filter=lfs diff=lfs merge=lfs -text
|
| 182 |
+
output/Unknown.44.png filter=lfs diff=lfs merge=lfs -text
|
| 183 |
+
output/Unknown.45.png filter=lfs diff=lfs merge=lfs -text
|
| 184 |
+
output/Unknown.46.png filter=lfs diff=lfs merge=lfs -text
|
| 185 |
+
output/Unknown.47.png filter=lfs diff=lfs merge=lfs -text
|
| 186 |
+
output/Unknown.48.png filter=lfs diff=lfs merge=lfs -text
|
| 187 |
+
output/Unknown.49.png filter=lfs diff=lfs merge=lfs -text
|
| 188 |
+
output/Unknown.5.png filter=lfs diff=lfs merge=lfs -text
|
| 189 |
+
output/Unknown.50.png filter=lfs diff=lfs merge=lfs -text
|
| 190 |
+
output/Unknown.51.png filter=lfs diff=lfs merge=lfs -text
|
| 191 |
+
output/Unknown.52.png filter=lfs diff=lfs merge=lfs -text
|
| 192 |
+
output/Unknown.53.png filter=lfs diff=lfs merge=lfs -text
|
| 193 |
+
output/Unknown.54.png filter=lfs diff=lfs merge=lfs -text
|
| 194 |
+
output/Unknown.55.png filter=lfs diff=lfs merge=lfs -text
|
| 195 |
+
output/Unknown.56.png filter=lfs diff=lfs merge=lfs -text
|
| 196 |
+
output/Unknown.57.png filter=lfs diff=lfs merge=lfs -text
|
| 197 |
+
output/Unknown.58.png filter=lfs diff=lfs merge=lfs -text
|
| 198 |
+
output/Unknown.59.png filter=lfs diff=lfs merge=lfs -text
|
| 199 |
+
output/Unknown.6.png filter=lfs diff=lfs merge=lfs -text
|
| 200 |
+
output/Unknown.60.png filter=lfs diff=lfs merge=lfs -text
|
| 201 |
+
output/Unknown.61.png filter=lfs diff=lfs merge=lfs -text
|
| 202 |
+
output/Unknown.62.png filter=lfs diff=lfs merge=lfs -text
|
| 203 |
+
output/Unknown.63.png filter=lfs diff=lfs merge=lfs -text
|
| 204 |
+
output/Unknown.64.png filter=lfs diff=lfs merge=lfs -text
|
| 205 |
+
output/Unknown.65.png filter=lfs diff=lfs merge=lfs -text
|
| 206 |
+
output/Unknown.66.png filter=lfs diff=lfs merge=lfs -text
|
| 207 |
+
output/Unknown.67.png filter=lfs diff=lfs merge=lfs -text
|
| 208 |
+
output/Unknown.68.png filter=lfs diff=lfs merge=lfs -text
|
| 209 |
+
output/Unknown.69.png filter=lfs diff=lfs merge=lfs -text
|
| 210 |
+
output/Unknown.7.png filter=lfs diff=lfs merge=lfs -text
|
| 211 |
+
output/Unknown.70.png filter=lfs diff=lfs merge=lfs -text
|
| 212 |
+
output/Unknown.71.png filter=lfs diff=lfs merge=lfs -text
|
| 213 |
+
output/Unknown.72.png filter=lfs diff=lfs merge=lfs -text
|
| 214 |
+
output/Unknown.73.png filter=lfs diff=lfs merge=lfs -text
|
| 215 |
+
output/Unknown.74.png filter=lfs diff=lfs merge=lfs -text
|
| 216 |
+
output/Unknown.75.png filter=lfs diff=lfs merge=lfs -text
|
| 217 |
+
output/Unknown.76.png filter=lfs diff=lfs merge=lfs -text
|
| 218 |
+
output/Unknown.77.png filter=lfs diff=lfs merge=lfs -text
|
| 219 |
+
output/Unknown.78.png filter=lfs diff=lfs merge=lfs -text
|
| 220 |
+
output/Unknown.79.png filter=lfs diff=lfs merge=lfs -text
|
| 221 |
+
output/Unknown.8.png filter=lfs diff=lfs merge=lfs -text
|
| 222 |
+
output/Unknown.80.png filter=lfs diff=lfs merge=lfs -text
|
| 223 |
+
output/Unknown.81.png filter=lfs diff=lfs merge=lfs -text
|
| 224 |
+
output/Unknown.82.png filter=lfs diff=lfs merge=lfs -text
|
| 225 |
+
output/Unknown.83.png filter=lfs diff=lfs merge=lfs -text
|
| 226 |
+
output/Unknown.84.png filter=lfs diff=lfs merge=lfs -text
|
| 227 |
+
output/Unknown.85.png filter=lfs diff=lfs merge=lfs -text
|
| 228 |
+
output/Unknown.86.png filter=lfs diff=lfs merge=lfs -text
|
| 229 |
+
output/Unknown.87.png filter=lfs diff=lfs merge=lfs -text
|
| 230 |
+
output/Unknown.88.png filter=lfs diff=lfs merge=lfs -text
|
| 231 |
+
output/Unknown.89.png filter=lfs diff=lfs merge=lfs -text
|
| 232 |
+
output/Unknown.9.png filter=lfs diff=lfs merge=lfs -text
|
| 233 |
+
output/Unknown.90.png filter=lfs diff=lfs merge=lfs -text
|
| 234 |
+
output/Unknown.91.png filter=lfs diff=lfs merge=lfs -text
|
| 235 |
+
output/Unknown.92.png filter=lfs diff=lfs merge=lfs -text
|
| 236 |
+
output/Unknown.93.png filter=lfs diff=lfs merge=lfs -text
|
| 237 |
+
output/Unknown.94.png filter=lfs diff=lfs merge=lfs -text
|
| 238 |
+
output/Unknown.95.png filter=lfs diff=lfs merge=lfs -text
|
| 239 |
+
output/Unknown.96.png filter=lfs diff=lfs merge=lfs -text
|
| 240 |
+
output/Unknown.97.png filter=lfs diff=lfs merge=lfs -text
|
| 241 |
+
output/Unknown.98.png filter=lfs diff=lfs merge=lfs -text
|
| 242 |
+
output/Unknown.png filter=lfs diff=lfs merge=lfs -text
|
| 243 |
+
output2/terminal_0.png filter=lfs diff=lfs merge=lfs -text
|
| 244 |
+
output2/terminal_1.png filter=lfs diff=lfs merge=lfs -text
|
| 245 |
+
output2/Unknown.1.png filter=lfs diff=lfs merge=lfs -text
|
| 246 |
+
output2/Unknown.10.png filter=lfs diff=lfs merge=lfs -text
|
| 247 |
+
output2/Unknown.100.png filter=lfs diff=lfs merge=lfs -text
|
| 248 |
+
output2/Unknown.101.png filter=lfs diff=lfs merge=lfs -text
|
| 249 |
+
output2/Unknown.102.png filter=lfs diff=lfs merge=lfs -text
|
| 250 |
+
output2/Unknown.103.png filter=lfs diff=lfs merge=lfs -text
|
| 251 |
+
output2/Unknown.104.png filter=lfs diff=lfs merge=lfs -text
|
| 252 |
+
output2/Unknown.105.png filter=lfs diff=lfs merge=lfs -text
|
| 253 |
+
output2/Unknown.11.png filter=lfs diff=lfs merge=lfs -text
|
| 254 |
+
output2/Unknown.12.png filter=lfs diff=lfs merge=lfs -text
|
| 255 |
+
output2/Unknown.13.png filter=lfs diff=lfs merge=lfs -text
|
| 256 |
+
output2/Unknown.14.png filter=lfs diff=lfs merge=lfs -text
|
| 257 |
+
output2/Unknown.15.png filter=lfs diff=lfs merge=lfs -text
|
| 258 |
+
output2/Unknown.16.png filter=lfs diff=lfs merge=lfs -text
|
| 259 |
+
output2/Unknown.17.png filter=lfs diff=lfs merge=lfs -text
|
| 260 |
+
output2/Unknown.18.png filter=lfs diff=lfs merge=lfs -text
|
| 261 |
+
output2/Unknown.19.png filter=lfs diff=lfs merge=lfs -text
|
| 262 |
+
output2/Unknown.2.png filter=lfs diff=lfs merge=lfs -text
|
| 263 |
+
output2/Unknown.20.png filter=lfs diff=lfs merge=lfs -text
|
| 264 |
+
output2/Unknown.21.png filter=lfs diff=lfs merge=lfs -text
|
| 265 |
+
output2/Unknown.22.png filter=lfs diff=lfs merge=lfs -text
|
| 266 |
+
output2/Unknown.23.png filter=lfs diff=lfs merge=lfs -text
|
| 267 |
+
output2/Unknown.24.png filter=lfs diff=lfs merge=lfs -text
|
| 268 |
+
output2/Unknown.25.png filter=lfs diff=lfs merge=lfs -text
|
| 269 |
+
output2/Unknown.26.png filter=lfs diff=lfs merge=lfs -text
|
| 270 |
+
output2/Unknown.27.png filter=lfs diff=lfs merge=lfs -text
|
| 271 |
+
output2/Unknown.28.png filter=lfs diff=lfs merge=lfs -text
|
| 272 |
+
output2/Unknown.29.png filter=lfs diff=lfs merge=lfs -text
|
| 273 |
+
output2/Unknown.3.png filter=lfs diff=lfs merge=lfs -text
|
| 274 |
+
output2/Unknown.30.png filter=lfs diff=lfs merge=lfs -text
|
| 275 |
+
output2/Unknown.31.png filter=lfs diff=lfs merge=lfs -text
|
| 276 |
+
output2/Unknown.32.png filter=lfs diff=lfs merge=lfs -text
|
| 277 |
+
output2/Unknown.33.png filter=lfs diff=lfs merge=lfs -text
|
| 278 |
+
output2/Unknown.34.png filter=lfs diff=lfs merge=lfs -text
|
| 279 |
+
output2/Unknown.35.png filter=lfs diff=lfs merge=lfs -text
|
| 280 |
+
output2/Unknown.36.png filter=lfs diff=lfs merge=lfs -text
|
| 281 |
+
output2/Unknown.37.png filter=lfs diff=lfs merge=lfs -text
|
| 282 |
+
output2/Unknown.38.png filter=lfs diff=lfs merge=lfs -text
|
| 283 |
+
output2/Unknown.39.png filter=lfs diff=lfs merge=lfs -text
|
| 284 |
+
output2/Unknown.4.png filter=lfs diff=lfs merge=lfs -text
|
| 285 |
+
output2/Unknown.40.png filter=lfs diff=lfs merge=lfs -text
|
| 286 |
+
output2/Unknown.41.png filter=lfs diff=lfs merge=lfs -text
|
| 287 |
+
output2/Unknown.42.png filter=lfs diff=lfs merge=lfs -text
|
| 288 |
+
output2/Unknown.43.png filter=lfs diff=lfs merge=lfs -text
|
| 289 |
+
output2/Unknown.44.png filter=lfs diff=lfs merge=lfs -text
|
| 290 |
+
output2/Unknown.45.png filter=lfs diff=lfs merge=lfs -text
|
| 291 |
+
output2/Unknown.46.png filter=lfs diff=lfs merge=lfs -text
|
| 292 |
+
output2/Unknown.47.png filter=lfs diff=lfs merge=lfs -text
|
| 293 |
+
output2/Unknown.48.png filter=lfs diff=lfs merge=lfs -text
|
| 294 |
+
output2/Unknown.49.png filter=lfs diff=lfs merge=lfs -text
|
| 295 |
+
output2/Unknown.5.png filter=lfs diff=lfs merge=lfs -text
|
| 296 |
+
output2/Unknown.50.png filter=lfs diff=lfs merge=lfs -text
|
| 297 |
+
output2/Unknown.51.png filter=lfs diff=lfs merge=lfs -text
|
| 298 |
+
output2/Unknown.52.png filter=lfs diff=lfs merge=lfs -text
|
| 299 |
+
output2/Unknown.53.png filter=lfs diff=lfs merge=lfs -text
|
| 300 |
+
output2/Unknown.54.png filter=lfs diff=lfs merge=lfs -text
|
| 301 |
+
output2/Unknown.55.png filter=lfs diff=lfs merge=lfs -text
|
| 302 |
+
output2/Unknown.56.png filter=lfs diff=lfs merge=lfs -text
|
| 303 |
+
output2/Unknown.57.png filter=lfs diff=lfs merge=lfs -text
|
| 304 |
+
output2/Unknown.58.png filter=lfs diff=lfs merge=lfs -text
|
| 305 |
+
output2/Unknown.59.png filter=lfs diff=lfs merge=lfs -text
|
| 306 |
+
output2/Unknown.6.png filter=lfs diff=lfs merge=lfs -text
|
| 307 |
+
output2/Unknown.60.png filter=lfs diff=lfs merge=lfs -text
|
| 308 |
+
output2/Unknown.61.png filter=lfs diff=lfs merge=lfs -text
|
| 309 |
+
output2/Unknown.62.png filter=lfs diff=lfs merge=lfs -text
|
| 310 |
+
output2/Unknown.63.png filter=lfs diff=lfs merge=lfs -text
|
| 311 |
+
output2/Unknown.64.png filter=lfs diff=lfs merge=lfs -text
|
| 312 |
+
output2/Unknown.65.png filter=lfs diff=lfs merge=lfs -text
|
| 313 |
+
output2/Unknown.66.png filter=lfs diff=lfs merge=lfs -text
|
| 314 |
+
output2/Unknown.67.png filter=lfs diff=lfs merge=lfs -text
|
| 315 |
+
output2/Unknown.68.png filter=lfs diff=lfs merge=lfs -text
|
| 316 |
+
output2/Unknown.69.png filter=lfs diff=lfs merge=lfs -text
|
| 317 |
+
output2/Unknown.7.png filter=lfs diff=lfs merge=lfs -text
|
| 318 |
+
output2/Unknown.70.png filter=lfs diff=lfs merge=lfs -text
|
| 319 |
+
output2/Unknown.71.png filter=lfs diff=lfs merge=lfs -text
|
| 320 |
+
output2/Unknown.72.png filter=lfs diff=lfs merge=lfs -text
|
| 321 |
+
output2/Unknown.73.png filter=lfs diff=lfs merge=lfs -text
|
| 322 |
+
output2/Unknown.74.png filter=lfs diff=lfs merge=lfs -text
|
| 323 |
+
output2/Unknown.75.png filter=lfs diff=lfs merge=lfs -text
|
| 324 |
+
output2/Unknown.76.png filter=lfs diff=lfs merge=lfs -text
|
| 325 |
+
output2/Unknown.77.png filter=lfs diff=lfs merge=lfs -text
|
| 326 |
+
output2/Unknown.78.png filter=lfs diff=lfs merge=lfs -text
|
| 327 |
+
output2/Unknown.79.png filter=lfs diff=lfs merge=lfs -text
|
| 328 |
+
output2/Unknown.8.png filter=lfs diff=lfs merge=lfs -text
|
| 329 |
+
output2/Unknown.80.png filter=lfs diff=lfs merge=lfs -text
|
| 330 |
+
output2/Unknown.81.png filter=lfs diff=lfs merge=lfs -text
|
| 331 |
+
output2/Unknown.82.png filter=lfs diff=lfs merge=lfs -text
|
| 332 |
+
output2/Unknown.83.png filter=lfs diff=lfs merge=lfs -text
|
| 333 |
+
output2/Unknown.84.png filter=lfs diff=lfs merge=lfs -text
|
| 334 |
+
output2/Unknown.85.png filter=lfs diff=lfs merge=lfs -text
|
| 335 |
+
output2/Unknown.86.png filter=lfs diff=lfs merge=lfs -text
|
| 336 |
+
output2/Unknown.87.png filter=lfs diff=lfs merge=lfs -text
|
| 337 |
+
output2/Unknown.88.png filter=lfs diff=lfs merge=lfs -text
|
| 338 |
+
output2/Unknown.89.png filter=lfs diff=lfs merge=lfs -text
|
| 339 |
+
output2/Unknown.9.png filter=lfs diff=lfs merge=lfs -text
|
| 340 |
+
output2/Unknown.90.png filter=lfs diff=lfs merge=lfs -text
|
| 341 |
+
output2/Unknown.91.png filter=lfs diff=lfs merge=lfs -text
|
| 342 |
+
output2/Unknown.92.png filter=lfs diff=lfs merge=lfs -text
|
| 343 |
+
output2/Unknown.93.png filter=lfs diff=lfs merge=lfs -text
|
| 344 |
+
output2/Unknown.94.png filter=lfs diff=lfs merge=lfs -text
|
| 345 |
+
output2/Unknown.95.png filter=lfs diff=lfs merge=lfs -text
|
| 346 |
+
output2/Unknown.96.png filter=lfs diff=lfs merge=lfs -text
|
| 347 |
+
output2/Unknown.97.png filter=lfs diff=lfs merge=lfs -text
|
| 348 |
+
output2/Unknown.98.png filter=lfs diff=lfs merge=lfs -text
|
| 349 |
+
output2/Unknown.99.png filter=lfs diff=lfs merge=lfs -text
|
| 350 |
+
output2/Unknown.png filter=lfs diff=lfs merge=lfs -text
|
FLUX.1-Krea-dev/FLUX_1_Krea_dev.py
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
from diffusers import FluxPipeline
|
| 3 |
+
from PIL import Image
|
| 4 |
+
import io
|
| 5 |
+
import base64
|
| 6 |
+
import os
|
| 7 |
+
from dotenv import load_dotenv
|
| 8 |
+
|
| 9 |
+
# Load environment variables
|
| 10 |
+
load_dotenv()
|
| 11 |
+
|
| 12 |
+
class ImageGenerator:
|
| 13 |
+
def __init__(self):
|
| 14 |
+
self.image_url = ""
|
| 15 |
+
self.status = "Ready"
|
| 16 |
+
self.model_loaded = False
|
| 17 |
+
self.pipe = None
|
| 18 |
+
|
| 19 |
+
def load_model(self):
|
| 20 |
+
"""Lazy load the model when first needed"""
|
| 21 |
+
if not self.model_loaded:
|
| 22 |
+
try:
|
| 23 |
+
self.status = "Loading model (first time may take a minute)..."
|
| 24 |
+
|
| 25 |
+
# Configure for Apple Silicon
|
| 26 |
+
if torch.backends.mps.is_available():
|
| 27 |
+
torch.mps.set_per_process_memory_fraction(0.9)
|
| 28 |
+
|
| 29 |
+
# Assign to the state variable
|
| 30 |
+
self.pipe = FluxPipeline.from_pretrained(
|
| 31 |
+
"./models/FLUX.1-Krea-dev",
|
| 32 |
+
torch_dtype=torch.float32,
|
| 33 |
+
local_files_only=True
|
| 34 |
+
).to("mps")
|
| 35 |
+
|
| 36 |
+
self.model_loaded = True
|
| 37 |
+
self.status = "Model loaded successfully!"
|
| 38 |
+
return True
|
| 39 |
+
except Exception as e:
|
| 40 |
+
self.status = f"Model loading failed: {str(e)}"
|
| 41 |
+
raise
|
| 42 |
+
return True
|
| 43 |
+
|
| 44 |
+
def generate_image(self, prompt):
|
| 45 |
+
if not prompt.strip():
|
| 46 |
+
self.status = "Please enter a prompt"
|
| 47 |
+
return False
|
| 48 |
+
|
| 49 |
+
try:
|
| 50 |
+
# Load model if needed
|
| 51 |
+
if not self.load_model():
|
| 52 |
+
return False
|
| 53 |
+
|
| 54 |
+
self.status = "Generating image..."
|
| 55 |
+
|
| 56 |
+
# Clear memory before generation
|
| 57 |
+
torch.mps.empty_cache()
|
| 58 |
+
|
| 59 |
+
# Generate image with optimized settings
|
| 60 |
+
image = self.pipe(
|
| 61 |
+
prompt,
|
| 62 |
+
height=2048,
|
| 63 |
+
width=2048,
|
| 64 |
+
guidance_scale=7.0,
|
| 65 |
+
num_inference_steps=28,
|
| 66 |
+
).images[0]
|
| 67 |
+
|
| 68 |
+
# Convert to base64 for display/saving
|
| 69 |
+
buffered = io.BytesIO()
|
| 70 |
+
image.save(buffered, format="PNG")
|
| 71 |
+
self.image_url = f"data:image/png;base64,{base64.b64encode(buffered.getvalue()).decode()}"
|
| 72 |
+
self.status = "Generation complete!"
|
| 73 |
+
return True
|
| 74 |
+
|
| 75 |
+
except Exception as e:
|
| 76 |
+
self.status = f"Error: {str(e)}"
|
| 77 |
+
return False
|
| 78 |
+
|
| 79 |
+
def main():
|
| 80 |
+
generator = ImageGenerator()
|
| 81 |
+
|
| 82 |
+
while True:
|
| 83 |
+
print("\nCurrent status:", generator.status)
|
| 84 |
+
if generator.image_url:
|
| 85 |
+
print("Image generated! You can save it or view it using the base64 data.")
|
| 86 |
+
print("Base64 data length:", len(generator.image_url))
|
| 87 |
+
|
| 88 |
+
print("\nOptions:")
|
| 89 |
+
print("1. Generate image")
|
| 90 |
+
print("2. Save image to file")
|
| 91 |
+
print("3. Exit")
|
| 92 |
+
|
| 93 |
+
choice = input("Enter your choice (1-3): ")
|
| 94 |
+
|
| 95 |
+
if choice == "1":
|
| 96 |
+
prompt = input("Enter your prompt: ")
|
| 97 |
+
generator.generate_image(prompt)
|
| 98 |
+
elif choice == "2":
|
| 99 |
+
if not generator.image_url:
|
| 100 |
+
print("No image to save. Generate an image first.")
|
| 101 |
+
continue
|
| 102 |
+
|
| 103 |
+
try:
|
| 104 |
+
# Extract base64 data
|
| 105 |
+
img_data = base64.b64decode(generator.image_url.split(",")[1])
|
| 106 |
+
filename = input("Enter filename to save (without extension): ") + ".png"
|
| 107 |
+
|
| 108 |
+
with open(filename, "wb") as f:
|
| 109 |
+
f.write(img_data)
|
| 110 |
+
print(f"Image saved as {filename}")
|
| 111 |
+
except Exception as e:
|
| 112 |
+
print(f"Error saving image: {str(e)}")
|
| 113 |
+
elif choice == "3":
|
| 114 |
+
print("Exiting...")
|
| 115 |
+
break
|
| 116 |
+
else:
|
| 117 |
+
print("Invalid choice. Please try again.")
|
| 118 |
+
|
| 119 |
+
if __name__ == "__main__":
|
| 120 |
+
main()
|
Upscaler/512_to_2048_upscaler.py
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import torch
|
| 3 |
+
from diffusers import FluxControlNetModel, FluxControlNetPipeline
|
| 4 |
+
from PIL import Image
|
| 5 |
+
from huggingface_hub import snapshot_download
|
| 6 |
+
from tqdm import tqdm
|
| 7 |
+
|
| 8 |
+
# Configuration
|
| 9 |
+
INPUT_FOLDER = "input_images" # Folder containing 512x512 images
|
| 10 |
+
OUTPUT_FOLDER = "2048_2048_upscaled_output" # Output folder
|
| 11 |
+
UPSCALE_FACTOR = 4 # 512 -> 2048
|
| 12 |
+
NUM_INFERENCE_STEPS = 28
|
| 13 |
+
CONTROLNET_CONDITIONING_SCALE = 0.6
|
| 14 |
+
SEED = 42
|
| 15 |
+
|
| 16 |
+
# Device setup
|
| 17 |
+
device = "cuda" if torch.cuda.is_available() else "mps" if torch.backends.mps.is_available() else "cpu"
|
| 18 |
+
dtype = torch.float32 if device == "mps" else torch.bfloat16
|
| 19 |
+
|
| 20 |
+
# Create output folder
|
| 21 |
+
os.makedirs(OUTPUT_FOLDER, exist_ok=True)
|
| 22 |
+
|
| 23 |
+
# Load model
|
| 24 |
+
print("Loading model...")
|
| 25 |
+
model_path = snapshot_download(
|
| 26 |
+
repo_id="black-forest-labs/FLUX.1-dev",
|
| 27 |
+
ignore_patterns=["*.md", "*..gitattributes"],
|
| 28 |
+
local_dir="FLUX.1-dev"
|
| 29 |
+
)
|
| 30 |
+
|
| 31 |
+
controlnet = FluxControlNetModel.from_pretrained(
|
| 32 |
+
"jasperai/Flux.1-dev-Controlnet-Upscaler",
|
| 33 |
+
torch_dtype=dtype
|
| 34 |
+
).to(device)
|
| 35 |
+
|
| 36 |
+
pipe = FluxControlNetPipeline.from_pretrained(
|
| 37 |
+
model_path,
|
| 38 |
+
controlnet=controlnet,
|
| 39 |
+
torch_dtype=dtype
|
| 40 |
+
).to(device)
|
| 41 |
+
|
| 42 |
+
def process_image(input_path, output_path):
|
| 43 |
+
# Load image
|
| 44 |
+
input_image = Image.open(input_path).convert("RGB")
|
| 45 |
+
|
| 46 |
+
# Resize to multiple of 8 (required by model)
|
| 47 |
+
w, h = input_image.size
|
| 48 |
+
w = w - w % 8
|
| 49 |
+
h = h - h % 8
|
| 50 |
+
input_image = input_image.resize((w, h))
|
| 51 |
+
|
| 52 |
+
# Create control image
|
| 53 |
+
control_image = input_image.resize((w * UPSCALE_FACTOR, h * UPSCALE_FACTOR))
|
| 54 |
+
|
| 55 |
+
# Generate upscaled image
|
| 56 |
+
generator = torch.Generator(device=device).manual_seed(SEED)
|
| 57 |
+
image = pipe(
|
| 58 |
+
prompt="",
|
| 59 |
+
control_image=control_image,
|
| 60 |
+
controlnet_conditioning_scale=CONTROLNET_CONDITIONING_SCALE,
|
| 61 |
+
num_inference_steps=NUM_INFERENCE_STEPS,
|
| 62 |
+
guidance_scale=3.5,
|
| 63 |
+
generator=generator,
|
| 64 |
+
).images[0]
|
| 65 |
+
|
| 66 |
+
# Save output
|
| 67 |
+
image.save(output_path)
|
| 68 |
+
|
| 69 |
+
# Process all images in input folder
|
| 70 |
+
print(f"Processing images in {INPUT_FOLDER}...")
|
| 71 |
+
image_files = [f for f in os.listdir(INPUT_FOLDER) if f.lower().endswith(('.png', '.jpg', '.jpeg'))]
|
| 72 |
+
|
| 73 |
+
for i, filename in enumerate(tqdm(image_files, desc="Upscaling images")):
|
| 74 |
+
input_path = os.path.join(INPUT_FOLDER, filename)
|
| 75 |
+
output_filename = f"Unknown.{i}.png" if i > 0 else "Unknown.png"
|
| 76 |
+
output_path = os.path.join(OUTPUT_FOLDER, output_filename)
|
| 77 |
+
|
| 78 |
+
try:
|
| 79 |
+
process_image(input_path, output_path)
|
| 80 |
+
except Exception as e:
|
| 81 |
+
print(f"Error processing {filename}: {str(e)}")
|
| 82 |
+
|
| 83 |
+
print(f"Done! Upscaled images saved in {OUTPUT_FOLDER}")
|
app.py
ADDED
|
@@ -0,0 +1,195 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import gradio as gr
|
| 2 |
+
from PIL import Image
|
| 3 |
+
import os
|
| 4 |
+
import glob
|
| 5 |
+
import numpy as np
|
| 6 |
+
from datetime import datetime
|
| 7 |
+
|
| 8 |
+
def get_valid_image_paths():
|
| 9 |
+
"""Return all valid image paths with error handling"""
|
| 10 |
+
image_paths = []
|
| 11 |
+
for pattern in ["output/Unknown*.png", "output/terminal_*.png", "output2/Unknown*.png", "output2/terminal_*"]:
|
| 12 |
+
try:
|
| 13 |
+
paths = sorted(glob.glob(pattern))
|
| 14 |
+
for path in paths:
|
| 15 |
+
try:
|
| 16 |
+
with Image.open(path) as img:
|
| 17 |
+
img.verify() # Verify it's a valid image
|
| 18 |
+
image_paths.append(path)
|
| 19 |
+
except (IOError, SyntaxError, Exception) as e:
|
| 20 |
+
print(f"Skipping invalid image {path}: {str(e)}")
|
| 21 |
+
except Exception as e:
|
| 22 |
+
print(f"Error searching for {pattern}: {str(e)}")
|
| 23 |
+
return image_paths
|
| 24 |
+
|
| 25 |
+
def load_and_convert_image(image_path):
|
| 26 |
+
"""Load image and convert to RGB if needed"""
|
| 27 |
+
try:
|
| 28 |
+
with Image.open(image_path) as img:
|
| 29 |
+
if img.mode != 'RGB':
|
| 30 |
+
img = img.convert('RGB')
|
| 31 |
+
return np.array(img)
|
| 32 |
+
except Exception as e:
|
| 33 |
+
print(f"Error loading {image_path}: {str(e)}")
|
| 34 |
+
return None
|
| 35 |
+
|
| 36 |
+
def display_image(image_number, image_paths):
|
| 37 |
+
"""Display image with robust error handling"""
|
| 38 |
+
if not image_paths:
|
| 39 |
+
return None, "No valid images found"
|
| 40 |
+
|
| 41 |
+
try:
|
| 42 |
+
image_number = int(image_number)
|
| 43 |
+
if image_number < 0 or image_number >= len(image_paths):
|
| 44 |
+
return None, "Image number out of range"
|
| 45 |
+
|
| 46 |
+
image_path = image_paths[image_number]
|
| 47 |
+
img_array = load_and_convert_image(image_path)
|
| 48 |
+
if img_array is not None:
|
| 49 |
+
return img_array, os.path.basename(image_path)
|
| 50 |
+
return None, f"Could not load {os.path.basename(image_path)}"
|
| 51 |
+
except Exception as e:
|
| 52 |
+
return None, f"Error: {str(e)}"
|
| 53 |
+
|
| 54 |
+
def update_selection(evt: gr.SelectData):
|
| 55 |
+
"""Enhanced info display with beautiful Markdown formatting"""
|
| 56 |
+
image_paths = get_valid_image_paths()
|
| 57 |
+
if not image_paths or evt.index >= len(image_paths):
|
| 58 |
+
return ["No file selected", "", "### Image Information\nNo image selected"]
|
| 59 |
+
|
| 60 |
+
path = image_paths[evt.index]
|
| 61 |
+
filename = os.path.basename(path)
|
| 62 |
+
|
| 63 |
+
try:
|
| 64 |
+
with Image.open(path) as img:
|
| 65 |
+
ctime = os.path.getctime(path)
|
| 66 |
+
size_kb = os.path.getsize(path)/1024
|
| 67 |
+
|
| 68 |
+
info_md = f"""
|
| 69 |
+
### Image Information
|
| 70 |
+
**Dimensions:** {img.size[0]}×{img.size[1]} px
|
| 71 |
+
**Color Mode:** {img.mode}
|
| 72 |
+
**Format:** {img.format or 'Unknown'}
|
| 73 |
+
**Created:** {datetime.fromtimestamp(ctime).strftime('%Y-%m-%d %H:%M:%S')}
|
| 74 |
+
**Size:** {size_kb:.2f} KB
|
| 75 |
+
**Location:** `{path}`
|
| 76 |
+
"""
|
| 77 |
+
return [filename, path, info_md]
|
| 78 |
+
|
| 79 |
+
except Exception as e:
|
| 80 |
+
print(f"⚠️ Error loading image info: {str(e)}")
|
| 81 |
+
return [filename, path, "### Image Information\n⚠️ Could not load image details"]
|
| 82 |
+
|
| 83 |
+
# Create the Gradio interface
|
| 84 |
+
with gr.Blocks(title="FLUX.1-Krea-dev 512|FLUX.1-dev-Controlnet-Upscaler 2048 Image Viewer", theme="soft") as demo:
|
| 85 |
+
image_paths = gr.State(get_valid_image_paths())
|
| 86 |
+
|
| 87 |
+
gr.Markdown("""
|
| 88 |
+
# FLUX.1-Krea-dev | Flux.1-dev-Controlnet-Upscaler Image Viewer
|
| 89 |
+
Browse all output images including Unknown series and Terminal series
|
| 90 |
+
""")
|
| 91 |
+
|
| 92 |
+
with gr.Row():
|
| 93 |
+
with gr.Column(scale=1):
|
| 94 |
+
image_number = gr.Slider(
|
| 95 |
+
minimum=0,
|
| 96 |
+
maximum=max(0, len(get_valid_image_paths())-1),
|
| 97 |
+
step=1,
|
| 98 |
+
value=0,
|
| 99 |
+
label="Image Number",
|
| 100 |
+
interactive=True
|
| 101 |
+
)
|
| 102 |
+
current_file = gr.Textbox(label="Current File")
|
| 103 |
+
file_path = gr.Textbox(label="Full Path", visible=False)
|
| 104 |
+
with gr.Row():
|
| 105 |
+
prev_btn = gr.Button("Previous")
|
| 106 |
+
next_btn = gr.Button("Next")
|
| 107 |
+
with gr.Row():
|
| 108 |
+
gr.Button("Show Unknown").click(
|
| 109 |
+
lambda: [p for p in get_valid_image_paths() if "Unknown" in p],
|
| 110 |
+
outputs=[image_paths]
|
| 111 |
+
)
|
| 112 |
+
gr.Button("Show Terminal").click(
|
| 113 |
+
lambda: [p for p in get_valid_image_paths() if "terminal_" in p],
|
| 114 |
+
outputs=[image_paths]
|
| 115 |
+
)
|
| 116 |
+
gr.Button("Show All").click(
|
| 117 |
+
lambda: get_valid_image_paths(),
|
| 118 |
+
outputs=[image_paths]
|
| 119 |
+
)
|
| 120 |
+
image_info = gr.Markdown("### Image Information\nSelect an image to view details")
|
| 121 |
+
with gr.Column(scale=4):
|
| 122 |
+
image_output = gr.Image(
|
| 123 |
+
label="Output Image",
|
| 124 |
+
interactive=False
|
| 125 |
+
)
|
| 126 |
+
|
| 127 |
+
with gr.Row():
|
| 128 |
+
gallery = gr.Gallery(
|
| 129 |
+
value=[load_and_convert_image(p) for p in get_valid_image_paths()],
|
| 130 |
+
label="All Images",
|
| 131 |
+
columns=5,
|
| 132 |
+
height="auto",
|
| 133 |
+
object_fit="contain"
|
| 134 |
+
)
|
| 135 |
+
|
| 136 |
+
def update_slider_max(paths):
|
| 137 |
+
return gr.Slider(maximum=max(0, len(paths)-1))
|
| 138 |
+
|
| 139 |
+
def navigate(step, current_num, paths):
|
| 140 |
+
new_num = current_num + step
|
| 141 |
+
if new_num < 0:
|
| 142 |
+
new_num = len(paths) - 1
|
| 143 |
+
elif new_num >= len(paths):
|
| 144 |
+
new_num = 0
|
| 145 |
+
return new_num, *display_image(new_num, paths)
|
| 146 |
+
|
| 147 |
+
image_paths.change(
|
| 148 |
+
fn=update_slider_max,
|
| 149 |
+
inputs=image_paths,
|
| 150 |
+
outputs=image_number
|
| 151 |
+
)
|
| 152 |
+
|
| 153 |
+
image_number.change(
|
| 154 |
+
fn=display_image,
|
| 155 |
+
inputs=[image_number, image_paths],
|
| 156 |
+
outputs=[image_output, current_file]
|
| 157 |
+
)
|
| 158 |
+
|
| 159 |
+
prev_btn.click(
|
| 160 |
+
fn=lambda n, p: navigate(-1, n, p),
|
| 161 |
+
inputs=[image_number, image_paths],
|
| 162 |
+
outputs=[image_number, image_output, current_file]
|
| 163 |
+
)
|
| 164 |
+
|
| 165 |
+
next_btn.click(
|
| 166 |
+
fn=lambda n, p: navigate(1, n, p),
|
| 167 |
+
inputs=[image_number, image_paths],
|
| 168 |
+
outputs=[image_number, image_output, current_file]
|
| 169 |
+
)
|
| 170 |
+
|
| 171 |
+
def handle_gallery_select(evt: gr.SelectData):
|
| 172 |
+
if evt is None:
|
| 173 |
+
return [0, None, "No file selected"]
|
| 174 |
+
image_paths = get_valid_image_paths()
|
| 175 |
+
if not image_paths or evt.index >= len(image_paths):
|
| 176 |
+
return [0, None, "No file selected"]
|
| 177 |
+
return [evt.index, *display_image(evt.index, image_paths)]
|
| 178 |
+
|
| 179 |
+
gallery.select(
|
| 180 |
+
fn=handle_gallery_select,
|
| 181 |
+
outputs=[image_number, image_output, current_file]
|
| 182 |
+
)
|
| 183 |
+
|
| 184 |
+
gallery.select(
|
| 185 |
+
fn=update_selection,
|
| 186 |
+
outputs=[current_file, file_path, image_info]
|
| 187 |
+
)
|
| 188 |
+
|
| 189 |
+
demo.load(
|
| 190 |
+
fn=lambda: display_image(0, get_valid_image_paths()),
|
| 191 |
+
outputs=[image_output, current_file]
|
| 192 |
+
)
|
| 193 |
+
|
| 194 |
+
if __name__ == "__main__":
|
| 195 |
+
demo.launch()
|
output/Unknown-1.png
ADDED
|
Git LFS Details
|
output/Unknown-10.png
ADDED
|
Git LFS Details
|
output/Unknown-100.png
ADDED
|
Git LFS Details
|
output/Unknown-101.png
ADDED
|
Git LFS Details
|
output/Unknown-102.png
ADDED
|
Git LFS Details
|
output/Unknown-103.png
ADDED
|
Git LFS Details
|
output/Unknown-104.png
ADDED
|
Git LFS Details
|
output/Unknown-105.png
ADDED
|
Git LFS Details
|
output/Unknown-11.png
ADDED
|
Git LFS Details
|
output/Unknown-12.png
ADDED
|
Git LFS Details
|
output/Unknown-13.png
ADDED
|
Git LFS Details
|
output/Unknown-14.png
ADDED
|
Git LFS Details
|
output/Unknown-15.png
ADDED
|
Git LFS Details
|
output/Unknown-16.png
ADDED
|
Git LFS Details
|
output/Unknown-17.png
ADDED
|
Git LFS Details
|
output/Unknown-18.png
ADDED
|
Git LFS Details
|
output/Unknown-19.png
ADDED
|
Git LFS Details
|
output/Unknown-2.png
ADDED
|
Git LFS Details
|
output/Unknown-20.png
ADDED
|
Git LFS Details
|
output/Unknown-21.png
ADDED
|
Git LFS Details
|
output/Unknown-22.png
ADDED
|
Git LFS Details
|
output/Unknown-23.png
ADDED
|
Git LFS Details
|
output/Unknown-24.png
ADDED
|
Git LFS Details
|
output/Unknown-25.png
ADDED
|
Git LFS Details
|
output/Unknown-26.png
ADDED
|
Git LFS Details
|
output/Unknown-27.png
ADDED
|
Git LFS Details
|
output/Unknown-28.png
ADDED
|
Git LFS Details
|
output/Unknown-29.png
ADDED
|
Git LFS Details
|
output/Unknown-3.png
ADDED
|
Git LFS Details
|
output/Unknown-30.png
ADDED
|
Git LFS Details
|
output/Unknown-31.png
ADDED
|
Git LFS Details
|
output/Unknown-32.png
ADDED
|
Git LFS Details
|
output/Unknown-33.png
ADDED
|
Git LFS Details
|
output/Unknown-34.png
ADDED
|
Git LFS Details
|
output/Unknown-35.png
ADDED
|
Git LFS Details
|
output/Unknown-36.png
ADDED
|
Git LFS Details
|
output/Unknown-37.png
ADDED
|
Git LFS Details
|
output/Unknown-38.png
ADDED
|
Git LFS Details
|
output/Unknown-39.png
ADDED
|
Git LFS Details
|
output/Unknown-4.png
ADDED
|
Git LFS Details
|
output/Unknown-40.png
ADDED
|
Git LFS Details
|
output/Unknown-41.png
ADDED
|
Git LFS Details
|
output/Unknown-42.png
ADDED
|
Git LFS Details
|
output/Unknown-43.png
ADDED
|
Git LFS Details
|
output/Unknown-44.png
ADDED
|
Git LFS Details
|
output/Unknown-45.png
ADDED
|
Git LFS Details
|