Transform any image into MapleStory in-game 2D pixel art style using Google Flow with Nano Banana Pro. Automates browser to upload reference images + input image via JavaScript fetch injection, generate MapleStory-style output, and download results. Triggers on "maple style", "maple-style", "메이플 스타일", "메이플 변환", "MapleStory style transfer", or any request to convert images into MapleStory visual style.
Generate MapleStory in-game style images from any input (photos, cartoons, sketches) using Google Flow's Nano Banana Pro via browser automation.
/maple-style <input_image_path_or_description> [map/scene] [aspect_ratio]
16:9 (default) | 9:16 | 1:1Examples:
/maple-style ~/photos/cafe.jpg 헤네시스/maple-style ./character.png 커닝시티 9:16/maple-style "rainy city street at night" 커닝시티If a map name is given:
maple-refs-library/flow_uploaded_ingredients.json (schema v3)./google_accounts.json → current_active)ingredients[]에서 해당 맵의 ingredient id 찾기 (예: henesys_minimap)accounts[현재계정].synced에 해당 id가 있는지 확인:
flow-ingredients-sync 스킬로 sync 수행, 또는 직접 업로드flow-ingredients-sync add로 마스터 목록에 추가 후 syncdocument.querySelectorAll('button').forEach(btn => {
if (getComputedStyle(btn).backgroundImage.includes('TARGET_UUID')) btn.click();
});
Also check maple-bgm-library/map_visual_metadata.json for image_generation_keywords and description_en to enrich the prompt.
Read references/style-prompts.md for prompt templates by category (background, character, item, scene).
Read references/quota-and-models.md for daily limits and model selection guidance.
Read references/flow-browser-workflow.md for complete step-by-step sequence.
Critical: Upload ingredients via JavaScript injection (not native file picker)
// Upload image from URL as ingredient
(async () => {
const response = await fetch('<IMAGE_URL>');
const blob = await response.blob();
const file = new File([blob], 'ref.png', { type: 'image/png' });
const input = document.querySelector('input[type="file"]');
const dt = new DataTransfer();
dt.items.add(file);
input.files = dt.files;
input.dispatchEvent(new Event('change', { bubbles: true }));
return 'OK';
})();
After each upload → "Crop your ingredient" dialog → click "Crop and Save".
Summary:
Two download methods (see references/flow-browser-workflow.md Step 9 for details):
// Fallback: JS download of generated image
(async () => {
const img = document.querySelectorAll('img')[3]; // first generated image
const r = await fetch(img.src);
const b = await r.blob();
const a = Object.assign(document.createElement('a'), {
href: URL.createObjectURL(b), download: 'MapleStory_Generated.png'
});
document.body.appendChild(a); a.click(); a.remove();
})();
If daily image generation quota is exhausted, use the switch-google-account skill to switch to another Google account with remaining quota.
Report after generation: