Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -529,6 +529,21 @@ def updateItemDisplay(seshid, budget=False):
|
|
| 529 |
else: #except:
|
| 530 |
return sesh.updated_display
|
| 531 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 532 |
def isJSONSerialiazable(obj):
|
| 533 |
try:
|
| 534 |
json.dumps(obj)
|
|
@@ -593,8 +608,9 @@ def updateItemDisplay(seshid, budget=False):
|
|
| 593 |
getSampleIndexes = lambda lngth: sorted(set([int(i) for j in [2,3,4] for i in [np.clip(0,lngth-1,lngth//j), np.clip(0,lngth-1,lngth-(lngth//j))]] + [0,(lngth-1 if lngth > 0 else 0)]))
|
| 594 |
item_idxs = [(pair[0], [] if pair[1] <= 0 else getSampleIndexes(pair[1])) for pair in item_lens]
|
| 595 |
urls = [sesh.item_data[sesh.current_img_signature][sesh.room_type][sesh.room_style][sesh.price][sesh.Palette_ids[sesh.current_img_signature]][pair[0]][idx]['img'] for i,pair in enumerate(item_idxs) if pair[1] for idx in pair[1]]
|
| 596 |
-
|
| 597 |
-
|
|
|
|
| 598 |
sesh.display_items_ = {img:[(-1 if item in ['Palette', 'Living Room', 'Bedroom'] or not sesh.item_data[img][sesh.item_data_keys[img]['room_type']][sesh.item_data_keys[img]['room_style']][sesh.item_data_keys[img]['price']][sesh.item_data_keys[img]['Paletteid']][item] else (random.sample(list(range(len(sesh.item_data[img][sesh.item_data_keys[img]['room_type']][sesh.item_data_keys[img]['room_style']][sesh.item_data_keys[img]['price']][sesh.item_data_keys[img]['Paletteid']][item]))), 1)[0]), item) for itemi,item in enumerate(sesh.items_layouts[img])] for img in sesh.item_data_keys}
|
| 599 |
|
| 600 |
|
|
|
|
| 529 |
else: #except:
|
| 530 |
return sesh.updated_display
|
| 531 |
|
| 532 |
+
def getMostUsedColors(img):
|
| 533 |
+
imgq = img // 48 * 48
|
| 534 |
+
clr_counts = {}
|
| 535 |
+
for i in range(0, imgq.shape[0], 7):
|
| 536 |
+
for j in range(0, imgq.shape[1], 7):
|
| 537 |
+
clr = tuple(imgq[i,j])
|
| 538 |
+
if clr not in clr_counts:
|
| 539 |
+
clr_counts[clr] = 0
|
| 540 |
+
clr_counts[clr] += 1
|
| 541 |
+
clr_counts_ = {v:k for k,v in clr_counts.items()}
|
| 542 |
+
counts_srtd = sorted(clr_counts_)[::-1]
|
| 543 |
+
counts_srtd_rgb = [[int(val) for val in clr_counts_[i]] for i in counts_srtd[:7]]
|
| 544 |
+
bestclr_keys = [color_maps[color_maps_keys[getBestMatch(color_maps_keys, rgb)]] for rgb in counts_srtd_rgb]
|
| 545 |
+
return bestclr_keys
|
| 546 |
+
|
| 547 |
def isJSONSerialiazable(obj):
|
| 548 |
try:
|
| 549 |
json.dumps(obj)
|
|
|
|
| 608 |
getSampleIndexes = lambda lngth: sorted(set([int(i) for j in [2,3,4] for i in [np.clip(0,lngth-1,lngth//j), np.clip(0,lngth-1,lngth-(lngth//j))]] + [0,(lngth-1 if lngth > 0 else 0)]))
|
| 609 |
item_idxs = [(pair[0], [] if pair[1] <= 0 else getSampleIndexes(pair[1])) for pair in item_lens]
|
| 610 |
urls = [sesh.item_data[sesh.current_img_signature][sesh.room_type][sesh.room_style][sesh.price][sesh.Palette_ids[sesh.current_img_signature]][pair[0]][idx]['img'] for i,pair in enumerate(item_idxs) if pair[1] for idx in pair[1]]
|
| 611 |
+
responses = asyncio.run(main(urls))
|
| 612 |
+
bestclr_keys = [getMostUsedColors(np.array(Image.open(io.BytesIO(r)))) for r in responses]
|
| 613 |
+
print('updateDisplay -- item_lens: ', bestclr_keys)
|
| 614 |
sesh.display_items_ = {img:[(-1 if item in ['Palette', 'Living Room', 'Bedroom'] or not sesh.item_data[img][sesh.item_data_keys[img]['room_type']][sesh.item_data_keys[img]['room_style']][sesh.item_data_keys[img]['price']][sesh.item_data_keys[img]['Paletteid']][item] else (random.sample(list(range(len(sesh.item_data[img][sesh.item_data_keys[img]['room_type']][sesh.item_data_keys[img]['room_style']][sesh.item_data_keys[img]['price']][sesh.item_data_keys[img]['Paletteid']][item]))), 1)[0]), item) for itemi,item in enumerate(sesh.items_layouts[img])] for img in sesh.item_data_keys}
|
| 615 |
|
| 616 |
|