radames HF staff commited on
Commit
923f391
β€’
1 Parent(s): 63c1514

share works, route + for hf.space

Browse files
frontend/src/lib/App.svelte CHANGED
@@ -124,7 +124,7 @@
124
  const imgURL = await uploadImage(imgBlob, prompt, key);
125
  const promptImg = {
126
  prompt,
127
- imgURL: imgURL,
128
  position,
129
  date: new Date().getTime(),
130
  id: nanoid()
 
124
  const imgURL = await uploadImage(imgBlob, prompt, key);
125
  const promptImg = {
126
  prompt,
127
+ imgURL: imgURL.filename,
128
  position,
129
  date: new Date().getTime(),
130
  id: nanoid()
frontend/src/lib/Buttons/ShareWithCommunity.svelte CHANGED
@@ -1,16 +1,39 @@
1
  <script lang="ts">
2
- import { createEventDispatcher } from 'svelte';
3
  import IconCommunity from '$lib/Icons/IconCommunity.svelte';
4
  import LoadingIcon from '$lib/Icons/LoadingIcon.svelte';
 
 
5
 
6
- export let isUploading: boolean = false;
7
 
8
- const dispatch = createEventDispatcher();
9
- function handleClick() {
10
  if (isUploading) {
11
  return;
12
  }
13
- dispatch('createCommunityPost');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  }
15
  </script>
16
 
@@ -21,7 +44,7 @@
21
  title="Share with community"
22
  >
23
  {#if isUploading}
24
- <LoadingIcon classList="animate-spin max-w-[20px]" />
25
  {:else}
26
  <IconCommunity />
27
  {/if}
 
1
  <script lang="ts">
 
2
  import IconCommunity from '$lib/Icons/IconCommunity.svelte';
3
  import LoadingIcon from '$lib/Icons/LoadingIcon.svelte';
4
+ import { uploadImage } from '$lib/utils';
5
+ import { canvasEl } from '$lib/store';
6
 
7
+ let isUploading: boolean = false;
8
 
9
+ async function handleClick() {
 
10
  if (isUploading) {
11
  return;
12
  }
13
+ const blob: Blob = await new Promise((resolve) => {
14
+ $canvasEl.toBlob(resolve as BlobCallback, 'image/jpeg', 0.95);
15
+ });
16
+ isUploading = true;
17
+ await createCommunityPost(blob);
18
+ isUploading = false;
19
+ }
20
+
21
+ async function createCommunityPost(canvasBlob: Blob) {
22
+ const canvasURL = await uploadImage(canvasBlob, 'canvas', 'canvas');
23
+ const canvasImage = `<img src="${canvasURL.url}" style="width:100%" width="1000" height="1000">`;
24
+ const descriptionMd = `#### Stable Diffusion Multiplayer:
25
+ <div style="display: flex; overflow: scroll; column-gap: 0.75rem;">
26
+ ${canvasImage}
27
+ </div>`;
28
+
29
+ const params = new URLSearchParams({
30
+ description: descriptionMd
31
+ });
32
+ const paramsStr = params.toString();
33
+ window.open(
34
+ `https://huggingface.co/spaces/huggingface-projects/diffuse-the-rest/discussions/new?${paramsStr}`,
35
+ '_blank'
36
+ );
37
  }
38
  </script>
39
 
 
44
  title="Share with community"
45
  >
46
  {#if isUploading}
47
+ <LoadingIcon classList="animate-spin max-w-[25px]" />
48
  {:else}
49
  <IconCommunity />
50
  {/if}
frontend/src/lib/Icons/LoadingIcon.svelte CHANGED
@@ -5,7 +5,6 @@
5
  <svg
6
  class={classList}
7
  width="51"
8
- height="51"
9
  viewBox="0 0 21 21"
10
  fill="none"
11
  xmlns="http://www.w3.org/2000/svg"
 
5
  <svg
6
  class={classList}
7
  width="51"
 
8
  viewBox="0 0 21 21"
9
  fill="none"
10
  xmlns="http://www.w3.org/2000/svg"
frontend/src/lib/utils.ts CHANGED
@@ -20,7 +20,10 @@ export function base64ToBlob(base64image: string): Promise<Blob> {
20
  img.src = base64image;
21
  });
22
  }
23
- export async function uploadImage(imagBlob: Blob, prompt: string, key: string): Promise<string> {
 
 
 
24
  // simple regex slugify string for file name
25
  const promptSlug = slugify(prompt);
26
 
@@ -38,7 +41,7 @@ export async function uploadImage(imagBlob: Blob, prompt: string, key: string):
38
  });
39
  const res = await response.json();
40
 
41
- return res.filename;
42
  }
43
  const MAX = 512 * 5 - 512
44
 
 
20
  img.src = base64image;
21
  });
22
  }
23
+ export async function uploadImage(imagBlob: Blob, prompt: string, key: string): Promise<{
24
+ url: string;
25
+ filename: string;
26
+ }> {
27
  // simple regex slugify string for file name
28
  const promptSlug = slugify(prompt);
29
 
 
41
  });
42
  const res = await response.json();
43
 
44
+ return res;
45
  }
46
  const MAX = 512 * 5 - 512
47
 
frontend/src/routes/{+layout.svelte β†’ +/+layout.svelte} RENAMED
@@ -1,5 +1,5 @@
1
  <script>
2
- import '../app.css';
3
  </script>
4
 
5
  <slot />
 
1
  <script>
2
+ import '../../app.css';
3
  </script>
4
 
5
  <slot />
frontend/src/routes/{+page.svelte β†’ +/+page.svelte} RENAMED
File without changes
frontend/src/routes/{+page.ts β†’ +/+page.ts} RENAMED
File without changes
stablediffusion-infinity/app.py CHANGED
@@ -313,7 +313,7 @@ async def autorize(request: Request, db: sqlite3.Connection = Depends(get_db)):
313
  raise Exception(response.status_code, response.text)
314
 
315
 
316
- @ app.post('/api/uploadfile/')
317
  async def create_upload_file(background_tasks: BackgroundTasks, file: UploadFile):
318
  contents = await file.read()
319
  file_size = len(contents)
 
313
  raise Exception(response.status_code, response.text)
314
 
315
 
316
+ @ app.post('/api/uploadfile')
317
  async def create_upload_file(background_tasks: BackgroundTasks, file: UploadFile):
318
  contents = await file.read()
319
  file_size = len(contents)
stablediffusion-infinity/rooms.db CHANGED
Binary files a/stablediffusion-infinity/rooms.db and b/stablediffusion-infinity/rooms.db differ