Skip to main content

AIsketcher

PyPI version GitHub tag CI

Turn one sketch into traceable design directions—not disconnected files you can never reproduce.

AIsketcher is a model-independent Python toolkit for seed scouting, controlled variation, and replayable visual studies. It records the input, control, prompt provenance, actual seeds, selected parent, model revisions, lineage, and hashes around a local or hosted image backend.

Actual AIsketcher Studio showing a source sketch, selected result, four recorded directions, prompt, structure setting, and seed evidence

Actual local Studio with the bundled, hash-verified Guided Study · real source, four outputs, seeds, selection, and manifest · no model download

Documentation · 한국어 빠른 시작 · Model guide · PyPI · Feedback

Try the real workflow in seconds

pip install aisketcher
aisketcher try

This opens a bilingual, interactive tour of a real recorded study on 127.0.0.1. It installs no Torch, Gradio, Diffusers, or model weights, sends no telemetry, and makes no external network request. Select each direction to inspect its seed and evidence; press Ctrl+C in the terminal when finished.

That fast first run is deliberate. A 16–35 GB checkpoint download should not be the price of discovering what the package does.

What AIsketcher adds above a model

prepare → explore → pick → vary → export → replay
  • Comparable directions: generate 1, 4, or 8 candidates from an explicit seed plan instead of repeatedly changing an undocumented random seed.
  • A recorded decision: keep the chosen parent, variation strength, and structure locks as lineage rather than relying on filenames.
  • Reproducible handoff: export images, recipe, exact seeds, model revisions, prompt provenance, runtime, and hashes in one portable study.
  • Backend independence: use the built-in local adapters or implement the small Backend protocol for a hosted, cloud, or in-house generator.
  • Local-first inspection: use the Studio without uploading sketches to an AIsketcher service. The packaged app binds to localhost and public sharing is disabled.

Choose the model by its job

There is no honest universal default. Version 0.4 makes the concrete role visible instead of calling one model an intelligent Auto router.

Studio choice Best for Limit
Fast Edit · FLUX.2 Klein photo restyling, flexible sketch interpretation, instruction edits; about 15–25 s/output on the validated T4 after loading reference-image editing, not Canny; exact line locking is not guaranteed
Structure Lock · SDXL Canny Lite strict line/Canny studies and lower-memory legacy replay older generation quality
Structure Lock+ · SDXL Canny full legacy ControlNet when line structure matters most larger and slower legacy path

FLUX.2 Klein remains the fast local edit model because it is public, Apache-2.0, four-step, and T4-validated. It is no longer described as strict structure control. Z-Image Turbo + Union 2.1 Lite is the leading modern Structure candidate, and Qwen Image Edit 2509/2511 are Pro candidates. They will not become defaults until a published multi-input, four-seed benchmark beats the existing path on designer preference, structure, prompt adherence, failure rate, latency, VRAM, and cancellation. See the model decision guide.

Install only the layer you need

The install identifier, Python import, and CLI are lowercase aisketcher.

# Lightweight SDK + zero-download tour
python -m pip install "aisketcher==0.4.0"

# Local Gradio Studio + bundled Guided Study
python -m pip install "aisketcher[demo]==0.4.0"

# Studio plus local model runtimes
python -m pip install "aisketcher[local,demo]==0.4.0"

Initialize the versioned YAML settings ledger once, then launch Studio:

aisketcher init
aisketcher studio

Model downloads begin only after you choose a concrete model and review its size, immutable revisions, cache destination, and licenses. The packaged CLI checks device support, minimum VRAM, and free cache space before a multi-GB transfer. Unsupported CPU/MPS combinations fail before downloading. English setup no longer pulls the separate 1.9 GB Korean→English helper; Korean Studio prepares that pinned helper only for the Korean workflow.

Guided Study and aisketcher try work on CPU. Live FLUX.2 generation requires CUDA; Apple Silicon MPS remains experimental for the legacy SDXL path. Use Stop rather than refreshing during generation or model preparation.

Simple mode starts with Quick preview · 1 so a new user can validate one real result before paying for a four- or eight-seed search. Generation time grows roughly with the number of requested outputs.

Python workflow

from aisketcher import Intent, PresetManager, SeedPlan, Studio

preset = "flux2-klein-edit@1"
models = PresetManager()
plan = models.plan_install(preset)
print(plan.download_bytes, plan.items, plan.license_notice)

# Continue only after reviewing the immutable repositories and licenses.
if not plan.installed:
    models.install(preset, confirm=True)

studio = Studio.from_preset(preset, device="auto", preset_manager=models)
prepared = studio.prepare("sketch.jpg")

study = studio.explore(
    prepared,
    intent=Intent(
        prompt="A playful paper-cut fantasy kingdom",
        profile="graphic_design",
        structure="balanced",
    ),
    outputs=4,
    seed_plan=SeedPlan.scout(4),
)

selected = study.pick(1)
variations = studio.vary(
    selected,
    outputs=4,
    strength="subtle",
    locks=("structure",),
)

variations.export("design-study")
report = studio.replay("design-study/manifest.json", mode="strict")

For network- and model-free API tests, use Studio(FakeBackend(), preset="sdxl-canny-lite@1"). The fake backend is a deterministic test double, not a claim about creative quality.

The high-level workflow stays the same for a custom backend. Implement name, capabilities, and generate(request), then pass the object to Studio(your_backend, preset=...). Read the complete SDK workflow and export/replay contract.

Seeds are evidence, not a style preset

A seed is meaningful only with the same model revision, resolved recipe, prompt, input, and runtime. AIsketcher therefore recommends observable properties such as structure similarity, edge cleanliness, and diversity; it does not claim that one seed is universally beautiful. Human selection remains part of the manifest.

Korean prompts

Studio preserves the exact Korean brief and prepares separate model-facing English with a pinned local helper. The original, translated text, helper ID, immutable revision, and refinement history are recorded as prompt provenance. This improves consistency but is not a promise that every Korean phrase will translate perfectly.

Development

python -m pip install -e ".[dev,docs,demo]"
python -m pytest
python -m ruff check src examples tests
python -m mypy src/aisketcher
mkdocs build --strict
python -m build
python -m twine check dist/*

Normal CI and the browser suite are model-free and never download weights. Actual model promotion requires the separate benchmark gate documented above. Merging reviewed documentation to main automatically refreshes GitHub Pages; publishing a versioned GitHub Release publishes the same immutable README to PyPI through Trusted Publishing.

License

Source code and documentation text are licensed under the MIT License. Images, drawings, generated derivatives, and other artwork are excluded; read the artwork notice before reuse.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aisketcher-0.4.0.tar.gz (3.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aisketcher-0.4.0-py3-none-any.whl (3.6 MB view details)

Uploaded Python 3

File details

Details for the file aisketcher-0.4.0.tar.gz.

File metadata

  • Download URL: aisketcher-0.4.0.tar.gz
  • Upload date:
  • Size: 3.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for aisketcher-0.4.0.tar.gz
Algorithm Hash digest
SHA256 c23fa58748dc05724361161bbb5a493e4f329095b33b6ec734072e3151e2e920
MD5 f05bd453bbedf76e40b09aec4faf51f7
BLAKE2b-256 e2bfccf2ccf4442db745f496cc9212e1294d5194a5bb089809f6998aaf18ed21

See more details on using hashes here.

Provenance

The following attestation bundles were made for aisketcher-0.4.0.tar.gz:

Publisher: publish-pypi.yml on hyeonsangjeon/AIsketcher

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aisketcher-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: aisketcher-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for aisketcher-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 64ec7d5609bb557285d301f6aefc47493a2faff3ffea395e4597c2a5cc319d19
MD5 66a7e9c9ba434ac9022bd02b730b19ec
BLAKE2b-256 a4b3cb435fb2a88d36767cff29bc1144d60910d1b73eaf26642ad2a4c8d8098c

See more details on using hashes here.

Provenance

The following attestation bundles were made for aisketcher-0.4.0-py3-none-any.whl:

Publisher: publish-pypi.yml on hyeonsangjeon/AIsketcher

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 files

0.3.0

2 files

0.2.1

2 files

0.0.0.4

1 file

0.0.0.3

1 file

0.0.0.2

1 file

0.0.0.1

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page