This view is limited to 50 files because it contains too many changes.  See the raw diff here.
Files changed (50) hide show
  1. .DS_Store +0 -0
  2. .gitignore +2 -1
  3. Dockerfile +47 -0
  4. README.md +17 -1
  5. ai-comic-factory/.env.example +29 -0
  6. ai-comic-factory/.eslintrc.json +3 -0
  7. ai-comic-factory/.gitignore +37 -0
  8. ai-comic-factory/.nvmrc +1 -0
  9. ai-comic-factory/CONTRIBUTORS.md +10 -0
  10. ai-comic-factory/Dockerfile +65 -0
  11. ai-comic-factory/LICENCE.md +170 -0
  12. ai-comic-factory/README.md +31 -0
  13. ai-comic-factory/components.json +16 -0
  14. ai-comic-factory/next.config.js +12 -0
  15. ai-comic-factory/package-lock.json +0 -0
  16. ai-comic-factory/package.json +86 -0
  17. ai-comic-factory/postcss.config.js +6 -0
  18. ai-comic-factory/public/bubble.jpg +0 -0
  19. ai-comic-factory/public/favicon.ico +0 -0
  20. ai-comic-factory/public/favicon/favicon-114-precomposed.png +0 -0
  21. ai-comic-factory/public/favicon/favicon-120-precomposed.png +0 -0
  22. ai-comic-factory/public/favicon/favicon-144-precomposed.png +0 -0
  23. ai-comic-factory/public/favicon/favicon-152-precomposed.png +0 -0
  24. ai-comic-factory/public/favicon/favicon-180-precomposed.png +0 -0
  25. ai-comic-factory/public/favicon/favicon-192.png +0 -0
  26. ai-comic-factory/public/favicon/favicon-32.png +0 -0
  27. ai-comic-factory/public/favicon/favicon-36.png +0 -0
  28. ai-comic-factory/public/favicon/favicon-48.png +0 -0
  29. ai-comic-factory/public/favicon/favicon-57.png +0 -0
  30. ai-comic-factory/public/favicon/favicon-60.png +0 -0
  31. ai-comic-factory/public/favicon/favicon-72-precomposed.png +0 -0
  32. ai-comic-factory/public/favicon/favicon-72.png +0 -0
  33. ai-comic-factory/public/favicon/favicon-76.png +0 -0
  34. ai-comic-factory/public/favicon/favicon-96.png +0 -0
  35. ai-comic-factory/public/favicon/favicon.ico +0 -0
  36. ai-comic-factory/public/favicon/index.html +133 -0
  37. ai-comic-factory/public/favicon/manifest.json +41 -0
  38. ai-comic-factory/public/icon.png +0 -0
  39. ai-comic-factory/public/layouts/layout0.jpg +0 -0
  40. ai-comic-factory/public/layouts/layout0_hd.jpg +0 -0
  41. ai-comic-factory/public/layouts/layout1.jpg +0 -0
  42. ai-comic-factory/public/layouts/layout1_hd.jpg +0 -0
  43. ai-comic-factory/public/layouts/layout2.jpg +0 -0
  44. ai-comic-factory/public/layouts/layout2_hd.jpg +0 -0
  45. ai-comic-factory/public/layouts/layout3 hd.jpg +0 -0
  46. ai-comic-factory/public/layouts/layout3.jpg +0 -0
  47. ai-comic-factory/public/layouts/layout4 hd.jpg +0 -0
  48. ai-comic-factory/public/layouts/layout4.jpg +0 -0
  49. ai-comic-factory/public/mask.png +0 -0
  50. ai-comic-factory/public/next.svg +1 -0
.DS_Store ADDED
Binary file (6.15 kB). View file
 
.gitignore CHANGED
@@ -1,3 +1,4 @@
1
  /client/node_modules
2
  .env
3
- /node_modules
 
 
1
  /client/node_modules
2
  .env
3
+ /node_modules
4
+ ai-comic-factory/
Dockerfile ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM node:18 as client-build
2
+ WORKDIR /app
3
+ COPY client/package*.json ./
4
+ RUN npm install
5
+ COPY client/ ./
6
+ ENV VITE_API_URL=https://mistral-ai-game-jam-dont-lookup.hf.space
7
+ RUN mkdir -p dist && npm run build
8
+
9
+ FROM python:3.9-slim
10
+ WORKDIR /app
11
+
12
+ # Create non-root user
13
+ RUN useradd -m -u 1000 user
14
+
15
+ # Install system dependencies and poetry
16
+ RUN apt-get update && apt-get install -y \
17
+ netcat-openbsd \
18
+ && rm -rf /var/lib/apt/lists/* \
19
+ && pip install poetry
20
+
21
+ # Copy and install Python dependencies
22
+ COPY server/pyproject.toml server/poetry.lock* ./
23
+ RUN poetry config virtualenvs.create false \
24
+ && poetry install --no-interaction --no-ansi --only main --no-root
25
+
26
+ # Copy server code
27
+ COPY server/ ./server/
28
+
29
+ # Copy client build
30
+ COPY --from=client-build /app/dist ./static
31
+
32
+ # Environment variables
33
+ ENV API_HOST=0.0.0.0 \
34
+ API_PORT=7860 \
35
+ STATIC_FILES_DIR=static \
36
+ DOCKER_ENV=true
37
+
38
+ # Create cache directory and set permissions
39
+ RUN mkdir -p /app/cache && chown -R user:user /app/cache
40
+
41
+ # Switch to non-root user
42
+ USER user
43
+
44
+ EXPOSE 7860
45
+
46
+ # Start the server
47
+ CMD ["python", "-m", "uvicorn", "server.server:app", "--host", "0.0.0.0", "--port", "7860"]
README.md CHANGED
@@ -1,5 +1,5 @@
1
  ---
2
- title: Dont Lookup
3
  emoji: 💻
4
  colorFrom: red
5
  colorTo: blue
@@ -8,3 +8,19 @@ pinned: false
8
  ---
9
 
10
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ title: sarah-chronicles
3
  emoji: 💻
4
  colorFrom: red
5
  colorTo: blue
 
8
  ---
9
 
10
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
11
+
12
+ # START SERVER
13
+
14
+ poetry run uvicorn server:app --reload
15
+
16
+ # START CLIENT
17
+
18
+ nvm use 20 ( osef si t'as déjà node 20+ )
19
+ yarn ( ou npm install )
20
+
21
+ yarn dev ( ou npm run dev )
22
+
23
+
24
+ # Link of Presentation about the project
25
+
26
+ https://devpost.com/software/sarah-s-chronicles
ai-comic-factory/.env.example ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ RENDERING_ENGINE="INFERENCE_ENDPOINT"
2
+
3
+ LLM_ENGINE="INFERENCE_API"
4
+
5
+ # set this to control the number of pages
6
+ MAX_NB_PAGES=6
7
+
8
+ # Set to "true" to create artificial delays and smooth out traffic
9
+ NEXT_PUBLIC_ENABLE_RATE_LIMITER="false"
10
+
11
+ # ------------- PROVIDER AUTH ------------
12
+ AUTH_HF_API_TOKEN="YOUR_HF_API_TOKEN"
13
+
14
+ # ------------- RENDERING API CONFIG --------------
15
+
16
+ # If you decide to use a private Hugging Face Inference Endpoint for the RENDERING engine
17
+ RENDERING_HF_INFERENCE_ENDPOINT_URL="https://XXXXXXXXXX.endpoints.huggingface.cloud"
18
+
19
+ # ------------- LLM API CONFIG ----------------
20
+
21
+ # If you decide to use a Hugging Face Inference API model for the LLM engine
22
+ # LLM_HF_INFERENCE_API_MODEL="HuggingFaceH4/zephyr-7b-beta"
23
+ LLM_HF_INFERENCE_API_MODEL="mistralai/Mistral-7B-Instruct-v0.3"
24
+
25
+
26
+ # ----------- CENSORSHIP (OPTIONAL) -----------
27
+ # censorship is currently disabled, but will be required when we create a "community roll"
28
+ # (a public repositoruy of user-generated comic strips)
29
+ ENABLE_CENSORSHIP="false"
ai-comic-factory/.eslintrc.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ {
2
+ "extends": "next/core-web-vitals"
3
+ }
ai-comic-factory/.gitignore ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2
+
3
+ # dependencies
4
+ /node_modules
5
+ /.pnp
6
+ .pnp.js
7
+
8
+ # testing
9
+ /coverage
10
+
11
+ # next.js
12
+ /.next/
13
+ /out/
14
+
15
+ # production
16
+ /build
17
+
18
+ # misc
19
+ .DS_Store
20
+ *.pem
21
+
22
+ # debug
23
+ npm-debug.log*
24
+ yarn-debug.log*
25
+ yarn-error.log*
26
+
27
+ # local env files
28
+ .env*.local
29
+
30
+ # vercel
31
+ .vercel
32
+
33
+ # typescript
34
+ *.tsbuildinfo
35
+ next-env.d.ts
36
+
37
+ pnpm-lock.yaml
ai-comic-factory/.nvmrc ADDED
@@ -0,0 +1 @@
 
 
1
+ v20.17.0
ai-comic-factory/CONTRIBUTORS.md ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ This project was developed by Julian Bilcke (@jbilcke-hf), as part of his work at Hugging Face.
2
+
3
+ ------------------------------------------
4
+
5
+ A huge thanks to external developers for their contributions!
6
+
7
+ 艾逗笔 (@idoubi):
8
+ - [feature] Added support for OpenAI: https://github.com/jbilcke-hf/ai-comic-factory/pull/6
9
+ - [bug] predict import error (use dynamic imports for the LLM provider): https://github.com/jbilcke-hf/ai-comic-factory/pull/9
10
+
ai-comic-factory/Dockerfile ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM node:20-alpine AS base
2
+
3
+ # Install dependencies only when needed
4
+ FROM base AS deps
5
+ # Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
6
+ RUN apk add --no-cache libc6-compat
7
+ WORKDIR /app
8
+
9
+ # Install dependencies based on the preferred package manager
10
+ COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* ./
11
+ RUN \
12
+ if [ -f yarn.lock ]; then yarn --frozen-lockfile; \
13
+ elif [ -f package-lock.json ]; then npm ci; \
14
+ elif [ -f pnpm-lock.yaml ]; then yarn global add pnpm && pnpm i --frozen-lockfile; \
15
+ else echo "Lockfile not found." && exit 1; \
16
+ fi
17
+
18
+ # Uncomment the following lines if you want to use a secret at buildtime,
19
+ # for example to access your private npm packages
20
+ # RUN --mount=type=secret,id=HF_EXAMPLE_SECRET,mode=0444,required=true \
21
+ # $(cat /run/secrets/HF_EXAMPLE_SECRET)
22
+
23
+ # Rebuild the source code only when needed
24
+ FROM base AS builder
25
+ WORKDIR /app
26
+ COPY --from=deps /app/node_modules ./node_modules
27
+ COPY . .
28
+
29
+ # Next.js collects completely anonymous telemetry data about general usage.
30
+ # Learn more here: https://nextjs.org/telemetry
31
+ # Uncomment the following line in case you want to disable telemetry during the build.
32
+ # ENV NEXT_TELEMETRY_DISABLED 1
33
+
34
+ # RUN yarn build
35
+
36
+ # If you use yarn, comment out this line and use the line above
37
+ RUN npm run build
38
+
39
+ # Production image, copy all the files and run next
40
+ FROM base AS runner
41
+ WORKDIR /app
42
+
43
+ ENV NODE_ENV production
44
+ # Uncomment the following line in case you want to disable telemetry during runtime.
45
+ # ENV NEXT_TELEMETRY_DISABLED 1
46
+
47
+ RUN addgroup --system --gid 1001 nodejs
48
+ RUN adduser --system --uid 1001 nextjs
49
+
50
+ COPY --from=builder /app/public ./public
51
+
52
+ # Automatically leverage output traces to reduce image size
53
+ # https://nextjs.org/docs/advanced-features/output-file-tracing
54
+ COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
55
+ COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
56
+ COPY --from=builder --chown=nextjs:nodejs /app/.next/cache ./.next/cache
57
+ # COPY --from=builder --chown=nextjs:nodejs /app/.next/cache/fetch-cache ./.next/cache/fetch-cache
58
+
59
+ USER nextjs
60
+
61
+ EXPOSE 3000
62
+
63
+ ENV PORT 3000
64
+
65
+ CMD ["node", "server.js"]
ai-comic-factory/LICENCE.md ADDED
@@ -0,0 +1,170 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Apache License
2
+ ==============
3
+
4
+ _Version 2.0, January 2004_
5
+ _&lt;<http://www.apache.org/licenses/>&gt;_
6
+
7
+ ### Terms and Conditions for use, reproduction, and distribution
8
+
9
+ #### 1. Definitions
10
+
11
+ “License” shall mean the terms and conditions for use, reproduction, and
12
+ distribution as defined by Sections 1 through 9 of this document.
13
+
14
+ “Licensor” shall mean the copyright owner or entity authorized by the copyright
15
+ owner that is granting the License.
16
+
17
+ “Legal Entity” shall mean the union of the acting entity and all other entities
18
+ that control, are controlled by, or are under common control with that entity.
19
+ For the purposes of this definition, “control” means **(i)** the power, direct or
20
+ indirect, to cause the direction or management of such entity, whether by
21
+ contract or otherwise, or **(ii)** ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or **(iii)** beneficial ownership of such entity.
23
+
24
+ “You” (or “Your”) shall mean an individual or Legal Entity exercising
25
+ permissions granted by this License.
26
+
27
+ “Source” form shall mean the preferred form for making modifications, including
28
+ but not limited to software source code, documentation source, and configuration
29
+ files.
30
+
31
+ “Object” form shall mean any form resulting from mechanical transformation or
32
+ translation of a Source form, including but not limited to compiled object code,
33
+ generated documentation, and conversions to other media types.
34
+
35
+ “Work” shall mean the work of authorship, whether in Source or Object form, made
36
+ available under the License, as indicated by a copyright notice that is included
37
+ in or attached to the work (an example is provided in the Appendix below).
38
+
39
+ “Derivative Works” shall mean any work, whether in Source or Object form, that
40
+ is based on (or derived from) the Work and for which the editorial revisions,
41
+ annotations, elaborations, or other modifications represent, as a whole, an
42
+ original work of authorship. For the purposes of this License, Derivative Works
43
+ shall not include works that remain separable from, or merely link (or bind by
44
+ name) to the interfaces of, the Work and Derivative Works thereof.
45
+
46
+ “Contribution” shall mean any work of authorship, including the original version
47
+ of the Work and any modifications or additions to that Work or Derivative Works
48
+ thereof, that is intentionally submitted to Licensor for inclusion in the Work
49
+ by the copyright owner or by an individual or Legal Entity authorized to submit
50
+ on behalf of the copyright owner. For the purposes of this definition,
51
+ “submitted” means any form of electronic, verbal, or written communication sent
52
+ to the Licensor or its representatives, including but not limited to
53
+ communication on electronic mailing lists, source code control systems, and
54
+ issue tracking systems that are managed by, or on behalf of, the Licensor for
55
+ the purpose of discussing and improving the Work, but excluding communication
56
+ that is conspicuously marked or otherwise designated in writing by the copyright
57
+ owner as “Not a Contribution.”
58
+
59
+ “Contributor” shall mean Licensor and any individual or Legal Entity on behalf
60
+ of whom a Contribution has been received by Licensor and subsequently
61
+ incorporated within the Work.
62
+
63
+ #### 2. Grant of Copyright License
64
+
65
+ Subject to the terms and conditions of this License, each Contributor hereby
66
+ grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
67
+ irrevocable copyright license to reproduce, prepare Derivative Works of,
68
+ publicly display, publicly perform, sublicense, and distribute the Work and such
69
+ Derivative Works in Source or Object form.
70
+
71
+ #### 3. Grant of Patent License
72
+
73
+ Subject to the terms and conditions of this License, each Contributor hereby
74
+ grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
75
+ irrevocable (except as stated in this section) patent license to make, have
76
+ made, use, offer to sell, sell, import, and otherwise transfer the Work, where
77
+ such license applies only to those patent claims licensable by such Contributor
78
+ that are necessarily infringed by their Contribution(s) alone or by combination
79
+ of their Contribution(s) with the Work to which such Contribution(s) was
80
+ submitted. If You institute patent litigation against any entity (including a
81
+ cross-claim or counterclaim in a lawsuit) alleging that the Work or a
82
+ Contribution incorporated within the Work constitutes direct or contributory
83
+ patent infringement, then any patent licenses granted to You under this License
84
+ for that Work shall terminate as of the date such litigation is filed.
85
+
86
+ #### 4. Redistribution
87
+
88
+ You may reproduce and distribute copies of the Work or Derivative Works thereof
89
+ in any medium, with or without modifications, and in Source or Object form,
90
+ provided that You meet the following conditions:
91
+
92
+ * **(a)** You must give any other recipients of the Work or Derivative Works a copy of
93
+ this License; and
94
+ * **(b)** You must cause any modified files to carry prominent notices stating that You
95
+ changed the files; and
96
+ * **(c)** You must retain, in the Source form of any Derivative Works that You distribute,
97
+ all copyright, patent, trademark, and attribution notices from the Source form
98
+ of the Work, excluding those notices that do not pertain to any part of the
99
+ Derivative Works; and
100
+ * **(d)** If the Work includes a “NOTICE” text file as part of its distribution, then any
101
+ Derivative Works that You distribute must include a readable copy of the
102
+ attribution notices contained within such NOTICE file, excluding those notices
103
+ that do not pertain to any part of the Derivative Works, in at least one of the
104
+ following places: within a NOTICE text file distributed as part of the
105
+ Derivative Works; within the Source form or documentation, if provided along
106
+ with the Derivative Works; or, within a display generated by the Derivative
107
+ Works, if and wherever such third-party notices normally appear. The contents of
108
+ the NOTICE file are for informational purposes only and do not modify the
109
+ License. You may add Your own attribution notices within Derivative Works that
110
+ You distribute, alongside or as an addendum to the NOTICE text from the Work,
111
+ provided that such additional attribution notices cannot be construed as
112
+ modifying the License.
113
+
114
+ You may add Your own copyright statement to Your modifications and may provide
115
+ additional or different license terms and conditions for use, reproduction, or
116
+ distribution of Your modifications, or for any such Derivative Works as a whole,
117
+ provided Your use, reproduction, and distribution of the Work otherwise complies
118
+ with the conditions stated in this License.
119
+
120
+ #### 5. Submission of Contributions
121
+
122
+ Unless You explicitly state otherwise, any Contribution intentionally submitted
123
+ for inclusion in the Work by You to the Licensor shall be under the terms and
124
+ conditions of this License, without any additional terms or conditions.
125
+ Notwithstanding the above, nothing herein shall supersede or modify the terms of
126
+ any separate license agreement you may have executed with Licensor regarding
127
+ such Contributions.
128
+
129
+ #### 6. Trademarks
130
+
131
+ This License does not grant permission to use the trade names, trademarks,
132
+ service marks, or product names of the Licensor, except as required for
133
+ reasonable and customary use in describing the origin of the Work and
134
+ reproducing the content of the NOTICE file.
135
+
136
+ #### 7. Disclaimer of Warranty
137
+
138
+ Unless required by applicable law or agreed to in writing, Licensor provides the
139
+ Work (and each Contributor provides its Contributions) on an “AS IS” BASIS,
140
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
141
+ including, without limitation, any warranties or conditions of TITLE,
142
+ NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
143
+ solely responsible for determining the appropriateness of using or
144
+ redistributing the Work and assume any risks associated with Your exercise of
145
+ permissions under this License.
146
+
147
+ #### 8. Limitation of Liability
148
+
149
+ In no event and under no legal theory, whether in tort (including negligence),
150
+ contract, or otherwise, unless required by applicable law (such as deliberate
151
+ and grossly negligent acts) or agreed to in writing, shall any Contributor be
152
+ liable to You for damages, including any direct, indirect, special, incidental,
153
+ or consequential damages of any character arising as a result of this License or
154
+ out of the use or inability to use the Work (including but not limited to
155
+ damages for loss of goodwill, work stoppage, computer failure or malfunction, or
156
+ any and all other commercial damages or losses), even if such Contributor has
157
+ been advised of the possibility of such damages.
158
+
159
+ #### 9. Accepting Warranty or Additional Liability
160
+
161
+ While redistributing the Work or Derivative Works thereof, You may choose to
162
+ offer, and charge a fee for, acceptance of support, warranty, indemnity, or
163
+ other liability obligations and/or rights consistent with this License. However,
164
+ in accepting such obligations, You may act only on Your own behalf and on Your
165
+ sole responsibility, not on behalf of any other Contributor, and only if You
166
+ agree to indemnify, defend, and hold each Contributor harmless for any liability
167
+ incurred by, or claims asserted against, such Contributor by reason of your
168
+ accepting any such warranty or additional liability.
169
+
170
+ _END OF TERMS AND CONDITIONS_
ai-comic-factory/README.md ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: AI Comic Factory
3
+ emoji: 👩‍🎨
4
+ colorFrom: red
5
+ colorTo: yellow
6
+ sdk: docker
7
+ pinned: true
8
+ app_port: 3000
9
+ disable_embedding: false
10
+ short_description: Create your own AI comic with a single prompt
11
+ hf_oauth: true
12
+ hf_oauth_expiration_minutes: 43200
13
+ hf_oauth_scopes: [inference-api]
14
+ ---
15
+
16
+ ### Start the application
17
+
18
+ ```bash
19
+ # Install dependencies
20
+ npm install
21
+
22
+ # Start the application
23
+ npm run dev
24
+ ```
25
+ # AI Comic Factory
26
+
27
+ This project is a fork from Julian Bilcke's AI Comic Factory v1.2
28
+
29
+ The AI Comic Factory now has an official website: [aicomicfactory.app](https://aicomicfactory.app)
30
+
31
+ For more information about Julian Bilcke's other projects please check [linktr.ee/FLNGR](https://linktr.ee/FLNGR).
ai-comic-factory/components.json ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema.json",
3
+ "style": "default",
4
+ "rsc": true,
5
+ "tsx": true,
6
+ "tailwind": {
7
+ "config": "tailwind.config.js",
8
+ "css": "app/globals.css",
9
+ "baseColor": "stone",
10
+ "cssVariables": false
11
+ },
12
+ "aliases": {
13
+ "components": "@/components",
14
+ "utils": "@/lib/utils"
15
+ }
16
+ }
ai-comic-factory/next.config.js ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /** @type {import('next').NextConfig} */
2
+ const nextConfig = {
3
+ output: 'standalone',
4
+
5
+ experimental: {
6
+ serverActions: {
7
+ bodySizeLimit: '8mb',
8
+ },
9
+ }
10
+ }
11
+
12
+ module.exports = nextConfig
ai-comic-factory/package-lock.json ADDED
The diff for this file is too large to render. See raw diff
 
ai-comic-factory/package.json ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "@jbilcke/comic-factory",
3
+ "version": "1.2.3",
4
+ "private": true,
5
+ "scripts": {
6
+ "dev": "next dev",
7
+ "build": "next build",
8
+ "start": "next start",
9
+ "lint": "next lint"
10
+ },
11
+ "dependencies": {
12
+ "@aitube/clap": "0.2.4",
13
+ "@anthropic-ai/sdk": "^0.25.0",
14
+ "@huggingface/hub": "^0.15.1",
15
+ "@huggingface/inference": "^2.0.0",
16
+ "@mediapipe/tasks-vision": "0.10.15",
17
+ "@radix-ui/react-accordion": "^1.1.2",
18
+ "@radix-ui/react-avatar": "^1.0.3",
19
+ "@radix-ui/react-checkbox": "^1.0.4",
20
+ "@radix-ui/react-collapsible": "^1.0.3",
21
+ "@radix-ui/react-dialog": "^1.0.4",
22
+ "@radix-ui/react-dropdown-menu": "^2.0.5",
23
+ "@radix-ui/react-icons": "^1.3.0",
24
+ "@radix-ui/react-label": "^2.0.2",
25
+ "@radix-ui/react-menubar": "^1.0.3",
26
+ "@radix-ui/react-popover": "^1.0.6",
27
+ "@radix-ui/react-select": "^1.2.2",
28
+ "@radix-ui/react-separator": "^1.0.3",
29
+ "@radix-ui/react-slider": "^1.1.2",
30
+ "@radix-ui/react-slot": "^1.0.2",
31
+ "@radix-ui/react-switch": "^1.0.3",
32
+ "@radix-ui/react-toast": "^1.1.4",
33
+ "@radix-ui/react-tooltip": "^1.0.6",
34
+ "@types/node": "20.4.2",
35
+ "@types/react": "18.3.0",
36
+ "@types/react-dom": "18.3.0",
37
+ "@types/uuid": "^9.0.2",
38
+ "autoprefixer": "10.4.18",
39
+ "class-variance-authority": "^0.6.1",
40
+ "clsx": "^2.1.0",
41
+ "cmdk": "^0.2.0",
42
+ "cookies-next": "^2.1.2",
43
+ "date-fns": "^2.30.0",
44
+ "encoding": "^0.1.13",
45
+ "eslint": "8.45.0",
46
+ "eslint-config-next": "13.4.10",
47
+ "groq-sdk": "^0.3.1",
48
+ "html2canvas": "^1.4.1",
49
+ "i": "^0.3.7",
50
+ "konva": "^9.2.2",
51
+ "lucide-react": "^0.260.0",
52
+ "next": "14.2.7",
53
+ "npm": "^10.7.0",
54
+ "openai": "^4.29.2",
55
+ "pick": "^0.0.1",
56
+ "postcss": "8.4.37",
57
+ "query-string": "^9.0.0",
58
+ "react": "18.3.1",
59
+ "react-circular-progressbar": "^2.1.0",
60
+ "react-contenteditable": "^3.3.7",
61
+ "react-dom": "18.3.1",
62
+ "react-draggable": "^4.4.6",
63
+ "react-hook-consent": "^3.5.3",
64
+ "react-icons": "^4.11.0",
65
+ "react-konva": "^18.2.10",
66
+ "react-virtualized-auto-sizer": "^1.0.20",
67
+ "replicate": "^0.32.0",
68
+ "sbd": "^1.0.19",
69
+ "sharp": "^0.33.4",
70
+ "tailwind-merge": "^2.2.2",
71
+ "tailwindcss": "3.4.1",
72
+ "tailwindcss-animate": "^1.0.6",
73
+ "ts-node": "^10.9.1",
74
+ "typescript": "^5.4.5",
75
+ "use-file-picker": "^2.1.2",
76
+ "usehooks-ts": "2.9.1",
77
+ "uuid": "^9.0.0",
78
+ "yaml": "^2.4.5",
79
+ "zustand": "^4.5.1"
80
+ },
81
+ "devDependencies": {
82
+ "@types/qs": "^6.9.7",
83
+ "@types/react-virtualized": "^9.21.22",
84
+ "@types/sbd": "^1.0.3"
85
+ }
86
+ }
ai-comic-factory/postcss.config.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ module.exports = {
2
+ plugins: {
3
+ tailwindcss: {},
4
+ autoprefixer: {},
5
+ },
6
+ }
ai-comic-factory/public/bubble.jpg ADDED
ai-comic-factory/public/favicon.ico ADDED
ai-comic-factory/public/favicon/favicon-114-precomposed.png ADDED
ai-comic-factory/public/favicon/favicon-120-precomposed.png ADDED
ai-comic-factory/public/favicon/favicon-144-precomposed.png ADDED
ai-comic-factory/public/favicon/favicon-152-precomposed.png ADDED
ai-comic-factory/public/favicon/favicon-180-precomposed.png ADDED
ai-comic-factory/public/favicon/favicon-192.png ADDED
ai-comic-factory/public/favicon/favicon-32.png ADDED
ai-comic-factory/public/favicon/favicon-36.png ADDED
ai-comic-factory/public/favicon/favicon-48.png ADDED
ai-comic-factory/public/favicon/favicon-57.png ADDED
ai-comic-factory/public/favicon/favicon-60.png ADDED
ai-comic-factory/public/favicon/favicon-72-precomposed.png ADDED
ai-comic-factory/public/favicon/favicon-72.png ADDED
ai-comic-factory/public/favicon/favicon-76.png ADDED
ai-comic-factory/public/favicon/favicon-96.png ADDED
ai-comic-factory/public/favicon/favicon.ico ADDED
ai-comic-factory/public/favicon/index.html ADDED
@@ -0,0 +1,133 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <head>
3
+ <title>
4
+ Favicons
5
+ </title>
6
+ <meta charset="utf-8" />
7
+
8
+ <!-- For old IEs -->
9
+ <link rel="shortcut icon" href="favicon.ico" />
10
+
11
+ <!-- For new browsers multisize ico -->
12
+ <link rel="icon" type="image/x-icon" sizes="16x16 32x32" href="favicon.ico">
13
+
14
+ <!-- Chrome for Android -->
15
+ <link rel="icon" sizes="192x192" href="favicon-192.png">
16
+
17
+ <!-- For iPhone 6+ downscaled for other devices -->
18
+ <link rel="apple-touch-icon" sizes="180x180" href="favicon-180-precomposed.png">
19
+
20
+ <!-- For IE10 Metro -->
21
+ <meta name="msapplication-TileColor" content="#FFFFFF">
22
+ <meta name="msapplication-TileImage" content="favicon-114-precomposed.png">
23
+
24
+ <style>
25
+
26
+ body {
27
+ background-color: #f5f5f5;
28
+ border: 0px;
29
+ margin: 0px;
30
+ padding: 0px;
31
+ font-family: Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;
32
+ color: black;
33
+ }
34
+
35
+ pre {
36
+ margin: 0px;
37
+ color: black;
38
+ padding: 0px 5%;
39
+ }
40
+
41
+ code {
42
+
43
+ }
44
+
45
+ .container {
46
+ background-color: white;
47
+ max-width: 800px;
48
+ width: 100%;
49
+ margin: 0 auto;
50
+ padding: 1% 0;
51
+ height: 100%;
52
+ }
53
+
54
+ .comment {
55
+ color: gray;
56
+ padding: 0px;
57
+ margin: 0px;
58
+ }
59
+
60
+ hr {
61
+ width: 80%;
62
+ padding: 0 5%;
63
+ border-color: #f5f5f5;
64
+ background-color: #D1D1D1;
65
+ }
66
+
67
+ p {
68
+ padding: 1% 5%;
69
+ }
70
+
71
+ </style>
72
+
73
+ </head>
74
+ <body class="">
75
+
76
+ <div class="container">
77
+ <p>
78
+ To use the favicons insert into your head section some of these tags accordly to your needs.
79
+ </p>
80
+ <hr>
81
+ <pre>
82
+ <code>
83
+ <span class="comment">&lt;!-- For old IEs --&gt;</span>
84
+ &lt;link rel=&quot;shortcut icon&quot; href=&quot;favicon.ico&quot; /&gt;
85
+
86
+ <span class="comment">&lt;!-- For new browsers - multisize ico --&gt;</span>
87
+ &lt;link rel=&quot;icon&quot; type=&quot;image/x-icon&quot; sizes=&quot;16x16 32x32&quot; href=&quot;favicon.ico&quot;&gt;
88
+
89
+ <span class="comment">&lt;!-- For iPad with high-resolution Retina display running iOS &ge; 7: --&gt;</span>
90
+ &lt;link rel=&quot;apple-touch-icon&quot; sizes=&quot;152x152&quot; href=&quot;favicon-152-precomposed.png&quot;&gt;
91
+
92
+ <span class="comment">&lt;!-- For iPad with high-resolution Retina display running iOS &le; 6: --&gt;</span>
93
+ &lt;link rel=&quot;apple-touch-icon&quot; sizes=&quot;144x144&quot; href=&quot;favicon-144-precomposed.png&quot;&gt;
94
+
95
+ <span class="comment">&lt;!-- For iPhone with high-resolution Retina display running iOS &ge; 7: --&gt;</span>
96
+ &lt;link rel=&quot;apple-touch-icon&quot; sizes=&quot;120x120&quot; href=&quot;favicon-120-precomposed.png&quot;&gt;
97
+
98
+ <span class="comment">&lt;!-- For iPhone with high-resolution Retina display running iOS &le; 6: --&gt;</span>
99
+ &lt;link rel=&quot;apple-touch-icon&quot; sizes=&quot;114x114&quot; href=&quot;favicon-114-precomposed.png&quot;&gt;
100
+
101
+ <span class="comment">&lt;!-- For iPhone 6+ --&gt;</span>
102
+ &lt;link rel=&quot;apple-touch-icon&quot; sizes=&quot;180x180&quot; href=&quot;favicon-180-precomposed.png&quot;&gt;
103
+
104
+ <span class="comment">&lt;!-- For first- and second-generation iPad: --&gt;</span>
105
+ &lt;link rel=&quot;apple-touch-icon&quot; sizes=&quot;72x72&quot; href=&quot;favicon-72-precomposed.png&quot;&gt;
106
+
107
+ <span class="comment">&lt;!-- For non-Retina iPhone, iPod Touch, and Android 2.1+ devices: --&gt;</span>
108
+ &lt;link rel=&quot;apple-touch-icon&quot; sizes=&quot;57x57&quot; href=&quot;favicon-57.png&quot;&gt;
109
+
110
+ <span class="comment">&lt;!-- For Old Chrome --&gt;</span>
111
+ &lt;link rel=&quot;icon&quot; sizes=&quot;32x32&quot; href=&quot;favicon-32.png&quot; &gt;
112
+
113
+ <span class="comment">&lt;!-- For IE10 Metro --&gt;</span>
114
+ &lt;meta name=&quot;msapplication-TileColor&quot; content=&quot;#FFFFFF&quot;&gt;
115
+ &lt;meta name=&quot;msapplication-TileImage&quot; content=&quot;favicon-144.png&quot;&gt;
116
+ &lt;meta name=&quot;theme-color&quot; content=&quot;#ffffff&quot;&gt;
117
+
118
+ <span class="comment">&lt;!-- Chrome for Android --&gt;</span>
119
+ &lt;link rel=&quot;manifest&quot; href=&quot;manifest.json&quot;&gt;
120
+ &lt;link rel=&quot;icon&quot; sizes=&quot;192x192&quot; href=&quot;favicon-192.png&quot;&gt;
121
+
122
+ </code>
123
+ </pre>
124
+
125
+ <hr>
126
+
127
+ <p>
128
+ For more informations about favicons consult <a href="https://github.com/audreyr/favicon-cheat-sheet">The Favicon Cheat Sheet</a> by Audrey Roy.
129
+ </p>
130
+
131
+ </div>
132
+
133
+ </body>
ai-comic-factory/public/favicon/manifest.json ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "pollo",
3
+ "icons": [
4
+ {
5
+ "src": "\/favicon-36.png",
6
+ "sizes": "36x36",
7
+ "type": "image\/png",
8
+ "density": 0.75
9
+ },
10
+ {
11
+ "src": "\/favicon-48.png",
12
+ "sizes": "48x48",
13
+ "type": "image\/png",
14
+ "density": 1
15
+ },
16
+ {
17
+ "src": "\/favicon-72.png",
18
+ "sizes": "72x72",
19
+ "type": "image\/png",
20
+ "density": 1.5
21
+ },
22
+ {
23
+ "src": "\/favicon-96.png",
24
+ "sizes": "96x96",
25
+ "type": "image\/png",
26
+ "density": 2
27
+ },
28
+ {
29
+ "src": "\/favicon-144.png",
30
+ "sizes": "144x144",
31
+ "type": "image\/png",
32
+ "density": 3
33
+ },
34
+ {
35
+ "src": "\/favicon-192.png",
36
+ "sizes": "192x192",
37
+ "type": "image\/png",
38
+ "density": 4
39
+ }
40
+ ]
41
+ }
ai-comic-factory/public/icon.png ADDED
ai-comic-factory/public/layouts/layout0.jpg ADDED
ai-comic-factory/public/layouts/layout0_hd.jpg ADDED
ai-comic-factory/public/layouts/layout1.jpg ADDED
ai-comic-factory/public/layouts/layout1_hd.jpg ADDED
ai-comic-factory/public/layouts/layout2.jpg ADDED
ai-comic-factory/public/layouts/layout2_hd.jpg ADDED
ai-comic-factory/public/layouts/layout3 hd.jpg ADDED
ai-comic-factory/public/layouts/layout3.jpg ADDED
ai-comic-factory/public/layouts/layout4 hd.jpg ADDED
ai-comic-factory/public/layouts/layout4.jpg ADDED
ai-comic-factory/public/mask.png ADDED
ai-comic-factory/public/next.svg ADDED