xoneabovex/inkform

Inkform — AI Image Generation Studio (React Native / Expo)

1

stars

16

commits

TypeScript

primary language

Aug 30, 2026

updated

README

Inkform — AI Image Generation Studio

Inkform icon

A professional AI image generation mobile app built with React Native and Expo SDK 54.
Generate, upscale, and manage AI-created images from multiple providers — all from your phone.

Expo 54 React Native TypeScript NativeWind CI


Features

Studio (Generate Tab)

  • Multi-provider generation — Replicate (FLUX.2 Max/Pro/Dev/Klein, FLUX.1 Schnell, FLUX 1.1 Pro), Google (Imagen 4, Imagen 4 Ultra, Imagen 4 Fast, Imagen 3, Gemini Flash Image, Gemini Pro Image, Gemini 2.5 Flash Image), and custom RunPod endpoints
  • Batch generation — generate up to 4 images simultaneously with parallel predictions
  • Advanced parameters — CFG scale, steps, seed, sampling method (Euler, DPM++ 2M Karras, DDIM, LCM, and more), CLIP skip, VAE selector, Hi-Res Fix
  • LoRA support — load multiple LoRAs from Civitai with individual weight sliders and trigger word display
  • Image-to-image — upload a reference image with adjustable denoising strength
  • Negative prompt presets — insertable templates (SDXL Quality, Anime Clean, Photorealistic, etc.)
  • Quality boost — one-tap toggle that appends a detail-enhancing prompt suffix
  • Advanced settings BottomSheet — swipeable panel for parameters that don't need to be always visible
  • Batch progress bar — real-time save progress indicator for multi-image runs
  • Persistent local storage — images downloaded to device filesystem at generation time; never expire
  • 500-image cap — oldest images auto-deleted when limit is reached (favorites are protected)
  • Fullscreen viewer — pinch-to-zoom, double-tap zoom, pan, and swipe left/right to browse
  • Favorites — heart any image to protect it from auto-cleanup; filter to view favorites only
  • Collections — create named collections and organise images into them
  • Metadata view — see the full prompt, model, parameters, and generation date for every image
  • Reuse settings — tap any gallery image to pre-fill the Studio with its exact prompt and parameters
  • Save to Camera Roll — works from every save button across the app (gallery, fullscreen viewer, generate results)
  • Share — share any image via the system share sheet

Upscale

  • Real-ESRGAN — 2× and 4× AI upscaling via Replicate
  • GFPGAN — face restoration and enhancement
  • Save upscaled result directly to Camera Roll

Prompts

  • History — last 50 prompts saved automatically; tap to reuse
  • Bookmarks — save favourite prompts for quick access

Settings

  • Theme — Dark / Light / System toggle (Cinematic Blue palette: grey+blue dark mode, clean light mode)
  • API keys — secure storage for Replicate, Google AI, and RunPod credentials
  • Provider configuration — RunPod endpoint URL and model selection

Tech Stack

LayerTechnology
FrameworkReact Native 0.81 + Expo SDK 54
LanguageTypeScript 5.9
NavigationExpo Router 6 (file-based)
StylingNativeWind 4 (Tailwind CSS)
StateReact useReducer + Context
StorageExpo FileSystem + AsyncStorage
AnimationsReact Native Reanimated 4 + Gesture Handler
TestingVitest
CIGitHub Actions

Getting Started

Prerequisites

Installation

git clone https://github.com/xoneabovex/inkform.git
cd inkform
pnpm install

Running the App

pnpm dev

This starts the Metro bundler. Scan the QR code with Expo Go on your device, or press w to open in a web browser.

Running Tests

pnpm test

API Keys

Inkform connects to external AI providers. You will need at least one of the following:

ProviderWhere to get itRequired for
Replicatereplicate.com/account/api-tokensFLUX models
Google AIaistudio.google.com/apikeyImagen 3/4, Gemini Image models
RunPodrunpod.io/console/user/settingsCustom RunPod endpoint (optional)

Enter your keys in the Settings tab of the app. Keys are stored securely on-device using Expo SecureStore and are never transmitted anywhere other than the respective provider APIs.


RunPod Worker (Optional)

If you want to run your own Stable Diffusion models via RunPod, a ready-made serverless worker is included.

runpod-worker/
  handler.py       ← Serverless handler (SD 1.5, Pony, Illustrious, NoobAI, FLUX)
  Dockerfile       ← Container definition
  requirements.txt ← Python dependencies
  README.md        ← Deployment instructions

See runpod-worker/README.md for full deployment instructions.


Project Structure

app/
  (tabs)/
    index.tsx        ← Studio / Generate screen
    gallery.tsx      ← Gallery screen
    upscale.tsx      ← Upscale screen
    prompts.tsx      ← Prompt history & bookmarks
    settings.tsx     ← Settings screen
components/
  features/
    fullscreen-viewer.tsx  ← Shared fullscreen image viewer
  ui/
    bottom-sheet.tsx       ← Swipeable bottom sheet
    icon-symbol.tsx        ← SF Symbols → Material Icons mapping
  screen-container.tsx     ← SafeArea wrapper
lib/
  api/
    generate.ts            ← Provider routing
    replicate.ts           ← Replicate API
    google-imagen.ts       ← Google Imagen / Gemini Image API
    runpod.ts              ← RunPod serverless API
    civitai.ts             ← Civitai model/LoRA metadata
  storage/
    app-storage.ts         ← Gallery persistence, saveToDeviceGallery
  types/
    index.ts               ← Shared TypeScript types and model catalog

Contributing

This is a personal project. If you fork it and make improvements, feel free to open a pull request.


License

Private — all rights reserved.

Contributors

manus-agent

14 commits

xoneabovex

2 commits

xoneabovex/inkform

Inkform — AI Image Generation Studio (React Native / Expo)

1

stars

16

commits

TypeScript

primary language

Aug 30, 2026

updated

README

Inkform — AI Image Generation Studio

Inkform icon

A professional AI image generation mobile app built with React Native and Expo SDK 54.
Generate, upscale, and manage AI-created images from multiple providers — all from your phone.

Expo 54 React Native TypeScript NativeWind CI


Features

Studio (Generate Tab)

  • Multi-provider generation — Replicate (FLUX.2 Max/Pro/Dev/Klein, FLUX.1 Schnell, FLUX 1.1 Pro), Google (Imagen 4, Imagen 4 Ultra, Imagen 4 Fast, Imagen 3, Gemini Flash Image, Gemini Pro Image, Gemini 2.5 Flash Image), and custom RunPod endpoints
  • Batch generation — generate up to 4 images simultaneously with parallel predictions
  • Advanced parameters — CFG scale, steps, seed, sampling method (Euler, DPM++ 2M Karras, DDIM, LCM, and more), CLIP skip, VAE selector, Hi-Res Fix
  • LoRA support — load multiple LoRAs from Civitai with individual weight sliders and trigger word display
  • Image-to-image — upload a reference image with adjustable denoising strength
  • Negative prompt presets — insertable templates (SDXL Quality, Anime Clean, Photorealistic, etc.)
  • Quality boost — one-tap toggle that appends a detail-enhancing prompt suffix
  • Advanced settings BottomSheet — swipeable panel for parameters that don't need to be always visible
  • Batch progress bar — real-time save progress indicator for multi-image runs
  • Persistent local storage — images downloaded to device filesystem at generation time; never expire
  • 500-image cap — oldest images auto-deleted when limit is reached (favorites are protected)
  • Fullscreen viewer — pinch-to-zoom, double-tap zoom, pan, and swipe left/right to browse
  • Favorites — heart any image to protect it from auto-cleanup; filter to view favorites only
  • Collections — create named collections and organise images into them
  • Metadata view — see the full prompt, model, parameters, and generation date for every image
  • Reuse settings — tap any gallery image to pre-fill the Studio with its exact prompt and parameters
  • Save to Camera Roll — works from every save button across the app (gallery, fullscreen viewer, generate results)
  • Share — share any image via the system share sheet

Upscale

  • Real-ESRGAN — 2× and 4× AI upscaling via Replicate
  • GFPGAN — face restoration and enhancement
  • Save upscaled result directly to Camera Roll

Prompts

  • History — last 50 prompts saved automatically; tap to reuse
  • Bookmarks — save favourite prompts for quick access

Settings

  • Theme — Dark / Light / System toggle (Cinematic Blue palette: grey+blue dark mode, clean light mode)
  • API keys — secure storage for Replicate, Google AI, and RunPod credentials
  • Provider configuration — RunPod endpoint URL and model selection

Tech Stack

LayerTechnology
FrameworkReact Native 0.81 + Expo SDK 54
LanguageTypeScript 5.9
NavigationExpo Router 6 (file-based)
StylingNativeWind 4 (Tailwind CSS)
StateReact useReducer + Context
StorageExpo FileSystem + AsyncStorage
AnimationsReact Native Reanimated 4 + Gesture Handler
TestingVitest
CIGitHub Actions

Getting Started

Prerequisites

Installation

git clone https://github.com/xoneabovex/inkform.git
cd inkform
pnpm install

Running the App

pnpm dev

This starts the Metro bundler. Scan the QR code with Expo Go on your device, or press w to open in a web browser.

Running Tests

pnpm test

API Keys

Inkform connects to external AI providers. You will need at least one of the following:

ProviderWhere to get itRequired for
Replicatereplicate.com/account/api-tokensFLUX models
Google AIaistudio.google.com/apikeyImagen 3/4, Gemini Image models
RunPodrunpod.io/console/user/settingsCustom RunPod endpoint (optional)

Enter your keys in the Settings tab of the app. Keys are stored securely on-device using Expo SecureStore and are never transmitted anywhere other than the respective provider APIs.


RunPod Worker (Optional)

If you want to run your own Stable Diffusion models via RunPod, a ready-made serverless worker is included.

runpod-worker/
  handler.py       ← Serverless handler (SD 1.5, Pony, Illustrious, NoobAI, FLUX)
  Dockerfile       ← Container definition
  requirements.txt ← Python dependencies
  README.md        ← Deployment instructions

See runpod-worker/README.md for full deployment instructions.


Project Structure

app/
  (tabs)/
    index.tsx        ← Studio / Generate screen
    gallery.tsx      ← Gallery screen
    upscale.tsx      ← Upscale screen
    prompts.tsx      ← Prompt history & bookmarks
    settings.tsx     ← Settings screen
components/
  features/
    fullscreen-viewer.tsx  ← Shared fullscreen image viewer
  ui/
    bottom-sheet.tsx       ← Swipeable bottom sheet
    icon-symbol.tsx        ← SF Symbols → Material Icons mapping
  screen-container.tsx     ← SafeArea wrapper
lib/
  api/
    generate.ts            ← Provider routing
    replicate.ts           ← Replicate API
    google-imagen.ts       ← Google Imagen / Gemini Image API
    runpod.ts              ← RunPod serverless API
    civitai.ts             ← Civitai model/LoRA metadata
  storage/
    app-storage.ts         ← Gallery persistence, saveToDeviceGallery
  types/
    index.ts               ← Shared TypeScript types and model catalog

Contributing

This is a personal project. If you fork it and make improvements, feel free to open a pull request.


License

Private — all rights reserved.

Contributors

manus-agent

14 commits

xoneabovex

2 commits

Languages

TypeScript

92.7%

Python

4.9%

JavaScript

2.2%